Thinker

Brief: Cognitive system for interpretting text
Jump To: Parent Description

  •       Here is a way to think about how we might make this intelligent system
          I keep envisioning.
    
          First, it can be applied to reading.
    
          As it reads, it makes certain assumptions.
    
          Suppose that ...
    
          (this means that), etc.
    
          Now, in certain cases, it can specify generalizations.  i.e.
    
          Suppose it is reading a sentence 
    
          One observation is that I get beat at chess simply because my ability
          to store and recall assumptions is not as strong as that of others.
          That there really is no mystery there, why that is.  Now, I don't
          think its sufficient for intelligence simply to be able to do that.
          But nonetheless necessary, so we ought to implement that if we can.
    
          Suppose it is reading a sentence like this.
    
          1 Jane went to the bank to visit her friends.
    
          It could say:
    
          suppose "Jane" is a person
          suppose by "went" we mean WN sense this or that
          suppose by bank we mean place.
    
          Note that instead of assigning a sense to bank, it simply generalizes
          that it is a place, and continues with the interpretation.
    
          Now, this model naturally handles many sentences, because these
          suppositions are sustained.
    
          When it runs into a problem, such as it detects a constraint that is
          violated, then it can backtrack to see which assumptions might be
          mistaken.
    
          Lastly, it should build multiple of these models, or some such thing.
          Perhaps it should use metareasoning about the knowledge in the search
          process.  But in other words it should use other intelligent
          techniques to reason about these.
    
          The suppositions could be brought about by simple observations.  For
          instance, to suppose that Jane is a person could follow from the
          observation that Jane is a person's name.  In fact the supposition
          could be made that Jane is probably a girl, although there could be
          specific knowledge later that would cause it to think Jane is a guy
          (if it was for instance a transvestite.)
    
          Now as these observations/suppositions it makes come up, some of them will
          invariably prove inconsistent, at which point the system will suppose
          that it has made an error, and that certain of its observations were
          wrong.  It will attempt to determine where it made its mistake
    
    
          7 Now, in certain cases, it can specify generalizations.  i.e..
    
          Suppose by "Now" we mean now#n_6
    
          6: (prefatory or transitional) indicates a change of subject
          or activity; "Now the next problem is..."
    
          9 Suppose by "it" we mean "thinker".
    
    
          10 Suppose by "Suppose" it means suppose#v_2: 
    
          To imagine; to believe; to receive as true.
    
          11 Suppose "I" is eclipsed, and by I I mean myself (thinker).
          12 Suppose by 10."it" it means 9
    
    
    
          13 Anyhow this should be simple enough to make a test system based on this design
    
    
    
          Here is an interesting tack.  This is really the basis for the
          formalize tool.  Because, we can imagine mapping these to axioms.  For instance:
    
          Suppose (#$isa 1.1(Jane) #$FemalePerson) by rule X
    
          rule X: if firstname is in femalenames then, perhaps isa thing such
          that firstname is the name of thing and is thing person and is thing
          female.
    
          or some such rule or class of rules: perhaps we can codify it into a
          linguistic expression such that the derivations take part as part of
          the evaluation of suppositions
    
    
    
          Whenever the same entity is contacted in a later sentence, such as
          "Jane", it is an additional supposition that Jane refers to the same
          thing as the previous Jane.
    
    
          Periodically, the system may submit certain ideas: suppose that what I
          am doing is wrong.  If such is as of yet unproven it goes into a list
          of unproven assertions somehow.
    
    
    
          Here is an example of generalizations at work:
    
          Here the antecedant of "this" is rather hard to understand, and so the
          system may not make the best guess of what "this" means in this case:
    
          13.2(this)
    
          Perhaps, then it can generalize for the time being, and then later
          refine its generalization based on the existing suppositions.
    
          14 "This" is getting too complex for the toy system.
    
          s1 suppose 14.1("This") means "the present design".
    
          Here linguistic knowledge is used.
    
    
    
          15 As for parsing, the system should attempt to interpret text letter by
          letter.
    
          i.e. 
    
          suppose 15.l0-l2("As") is the word "as".
          suppose 15.l3(" ") is a space.
          suppose 15.l4-l6("for") is the word "for".
    
          Okay, in order to prevent state space explosion, local tactics and
          focused investigations are necessary in order to reduce the number of
          hypotheses.
    
          i.e.
    
          16 JaneDoe si a friend of mine.
    
          So in this case, the similarity of JaneDoe to "Jane Doe"
          should trigger the hypthosis that it is that mispelled.  Same with
          "si" and "is".
    
          # Suppose "hypothesies" is "hypotheses" mispelled.
    
    
    
          Okay, when an assumption is refuted, it is not clear where the error
          was.  As subsequent assumptions frequently depend upon other
          suppositions
    
    
          returning to:
    
          suppose "Jane" is a person
          suppose by "went" we mean WN sense this or that
          suppose by bank we mean place.
          
          Note that instead of assigning a sense to bank, it simply generalizes
          that it is a place, and continues with the interpretation.
    
          I note now that you would have this subsequence of suppositions
    
          suppose "bank" is the word bank.
          suppose "went" is the word went.
          suppose "went" is this sense went:going
    
          # now we can posit some constraints on the meaning of the word bank.  I suppose it makes sense to declare a goal of deciphering "bank".
    
          "Let us consider the meaning of the term "bank"".
    
          At this point we evaluate all the different senses for logical
          cohesion with the assumed meaning of went:
    
          Well, I personally cannot seem to rule any of the senses of bank out.
          The easiest would be 10 "a flight maneuver", but running it by my
          personal "does that sound right" system, "he went to the bank" is
          tangentially possible.
    
          The sound right system.  I don't know how this works but it is what I
          use.  So let it use it, and by it I mean thinker.
    
          Incidentally, I didn't even consider the verb senses.  Perhaps some or
          all of these would be ruled out...
    
          I suppose you could have probability assessments here.  That would be
          based on existing sense tagged data, which is in short supply, would
          it not?  I suppose it can create its own history of tagged results and
          use this.
    
    
    
          Note that because these are suppositions, we can fire them simply when
          there is a probability of one being true (i.e. the monte carlo
          system).  So, really the system ought to consider the probabilities of
          all the things it is seeing and fire the most probable first.
    
          Probabilities depend on existing data.
    
          So it would be wise to find sources of from which we can derive the
          supposition information and learn its probability.
    
          This begs the question of the incorporation of existing systems for
          doing tasks, such as existing parsers, etc.