<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OpenCog Brainwave &#187; IRC</title>
	<atom:link href="http://blog.opencog.org/tag/irc/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.opencog.org</link>
	<description>The latest developments in building an open-source mind</description>
	<lastBuildDate>Wed, 21 Mar 2012 16:44:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Sentence Patterns</title>
		<link>http://blog.opencog.org/2009/09/08/sentence-patterns/</link>
		<comments>http://blog.opencog.org/2009/09/08/sentence-patterns/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 14:54:23 +0000</pubDate>
		<dc:creator>Linas Vepstas</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Introduction]]></category>
		<category><![CDATA[Theory]]></category>
		<category><![CDATA[chatbot]]></category>
		<category><![CDATA[IRC]]></category>
		<category><![CDATA[NLP]]></category>
		<category><![CDATA[parser]]></category>
		<category><![CDATA[question answering]]></category>
		<category><![CDATA[RelEx]]></category>

		<guid isPermaLink="false">http://opencog.wordpress.com/?p=139</guid>
		<description><![CDATA[I've recently resumed work on the question-answering chatbot, and am trying to get it to comprehend a broader range of questions and statements.   The "big idea" is to create a number of "sentence patterns" that the pattern matcher can ...]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently resumed work on the question-answering chatbot, and am trying to get it to comprehend a broader range of questions and statements.   The &#8220;big idea&#8221; is to create a number of &#8220;sentence patterns&#8221; that the pattern matcher can recognize and respond to.  The reason this is a &#8220;big&#8221; idea is because I am trying to avoid anything algorothmic or procedural &#8212; everything is to be done by specifying OpenCog hypergraphs, and NOT by writing C++ code, or <a href="http://www.gnu.org/software/guile/guile.html">scheme</a> code (or python code&#8230;etc). The reason for working entirely with patterns and hypergraphs, rather than with C++ or scheme, is because this puts the &#8220;knowledge&#8221; of the system into a form that AI routines can manipulate it: learning algos can learn new hypergraphs; statistical algos can gather usage information on which hypergraphs get triggered, and so on.  This is all easer said than done: although I&#8217;ve eliminated a fair amount of question-answering code previously written in C++, I&#8217;ve also had to write some new scheme code. Bummer. <img src='http://blog.opencog.org/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>Patten matching is now used through-out all of the OpenCog NLP pipeline, although not in a unified manner. The <a href="http://www.abisource.com/projects/link-grammar/">Link Grammar parser</a> uses patterns (called &#8220;disjuncts&#8221;) to determine how the words in a sentence can link to one-another, thus &#8220;parsing&#8221;, or pulling the grammatical structure out of a sentence (<a href="http://www.cs.cmu.edu/afs/cs.cmu.edu/project/link/pub/www/papers/ps/tr91-196.pdf">this paper</a> provides an excellent overview). The <a href="http://opencog.org/wiki/RelEx">RelEx dependency relation extractor</a> applies patterns on the link-grammar output  to extract syntactic relations. For example, the sentence &#8220;John threw a rock&#8221; becomes</p>
<blockquote><p>_obj(throw, ball)<br />
_subj(throw, John)</p></blockquote>
<p>after RelEx gets done with it. And now, there are a dozen patterns inside of OpenCog that can pick out certain kinds of questions and statements from RelEx output, and pattern-match questions to find answers to them.</p>
<p>For example, the new OpenCog patterns convert &#8220;The capital of France is Paris&#8221; into</p>
<blockquote><p>capital_of(France, Paris)</p></blockquote>
<p>and similarly, &#8220;What is the capital of France?&#8221; into</p>
<blockquote><p>capital_of(France,what)</p></blockquote>
<p>Treating &#8220;what&#8221; as a variable, there is yet another pattern that matches up the form of the question to the form of the answer, thus deducing that &#8220;what&#8221; must be &#8220;Paris&#8221;.</p>
<p>Somewhat harder is using patterns to distinguish similar from dis-similar concepts, so that sentences like &#8220;John threw a green ball&#8221; aren&#8217;t used as answers to questions such as &#8220;Did John throw a red ball?&#8221;: the word &#8220;ball&#8221; with modifier &#8220;green&#8221; has to be detected as a different entity than the word &#8220;ball&#8221; with modifier &#8220;red&#8221;: these are two different entities (called &#8220;semes&#8221; in the code).  In fact, out of laziness, I&#8217;ve punted on this one: the promotion of word-instances to &#8220;semes&#8221; is done by code, rather than by pattern matching. But soon, I hope, this will change. In the meanwhile, the <a href="http://buildbot.opencog.org/doxygen/d7/d41/opencog_2nlp_2seme_2README-source.html">README file</a> provides a more detailed discussion.</p>
<p>Here are some patterns that work these days:</p>
<blockquote><p>&lt;me&gt;         John threw a green ball.<br />
&lt;me&gt;         Fred threw a red ball<br />
&lt;me&gt;         Mary threw a blue rock<br />
&lt;me&gt;         who threw a ball?<br />
&lt;cogita-bot&gt; Syntax pattern match found: Fred John<br />
&lt;me&gt;         who threw a red ball?<br />
&lt;cogita-bot&gt; Syntax pattern match found: Fred</p>
<p>&lt;me&gt;         Did Fred throw a ball?<br />
&lt;cogita-bot&gt; Truth query determined &#8220;yes&#8221;: throw</p>
<p>&lt;me&gt;         Did Fred throw a red ball?<br />
&lt;cogita-bot&gt; Truth query determined &#8220;yes&#8221;: throw</p>
<p>&lt;me&gt;         The color of the book is red.<br />
&lt;me&gt;         What is the color of the book?<br />
&lt;cogita-bot&gt; Triples abstraction found: red</p>
<p>&lt;me&gt;         the cat sat on the mat<br />
&lt;me&gt;         what did the cat sit on?<br />
&lt;cogita-bot&gt; Triples abstraction found: mat</p></blockquote>
<p>And here are some that don&#8217;t yet work: &#8220;Did Fred throw a green ball?&#8221; &#8212; gets no reply, because the system can&#8217;t find an answer, and doesn&#8217;t make the common-sense leap of &#8220;can&#8217;t find answer-&gt; answer must be no&#8221;.  Another common-sense problem is illustrated by: &#8220;Did Fred throw a round ball?&#8221; &#8212; the system doesn&#8217;t know that balls are round, and simply assumes that a &#8220;round ball&#8221; is some special kind of &#8220;ball&#8221;.  Oh well. There&#8217;s work to be done.</p>
<p>You can try out the chatbot yourself (when its up, and not broken!) on the IRC chat channel #opencog on the freenode.net chat servers.</p>
<p>&#8211; Linas Vepstas</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.opencog.org/?flattrss_redirect&amp;id=139&amp;md5=291d34897fe55a736594b581aaa5a47f" title="Flattr" target="_blank"><img src="http://blog.opencog.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.opencog.org/2009/09/08/sentence-patterns/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OpenCog tutorial sessions</title>
		<link>http://blog.opencog.org/2008/09/18/opencog-tutorial-sessions/</link>
		<comments>http://blog.opencog.org/2008/09/18/opencog-tutorial-sessions/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 16:01:31 +0000</pubDate>
		<dc:creator>Joel Pitt</dc:creator>
				<category><![CDATA[Theory]]></category>
		<category><![CDATA[IRC]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[OpenCogPrime]]></category>

		<guid isPermaLink="false">http://opencog.wordpress.com/?p=52</guid>
		<description><![CDATA[A few weeks back Ben announced he'd be running IRC tutorial sessions on OpenCogPrime. Last night was the second tutorial, and was on the topic of knowledge representation - introducing people to the basic concepts of the AtomSpace, such ...]]></description>
			<content:encoded><![CDATA[<p>A few weeks back Ben announced he&#8217;d be running IRC <a href="http://www.opencog.org/wiki/OpenCogPrime:TutorialSessions">tutorial sessions on OpenCogPrime</a>. Last night was the second tutorial, and was on the topic of knowledge representation &#8211; introducing people to the basic concepts of the AtomSpace, such as Atoms, Nodes, and Links and how various types of each represent things in OCP. If you missed out, there are logs linked from the wiki for both sessions (and future session should also end up logged and available from the wiki).</p>
<p>Lastly, Ben also donned a wizard&#8217;s hat for the event:</p>
<p><img src="http://blog.opencog.org/files/2008/09/14lmqg0.jpg" alt="" width="500" class="alignnone size-full wp-image-53" /></p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.opencog.org/?flattrss_redirect&amp;id=52&amp;md5=970d25efe19a7e8364342b2798ad94ce" title="Flattr" target="_blank"><img src="http://blog.opencog.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.opencog.org/2008/09/18/opencog-tutorial-sessions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

