.
FRDCSA | minor codebases | Thinker
Homepage

[Project image]
Thinker

Jump to: Project Description | Parent Description | Capabilities

Project 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.
    

Capabilities

  • This may be risky, but maybe we should look into a market based allocation for attention for nlu/thinker.
  • iaec and thinker are similar.
  • Use KBFS, have it learn when to automatically attribute facts to files based on certain correlations. Also use sayer and sayer-Learner, and thinker to learn when these facts apply to the files. Then, for instance, do automatic classification of text files into subject headings. Ultimately organize all of the research papers and documents I have into a coherent, cohesive whole.
  • Looks like the name "suppositional-reasoner" may have shifted in meaning over time. I think originally it was supposed to be used for proposing and testing hypotheses, much like nlu and thinker. But now it appears to have become something to suppose moves in a search. Weird.
  • auto-packager should use data enrichment of package orig.tar.gz, debian/* and included patches via sayer/thinker, nlu and kbfs as input features to various machine learning systems in order to determine how to automatically package something for Debian. brilliant. difficult though.
  • There was a paper on exploiting information using MDPs or something for attacking systems, and I imagine that same technique could be used for the sayer/thinker/Learner/suppositional-decomposer systems in order to optimize the exploration of the "hypothesis space"
  • Things that I would like to work on: Irish TTS, Dictionary mapper, thinker, Language Learner, etc.
  • The Corpus system for routing UniLang messages can use the thinker/notes system.
  • You could say, do you acknowledge that I am the stronger chess player? Do you acknowledge that I have studied mathematical logic in greater depth? Ok, wellwell I don't know how useful you could be to our group because I think that, although you are wonderfully intelligent, and have the capability of being an extremely powerful thinker, I don't think that you have understood some of the finer points of logic.


This page is part of the FWeb package.
Last updated Sat Oct 26 16:48:34 EDT 2019 .