<story><title>A Simple AI Capable of Basic Reading Comprehension</title><url>http://blog.ayoungprogrammer.com/2015/09/a-simple-artificial-intelligence.html</url></story><parent_chain></parent_chain><comment><author>kajecounterhack</author><text>The difference between this graph and propositional logic is only that the predicates joining concepts are arbitrary instead of logic operators. In that sense, this is like Google Knowledge Graph &amp;#x2F; Freebase.&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Propositional_calculus#Solvers&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Propositional_calculus#Solvers&lt;/a&gt;&lt;p&gt;Solving a set of propositional logic statements is NP-Complete. I&amp;#x27;d argue &amp;quot;reading comprehension&amp;quot; is actually knowing the state of the world after a piece of text, which requires solving how these predicates interact. For example, if the paragraph is&lt;p&gt;&lt;pre&gt;&lt;code&gt;  Bobby picked up the toy. Then he put down the toy.
&lt;/code&gt;&lt;/pre&gt;
This &amp;quot;semantic memory&amp;quot; does not &amp;quot;comprehend&amp;quot; where the toy is, and this is a relatively simple example. I think the title &amp;quot;basic reading comprehension&amp;quot; is thus inaccurate. Perhaps a better title is &amp;quot;A simple knowledge graph&amp;quot; or &amp;quot;A simple semantic memory&amp;quot;</text></comment>
<story><title>A Simple AI Capable of Basic Reading Comprehension</title><url>http://blog.ayoungprogrammer.com/2015/09/a-simple-artificial-intelligence.html</url></story><parent_chain></parent_chain><comment><author>mratzloff</author><text>Some thoughts about creating a system like this:&lt;p&gt;Any successful implementation of comprehension must progressively enhance the world model based on additional information. Furthermore it must understand some basic rules, such as, &amp;quot;Any subject, set of subjects, or actions can be represented multiple ways.&amp;quot;&lt;p&gt;So if you said, &amp;quot;Mary&amp;#x27;s brother is Sam,&amp;quot; or &amp;quot;Mary has a brother named Sam,&amp;quot; or &amp;quot;Mary&amp;#x27;s brother is named Sam,&amp;quot; the world model must collocate the meanings &amp;quot;Sam&amp;quot; and &amp;quot;brother&amp;quot; for Mary and be able to respond to queries about either.&lt;p&gt;Further, if you mention that John also has a brother named Sam, and then you mention Sam in an ambiguous context, the program should be smart enough to ask, &amp;quot;Which Sam? Mary&amp;#x27;s brother or John&amp;#x27;s?&amp;quot; Infocom games did this; you are building a more flexible world model builder, but the parser would operate similarly.&lt;p&gt;There is also the concept of recency. If I talk about &amp;quot;John&amp;#x27;s brother Sam&amp;quot;, ignoring the fact that pronoun references to &amp;quot;he&amp;quot; should be contextually mapped correctly, and then mention Sam, the program should not need to ask which Sam I mean. It would be like talking to someone who wasn&amp;#x27;t paying attention.&lt;p&gt;Finally, there is also the concept of confidence. In the face of ambiguity that can&amp;#x27;t be resolved, a confidence rating should be assigned based on available information and future answers should be based on that confidence.&lt;p&gt;I suspect that if someone were to create a language parser that could create a mostly-accurate world model AND modify itself based on new rules it read (e.g., &amp;quot;When some says &amp;#x27;he&amp;#x27; after referring to someone&amp;#x27;s name, they are almost certainly talking about the man they previously referred to&amp;quot;), you would be 90% of the way to creating a useful virtual intelligence. It would of course not be able to reason or have opinions of its own, but it would be extremely useful as a virtual assistant that could learn your preferences over time.</text></comment>