20 May 2009 AI4U   » (Observer)

MindForth Programming Journal - tues19may2009


As we run MindForth and look for the currently most obvious problem, we notice rather keenly that the AI needs to use the indefinite article "a" to set a following noun as singular in number. Since the AI has recently gained the ability to instantiate a singular noun upon receiving its plural form in the input stream, it makes sense now to enhance the ability of the AI Mind to deal with singular nouns.

In AudRecog we already have the following code.

pho @ 83 = IF  \  1oct2008 If the final character is "S"
  2 num !  \  1oct2008 Set the "num" flag as plural
THEN  \  1oct2008 End of test for "S" at end of a word.

The above code triggers an immediate setting of num(ber) as plural. When the article "a" comes in, we want not to act immediately but rather to govern a flag that will set the next incoming noun to a singular number.

One concern right now is whether to use the letter "a" or the concept of "a" as the determinant in setting the singularity flag. We should probably use the concept, so that eventually either "a" or "an" will trip the flag- setting.

In the new AI code shown below, the second part sets the singflag so that the first part can take future action. It may not really matter here which part comes first, but the idea is to let one event govern subsequent events.

singflag @ 1 = IF  \ 19may2009 If flag set by "a" or "an"
  pos @ 5 = IF  \ 19may2009 If noun by part-of-speech POS
    1 num !  \ 19may2009 Set num(ber) to singular one.
    0 singflag !  \ 19may2009 Zero out flag after use.
  THEN  \ 19may2009 End of test for a noun after "a"
THEN  \ 19may2009 End of test of singularity flag.
psi @ 1 = IF \ 19may2009 If article "a" comes in as input 1 singflag ! \ 19may2009 Set singularity-flag to one. 0 act ! \ 19apr2009 To suppress using article "a" THEN \ 19may2009 End of test for article "a" coming in.


When we next change the EnBoot sequence, we need to include "a" and "an" and "one" as input elements that will trigger the singularity flag "singflag". We also need to put in at least one pair of opposite adjectives, so that we can use one of the adjectives to make sure that it gets skipped, as in "a big question", where the article "a" is supposed to set the singflag that will cause the next noun to be regarded as singular in number. We could use "big/small" or "good/bad" or "old/new" or "robotic/human" as adjective pairs.

Latest blog entries     Older blog entries

Share this page