<?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; PLN</title>
	<atom:link href="http://blog.opencog.org/tag/pln/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>Thu, 04 Aug 2011 02:45:12 +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>PLN forward chainer</title>
		<link>http://blog.opencog.org/2010/02/20/pln-forward-chainer/</link>
		<comments>http://blog.opencog.org/2010/02/20/pln-forward-chainer/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 01:14:01 +0000</pubDate>
		<dc:creator>jaredwigmore</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PLN]]></category>

		<guid isPermaLink="false">http://brainwave.opencog.org/?p=184</guid>
		<description><![CDATA[I (Jared Wigmore aka JaredW) have recently implemented a general forward chainer for PLN. (See Forward and Backward chaining on Wikipedia). Joel had previously implemented a prototype forward chainer, but it only supported deduction. PLN has a wide variety ...]]></description>
			<content:encoded><![CDATA[<p>I (Jared Wigmore aka JaredW) have recently implemented a general forward chainer for PLN. (See <a href="http://en.wikipedia.org/wiki/Forward_chaining">Forward</a> and <a href="http://en.wikipedia.org/wiki/Backward_chaining">Backward</a> chaining on Wikipedia). Joel had previously implemented a prototype forward chainer, but it only supported deduction. PLN has a wide variety of inference rules. They each require different sorts of input atoms, and so a forward (or backward) chainer for PLN needs to be able to find appropriate atoms for each inference rule.</p>
<p>There&#8217;s a new &#8216;pln fc&#8217; command, in the CogServer shell, which runs some FC inference.</p>
<p>Here are some pics of the new forward chainer on a demo dataset about toys, object persistence etc. They show the atomspace before and after inference.</p>

<a href='http://blog.opencog.org/2010/02/20/pln-forward-chainer/pln-before/' title='PLN before'><img width="150" height="150" src="http://blog.opencog.org/files/2010/02/pln-before-150x150.png" class="attachment-thumbnail" alt="PLN before" title="PLN before" /></a>
<a href='http://blog.opencog.org/2010/02/20/pln-forward-chainer/anotbdemo-after-some-fc/' title='AnotBdemo after some FC'><img width="150" height="150" src="http://blog.opencog.org/files/2010/02/anotbdemo-after-some-fc-150x150.png" class="attachment-thumbnail" alt="AnotBdemo after some FC" title="AnotBdemo after some FC" /></a>

<p>Following is a general explanation of how it works. The idea is that each PLN Rule can provide templates for the Atoms it requires as input. In each inference step, the forward chainer picks a Rule, and then looks up a sequence of<br />
Atoms that match the input templates.</p>
<p>Here&#8217;s an example with DeductionRule, solving the classic &#8220;Mortal Socrates&#8221; problem, explained on the <a href="http://www.opencog.org/wiki/NLP-PLN-NLGen_pipeline#is-a.2Fhas-a_Relations">OpenCog wiki</a>.</p>
<p>DeductionRule requires two Atoms, in the form:</p>
<p>(Inheritance A B)<br />
(Inheritance B C)</p>
<p>which basically means, A is a B and B is a C. It then produces:</p>
<p>(Inheritance A C)</p>
<p>For the first argument, the forward chainer looks up any Atom that matches (Inheritance A B), that is, any InheritanceLink in the system.<br />
Suppose it finds &#8220;Socrates is a man&#8221;:</p>
<p>(Inheritance Socrates man)</p>
<p>Now it has A = Socrates and B = man. So to find the second argument, it looks for:</p>
<p>(Inheritance man C)</p>
<p>i.e. &#8220;man/men is/are &lt;something&gt;&#8221;. Suppose it finds &#8220;Men are mortal&#8221;:</p>
<p>(Inheritance man mortal)</p>
<p>Then it feeds these two premises into the DeductionRule, which produces:</p>
<p>(Inheritance Socrates mortal)</p>
<p>Remember that since this is forward chaining, it could have found all sorts of other things. If it had found, for the second argument, &#8220;Men tend to be bald&#8221;, then it would have produced &#8220;Socrates is probably bald&#8221; <img src='http://blog.opencog.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.opencog.org/?flattrss_redirect&amp;id=184&amp;md5=8838118b104687f590d180130c15cc58" 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/2010/02/20/pln-forward-chainer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualizing PLN inference</title>
		<link>http://blog.opencog.org/2009/06/02/visualizing-pln-inference/</link>
		<comments>http://blog.opencog.org/2009/06/02/visualizing-pln-inference/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 08:18:44 +0000</pubDate>
		<dc:creator>Joel Pitt</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PLN]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://brainwave.opencog.org/?p=119</guid>
		<description><![CDATA[Recently Jared Wigmore, a student of Waikato University, New Zealand, created a tool for visualizing PLN as part of a visualisation project.



In my opinion, the BIT visualiser shows great promise as a tool for understanding the complexities of BIT ...]]></description>
			<content:encoded><![CDATA[<p>Recently Jared Wigmore, a student of Waikato University, New Zealand, created a tool for visualizing PLN as part of a visualisation project.</p>
<div id="attachment_120" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.opencog.org/files/2009/06/pln-viz.png"><img src="http://blog.opencog.org/files/2009/06/pln-viz.png?w=300" alt="BIT visualizer" width="300" height="238" class="size-medium wp-image-120" /></a><p class="wp-caption-text">BIT visualizer</p></div>
<p>In my opinion, the BIT visualiser shows great promise as a tool for understanding the complexities of BIT expansion. In particular, the cross joins between sub-trees make it much clearer how sharing of sub-trees is occurring. The size of the BITNodes reflect their fitness evaluation in determining which node of the inference tree will be expand next and will inevitably be useful when we get to the stage of tuning the the fitness heuristic.</p>
<p>Being a prototype, there is plenty of scope for continued development, a couple of the many ideas that immediately come to mind are:</p>
<ul>
<li>expansion of BITNodes by clicking on them (this would require OpenCog to provide an XML-RPC interface first however), and</li>
<li>thematic colouring of rules so that it&#8217;s easier to distinguish between the subtrees.</li>
</ul>
<p>This is part of the bigger challenge of general AtomSpace visualisation. How do we convey knowledge about the processes that are going on in a digital mind to humans in a meaningful way?</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.opencog.org/?flattrss_redirect&amp;id=119&amp;md5=a9f9256bdfd5e711c44274654ec9c76c" 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/06/02/visualizing-pln-inference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun with first-order inference</title>
		<link>http://blog.opencog.org/2008/10/22/fun-with-first-order-inference/</link>
		<comments>http://blog.opencog.org/2008/10/22/fun-with-first-order-inference/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 15:19:02 +0000</pubDate>
		<dc:creator>Ben Goertzel</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[OpenCog]]></category>
		<category><![CDATA[OpenCogPrime]]></category>
		<category><![CDATA[PLN]]></category>

		<guid isPermaLink="false">http://opencog.wordpress.com/?p=61</guid>
		<description><![CDATA[Joel Pitt has done some experiments testing first-order PLN inference in OpenCog, on some very simple data.

These experiments don't use the indefinite probability formulas but rather the good old fashioned SimpleTruthValue PLN formulas.

What they involve is using PLN to ...]]></description>
			<content:encoded><![CDATA[<p>Joel Pitt has done some experiments testing first-order PLN inference in OpenCog, on some very simple data.</p>
<p>These experiments don&#8217;t use the indefinite probability formulas but rather the good old fashioned SimpleTruthValue PLN formulas.</p>
<p>What they involve is using PLN to extrapolate indirect word associations, from direct words associations mined from text (by some statistical text mining software created for OpenCog by Linas Vepstas).</p>
<p>This obviously does not stress the generality of PLN as an inference framework (no VariableNodes! no quantifiers! no intension! no fuzzy MemberLinks!).  There is nothing particularly revolutionary AI-wise here &#8230; it&#8217;s just some fairly straightforward, state-of-the-art statistical NLP &#8230; Hebbian learning on a neural net, among many other techniques, could do basically the same thing &#8230; but this is a reasonable &#8220;smoke test&#8221; of the ability to load a bunch of nodes and links into OpenCog and perform some basic inference processes on them.  One nice point about PLN is that it can handle relatively simple, associative-neural-netty stuff like this, as well as more complex reasoning involving variables and quantifiers and such, all seamlessly within the same mathematical, conceptual and software approach.</p>
<p>The reason I decided to write a blog post on this is that Joel produced some nifty pictures based on his work, using the open-source graph visualization package Tulip.</p>
<p>Here is a big nasty network of nodes and links in OpenCog, before inference:</p>
<p><a href="http://blog.opencog.org/files/2008/10/ssdemo-fwd-15000-before.png"><img class="aligncenter size-large wp-image-63" src="http://blog.opencog.org/files/2008/10/ssdemo-fwd-15000-before.png?w=480" alt="" width="480" height="317" /></a></p>
<p>Here is the same network, after some first-order PLN inference, with the inferred links in green:</p>
<p><a href="http://blog.opencog.org/files/2008/10/ssdemo-fwd-15000-after.png"><img class="aligncenter size-large wp-image-64" src="http://blog.opencog.org/files/2008/10/ssdemo-fwd-15000-after.png?w=480" alt="" width="480" height="317" /></a></p>
<p>Obviously the above don&#8217;t tell you too much.  Tulip was configured so that nodes representing more greatly similar words (in terms of their statistical association) would generally be placed closer together in the visualization.  Slightly more insight is given by zooming in, using Tulip, to see some of the nodes and links close up.  Again, the links in green are the products of inference:</p>
<p><a href="http://blog.opencog.org/files/2008/10/fwd_chain_1000_zoom1.png"><img class="aligncenter size-large wp-image-65" src="http://blog.opencog.org/files/2008/10/fwd_chain_1000_zoom1.png?w=480" alt="" width="480" height="317" /></a></p>
<p><a href="http://blog.opencog.org/files/2008/10/fwd_chain_1000_zoom4.png"><img class="aligncenter size-large wp-image-66" src="http://blog.opencog.org/files/2008/10/fwd_chain_1000_zoom4.png?w=480" alt="" width="480" height="317" /></a></p>
<p>Note that in the immediately above example, to build the associative link between &#8220;foreign&#8221; and &#8220;administration&#8221; requires the system to make two inferences in sequence:</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.opencog.org/?flattrss_redirect&amp;id=61&amp;md5=8cc983cc81200fa3cc605bd1361d8d65" 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/10/22/fun-with-first-order-inference/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

