<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-438</id>
	<title>Nabble - PowerLoom</title>
	<updated>2008-08-27T10:54:31Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/PowerLoom-f438.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/PowerLoom-f438.html" />
	<subtitle type="html">PowerLoom knowledge representation system</subtitle>
	
<entry>
	<id>tag:www.nabble.com,2006:post-19186403</id>
	<title>Re: Question about all-facts-of..</title>
	<published>2008-08-27T10:54:31Z</published>
	<updated>2008-08-27T10:54:31Z</updated>
	<author>
		<name>Thomas Russ</name>
	</author>
	<content type="html">Oops. &amp;nbsp;Initially missed the second part of the question.
&lt;br&gt;&lt;br&gt;On Aug 27, 2008, at 8:57 AM, Srini Ram wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Also are
&lt;br&gt;&amp;gt; Function: all-facts-of-instance ((self OBJECT) (includeunknownfacts? &amp;nbsp;
&lt;br&gt;&amp;gt; BOOLEAN) (elaborate? BOOLEAN)) : (LIST OF PROPOSITION) Return a list &amp;nbsp;
&lt;br&gt;&amp;gt; of all definite (TRUE or FALSE) propositions attached to self.
&lt;br&gt;&amp;gt; N-Command: all-facts-of-n ((n INTEGER) &amp;rest (instanceRefs NAME)) : &amp;nbsp;
&lt;br&gt;&amp;gt; (CONS OF PROPOSITION) available (as documented in the misc section). &amp;nbsp;
&lt;br&gt;&amp;gt; I get an error when trying to use them.
&lt;br&gt;&lt;br&gt;They work for me.
&lt;br&gt;&lt;br&gt;ALL-FACTS-OF-INSTANCE:
&lt;br&gt;&lt;br&gt;Note that this is a function, and so requires the actual objects to be &amp;nbsp;
&lt;br&gt;passed. &amp;nbsp;You will not be able to invoke it from the standard PowerLoom &amp;nbsp;
&lt;br&gt;prompt. &amp;nbsp;It needs to be called from code. &amp;nbsp;(Of course, in Lisp, you &amp;nbsp;
&lt;br&gt;can call it directly, but you have to pass arguments of the proper &amp;nbsp;
&lt;br&gt;types:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;* (all-facts-of-instance (pli:get-object &amp;quot;BILL&amp;quot; null null) cl:nil &amp;nbsp;
&lt;br&gt;cl:nil)
&lt;br&gt;&amp;nbsp; &amp;nbsp;|l|(|P|(PERSON BILL) |P|(FRIEND BILL BOB))
&lt;br&gt;&lt;br&gt;Note that the return type is a Stella LIST object.
&lt;br&gt;&lt;br&gt;&lt;br&gt;ALL-FACTS-OF-N:
&lt;br&gt;&lt;br&gt;This is a command and so is useable from the standard PowerLoom prompt &amp;nbsp;
&lt;br&gt;as well as being available as a Lisp form in the top-level REPL.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;* (all-facts-of-n 0 bill)
&lt;br&gt;&amp;nbsp; &amp;nbsp;(|P|(PERSON BILL) |P|(FRIEND BILL BOB))
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;* (all-facts-of-n 1 bill)
&lt;br&gt;&amp;nbsp; &amp;nbsp;(|P|(PERSON BILL) |P|(FRIEND BILL BOB) |P|(PERSON BOB) |P|(FRIEND &amp;nbsp;
&lt;br&gt;BOB JOE))
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;* (all-facts-of-n 2 bill)
&lt;br&gt;&amp;nbsp; &amp;nbsp;(|P|(PERSON BILL) |P|(FRIEND BILL BOB) |P|(PERSON BOB) |P|(FRIEND &amp;nbsp;
&lt;br&gt;BOB JOE)
&lt;br&gt;&amp;nbsp; &amp;nbsp; |P|(PERSON JOE))
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19186403&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Question-about-all-facts-of..-tp19184162p19186403.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19186025</id>
	<title>Re: Question about all-facts-of..</title>
	<published>2008-08-27T10:38:26Z</published>
	<updated>2008-08-27T10:38:26Z</updated>
	<author>
		<name>Thomas Russ</name>
	</author>
	<content type="html">ALL-FACTS-OF only reports asserted (and forward-chained) information, &amp;nbsp;
&lt;br&gt;not cached information from running the query engine.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;N-Command: all-facts-of ((instanceRef NAME)) : (CONS OF PROPOSITION)
&lt;br&gt;&lt;br&gt;Return a cons list of all definite (TRUE or FALSE) propositions that &amp;nbsp;
&lt;br&gt;reference the instance instanceRef. This includes propositions &amp;nbsp;
&lt;br&gt;asserted to be true by default, but it does not include propositions &amp;nbsp;
&lt;br&gt;that are found to be TRUE only by running the query engine. Facts &amp;nbsp;
&lt;br&gt;inferred to be TRUE by the forward chainer will be included. Hence, &amp;nbsp;
&lt;br&gt;the returned list of facts may be longer in a context where the &amp;nbsp;
&lt;br&gt;forward chainer has been run then in one where it has not (see run- 
&lt;br&gt;forward-rules).
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Aug 27, 2008, at 8:57 AM, Srini Ram wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; If I have
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (defconcept person (?x))
&lt;br&gt;&amp;gt; (defrelation alive (?x))
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (defconcept live-person (?x person)
&lt;br&gt;&amp;gt; &amp;nbsp; :&amp;lt;=&amp;gt; (alive ?x)
&lt;br&gt;&amp;gt; &amp;nbsp; )
&lt;br&gt;&amp;gt; (defrelation spouse ((?x person) (?y person))
&lt;br&gt;&amp;gt; &amp;nbsp; :axioms (symmetric spouse))
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (defrelation married ((?x person) (?y person))
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; :&amp;lt;=&amp;gt; (and (spouse ?x ?y) (live-person ?x) (live-person ?y) ))
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (assert (spouse jack jill))
&lt;br&gt;&amp;gt; (assert (and (alive jack) (alive jill)))
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Now I do the following queries:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; STELLA&amp;gt; &amp;nbsp;(all-facts-of jack)
&lt;br&gt;&amp;gt; (|P|(SPOUSE JACK JILL) |P|(ALIVE JACK) |P|(PERSON JACK) |P?|(LIVE- 
&lt;br&gt;&amp;gt; PERSON JACK))
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; STELLA&amp;gt; &amp;nbsp;(retrieve all (married ?x ?y))
&lt;br&gt;&amp;gt; There are 2 solutions:
&lt;br&gt;&amp;gt; &amp;nbsp; #1: ?X=JACK, ?Y=JILL
&lt;br&gt;&amp;gt; &amp;nbsp; #2: ?X=JILL, ?Y=JACK
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; STELLA&amp;gt; &amp;nbsp;(all-facts-of jack)
&lt;br&gt;&amp;gt; (|P|(SPOUSE JACK JILL) |P|(ALIVE JACK) |P|(PERSON JACK) |P?|(LIVE- 
&lt;br&gt;&amp;gt; PERSON JACK)) ;; no (married jack jill)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Should I not see married jack jill on the last query? I expect it to &amp;nbsp;
&lt;br&gt;&amp;gt; be cached as a fact after the query. How can I have access to such &amp;nbsp;
&lt;br&gt;&amp;gt; dynamic attributes of jack in all-facts-of. I tried &amp;nbsp;:elaborate? &amp;nbsp;
&lt;br&gt;&amp;gt; TRUE as an argument of all-facts-of, to no avail.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Also are
&lt;br&gt;&amp;gt; Function: all-facts-of-instance ((self OBJECT) (includeunknownfacts? &amp;nbsp;
&lt;br&gt;&amp;gt; BOOLEAN) (elaborate? BOOLEAN)) : (LIST OF PROPOSITION) Return a list &amp;nbsp;
&lt;br&gt;&amp;gt; of all definite (TRUE or FALSE) propositions attached to self.
&lt;br&gt;&amp;gt; N-Command: all-facts-of-n ((n INTEGER) &amp;rest (instanceRefs NAME)) : &amp;nbsp;
&lt;br&gt;&amp;gt; (CONS OF PROPOSITION) available (as documented in the misc section). &amp;nbsp;
&lt;br&gt;&amp;gt; I get an error when trying to use them.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks
&lt;br&gt;&amp;gt; Srini
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; powerloom-forum mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19186025&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;/div&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19186025&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Question-about-all-facts-of..-tp19184162p19186025.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19184162</id>
	<title>Question about all-facts-of..</title>
	<published>2008-08-27T08:57:55Z</published>
	<updated>2008-08-27T08:57:55Z</updated>
	<author>
		<name>Srini Ram</name>
	</author>
	<content type="html">&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; style=&quot;font: inherit;&quot;&gt;Hi,&lt;br&gt;
&lt;br&gt;
If I have&lt;br&gt;
&lt;br&gt;
(defconcept person (?x))&lt;br&gt;
(defrelation alive (?x))&lt;br&gt;
&lt;br&gt;
(defconcept live-person (?x person)&lt;br&gt;
&amp;nbsp; :&amp;lt;=&amp;gt; (alive ?x)&lt;br&gt;
&amp;nbsp; )&lt;br&gt;
(defrelation spouse ((?x person) (?y person))&lt;br&gt;
&amp;nbsp; :axioms (symmetric spouse))&lt;br&gt;
&lt;br&gt;
(defrelation married ((?x person) (?y person))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;lt;=&amp;gt; (and (spouse ?x ?y) (live-person ?x) (live-person ?y) ))&lt;br&gt;
&lt;br&gt;
(assert (spouse jack jill))&lt;br&gt;
(assert (and (alive jack) (alive jill)))&lt;br&gt;
&lt;br&gt;
Now I do the following queries:&lt;br&gt;
&lt;br&gt;
STELLA&amp;gt;&amp;nbsp; (all-facts-of jack)&lt;br&gt;
(|P|(SPOUSE JACK JILL) |P|(ALIVE JACK) |P|(PERSON JACK) |P?|(LIVE-PERSON JACK))&lt;br&gt;
&lt;br&gt;
STELLA&amp;gt;&amp;nbsp; (retrieve all (married ?x ?y))&lt;br&gt;
There are 2 solutions:&lt;br&gt;
&amp;nbsp; #1: ?X=JACK, ?Y=JILL&lt;br&gt;
&amp;nbsp; #2: ?X=JILL, ?Y=JACK&lt;br&gt;
&lt;br&gt;
STELLA&amp;gt;&amp;nbsp; (all-facts-of jack)&lt;br&gt;
(|P|(SPOUSE JACK JILL) |P|(ALIVE JACK) |P|(PERSON JACK) |P?|(LIVE-PERSON JACK))&lt;span style=&quot;color: rgb(192, 0, 0);&quot;&gt; ;; no (married jack jill)&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
Should I not see married jack jill on the last query? I expect it to be
cached as a fact after the query. How can I have access to such dynamic
attributes of jack in all-facts-of. I tried&amp;nbsp; :elaborate? TRUE as
an argument of all-facts-of, to no avail.&lt;br&gt;
&lt;br&gt;
Also are&lt;br&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;u&gt;Function:&lt;/u&gt; &lt;b&gt;all-facts-of-instance&lt;/b&gt; &lt;i&gt;((self OBJECT) (includeunknownfacts? BOOLEAN) (elaborate? BOOLEAN)) : (LIST OF PROPOSITION)&lt;/i&gt;
&lt;/dt&gt;&lt;dd&gt;Return a list of all definite (TRUE or FALSE) propositions
attached to &lt;var&gt;self&lt;/var&gt;.
&lt;/dd&gt;
&lt;/dl&gt;

&lt;p&gt;

&lt;a name=&quot;IDX345&quot; target=&quot;_top&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;u&gt;N-Command:&lt;/u&gt; &lt;b&gt;all-facts-of-n&lt;/b&gt; &lt;i&gt;((n INTEGER) &amp;amp;rest (instanceRefs NAME)) : (CONS OF PROPOSITION)&lt;/i&gt;&lt;/dt&gt;
&lt;/dl&gt;
available (as documented in the misc section). I get an error when trying to use them.&lt;br&gt;
&lt;br&gt;
Thanks&lt;br&gt;
Srini&lt;br&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;



      &lt;br /&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19184162&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Question-about-all-facts-of..-tp19184162p19184162.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19117418</id>
	<title>Re: Unexpected Powerloom truth maintenance behavior....</title>
	<published>2008-08-22T17:17:00Z</published>
	<updated>2008-08-22T17:17:00Z</updated>
	<author>
		<name>Hans Chalupsky</name>
	</author>
	<content type="html">Srini,
&lt;br&gt;&lt;br&gt;actually, the rules do match what you wrote, even though somewhat
&lt;br&gt;counterintuitively:
&lt;br&gt;&lt;br&gt;(defrelation married ((?x live-person) (?y live-person)))
&lt;br&gt;&lt;br&gt;means the following:
&lt;br&gt;&lt;br&gt;(defrelation married (?x ?y))
&lt;br&gt;(nth-domain married 0 live-person)
&lt;br&gt;(nth-domain married 1 live-person)
&lt;br&gt;&lt;br&gt;In turn, the domain assertions mean that
&lt;br&gt;&lt;br&gt;(=&amp;gt; (married ?x ?y) (and (live-person ?x) (live-person ?y)))
&lt;br&gt;&lt;br&gt;BUT: this rule is not (yet) explicitly represented and currently only
&lt;br&gt;enforced for top-level assertions (with some caveats - see an earlier
&lt;br&gt;message). &amp;nbsp;The reason is primarily efficiency, since we do not want to
&lt;br&gt;unconditionally create all the additional type assertions for each
&lt;br&gt;asserted relation, and we also don't want to do this via rules and
&lt;br&gt;infer types via backward inference, since type rules often have high
&lt;br&gt;fanout. &amp;nbsp;So, for now we punted the ball on this in your corner and let
&lt;br&gt;you explicitly assert such type inference rules if you deem them
&lt;br&gt;necessary. &amp;nbsp;And yes, you won't yet find this anywhere in the manual.
&lt;br&gt;&lt;br&gt;Now, this
&lt;br&gt;&lt;br&gt;(defrelation married ((?x live-person) (?y live-person))
&lt;br&gt;Â  :&amp;lt;=&amp;gt; (spouse ?x ?y))
&lt;br&gt;&lt;br&gt;currently means the following:
&lt;br&gt;&lt;br&gt;(defrelation married (?x ?y))
&lt;br&gt;(nth-domain married 0 live-person)
&lt;br&gt;(nth-domain married 1 live-person)
&lt;br&gt;(forall (?x ?y) (&amp;lt;=&amp;gt; (married ?x ?y) (spouse ?x ?y)))
&lt;br&gt;&lt;br&gt;So, as you observed, the rule is built without the variable types
&lt;br&gt;which explains the inferences and rules you saw. &amp;nbsp;You can of course
&lt;br&gt;fold in the type constraints explicitly, e.g.,
&lt;br&gt;&lt;br&gt;(defrelation married ((?x live-person) (?y live-person))
&lt;br&gt;Â  :&amp;lt;=&amp;gt; (and (live-person ?x)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (live-person ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (spouse ?x ?y)))
&lt;br&gt;&lt;br&gt;or you can write the rule outside the relation definition in any which
&lt;br&gt;way you want to enforce the type tests.
&lt;br&gt;&lt;br&gt;But, this behavior has been confusing to people (including myself) in
&lt;br&gt;the past, and we have to think a bit more whether we should change
&lt;br&gt;it or not. &amp;nbsp;So, stay tuned.
&lt;br&gt;&lt;br&gt;Hans
&lt;br&gt;&lt;br&gt;--------------------------------------------------------------------------
&lt;br&gt;Hans Chalupsky, PhD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; USC Information Sciences Institute
&lt;br&gt;Project Leader, Loom KR&amp;R Group &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4676 Admiralty Way
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19117418&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hans@...&lt;/a&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Marina del Rey, CA 90292
&lt;br&gt;(310) 448-8745
&lt;br&gt;--------------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Srini Ram &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19117418&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;srini_ramaswamy_i@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&lt;br&gt;&amp;gt; I just tried to check the rules for my second version of married below and found:
&lt;br&gt;&amp;gt; (print-rules married)
&lt;br&gt;&lt;br&gt;&amp;gt; (/PL-KERNEL-KB/FORALL (?x1 ?x2)
&lt;br&gt;&amp;gt; Â Â  (&amp;lt;= (SPOUSE ?x1 ?x2)
&lt;br&gt;&amp;gt; Â Â Â Â Â Â  (MARRIED ?x1 ?x2)))
&lt;br&gt;&lt;br&gt;&amp;gt; (/PL-KERNEL-KB/FORALL (?x1 ?x2)
&lt;br&gt;&amp;gt; Â Â  (&amp;lt;= (MARRIED ?x1 ?x2)
&lt;br&gt;&amp;gt; Â Â Â Â Â Â  (SPOUSE ?x1 ?x2)))
&lt;br&gt;&lt;br&gt;&amp;gt; This does not match what I wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; (defrelation married ((?x live-person) (?y live-person))
&lt;br&gt;&amp;gt; Â Â Â  :&amp;lt;=&amp;gt; (and (spouse ?x ?y) ))
&lt;br&gt;&lt;br&gt;&amp;gt; For some reason, the rules are not converted to 
&lt;br&gt;&lt;br&gt;&amp;gt; FORALL ((?x1 live-person) (?x2 live-person))
&lt;br&gt;&amp;nbsp;Â Â  (&amp;lt;= (MARRIED ?x1 ?x2)
&lt;br&gt;&amp;gt; Â Â Â Â Â  (SPOUSE ?x1 ?x2)))
&lt;br&gt;&lt;br&gt;&amp;gt; but specified universally. This is why married continues to hold even
&lt;br&gt;&amp;gt; if jack is no longer live, and why the explanations and traces show
&lt;br&gt;&amp;gt; married follwign directly from an assertion?
&lt;br&gt;&lt;br&gt;&amp;gt; Srini
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; --- On Fri, 8/22/08, Srini Ram &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19117418&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;srini_ramaswamy_i@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; From: Srini Ram &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19117418&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;srini_ramaswamy_i@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; Subject: Re: [PowerLoom Forum] Unexpected Powerloom truth maintenance behavior....
&lt;br&gt;&amp;gt; To: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19117418&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Date: Friday, August 22, 2008, 11:23 AM
&lt;br&gt;&lt;br&gt;&amp;gt; Hi Hans
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Can do...Will assert types explicitly.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; I am experiening the following issue:
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; With following definitions:
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; (defconcept person (?x))
&lt;br&gt;&lt;br&gt;&amp;gt; (defrelation alive (?x))
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; (defconcept live-person (?x person)
&lt;br&gt;&lt;br&gt;&amp;gt; Â  :&amp;lt;=&amp;gt; (alive ?x)
&lt;br&gt;&lt;br&gt;&amp;gt; Â  )
&lt;br&gt;&lt;br&gt;&amp;gt; (defrelation spouse ((?x person) (?y person))
&lt;br&gt;&lt;br&gt;&amp;gt; Â  :axioms (symmetric spouse))
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; ;; (defrelation married ((?x person) (?y person))
&lt;br&gt;&lt;br&gt;&amp;gt; ;;Â Â Â  :&amp;lt;=&amp;gt; (and (spouse ?x ?y) (live-person ?x) (live-person ?y) ))
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; (assert (spouse jack jill))
&lt;br&gt;&lt;br&gt;&amp;gt; (assert (and (alive jack) (alive jill)))
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; I get the following correct response;
&lt;br&gt;&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (retrieve all (married ?x ?y))
&lt;br&gt;&lt;br&gt;&amp;gt; There are 2 solutions:
&lt;br&gt;&lt;br&gt;&amp;gt; Â  #1: ?X=JILL, ?Y=JACK
&lt;br&gt;&lt;br&gt;&amp;gt; Â  #2: ?X=JACK, ?Y=JILL
&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (retract (alive jack))
&lt;br&gt;&lt;br&gt;&amp;gt; |P?|(ALIVE JACK)
&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (retrieve all (married ?x ?y))
&lt;br&gt;&lt;br&gt;&amp;gt; No solutions.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; But by changing the definition of married as follows:
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; (defrelation married ((?x live-person) (?y live-person))
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Â Â Â  :&amp;lt;=&amp;gt; (and (spouse ?x ?y) ))
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; I get an erroneous answer
&lt;br&gt;&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (retrieve all (married ?x ?y))
&lt;br&gt;&lt;br&gt;&amp;gt; There are 2 solutions:
&lt;br&gt;&lt;br&gt;&amp;gt; Â  #1: ?X=JACK, ?Y=JILL
&lt;br&gt;&lt;br&gt;&amp;gt; Â  #2: ?X=JILL, ?Y=JACK
&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (retract (alive jack))
&lt;br&gt;&lt;br&gt;&amp;gt; |P?|(ALIVE JACK)
&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (retrieve all (married ?x ?y))
&lt;br&gt;&lt;br&gt;&amp;gt; There are 2 solutions:
&lt;br&gt;&lt;br&gt;&amp;gt; Â  #1: ?X=JACK, ?Y=JILL
&lt;br&gt;&lt;br&gt;&amp;gt; Â  #2: ?X=JILL, ?Y=JACK
&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (retrieve all (married ?x ?y))
&lt;br&gt;&lt;br&gt;&amp;gt; There are 2 solutions:
&lt;br&gt;&lt;br&gt;&amp;gt; Â  #1: ?X=JACK, ?Y=JILL
&lt;br&gt;&lt;br&gt;&amp;gt; Â  #2: ?X=JILL, ?Y=JACK
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Just to check
&lt;br&gt;&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (ask (live-person jack))
&lt;br&gt;&lt;br&gt;&amp;gt; UNKNOWN
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Explanations not helpful:
&lt;br&gt;&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (set-feature justifications)
&lt;br&gt;&lt;br&gt;&amp;gt; |l|(:JUSTIFICATIONS :EMIT-THINKING-DOTS :JUST-IN-TIME-INFERENCE)
&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (retrieve (married ?x ?y))
&lt;br&gt;&lt;br&gt;&amp;gt; There is 1 solution so far:
&lt;br&gt;&lt;br&gt;&amp;gt; Â  #1: ?X=JACK, ?Y=JILL
&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (why)
&lt;br&gt;&lt;br&gt;&amp;gt; |kv|(&amp;lt;|i|@PRIMITIVE-STRATEGY,|i|@EXPLANATION-INFO&amp;gt;)
&lt;br&gt;&lt;br&gt;&amp;gt; 1 (MARRIED JACK JILL)
&lt;br&gt;&lt;br&gt;&amp;gt; Â Â Â  follows
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Nor does this:
&lt;br&gt;&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (set-feature trace-subgoals)
&lt;br&gt;&lt;br&gt;&amp;gt; |l|(:TRACE-SUBGOALS :JUSTIFICATIONS :EMIT-THINKING-DOTS :JUST-IN-TIME-INFERENCE)
&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (retrieve (married ?x ?y))
&lt;br&gt;&lt;br&gt;&amp;gt; There is 1 solution so far:
&lt;br&gt;&lt;br&gt;&amp;gt; Â  #1: ?X=JACK, ?Y=JILL
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; PATTERN: [F,F]
&lt;br&gt;&lt;br&gt;&amp;gt; | GOAL: (MARRIED ?x ?y)
&lt;br&gt;&lt;br&gt;&amp;gt; | SUCC: ?X=JACK ?Y=JILL truth=T
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; This is a bit disappointing since the ability of PL to classify
&lt;br&gt;&amp;gt; dynamically and have rules being applicable based on that dynamic
&lt;br&gt;&amp;gt; classification is very useful. In the above example, it does not seem
&lt;br&gt;&amp;gt; that the dynamic classification is happening.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; I tried to force re-evaluation just in case the reevaluation of married needed a trigger:
&lt;br&gt;&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (process-definitions)
&lt;br&gt;&lt;br&gt;&amp;gt; COMMON-LISP:NIL
&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (retrieve (married ?x ?y))
&lt;br&gt;&lt;br&gt;&amp;gt; There is 1 solution so far:
&lt;br&gt;&lt;br&gt;&amp;gt; Â  #1: ?X=JACK, ?Y=JILL
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; but that didnt work...
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Thanks
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Srini
&lt;br&gt;&lt;br&gt;&amp;gt; --- On Thu, 8/21/08, Hans Chalupsky &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19117418&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hans@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; From: Hans Chalupsky &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19117418&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hans@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; Subject: Re: [PowerLoom Forum] Unexpected Powerloom truth maintenance behavior....
&lt;br&gt;&amp;gt; To: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19117418&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;srini_ramaswamy_i@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Cc: &amp;quot;Thomas Russ&amp;quot; &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19117418&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tar@...&lt;/a&gt;&amp;gt;, &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19117418&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Date: Thursday, August 21, 2008, 4:09 PM
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Yes, we have to see how to improve this. &amp;nbsp;Currently, the type
&lt;br&gt;&amp;gt; assertions inferred from the domains of a relation are handled by a
&lt;br&gt;&amp;gt; special mechanism if *type-check-policy* is
&lt;br&gt;&amp;gt; :AUTOMATICALLY-FIX-TYPE-VIOLATIONS (the default). &amp;nbsp;They are asserted
&lt;br&gt;&amp;gt; in the top-level module and not the inference cache, and we can't
&lt;br&gt;&amp;gt; blindly remove them, since they might have been asserted explicitly or
&lt;br&gt;&amp;gt; be the result of other assertions as well. &amp;nbsp;We only want to assert
&lt;br&gt;&amp;gt; them if we have to,
&lt;br&gt;&amp;gt; &amp;nbsp;which is why they are handled somewhat differently
&lt;br&gt;&amp;gt; from other inferred information.
&lt;/div&gt;&lt;br&gt;&amp;gt; One way to work around this for now is to set *type-check-policy* to
&lt;br&gt;&amp;gt; :REPORT-TYPE-VIOLATIONS and then assert all types explicitly, in which
&lt;br&gt;&amp;gt; case it is your responsibility to assert and retract them, but at
&lt;br&gt;&amp;gt; least you won't be surprised by PowerLoom doing things behind the
&lt;br&gt;&amp;gt; scenes.
&lt;br&gt;&lt;br&gt;&amp;gt; Hans
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thomas Russ &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19117418&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tar@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; On Aug 21, 2008, at 9:31 AM, Srini Ram wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (defmodule &amp;quot;TEST&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; :includes (&amp;quot;PL-USER&amp;quot;))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (in-module &amp;quot;TEST&amp;quot;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ;(clear-module &amp;quot;TEST&amp;quot;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (reset-features)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (defconcept person (?x))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (defrelation spouse ((?x person) (?y person))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; :axioms (symmetric spouse))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (assert (spouse jack jill)) &amp;nbsp;; expect (person jack) (person jill) to &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; be also
&lt;br&gt;&amp;gt; &amp;nbsp;asserted because of &amp;nbsp;domain of &amp;nbsp;person
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (ask (person jack))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; TRUE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;; as expected
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (retract (spouse jack jill)) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;; expect (person jack) to &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; also be retracted by truth maintenance system
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (ask (person jack))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; TRUE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;; unexpected
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Am I missing something.
&lt;/div&gt;&lt;br&gt;&amp;gt;&amp;gt; No. &amp;nbsp;PowerLoom is missing something.
&lt;br&gt;&amp;gt;&amp;gt; This is a bug.
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; I'm not sure about how to fix it, though.
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt;&amp;gt; powerloom-forum mailing list
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19117418&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19117418&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Unexpected-Powerloom-truth-maintenance-behavior....-tp19092416p19117418.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19113606</id>
	<title>Re: Unexpected Powerloom truth maintenance behavior....</title>
	<published>2008-08-22T11:53:05Z</published>
	<updated>2008-08-22T11:53:05Z</updated>
	<author>
		<name>Srini Ram</name>
	</author>
	<content type="html">&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; style=&quot;font: inherit;&quot;&gt;I just tried to check the rules for my second version of married below and found:&lt;br&gt;
(print-rules married)&lt;br&gt;
(/PL-KERNEL-KB/FORALL (?x1 ?x2)&lt;br&gt;
&amp;nbsp;&amp;nbsp; (&amp;lt;= (SPOUSE ?x1 ?x2)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (MARRIED ?x1 ?x2)))&lt;br&gt;
&lt;br&gt;
(/PL-KERNEL-KB/FORALL (?x1 ?x2)&lt;br&gt;
&amp;nbsp;&amp;nbsp; (&amp;lt;= (MARRIED ?x1 ?x2)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SPOUSE ?x1 ?x2)))&lt;br&gt;
&lt;br&gt;
This does not match what I wrote:&lt;br&gt;
(defrelation married &lt;span style=&quot;font-weight: bold;&quot;&gt;((?x live-person) (?y live-person))&lt;/span&gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;lt;=&amp;gt; (and (spouse ?x ?y) ))&lt;br&gt;
&lt;br&gt;
For some reason, the rules are not converted to &lt;br&gt;
FORALL &lt;span style=&quot;font-weight: bold;&quot;&gt;((?x1 live-person) (?x2 live-person))&lt;/span&gt;&lt;br&gt;

&amp;nbsp;&amp;nbsp; (&amp;lt;= (MARRIED ?x1 ?x2)&lt;br&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SPOUSE ?x1 ?x2)))&lt;br&gt;
&lt;br&gt;
but specified universally. This is why married continues to hold even
if jack is no longer live, and why the explanations and traces show
married follwign directly from an assertion?&lt;br&gt;
&lt;br&gt;
Srini&lt;br&gt;
&lt;br&gt;&lt;br&gt;--- On &lt;b&gt;Fri, 8/22/08, Srini Ram &lt;i&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113606&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;srini_ramaswamy_i@...&lt;/a&gt;&amp;gt;&lt;/i&gt;&lt;/b&gt; wrote:&lt;br&gt;&lt;blockquote style=&quot;border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;&quot;&gt;From: Srini Ram &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113606&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;srini_ramaswamy_i@...&lt;/a&gt;&amp;gt;&lt;br&gt;Subject: Re: [PowerLoom Forum] Unexpected Powerloom truth maintenance behavior....&lt;br&gt;To: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113606&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;&lt;br&gt;Date: Friday, August 22, 2008, 11:23 AM&lt;br&gt;&lt;br&gt;&lt;div id=&quot;yiv1949846588&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; font-size-adjust: inherit; font-stretch: inherit;&quot; valign=&quot;top&quot;&gt;Hi Hans&lt;br&gt;

&lt;br&gt;

Can do...Will assert types explicitly.&lt;br&gt;

&lt;br&gt;

I am experiening the following issue:&lt;br&gt;

With following definitions:&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;(defconcept person (?x))&lt;br&gt;
(defrelation alive (?x))&lt;br&gt;
&lt;br&gt;
(defconcept live-person (?x person)&lt;br&gt;
&amp;nbsp; :&amp;lt;=&amp;gt; (alive ?x)&lt;br&gt;
&amp;nbsp; )&lt;br&gt;
(defrelation spouse ((?x person) (?y person))&lt;br&gt;
&amp;nbsp; :axioms (symmetric spouse))&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
;; (defrelation married ((?x person) (?y person))&lt;br&gt;
;;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;lt;=&amp;gt; (and (spouse ?x ?y) (live-person ?x) (live-person ?y) ))&lt;br&gt;
&lt;br&gt;
(assert (spouse &lt;span style=&quot;border-bottom: 1px dashed rgb(0, 102, 204); cursor: pointer;&quot; class=&quot;yshortcuts&quot; id=&quot;lw_1219429346_0&quot;&gt;jack jill&lt;/span&gt;))&lt;br&gt;
(assert (and (alive jack) (alive jill)))&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;

I get the following correct response;&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;STELLA&amp;gt; (retrieve all (married ?x ?y))&lt;br&gt;
There are 2 solutions:&lt;br&gt;
&amp;nbsp; #1: ?X=JILL, ?Y=JACK&lt;br&gt;
&amp;nbsp; #2: ?X=JACK, ?Y=JILL&lt;br&gt;
STELLA&amp;gt; (retract (alive jack))&lt;br&gt;
|P?|(ALIVE JACK)&lt;br&gt;
STELLA&amp;gt; (retrieve all (married ?x ?y))&lt;br&gt;
No solutions.&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;

But by changing the definition of married as follows:&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;(defrelation married &lt;span style=&quot;font-weight: bold;&quot;&gt;((?x live-person) (?y live-person))&lt;/span&gt;&lt;br&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;lt;=&amp;gt; (and (spouse ?x ?y) ))&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;

I get an erroneous answer&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;STELLA&amp;gt; (retrieve all (married ?x ?y))&lt;br&gt;
There are 2 solutions:&lt;br&gt;
&amp;nbsp; #1: ?X=JACK, ?Y=JILL&lt;br&gt;
&amp;nbsp; #2: ?X=JILL, ?Y=JACK&lt;br&gt;
STELLA&amp;gt; (retract (alive jack))&lt;br&gt;
|P?|(ALIVE JACK)&lt;br&gt;
STELLA&amp;gt; (retrieve all (married ?x ?y))&lt;br&gt;
There are 2 solutions:&lt;br&gt;
&amp;nbsp; #1: ?X=JACK, ?Y=JILL&lt;br&gt;
&amp;nbsp; #2: ?X=JILL, ?Y=JACK&lt;br&gt;
&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;STELLA&amp;gt; (retrieve all (married ?x ?y))&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 0, 0);&quot;&gt;
&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;There are 2 solutions:&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 0, 0);&quot;&gt;
&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&amp;nbsp; #1: ?X=JACK, ?Y=JILL&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 0, 0);&quot;&gt;
&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&amp;nbsp; #2: ?X=JILL, ?Y=JACK&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 0, 0);&quot;&gt;
&lt;/div&gt;

Just to check&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;STELLA&amp;gt; (ask (live-person jack))&lt;br&gt;
UNKNOWN&lt;br&gt;
&lt;/div&gt;

&lt;br&gt;

Explanations not helpful:&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;STELLA&amp;gt; (set-feature justifications)&lt;br&gt;
|l|(:JUSTIFICATIONS :EMIT-THINKING-DOTS :JUST-IN-TIME-INFERENCE)&lt;br&gt;
STELLA&amp;gt; (retrieve (married ?x ?y))&lt;br&gt;
There is 1 solution so far:&lt;br&gt;
&amp;nbsp; #1: ?X=JACK, ?Y=JILL&lt;br&gt;
&lt;span style=&quot;color: rgb(191, 0, 95);&quot;&gt;STELLA&amp;gt; &lt;span style=&quot;font-weight: bold; color: rgb(0, 0, 0);&quot;&gt;(why)&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(191, 0, 95);&quot;&gt;
&lt;span style=&quot;color: rgb(191, 0, 95);&quot;&gt;|kv|(&amp;lt;|i|@PRIMITIVE-STRATEGY,|i|@EXPLANATION-INFO&amp;gt;)&lt;/span&gt;&lt;br style=&quot;color: rgb(191, 0, 95);&quot;&gt;
&lt;span style=&quot;color: rgb(191, 0, 95);&quot;&gt;1 (MARRIED JACK JILL)&lt;/span&gt;&lt;br style=&quot;color: rgb(191, 0, 95);&quot;&gt;
&lt;span style=&quot;color: rgb(191, 0, 95);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; follows&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;&lt;/div&gt;

Nor does this:&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;STELLA&amp;gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;(set-feature trace-subgoals)&lt;/span&gt;&lt;br&gt;
|l|(:TRACE-SUBGOALS :JUSTIFICATIONS :EMIT-THINKING-DOTS :JUST-IN-TIME-INFERENCE)&lt;br&gt;
STELLA&amp;gt; (retrieve (married ?x ?y))&lt;br&gt;
There is 1 solution so far:&lt;br&gt;
&amp;nbsp; #1: ?X=JACK, ?Y=JILL&lt;br&gt;
&lt;/div&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;&lt;span style=&quot;color: rgb(191, 0, 95);&quot;&gt;&lt;/span&gt;PATTERN: [F,F]&lt;br&gt;
| GOAL: (MARRIED ?x ?y)&lt;br&gt;
| SUCC: ?X=JACK ?Y=JILL truth=T&lt;br&gt;
&lt;/div&gt;

&lt;span style=&quot;color: rgb(191, 0, 95);&quot;&gt;&lt;/span&gt;&lt;br&gt;

This is a bit disappointing since the ability of PL to classify
dynamically and have rules being applicable based on that dynamic
classification is very useful. In the above example, it does not seem
that the dynamic classification is happening.&lt;br&gt;

&lt;br&gt;

I tried to force re-evaluation just in case the reevaluation of married needed a trigger:&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;STELLA&amp;gt; (process-definitions)&lt;br&gt;
COMMON-LISP:NIL&lt;br&gt;
STELLA&amp;gt; (retrieve (married ?x ?y))&lt;br&gt;
There is 1 solution so far:&lt;br&gt;
&amp;nbsp; #1: ?X=JACK, ?Y=JILL&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;

but that didnt work...&lt;br&gt;

&lt;br&gt;

Thanks&lt;br&gt;

Srini&lt;br&gt;&lt;br&gt;--- On &lt;b&gt;Thu, 8/21/08, Hans Chalupsky &lt;i&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113606&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hans@...&lt;/a&gt;&amp;gt;&lt;/i&gt;&lt;/b&gt; wrote:&lt;br&gt;&lt;blockquote style=&quot;border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;&quot;&gt;From: Hans Chalupsky &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113606&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hans@...&lt;/a&gt;&amp;gt;&lt;br&gt;Subject: Re: [PowerLoom Forum] Unexpected Powerloom truth maintenance behavior....&lt;br&gt;To: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113606&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;srini_ramaswamy_i@...&lt;/a&gt;&lt;br&gt;Cc: &quot;Thomas Russ&quot; &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113606&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tar@...&lt;/a&gt;&amp;gt;, &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113606&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;&lt;br&gt;Date: Thursday, August 21, 2008, 4:09 PM&lt;br&gt;&lt;br&gt;&lt;pre&gt;Yes, we have to see how to improve this.  Currently, the type&lt;br&gt;assertions inferred from the domains of a relation are handled by a&lt;br&gt;special mechanism if *type-check-policy* is&lt;br&gt;:AUTOMATICALLY-FIX-TYPE-VIOLATIONS (the default).  They are asserted&lt;br&gt;in the top-level module and not the inference cache, and we can't&lt;br&gt;blindly remove them, since they might have been asserted explicitly or&lt;br&gt;be the result of other assertions as well.  We only want to assert&lt;br&gt;them if we have to,&lt;br&gt;
 which is why they are handled somewhat differently&lt;br&gt;from other inferred information.&lt;br&gt;&lt;br&gt;One way to work around this for now is to set *type-check-policy* to&lt;br&gt;:REPORT-TYPE-VIOLATIONS and then assert all types explicitly, in which&lt;br&gt;case it is your responsibility to assert and retract them, but at&lt;br&gt;least you won't be surprised by PowerLoom doing things behind the&lt;br&gt;scenes.&lt;br&gt;&lt;br&gt;Hans&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thomas Russ &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113606&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tar@...&lt;/a&gt;&amp;gt; writes:&lt;br&gt;&lt;br&gt;&amp;gt; On Aug 21, 2008, at 9:31 AM, Srini Ram wrote:&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; (defmodule &quot;TEST&quot;&lt;br&gt;&amp;gt;&amp;gt; :includes (&quot;PL-USER&quot;))&lt;br&gt;&amp;gt;&amp;gt; (in-module &quot;TEST&quot;)&lt;br&gt;&amp;gt;&amp;gt; &lt;br&gt;&amp;gt;&amp;gt; ;(clear-module &quot;TEST&quot;)&lt;br&gt;&amp;gt;&amp;gt; (reset-features)&lt;br&gt;&amp;gt;&amp;gt; &lt;br&gt;&amp;gt;&amp;gt; (defconcept person (?x))&lt;br&gt;&amp;gt;&amp;gt; (defrelation spouse ((?x person) (?y person))&lt;br&gt;&amp;gt;&amp;gt; :axioms (symmetric spouse))&lt;br&gt;&amp;gt;&amp;gt; &lt;br&gt;&amp;gt;&amp;gt; (assert (spouse jack jill))  ; expect (person jack) (person jill) to  &lt;br&gt;&amp;gt;&amp;gt; be
 also&lt;/div&gt; asserted because of  domain of  person&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; &lt;br&gt;&amp;gt;&amp;gt; (ask (person jack))&lt;br&gt;&amp;gt;&amp;gt; TRUE                                      ;; as expected&lt;br&gt;&amp;gt;&amp;gt; &lt;br&gt;&amp;gt;&amp;gt; (retract (spouse jack jill))          ;; expect (person jack) to  &lt;br&gt;&amp;gt;&amp;gt; also be retracted by truth maintenance system&lt;br&gt;&amp;gt;&amp;gt; &lt;br&gt;&amp;gt;&amp;gt; (ask (person jack))&lt;br&gt;&amp;gt;&amp;gt; TRUE                                     ;; unexpected&lt;br&gt;&amp;gt;&amp;gt; &lt;br&gt;&amp;gt;&amp;gt; Am I missing something.&lt;/div&gt;&lt;br&gt;&amp;gt; No.  PowerLoom is missing something.&lt;br&gt;&amp;gt; This is a bug.&lt;br&gt;&lt;br&gt;&amp;gt; I'm not sure about how to fix it, though.&lt;br&gt;&lt;br&gt;&amp;gt; _______________________________________________&lt;br&gt;&amp;gt; powerloom-forum mailing list&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113606&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;&lt;br&gt;&amp;gt; http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;br&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;

      &lt;/div&gt;&lt;/blockquote&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;

      &lt;br /&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113606&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Unexpected-Powerloom-truth-maintenance-behavior....-tp19092416p19113606.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19113239</id>
	<title>Re: Unexpected Powerloom truth maintenance behavior....</title>
	<published>2008-08-22T11:23:06Z</published>
	<updated>2008-08-22T11:23:06Z</updated>
	<author>
		<name>Srini Ram</name>
	</author>
	<content type="html">&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; style=&quot;font: inherit;&quot;&gt;Hi Hans&lt;br&gt;

&lt;br&gt;

Can do...Will assert types explicitly.&lt;br&gt;

&lt;br&gt;

I am experiening the following issue:&lt;br&gt;

With following definitions:&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;(defconcept person (?x))&lt;br&gt;
(defrelation alive (?x))&lt;br&gt;
&lt;br&gt;
(defconcept live-person (?x person)&lt;br&gt;
&amp;nbsp; :&amp;lt;=&amp;gt; (alive ?x)&lt;br&gt;
&amp;nbsp; )&lt;br&gt;
(defrelation spouse ((?x person) (?y person))&lt;br&gt;
&amp;nbsp; :axioms (symmetric spouse))&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
;; (defrelation married ((?x person) (?y person))&lt;br&gt;
;;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;lt;=&amp;gt; (and (spouse ?x ?y) (live-person ?x) (live-person ?y) ))&lt;br&gt;
&lt;br&gt;
(assert (spouse &lt;span style=&quot;border-bottom: 1px dashed rgb(0, 102, 204); cursor: pointer;&quot; class=&quot;yshortcuts&quot; id=&quot;lw_1219429346_0&quot;&gt;jack jill&lt;/span&gt;))&lt;br&gt;
(assert (and (alive jack) (alive jill)))&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;

I get the following correct response;&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;STELLA&amp;gt; (retrieve all (married ?x ?y))&lt;br&gt;
There are 2 solutions:&lt;br&gt;
&amp;nbsp; #1: ?X=JILL, ?Y=JACK&lt;br&gt;
&amp;nbsp; #2: ?X=JACK, ?Y=JILL&lt;br&gt;
STELLA&amp;gt; (retract (alive jack))&lt;br&gt;
|P?|(ALIVE JACK)&lt;br&gt;
STELLA&amp;gt; (retrieve all (married ?x ?y))&lt;br&gt;
No solutions.&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;

But by changing the definition of married as follows:&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;(defrelation married &lt;span style=&quot;font-weight: bold;&quot;&gt;((?x live-person) (?y live-person))&lt;/span&gt;&lt;br&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;lt;=&amp;gt; (and (spouse ?x ?y) ))&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;

I get an erroneous answer&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;STELLA&amp;gt; (retrieve all (married ?x ?y))&lt;br&gt;
There are 2 solutions:&lt;br&gt;
&amp;nbsp; #1: ?X=JACK, ?Y=JILL&lt;br&gt;
&amp;nbsp; #2: ?X=JILL, ?Y=JACK&lt;br&gt;
STELLA&amp;gt; (retract (alive jack))&lt;br&gt;
|P?|(ALIVE JACK)&lt;br&gt;
STELLA&amp;gt; (retrieve all (married ?x ?y))&lt;br&gt;
There are 2 solutions:&lt;br&gt;
&amp;nbsp; #1: ?X=JACK, ?Y=JILL&lt;br&gt;
&amp;nbsp; #2: ?X=JILL, ?Y=JACK&lt;br&gt;
&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;STELLA&amp;gt; (retrieve all (married ?x ?y))&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 0, 0);&quot;&gt;
&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;There are 2 solutions:&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 0, 0);&quot;&gt;
&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&amp;nbsp; #1: ?X=JACK, ?Y=JILL&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 0, 0);&quot;&gt;
&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&amp;nbsp; #2: ?X=JILL, ?Y=JACK&lt;/span&gt;&lt;br style=&quot;color: rgb(255, 0, 0);&quot;&gt;
&lt;/div&gt;

Just to check&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;STELLA&amp;gt; (ask (live-person jack))&lt;br&gt;
UNKNOWN&lt;br&gt;
&lt;/div&gt;

&lt;br&gt;

Explanations not helpful:&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;STELLA&amp;gt; (set-feature justifications)&lt;br&gt;
|l|(:JUSTIFICATIONS :EMIT-THINKING-DOTS :JUST-IN-TIME-INFERENCE)&lt;br&gt;
STELLA&amp;gt; (retrieve (married ?x ?y))&lt;br&gt;
There is 1 solution so far:&lt;br&gt;
&amp;nbsp; #1: ?X=JACK, ?Y=JILL&lt;br&gt;
&lt;span style=&quot;color: rgb(191, 0, 95);&quot;&gt;STELLA&amp;gt; &lt;span style=&quot;font-weight: bold; color: rgb(0, 0, 0);&quot;&gt;(why)&lt;/span&gt;&lt;/span&gt;&lt;br style=&quot;color: rgb(191, 0, 95);&quot;&gt;
&lt;span style=&quot;color: rgb(191, 0, 95);&quot;&gt;|kv|(&amp;lt;|i|@PRIMITIVE-STRATEGY,|i|@EXPLANATION-INFO&amp;gt;)&lt;/span&gt;&lt;br style=&quot;color: rgb(191, 0, 95);&quot;&gt;
&lt;span style=&quot;color: rgb(191, 0, 95);&quot;&gt;1 (MARRIED JACK JILL)&lt;/span&gt;&lt;br style=&quot;color: rgb(191, 0, 95);&quot;&gt;
&lt;span style=&quot;color: rgb(191, 0, 95);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; follows&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;&lt;/div&gt;

Nor does this:&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;STELLA&amp;gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;(set-feature trace-subgoals)&lt;/span&gt;&lt;br&gt;
|l|(:TRACE-SUBGOALS :JUSTIFICATIONS :EMIT-THINKING-DOTS :JUST-IN-TIME-INFERENCE)&lt;br&gt;
STELLA&amp;gt; (retrieve (married ?x ?y))&lt;br&gt;
There is 1 solution so far:&lt;br&gt;
&amp;nbsp; #1: ?X=JACK, ?Y=JILL&lt;br&gt;
&lt;/div&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;&lt;span style=&quot;color: rgb(191, 0, 95);&quot;&gt;&lt;/span&gt;PATTERN: [F,F]&lt;br&gt;
| GOAL: (MARRIED ?x ?y)&lt;br&gt;
| SUCC: ?X=JACK ?Y=JILL truth=T&lt;br&gt;
&lt;/div&gt;

&lt;span style=&quot;color: rgb(191, 0, 95);&quot;&gt;&lt;/span&gt;&lt;br&gt;

This is a bit disappointing since the ability of PL to classify
dynamically and have rules being applicable based on that dynamic
classification is very useful. In the above example, it does not seem
that the dynamic classification is happening.&lt;br&gt;

&lt;br&gt;

I tried to force re-evaluation just in case the reevaluation of married needed a trigger:&lt;br&gt;

&lt;div style=&quot;margin-left: 40px;&quot;&gt;STELLA&amp;gt; (process-definitions)&lt;br&gt;
COMMON-LISP:NIL&lt;br&gt;
STELLA&amp;gt; (retrieve (married ?x ?y))&lt;br&gt;
There is 1 solution so far:&lt;br&gt;
&amp;nbsp; #1: ?X=JACK, ?Y=JILL&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;

but that didnt work...&lt;br&gt;

&lt;br&gt;

Thanks&lt;br&gt;

Srini&lt;br&gt;&lt;br&gt;--- On &lt;b&gt;Thu, 8/21/08, Hans Chalupsky &lt;i&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113239&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hans@...&lt;/a&gt;&amp;gt;&lt;/i&gt;&lt;/b&gt; wrote:&lt;br&gt;&lt;blockquote style=&quot;border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;&quot;&gt;From: Hans Chalupsky &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113239&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hans@...&lt;/a&gt;&amp;gt;&lt;br&gt;Subject: Re: [PowerLoom Forum] Unexpected Powerloom truth maintenance behavior....&lt;br&gt;To: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113239&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;srini_ramaswamy_i@...&lt;/a&gt;&lt;br&gt;Cc: &quot;Thomas Russ&quot; &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113239&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tar@...&lt;/a&gt;&amp;gt;, &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113239&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;&lt;br&gt;Date: Thursday, August 21, 2008, 4:09 PM&lt;br&gt;&lt;br&gt;&lt;pre&gt;Yes, we have to see how to improve this.  Currently, the type&lt;br&gt;assertions inferred from the domains of a relation are handled by a&lt;br&gt;special mechanism if *type-check-policy* is&lt;br&gt;:AUTOMATICALLY-FIX-TYPE-VIOLATIONS (the default).  They are asserted&lt;br&gt;in the top-level module and not the inference cache, and we can't&lt;br&gt;blindly remove them, since they might have been asserted explicitly or&lt;br&gt;be the result of other assertions as well.  We only want to assert&lt;br&gt;them if we have to,
 which is why they are handled somewhat differently&lt;br&gt;from other inferred information.&lt;br&gt;&lt;br&gt;One way to work around this for now is to set *type-check-policy* to&lt;br&gt;:REPORT-TYPE-VIOLATIONS and then assert all types explicitly, in which&lt;br&gt;case it is your responsibility to assert and retract them, but at&lt;br&gt;least you won't be surprised by PowerLoom doing things behind the&lt;br&gt;scenes.&lt;br&gt;&lt;br&gt;Hans&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thomas Russ &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113239&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tar@...&lt;/a&gt;&amp;gt; writes:&lt;br&gt;&lt;br&gt;&amp;gt; On Aug 21, 2008, at 9:31 AM, Srini Ram wrote:&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; (defmodule &quot;TEST&quot;&lt;br&gt;&amp;gt;&amp;gt; :includes (&quot;PL-USER&quot;))&lt;br&gt;&amp;gt;&amp;gt; (in-module &quot;TEST&quot;)&lt;br&gt;&amp;gt;&amp;gt; &lt;br&gt;&amp;gt;&amp;gt; ;(clear-module &quot;TEST&quot;)&lt;br&gt;&amp;gt;&amp;gt; (reset-features)&lt;br&gt;&amp;gt;&amp;gt; &lt;br&gt;&amp;gt;&amp;gt; (defconcept person (?x))&lt;br&gt;&amp;gt;&amp;gt; (defrelation spouse ((?x person) (?y person))&lt;br&gt;&amp;gt;&amp;gt; :axioms (symmetric spouse))&lt;br&gt;&amp;gt;&amp;gt; &lt;br&gt;&amp;gt;&amp;gt; (assert (spouse jack jill))  ; expect (person jack) (person jill) to  &lt;br&gt;&amp;gt;&amp;gt; be also
 asserted because of  domain of  person&lt;br&gt;&amp;gt;&amp;gt; &lt;br&gt;&amp;gt;&amp;gt; (ask (person jack))&lt;br&gt;&amp;gt;&amp;gt; TRUE                                      ;; as expected&lt;br&gt;&amp;gt;&amp;gt; &lt;br&gt;&amp;gt;&amp;gt; (retract (spouse jack jill))          ;; expect (person jack) to  &lt;br&gt;&amp;gt;&amp;gt; also be retracted by truth maintenance system&lt;br&gt;&amp;gt;&amp;gt; &lt;br&gt;&amp;gt;&amp;gt; (ask (person jack))&lt;br&gt;&amp;gt;&amp;gt; TRUE                                     ;; unexpected&lt;br&gt;&amp;gt;&amp;gt; &lt;br&gt;&amp;gt;&amp;gt; Am I missing something.&lt;/div&gt;&lt;br&gt;&amp;gt; No.  PowerLoom is missing something.&lt;br&gt;&amp;gt; This is a bug.&lt;br&gt;&lt;br&gt;&amp;gt; I'm not sure about how to fix it, though.&lt;br&gt;&lt;br&gt;&amp;gt; _______________________________________________&lt;br&gt;&amp;gt; powerloom-forum mailing list&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113239&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;&lt;br&gt;&amp;gt; http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;br&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;

      &lt;br /&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19113239&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Unexpected-Powerloom-truth-maintenance-behavior....-tp19092416p19113239.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19112696</id>
	<title>Re: Unexpected Powerloom truth maintenance behavior....</title>
	<published>2008-08-22T11:00:14Z</published>
	<updated>2008-08-22T11:00:14Z</updated>
	<author>
		<name>Srini Ram</name>
	</author>
	<content type="html">&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; style=&quot;font: inherit;&quot;&gt;Thanks Tom,&lt;br&gt;

&lt;br&gt;

The :NONE issue was at the source of most of my problems....Its fine now.&lt;br&gt;

&lt;br&gt;

I had tried with&amp;nbsp; parens around&amp;nbsp; variables, but it hadnt worked.&amp;nbsp; I guess the  :NONE was&lt;br&gt;

the issue there.&lt;br&gt;

&amp;nbsp;&amp;nbsp; (ask (forall (?x&amp;nbsp; ?y) (=&amp;gt; (and (spouse ?x ?y) (alive ?x) (alive ?y)) (married ?x ?y))))&lt;br&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;border-bottom: 1px dashed rgb(0, 102, 204); cursor: pointer;&quot; class=&quot;yshortcuts&quot; id=&quot;lw_1219427980_0&quot;&gt;Evaluation&lt;/span&gt; aborted.&lt;br&gt;

&lt;br&gt;

Same query seems to work now with the :NONE issue fixed..&lt;br&gt;

&lt;br&gt;

As for why I didnt see the error, it was because I am using slime, and
the error is actually seen in another buffer (the actual lisp process)
which I was not monitoring.&lt;br&gt;

&lt;br&gt;

Thanks&lt;br&gt;

Srini&lt;br&gt;&lt;br&gt;--- On &lt;b&gt;Thu, 8/21/08, Thomas Russ &lt;i&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19112696&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tar@...&lt;/a&gt;&amp;gt;&lt;/i&gt;&lt;/b&gt; wrote:&lt;br&gt;&lt;blockquote style=&quot;border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;&quot;&gt;From: Thomas Russ &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19112696&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tar@...&lt;/a&gt;&amp;gt;&lt;br&gt;Subject: Re: [PowerLoom Forum] Unexpected Powerloom truth maintenance behavior....&lt;br&gt;To: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19112696&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;srini_ramaswamy_i@...&lt;/a&gt;&lt;br&gt;Cc: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19112696&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;&lt;br&gt;Date: Thursday, August 21, 2008, 3:23 PM&lt;br&gt;&lt;br&gt;&lt;pre&gt;On Aug 21, 2008, at 10:59 AM, Srini Ram wrote:&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Another issue I observed:&lt;br&gt;&amp;gt; (defmodule &quot;TEST&quot;&lt;br&gt;&amp;gt;   :includes (&quot;PL-USER&quot;))&lt;br&gt;&amp;gt; (in-module &quot;TEST&quot;);;  repeat this if evaluating in STELLA&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; (clear-module &quot;TEST&quot;)&lt;br&gt;&amp;gt; (reset-features)&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; (defconcept person (?x))&lt;br&gt;&amp;gt; (defrelation alive (?x))&lt;br&gt;&amp;gt; (defrelation spouse ((?x person) (?y person))&lt;br&gt;&amp;gt;   :axioms (symmetric spouse))&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; (defrelation married ((?x person) (?y person))&lt;br&gt;&amp;gt;     :&amp;lt;=&amp;gt; (and
 (spouse ?x ?y) (alive ?x) (alive ?y)))&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; STELLA&amp;gt; (ask (forall ?x ?y (=&amp;gt; (and (spouse ?x ?y) (alive ?x)  &lt;br&gt;&amp;gt; (alive ?y)) (married ?x ?y))))&lt;br&gt;&amp;gt; :NULL_VALUE&lt;br&gt;&amp;gt; STELLA&amp;gt; (ask (forall (?x person) (?y person) (=&amp;gt; (and (spouse ?x ?y)&lt;/div&gt; &lt;br&gt;&amp;gt; (alive ?x) (alive ?y)) (married ?x ?y))))&lt;br&gt;&amp;gt; :NULL_VALUE&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; Shouldnt the above asks work? Is there any error in the asks?&lt;br&gt;&lt;br&gt;The asks are syntactically mal-formed.  You need to put parentheses  &lt;br&gt;around the variable list, like so:&lt;br&gt;&lt;br&gt;    (ask (forall (?x ?y) (=&amp;gt; (and (spouse ?x ?y) (alive ?x) (alive ? &lt;br&gt;y)) (married ?x ?y))))&lt;br&gt;&lt;br&gt;Then it works for me.  The query returns TRUE.&lt;br&gt;&lt;br&gt;When I tried your original version, I got the following error message:&lt;br&gt;&lt;br&gt;PARSING ERROR: Illegal ASK query: `((FORALL ?X ?Y&lt;br&gt;                                      (=&amp;gt;&lt;br&gt;                                       (AND (SPOUSE ?X ?Y) (ALIVE ?X)&lt;br&gt;             
                           (ALIVE ?Y))&lt;br&gt;                                       (MARRIED ?X ?Y))))'.&lt;br&gt;&lt;br&gt;&lt;br&gt;Did that not show up in your version?&lt;br&gt;Do you redirect *error-output* by any chance?&lt;br&gt;&lt;br&gt;This also works similarly for the second query:&lt;br&gt;&lt;br&gt;(ask (forall ((?x person) (?y person)) (=&amp;gt; (and (spouse ?x ?y) (alive ? &lt;br&gt;x) (alive ?y)) (married ?x ?y))))&lt;br&gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; I tried (setq *type-check-strategy* :NONE)&lt;br&gt;&lt;br&gt;If you typed this at the top level in Lisp, then it would&lt;br&gt;explain the second error you reported.  This will set the&lt;br&gt;value of *type-check-strategy* to the LISP keyword :NONE,&lt;br&gt;and it needs to be set to the STELLA keyword :NONE instead.&lt;br&gt;&lt;br&gt;To make sure you get Stella keywords, you have to take a&lt;br&gt;bit more care.  It is one area where the integration with&lt;br&gt;the Lisp READ-EVAL-PRINT loop is not complete.  That is because&lt;br&gt;we don't really want to muck around with the reader to change&lt;br&gt;the way
 symbols are read.  So you have to make sure you provide&lt;br&gt;the appropriate keyword value.&lt;br&gt;&lt;br&gt;The easiest way to do that is to use the PLI:GET-KEYWORD function:&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (pli:get-keyword &quot;NONE&quot;)&lt;br&gt;:NONE&lt;br&gt;STELLA&amp;gt; (cl:describe cl:*)&lt;br&gt;:NONE is an instance of class #&amp;lt;COMMON-LISP:STANDARD-CLASS KEYWORD&amp;gt;.&lt;br&gt;The following slots have :INSTANCE allocation:&lt;br&gt;  HOME-CONTEXT    :NULL_VALUE&lt;br&gt;  SYMBOL-NAME     &quot;NONE&quot;&lt;br&gt;  SYMBOL-ID       24&lt;br&gt;; No value&lt;br&gt;STELLA&amp;gt; (cl:describe :none)&lt;br&gt;:NONE is an external symbol in #&amp;lt;COMMON-LISP:PACKAGE&lt;br&gt;&quot;KEYWORD&quot;&amp;gt;.&lt;br&gt;It is a constant; its value is :NONE.&lt;br&gt;; No value&lt;br&gt;&lt;br&gt;So you would need to do&lt;br&gt;&lt;br&gt;    (setq *type-check-strategy* (pli:get-keyword &quot;NONE&quot;))&lt;br&gt;&lt;br&gt;in order to have things work properly.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;

      &lt;br /&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19112696&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Unexpected-Powerloom-truth-maintenance-behavior....-tp19092416p19112696.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19098775</id>
	<title>Re: Unexpected Powerloom truth maintenance behavior....</title>
	<published>2008-08-21T16:09:53Z</published>
	<updated>2008-08-21T16:09:53Z</updated>
	<author>
		<name>Hans Chalupsky</name>
	</author>
	<content type="html">Yes, we have to see how to improve this. &amp;nbsp;Currently, the type
&lt;br&gt;assertions inferred from the domains of a relation are handled by a
&lt;br&gt;special mechanism if *type-check-policy* is
&lt;br&gt;:AUTOMATICALLY-FIX-TYPE-VIOLATIONS (the default). &amp;nbsp;They are asserted
&lt;br&gt;in the top-level module and not the inference cache, and we can't
&lt;br&gt;blindly remove them, since they might have been asserted explicitly or
&lt;br&gt;be the result of other assertions as well. &amp;nbsp;We only want to assert
&lt;br&gt;them if we have to, which is why they are handled somewhat differently
&lt;br&gt;from other inferred information.
&lt;br&gt;&lt;br&gt;One way to work around this for now is to set *type-check-policy* to
&lt;br&gt;:REPORT-TYPE-VIOLATIONS and then assert all types explicitly, in which
&lt;br&gt;case it is your responsibility to assert and retract them, but at
&lt;br&gt;least you won't be surprised by PowerLoom doing things behind the
&lt;br&gt;scenes.
&lt;br&gt;&lt;br&gt;Hans
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thomas Russ &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19098775&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tar@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&lt;br&gt;&amp;gt; On Aug 21, 2008, at 9:31 AM, Srini Ram wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; (defmodule &amp;quot;TEST&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt; :includes (&amp;quot;PL-USER&amp;quot;))
&lt;br&gt;&amp;gt;&amp;gt; (in-module &amp;quot;TEST&amp;quot;)
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; ;(clear-module &amp;quot;TEST&amp;quot;)
&lt;br&gt;&amp;gt;&amp;gt; (reset-features)
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; (defconcept person (?x))
&lt;br&gt;&amp;gt;&amp;gt; (defrelation spouse ((?x person) (?y person))
&lt;br&gt;&amp;gt;&amp;gt; :axioms (symmetric spouse))
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; (assert (spouse jack jill)) &amp;nbsp;; expect (person jack) (person jill) to &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; be also asserted because of &amp;nbsp;domain of &amp;nbsp;person
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; (ask (person jack))
&lt;br&gt;&amp;gt;&amp;gt; TRUE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;; as expected
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; (retract (spouse jack jill)) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;; expect (person jack) to &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; also be retracted by truth maintenance system
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; (ask (person jack))
&lt;br&gt;&amp;gt;&amp;gt; TRUE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;; unexpected
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; Am I missing something.
&lt;/div&gt;&lt;br&gt;&amp;gt; No. &amp;nbsp;PowerLoom is missing something.
&lt;br&gt;&amp;gt; This is a bug.
&lt;br&gt;&lt;br&gt;&amp;gt; I'm not sure about how to fix it, though.
&lt;br&gt;&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; powerloom-forum mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19098775&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19098775&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Unexpected-Powerloom-truth-maintenance-behavior....-tp19092416p19098775.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19098638</id>
	<title>Re: Unexpected Powerloom truth maintenance	behavior....</title>
	<published>2008-08-21T15:44:06Z</published>
	<updated>2008-08-21T15:44:06Z</updated>
	<author>
		<name>Hans Chalupsky</name>
	</author>
	<content type="html">Srini,
&lt;br&gt;&lt;br&gt;I think you just had the variable syntax wrong - if there are more
&lt;br&gt;than one variable, they have to be in a list. &amp;nbsp;Not sure why you didn't
&lt;br&gt;get the following error message:
&lt;br&gt;&lt;br&gt;STELLA(34): (ask (forall ?x ?y (=&amp;gt; (and (spouse ?x ?y) (alive ?x) (alive ?y)) (married ?x ?y))))
&lt;br&gt;PARSING ERROR: Illegal ASK query: `((FORALL ?X ?Y
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(=&amp;gt; (AND (SPOUSE ?X ?Y) (ALIVE ?X) (ALIVE ?Y)) (MARRIED ?X ?Y))))'.
&lt;br&gt;NULL
&lt;br&gt;STELLA(35): 
&lt;br&gt;&lt;br&gt;With that corrected (and inference tracing on just for debugging), you get
&lt;br&gt;the desired result:
&lt;br&gt;&lt;br&gt;STELLA(32): (ask (forall (?x ?y) (=&amp;gt; (and (spouse ?x ?y) (alive ?x) (alive ?y)) (married ?x ?y))))
&lt;br&gt;PATTERN: []
&lt;br&gt;| GOAL: (FORALL (?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&amp;lt;= (MARRIED ?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (AND (SPOUSE ?x ?y) (ALIVE ?x) (ALIVE ?y))))
&lt;br&gt;| | GOAL: (FORALL (?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&amp;lt;= (MARRIED ?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (AND (SPOUSE ?x ?y) (ALIVE ?x) (ALIVE ?y))))
&lt;br&gt;| | | GOAL: (MARRIED ?x/anonymous-006 ?y/anonymous-007)
&lt;br&gt;| | | | STRATEGY: :ANTECEDENTS
&lt;br&gt;| | | | RULE: (FORALL (?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&amp;lt;= (MARRIED ?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (AND (SPOUSE ?x ?y) (ALIVE ?x) (ALIVE ?y))))
&lt;br&gt;| | | | | GOAL: (AND (SPOUSE ?x/anonymous-006 ?y/anonymous-007) (ALIVE ?x/anonymous-006) (ALIVE ?y/anonymous-007))
&lt;br&gt;| | | | | | GOAL: (SPOUSE ?x/anonymous-006 ?y/anonymous-007)
&lt;br&gt;| | | | | | SUCC: ?X=anonymous-006 ?Y=anonymous-007 truth=T
&lt;br&gt;| | | | | | GOAL: (ALIVE ?x/anonymous-006)
&lt;br&gt;| | | | | | SUCC: ?X=anonymous-006 ?Y=anonymous-007 truth=T
&lt;br&gt;| | | | | | GOAL: (ALIVE ?y/anonymous-007)
&lt;br&gt;| | | | | | SUCC: ?X=anonymous-006 ?Y=anonymous-007 truth=T
&lt;br&gt;| | | | | SUCC: ?X=anonymous-006 ?Y=anonymous-007 truth=T
&lt;br&gt;| | | | SUCC: ?X=anonymous-006 ?Y=anonymous-007 truth=T
&lt;br&gt;| | | SUCC: ?Y=anonymous-007 ?X=anonymous-006 truth=T
&lt;br&gt;| | SUCC: ?Y=anonymous-007 ?X=anonymous-006 truth=T
&lt;br&gt;TRUE
&lt;br&gt;&lt;br&gt;Same for the other query:
&lt;br&gt;&lt;br&gt;STELLA(33): (ask (forall ((?x person) (?y person)) (=&amp;gt; (and (spouse ?x ?y) (alive ?x) (alive ?y)) (married ?x &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp;?y))))
&lt;br&gt;PATTERN: []
&lt;br&gt;| GOAL: (FORALL (?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&amp;lt;= (MARRIED ?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (AND (SPOUSE ?x ?y) (ALIVE ?x) (ALIVE ?y))))
&lt;br&gt;| | GOAL: (FORALL (?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&amp;lt;= (MARRIED ?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (AND (SPOUSE ?x ?y) (ALIVE ?x) (ALIVE ?y))))
&lt;br&gt;| | | GOAL: (MARRIED ?x/anonymous-008 ?y/anonymous-009)
&lt;br&gt;| | | | STRATEGY: :ANTECEDENTS
&lt;br&gt;| | | | RULE: (FORALL (?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&amp;lt;= (MARRIED ?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (AND (SPOUSE ?x ?y) (ALIVE ?x) (ALIVE ?y))))
&lt;br&gt;| | | | | GOAL: (AND (SPOUSE ?x/anonymous-008 ?y/anonymous-009) (ALIVE ?x/anonymous-008) (ALIVE ?y/anonymous-009))
&lt;br&gt;| | | | | | GOAL: (SPOUSE ?x/anonymous-008 ?y/anonymous-009)
&lt;br&gt;| | | | | | SUCC: ?X=anonymous-008 ?Y=anonymous-009 truth=T
&lt;br&gt;| | | | | | GOAL: (ALIVE ?x/anonymous-008)
&lt;br&gt;| | | | | | SUCC: ?X=anonymous-008 ?Y=anonymous-009 truth=T
&lt;br&gt;| | | | | | GOAL: (ALIVE ?y/anonymous-009)
&lt;br&gt;| | | | | | SUCC: ?X=anonymous-008 ?Y=anonymous-009 truth=T
&lt;br&gt;| | | | | SUCC: ?X=anonymous-008 ?Y=anonymous-009 truth=T
&lt;br&gt;| | | | SUCC: ?X=anonymous-008 ?Y=anonymous-009 truth=T
&lt;br&gt;| | | SUCC: ?Y=anonymous-009 ?X=anonymous-008 truth=T
&lt;br&gt;| | SUCC: ?Y=anonymous-009 ?X=anonymous-008 truth=T
&lt;br&gt;TRUE
&lt;br&gt;STELLA(34): 
&lt;br&gt;&lt;br&gt;Make sure you see the following rules, you had some funny non-breaking
&lt;br&gt;space characters in the mail you sent which look like white space but
&lt;br&gt;are treated as non-white space by PowerLoom:
&lt;br&gt;&lt;br&gt;STELLA(31): (print-rules married)
&lt;br&gt;(FORALL (?x1 ?x2)
&lt;br&gt;&amp;nbsp; &amp;nbsp;(&amp;lt;= (SPOUSE ?x1 ?x2)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(MARRIED ?x1 ?x2)))
&lt;br&gt;&lt;br&gt;(FORALL (?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp;(=&amp;gt;&amp;gt; (MARRIED ?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (AND (SPOUSE ?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(ALIVE ?x)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(ALIVE ?y))))
&lt;br&gt;&lt;br&gt;(FORALL (?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp;(&amp;lt;= (MARRIED ?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(AND (SPOUSE ?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (ALIVE ?x)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (ALIVE ?y))))
&lt;br&gt;&lt;br&gt;()
&lt;br&gt;STELLA(32): 
&lt;br&gt;&lt;br&gt;&lt;br&gt;Hans
&lt;br&gt;&lt;br&gt;--------------------------------------------------------------------------
&lt;br&gt;Hans Chalupsky, PhD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; USC Information Sciences Institute
&lt;br&gt;Project Leader, Loom KR&amp;R Group &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4676 Admiralty Way
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19098638&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hans@...&lt;/a&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Marina del Rey, CA 90292
&lt;br&gt;(310) 448-8745
&lt;br&gt;--------------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Srini Ram &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19098638&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;srini_ramaswamy_i@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&lt;br&gt;&amp;gt; Another issue I observed:
&lt;br&gt;&amp;gt; (defmodule &amp;quot;TEST&amp;quot;
&lt;br&gt;&lt;br&gt;&amp;gt; Â  :includes (&amp;quot;PL-USER&amp;quot;))
&lt;br&gt;&lt;br&gt;&amp;gt; (in-module &amp;quot;TEST&amp;quot;);;Â  repeat this if evaluating in STELLA
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; (clear-module &amp;quot;TEST&amp;quot;)
&lt;br&gt;&lt;br&gt;&amp;gt; (reset-features)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; (defconcept person (?x))
&lt;br&gt;&lt;br&gt;&amp;gt; (defrelation alive (?x))
&lt;br&gt;&lt;br&gt;&amp;gt; (defrelation spouse ((?x person) (?y person))
&lt;br&gt;&lt;br&gt;&amp;gt; Â  :axioms (symmetric spouse))
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; (defrelation married ((?x person) (?y person))
&lt;br&gt;&lt;br&gt;&amp;gt; Â Â Â  :&amp;lt;=&amp;gt; (and (spouse ?x ?y) (alive ?x) (alive ?y)))
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (ask (forall ?x ?y (=&amp;gt; (and (spouse ?x ?y) (alive ?x) (alive ?y)) (married ?x ?y))))
&lt;br&gt;&lt;br&gt;&amp;gt; :NULL_VALUE
&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (ask (forall (?x person) (?y person) (=&amp;gt; (and (spouse ?x ?y) (alive ?x) (alive ?y)) (married ?x ?y))))
&lt;br&gt;&lt;br&gt;&amp;gt; :NULL_VALUE
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Shouldnt the above asks work? Is there any error in the asks?
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; I tried (setq *type-check-strategy* :NONE)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; with no change...
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Thanks
&lt;br&gt;&lt;br&gt;&amp;gt; Srini
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; --- On Thu, 8/21/08, Srini Ram &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19098638&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;srini_ramaswamy_i@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; From: Srini Ram &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19098638&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;srini_ramaswamy_i@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; Subject: Unexpected Powerloom truth maintenance behavior....
&lt;br&gt;&amp;gt; To: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19098638&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&amp;gt; Date: Thursday, August 21, 2008, 9:31 AM
&lt;br&gt;&lt;br&gt;&amp;gt; (defmodule &amp;quot;TEST&amp;quot;
&lt;br&gt;&lt;br&gt;&amp;gt; Â  :includes (&amp;quot;PL-USER&amp;quot;))
&lt;br&gt;&lt;br&gt;&amp;gt; (in-module &amp;quot;TEST&amp;quot;)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; ;(clear-module &amp;quot;TEST&amp;quot;)
&lt;br&gt;&lt;br&gt;&amp;gt; (reset-features)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; (defconcept person (?x))
&lt;br&gt;&lt;br&gt;&amp;gt; (defrelation spouse ((?x person) (?y person))
&lt;br&gt;&lt;br&gt;&amp;gt; Â  :axioms (symmetric spouse))
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; (assert (spouse jack jill))Â  ; expect (person jack) (person jill) to be also asserted because ofÂ  domain ofÂ  person 
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; (ask (person jack))
&lt;br&gt;&amp;gt; TRUEÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â 
&lt;br&gt;&amp;gt; ;; as expected
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; (retract (spouse jack jill))Â Â Â Â Â Â Â Â Â  ;; expect (person jack) to also be retracted by truth maintenance system
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; (ask (person jack))
&lt;br&gt;&lt;br&gt;&amp;gt; TRUEÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â 
&lt;br&gt;&amp;gt; ;; unexpected
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Am I missing something.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Thanks
&lt;br&gt;&lt;br&gt;&amp;gt; Srini
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19098638&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Unexpected-Powerloom-truth-maintenance-behavior....-tp19092416p19098638.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19098268</id>
	<title>Re: Powerloom demo test not working...</title>
	<published>2008-08-21T15:25:49Z</published>
	<updated>2008-08-21T15:25:49Z</updated>
	<author>
		<name>Thomas Russ</name>
	</author>
	<content type="html">See the note at the bottom of my other reply.
&lt;br&gt;&lt;br&gt;The problem is that the Lisp keyword :NONE was used instead of the &amp;nbsp;
&lt;br&gt;Stella keyword :NONE
&lt;br&gt;&lt;br&gt;Something else to make sure we add to the Lisp-specific documentation.
&lt;br&gt;&lt;br&gt;On Aug 21, 2008, at 3:13 PM, Thomas Russ wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Aug 21, 2008, at 11:58 AM, Srini Ram wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I am trying the following (from the test-suite.plm) in CMUCL
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This particular example works for me on CMUCL 19e:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; CMU Common Lisp 19e (19E), running on cowabunga.isi.edu
&lt;br&gt;&amp;gt; With core: /opt/local/cmucl-19e/lib/cmucl/lib/lisp.core
&lt;br&gt;&amp;gt; Dumped on: Thu, 2008-05-01 17:38:02-07:00 on macmini
&lt;br&gt;&amp;gt; See &amp;lt;&lt;a href=&quot;http://www.cons.org/cmucl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.cons.org/cmucl/&lt;/a&gt;&amp;gt; for support information.
&lt;br&gt;&amp;gt; Loaded subsystems:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Python 1.1, target Intel x86
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; CLOS based on Gerd's PCL 2004/04/14 03:32:47
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ;;; PROPER HANDLING OF INEQUALITY RETRACTION
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; (clear-module &amp;quot;TEST&amp;quot;)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; (deffunction age (?p) :-&amp;gt; (?a integer))
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; (assert (&amp;lt; (age bill) 12))
&lt;br&gt;&amp;gt;&amp;gt; (assert (&amp;gt; (age bill) 10))
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ;;; SHOULD RETURN 11:
&lt;br&gt;&amp;gt;&amp;gt; (retrieve ?x (= (age bill) ?x))
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Error in function HELP-BIND-VARIABLE-TO-VALUE?:
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; `:NONE' is not a valid case option
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; [Condition of type STELLA-EXCEPTION]
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Restarts:
&lt;br&gt;&amp;gt;&amp;gt; 0: [ABORT] Return to SLIME's top level.
&lt;br&gt;&amp;gt;&amp;gt; 1: [ABORT] Return to Top-Level.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Backtrace:
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;0: (HELP-BIND-VARIABLE-TO-VALUE? #&amp;lt;#1=unavailable-arg&amp;gt; #&amp;lt;#1#&amp;gt;)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;1: (ARGUMENTS-UNIFY-WITH-ARGUMENTS? #&amp;lt;#1=unavailable-arg&amp;gt; #&amp;lt;#1#&amp;gt;)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;2: (TRY-SCAN-PROPOSITIONS-PROOF #&amp;lt;unavailable-arg&amp;gt;)
&lt;br&gt;&amp;gt;&amp;gt; ....
&lt;br&gt;&amp;gt;&amp;gt; Evaluation aborted...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I wonder if somehow your lisp version of PowerLoom didn't initialize
&lt;br&gt;&amp;gt; properly when loading. &amp;nbsp;There should be a single instance of the
&lt;br&gt;&amp;gt; Stella keyword :NONE that is used.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; All of the following symbols are in the Stella package.
&lt;br&gt;&amp;gt; The object used in the function where it is failing is stored in
&lt;br&gt;&amp;gt; the variable
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;kwd-query-none
&lt;br&gt;&amp;gt; If this ends up not being a proper Stella keyword object, then
&lt;br&gt;&amp;gt; there is some problem with the loading and initialization. &amp;nbsp;All of
&lt;br&gt;&amp;gt; that should happen automatically when PowerLoom loads.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; What is the value of kwd-query-none ?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Also the value of
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*type-check-strategy*
&lt;br&gt;&amp;gt; should also be a valid keyword, although since this gets set
&lt;br&gt;&amp;gt; during processing, it will likely not be :none, but instead be :lookup
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; If you load things into a fresh lisp, do you still have these &amp;nbsp;
&lt;br&gt;&amp;gt; problems?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; powerloom-forum mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19098268&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;/div&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19098268&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Powerloom-demo-test-not-working...-tp19094853p19098268.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19098219</id>
	<title>Re: Unexpected Powerloom truth maintenance behavior....</title>
	<published>2008-08-21T15:24:19Z</published>
	<updated>2008-08-21T15:24:19Z</updated>
	<author>
		<name>Thomas Russ</name>
	</author>
	<content type="html">&lt;br&gt;On Aug 21, 2008, at 9:31 AM, Srini Ram wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; (defmodule &amp;quot;TEST&amp;quot;
&lt;br&gt;&amp;gt; &amp;nbsp; :includes (&amp;quot;PL-USER&amp;quot;))
&lt;br&gt;&amp;gt; (in-module &amp;quot;TEST&amp;quot;)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ;(clear-module &amp;quot;TEST&amp;quot;)
&lt;br&gt;&amp;gt; (reset-features)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (defconcept person (?x))
&lt;br&gt;&amp;gt; (defrelation spouse ((?x person) (?y person))
&lt;br&gt;&amp;gt; &amp;nbsp; :axioms (symmetric spouse))
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (assert (spouse jack jill)) &amp;nbsp;; expect (person jack) (person jill) to &amp;nbsp;
&lt;br&gt;&amp;gt; be also asserted because of &amp;nbsp;domain of &amp;nbsp;person
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (ask (person jack))
&lt;br&gt;&amp;gt; TRUE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;; as expected
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (retract (spouse jack jill)) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;; expect (person jack) to &amp;nbsp;
&lt;br&gt;&amp;gt; also be retracted by truth maintenance system
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (ask (person jack))
&lt;br&gt;&amp;gt; TRUE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;; unexpected
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Am I missing something.
&lt;/div&gt;&lt;br&gt;No. &amp;nbsp;PowerLoom is missing something.
&lt;br&gt;This is a bug.
&lt;br&gt;&lt;br&gt;I'm not sure about how to fix it, though.
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19098219&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Unexpected-Powerloom-truth-maintenance-behavior....-tp19092416p19098219.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19098173</id>
	<title>Re: Unexpected Powerloom truth maintenance behavior....</title>
	<published>2008-08-21T15:23:35Z</published>
	<updated>2008-08-21T15:23:35Z</updated>
	<author>
		<name>Thomas Russ</name>
	</author>
	<content type="html">&lt;br&gt;On Aug 21, 2008, at 10:59 AM, Srini Ram wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Another issue I observed:
&lt;br&gt;&amp;gt; (defmodule &amp;quot;TEST&amp;quot;
&lt;br&gt;&amp;gt; &amp;nbsp; :includes (&amp;quot;PL-USER&amp;quot;))
&lt;br&gt;&amp;gt; (in-module &amp;quot;TEST&amp;quot;);; &amp;nbsp;repeat this if evaluating in STELLA
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (clear-module &amp;quot;TEST&amp;quot;)
&lt;br&gt;&amp;gt; (reset-features)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (defconcept person (?x))
&lt;br&gt;&amp;gt; (defrelation alive (?x))
&lt;br&gt;&amp;gt; (defrelation spouse ((?x person) (?y person))
&lt;br&gt;&amp;gt; &amp;nbsp; :axioms (symmetric spouse))
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (defrelation married ((?x person) (?y person))
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; :&amp;lt;=&amp;gt; (and (spouse ?x ?y) (alive ?x) (alive ?y)))
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; STELLA&amp;gt; (ask (forall ?x ?y (=&amp;gt; (and (spouse ?x ?y) (alive ?x) &amp;nbsp;
&lt;br&gt;&amp;gt; (alive ?y)) (married ?x ?y))))
&lt;br&gt;&amp;gt; :NULL_VALUE
&lt;br&gt;&amp;gt; STELLA&amp;gt; (ask (forall (?x person) (?y person) (=&amp;gt; (and (spouse ?x ?y) &amp;nbsp;
&lt;br&gt;&amp;gt; (alive ?x) (alive ?y)) (married ?x ?y))))
&lt;br&gt;&amp;gt; :NULL_VALUE
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Shouldnt the above asks work? Is there any error in the asks?
&lt;/div&gt;&lt;br&gt;The asks are syntactically mal-formed. &amp;nbsp;You need to put parentheses &amp;nbsp;
&lt;br&gt;around the variable list, like so:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; (ask (forall (?x ?y) (=&amp;gt; (and (spouse ?x ?y) (alive ?x) (alive ? 
&lt;br&gt;y)) (married ?x ?y))))
&lt;br&gt;&lt;br&gt;Then it works for me. &amp;nbsp;The query returns TRUE.
&lt;br&gt;&lt;br&gt;When I tried your original version, I got the following error message:
&lt;br&gt;&lt;br&gt;PARSING ERROR: Illegal ASK query: `((FORALL ?X ?Y
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (=&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(AND (SPOUSE ?X ?Y) (ALIVE ?X)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (ALIVE ?Y))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(MARRIED ?X ?Y))))'.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Did that not show up in your version?
&lt;br&gt;Do you redirect *error-output* by any chance?
&lt;br&gt;&lt;br&gt;This also works similarly for the second query:
&lt;br&gt;&lt;br&gt;(ask (forall ((?x person) (?y person)) (=&amp;gt; (and (spouse ?x ?y) (alive ? 
&lt;br&gt;x) (alive ?y)) (married ?x ?y))))
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I tried (setq *type-check-strategy* :NONE)
&lt;br&gt;&lt;br&gt;If you typed this at the top level in Lisp, then it would
&lt;br&gt;explain the second error you reported. &amp;nbsp;This will set the
&lt;br&gt;value of *type-check-strategy* to the LISP keyword :NONE,
&lt;br&gt;and it needs to be set to the STELLA keyword :NONE instead.
&lt;br&gt;&lt;br&gt;To make sure you get Stella keywords, you have to take a
&lt;br&gt;bit more care. &amp;nbsp;It is one area where the integration with
&lt;br&gt;the Lisp READ-EVAL-PRINT loop is not complete. &amp;nbsp;That is because
&lt;br&gt;we don't really want to muck around with the reader to change
&lt;br&gt;the way symbols are read. &amp;nbsp;So you have to make sure you provide
&lt;br&gt;the appropriate keyword value.
&lt;br&gt;&lt;br&gt;The easiest way to do that is to use the PLI:GET-KEYWORD function:
&lt;br&gt;&lt;br&gt;STELLA&amp;gt; (pli:get-keyword &amp;quot;NONE&amp;quot;)
&lt;br&gt;:NONE
&lt;br&gt;STELLA&amp;gt; (cl:describe cl:*)
&lt;br&gt;:NONE is an instance of class #&amp;lt;COMMON-LISP:STANDARD-CLASS KEYWORD&amp;gt;.
&lt;br&gt;The following slots have :INSTANCE allocation:
&lt;br&gt;&amp;nbsp; HOME-CONTEXT &amp;nbsp; &amp;nbsp;:NULL_VALUE
&lt;br&gt;&amp;nbsp; SYMBOL-NAME &amp;nbsp; &amp;nbsp; &amp;quot;NONE&amp;quot;
&lt;br&gt;&amp;nbsp; SYMBOL-ID &amp;nbsp; &amp;nbsp; &amp;nbsp; 24
&lt;br&gt;; No value
&lt;br&gt;STELLA&amp;gt; (cl:describe :none)
&lt;br&gt;:NONE is an external symbol in #&amp;lt;COMMON-LISP:PACKAGE &amp;quot;KEYWORD&amp;quot;&amp;gt;.
&lt;br&gt;It is a constant; its value is :NONE.
&lt;br&gt;; No value
&lt;br&gt;&lt;br&gt;So you would need to do
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; (setq *type-check-strategy* (pli:get-keyword &amp;quot;NONE&amp;quot;))
&lt;br&gt;&lt;br&gt;in order to have things work properly.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19098173&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Unexpected-Powerloom-truth-maintenance-behavior....-tp19092416p19098173.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19098022</id>
	<title>Re: Powerloom demo test not working...</title>
	<published>2008-08-21T15:13:03Z</published>
	<updated>2008-08-21T15:13:03Z</updated>
	<author>
		<name>Thomas Russ</name>
	</author>
	<content type="html">&lt;br&gt;On Aug 21, 2008, at 11:58 AM, Srini Ram wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; I am trying the following (from the test-suite.plm) in CMUCL
&lt;br&gt;&lt;br&gt;This particular example works for me on CMUCL 19e:
&lt;br&gt;&lt;br&gt;CMU Common Lisp 19e (19E), running on cowabunga.isi.edu
&lt;br&gt;With core: /opt/local/cmucl-19e/lib/cmucl/lib/lisp.core
&lt;br&gt;Dumped on: Thu, 2008-05-01 17:38:02-07:00 on macmini
&lt;br&gt;See &amp;lt;&lt;a href=&quot;http://www.cons.org/cmucl/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.cons.org/cmucl/&lt;/a&gt;&amp;gt; for support information.
&lt;br&gt;Loaded subsystems:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Python 1.1, target Intel x86
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CLOS based on Gerd's PCL 2004/04/14 03:32:47
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ;;; PROPER HANDLING OF INEQUALITY RETRACTION
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (clear-module &amp;quot;TEST&amp;quot;)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (deffunction age (?p) :-&amp;gt; (?a integer))
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (assert (&amp;lt; (age bill) 12))
&lt;br&gt;&amp;gt; (assert (&amp;gt; (age bill) 10))
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ;;; SHOULD RETURN 11:
&lt;br&gt;&amp;gt; (retrieve ?x (= (age bill) ?x))
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Error in function HELP-BIND-VARIABLE-TO-VALUE?:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;`:NONE' is not a valid case option
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;[Condition of type STELLA-EXCEPTION]
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Restarts:
&lt;br&gt;&amp;gt; &amp;nbsp;0: [ABORT] Return to SLIME's top level.
&lt;br&gt;&amp;gt; &amp;nbsp;1: [ABORT] Return to Top-Level.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Backtrace:
&lt;br&gt;&amp;gt; &amp;nbsp; 0: (HELP-BIND-VARIABLE-TO-VALUE? #&amp;lt;#1=unavailable-arg&amp;gt; #&amp;lt;#1#&amp;gt;)
&lt;br&gt;&amp;gt; &amp;nbsp; 1: (ARGUMENTS-UNIFY-WITH-ARGUMENTS? #&amp;lt;#1=unavailable-arg&amp;gt; #&amp;lt;#1#&amp;gt;)
&lt;br&gt;&amp;gt; &amp;nbsp; 2: (TRY-SCAN-PROPOSITIONS-PROOF #&amp;lt;unavailable-arg&amp;gt;)
&lt;br&gt;&amp;gt; ....
&lt;br&gt;&amp;gt; Evaluation aborted...
&lt;/div&gt;&lt;br&gt;I wonder if somehow your lisp version of PowerLoom didn't initialize
&lt;br&gt;properly when loading. &amp;nbsp;There should be a single instance of the
&lt;br&gt;Stella keyword :NONE that is used.
&lt;br&gt;&lt;br&gt;All of the following symbols are in the Stella package.
&lt;br&gt;The object used in the function where it is failing is stored in
&lt;br&gt;the variable
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; kwd-query-none
&lt;br&gt;If this ends up not being a proper Stella keyword object, then
&lt;br&gt;there is some problem with the loading and initialization. &amp;nbsp;All of
&lt;br&gt;that should happen automatically when PowerLoom loads.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;What is the value of kwd-query-none ?
&lt;br&gt;&lt;br&gt;Also the value of
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *type-check-strategy*
&lt;br&gt;should also be a valid keyword, although since this gets set
&lt;br&gt;during processing, it will likely not be :none, but instead be :lookup
&lt;br&gt;&lt;br&gt;If you load things into a fresh lisp, do you still have these problems?
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19098022&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Powerloom-demo-test-not-working...-tp19094853p19098022.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19094853</id>
	<title>Powerloom demo test not working...</title>
	<published>2008-08-21T11:58:19Z</published>
	<updated>2008-08-21T11:58:19Z</updated>
	<author>
		<name>Srini Ram</name>
	</author>
	<content type="html">&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; style=&quot;font: inherit;&quot;&gt;I am trying the following (from the test-suite.plm) in CMUCL&lt;br&gt;
&lt;br&gt;
;;; PROPER HANDLING OF INEQUALITY RETRACTION&lt;br&gt;
&lt;br&gt;
(clear-module &quot;TEST&quot;)&lt;br&gt;
&lt;br&gt;
(deffunction age (?p) :-&amp;gt; (?a integer))&lt;br&gt;
&lt;br&gt;
(assert (&amp;lt; (age bill) 12))&lt;br&gt;
(assert (&amp;gt; (age bill) 10))&lt;br&gt;
&lt;br&gt;
;;; SHOULD RETURN 11:&lt;br&gt;
(retrieve ?x (= (age bill) ?x))&lt;br&gt;
&lt;br&gt;
Error in function HELP-BIND-VARIABLE-TO-VALUE?:&lt;br&gt;
&amp;nbsp;&amp;nbsp; `:NONE' is not a valid case option&lt;br&gt;
&amp;nbsp;&amp;nbsp; [Condition of type STELLA-EXCEPTION]&lt;br&gt;
&lt;br&gt;
Restarts:&lt;br&gt;
&amp;nbsp;0: [ABORT] Return to SLIME's top level.&lt;br&gt;
&amp;nbsp;1: [ABORT] Return to Top-Level.&lt;br&gt;
&lt;br&gt;
Backtrace:&lt;br&gt;
&amp;nbsp; 0: (HELP-BIND-VARIABLE-TO-VALUE? #&amp;lt;#1=unavailable-arg&amp;gt; #&amp;lt;#1#&amp;gt;)&lt;br&gt;
&amp;nbsp; 1: (ARGUMENTS-UNIFY-WITH-ARGUMENTS? #&amp;lt;#1=unavailable-arg&amp;gt; #&amp;lt;#1#&amp;gt;)&lt;br&gt;
&amp;nbsp; 2: (TRY-SCAN-PROPOSITIONS-PROOF #&amp;lt;unavailable-arg&amp;gt;)&lt;br&gt;
....&lt;br&gt;
Evaluation aborted...&lt;br&gt;
&lt;br&gt;
Thanks&lt;br&gt;
Srini&lt;br&gt;
&lt;br&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;

      &lt;br /&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19094853&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Powerloom-demo-test-not-working...-tp19094853p19094853.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19094324</id>
	<title>Re: Unexpected Powerloom truth maintenance behavior....</title>
	<published>2008-08-21T10:59:39Z</published>
	<updated>2008-08-21T10:59:39Z</updated>
	<author>
		<name>Srini Ram</name>
	</author>
	<content type="html">&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; style=&quot;font: inherit;&quot;&gt;Another issue I observed:&lt;br&gt;
(defmodule &quot;TEST&quot;&lt;br&gt;
&amp;nbsp; :includes (&quot;PL-USER&quot;))&lt;br&gt;
(in-module &quot;TEST&quot;);;&amp;nbsp; repeat this if evaluating in STELLA&lt;br&gt;
&lt;br&gt;
(clear-module &quot;TEST&quot;)&lt;br&gt;
(reset-features)&lt;br&gt;
&lt;br&gt;
&lt;span style=&quot;color: rgb(0, 128, 255);&quot;&gt;(defconcept person (?x))&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 128, 255);&quot;&gt;
&lt;span style=&quot;color: rgb(0, 128, 255);&quot;&gt;(defrelation alive (?x))&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 128, 255);&quot;&gt;
&lt;span style=&quot;color: rgb(0, 128, 255);&quot;&gt;(defrelation spouse ((?x person) (?y person))&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 128, 255);&quot;&gt;
&lt;span style=&quot;color: rgb(0, 128, 255);&quot;&gt;&amp;nbsp; :axioms (symmetric spouse))&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 128, 255);&quot;&gt;
&lt;br style=&quot;color: rgb(0, 128, 255);&quot;&gt;
&lt;span style=&quot;color: rgb(0, 128, 255);&quot;&gt;(defrelation married ((?x person) (?y person))&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 128, 255);&quot;&gt;
&lt;span style=&quot;color: rgb(0, 128, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;lt;=&amp;gt; (and (spouse ?x ?y) (alive ?x) (alive ?y)))&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
STELLA&amp;gt; (ask (forall ?x ?y (=&amp;gt; (and (spouse ?x ?y) (alive ?x) (alive ?y)) (married ?x ?y))))&lt;br&gt;
:NULL_VALUE&lt;br&gt;
STELLA&amp;gt; (ask (forall (?x person) (?y person) (=&amp;gt; (and (spouse ?x ?y) (alive ?x) (alive ?y)) (married ?x ?y))))&lt;br&gt;
:NULL_VALUE&lt;br&gt;
&lt;br&gt;
Shouldnt the above asks work? Is there any error in the asks?&lt;br&gt;
&lt;br&gt;
I tried (setq *type-check-strategy* :NONE)&lt;br&gt;
&lt;br&gt;
with no change...&lt;br&gt;
&lt;br&gt;
Thanks&lt;br&gt;
Srini&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;&lt;br&gt;--- On &lt;b&gt;Thu, 8/21/08, Srini Ram &lt;i&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19094324&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;srini_ramaswamy_i@...&lt;/a&gt;&amp;gt;&lt;/i&gt;&lt;/b&gt; wrote:&lt;br&gt;&lt;blockquote style=&quot;border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;&quot;&gt;From: Srini Ram &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19094324&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;srini_ramaswamy_i@...&lt;/a&gt;&amp;gt;&lt;br&gt;Subject: Unexpected Powerloom truth maintenance behavior....&lt;br&gt;To: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19094324&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;&lt;br&gt;Date: Thursday, August 21, 2008, 9:31 AM&lt;br&gt;&lt;br&gt;&lt;div id=&quot;yiv703485011&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; font-size-adjust: inherit; font-stretch: inherit;&quot; valign=&quot;top&quot;&gt;(defmodule &quot;TEST&quot;&lt;br&gt;
&amp;nbsp; :includes (&quot;PL-USER&quot;))&lt;br&gt;
(in-module &quot;TEST&quot;)&lt;br&gt;
&lt;br&gt;
;(clear-module &quot;TEST&quot;)&lt;br&gt;
(reset-features)&lt;br&gt;
&lt;br&gt;
(defconcept person (?x))&lt;br&gt;
(defrelation spouse ((?x person) (?y person))&lt;br&gt;
&amp;nbsp; :axioms (symmetric spouse))&lt;br&gt;
&lt;br&gt;
(assert (spouse jack jill))&amp;nbsp; &lt;span style=&quot;color: rgb(52, 125, 126);&quot;&gt;; expect (person jack) (person jill) to be also asserted because of&amp;nbsp; domain of&amp;nbsp; person &lt;/span&gt;&lt;br&gt;
&lt;br&gt;
(ask (person jack))&lt;br&gt;TRUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;span style=&quot;color: rgb(67, 128, 89);&quot;&gt;;; as expected&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
(retract (spouse jack jill))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: rgb(96, 154, 159);&quot;&gt; ;; expect (person jack) to also be retracted by truth maintenance system&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
(ask (person jack))&lt;br&gt;
&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;TRUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
;; unexpected&lt;/span&gt;&lt;br&gt;
&lt;br style=&quot;color: rgb(0, 127, 127);&quot;&gt;
&lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;Am I missing something.&lt;/span&gt;&lt;br style=&quot;color: rgb(128, 0, 0);&quot;&gt;
&lt;br style=&quot;color: rgb(128, 0, 0);&quot;&gt;
&lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;Thanks&lt;/span&gt;&lt;br style=&quot;color: rgb(128, 0, 0);&quot;&gt;
&lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;Srini&lt;/span&gt;&lt;br&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;

      &lt;/div&gt;&lt;/blockquote&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;

      &lt;br /&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19094324&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Unexpected-Powerloom-truth-maintenance-behavior....-tp19092416p19094324.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19092416</id>
	<title>Unexpected Powerloom truth maintenance behavior....</title>
	<published>2008-08-21T09:31:21Z</published>
	<updated>2008-08-21T09:31:21Z</updated>
	<author>
		<name>Srini Ram</name>
	</author>
	<content type="html">&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot; style=&quot;font: inherit;&quot;&gt;(defmodule &quot;TEST&quot;&lt;br&gt;
&amp;nbsp; :includes (&quot;PL-USER&quot;))&lt;br&gt;
(in-module &quot;TEST&quot;)&lt;br&gt;
&lt;br&gt;
;(clear-module &quot;TEST&quot;)&lt;br&gt;
(reset-features)&lt;br&gt;
&lt;br&gt;
(defconcept person (?x))&lt;br&gt;
(defrelation spouse ((?x person) (?y person))&lt;br&gt;
&amp;nbsp; :axioms (symmetric spouse))&lt;br&gt;
&lt;br&gt;
(assert (spouse jack jill))&amp;nbsp; &lt;span style=&quot;color: rgb(52, 125, 126);&quot;&gt;; expect (person jack) (person jill) to be also asserted because of&amp;nbsp; domain of&amp;nbsp; person &lt;/span&gt;&lt;br&gt;
&lt;br&gt;
(ask (person jack))&lt;br&gt;
TRUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;span style=&quot;color: rgb(67, 128, 89);&quot;&gt;;; as expected&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
(retract (spouse jack jill))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: rgb(96, 154, 159);&quot;&gt; ;; expect (person jack) to also be retracted by truth maintenance system&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
(ask (person jack))&lt;br&gt;
&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;TRUE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
;; unexpected&lt;/span&gt;&lt;br&gt;
&lt;br style=&quot;color: rgb(0, 127, 127);&quot;&gt;
&lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;Am I missing something.&lt;/span&gt;&lt;br style=&quot;color: rgb(128, 0, 0);&quot;&gt;
&lt;br style=&quot;color: rgb(128, 0, 0);&quot;&gt;
&lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;Thanks&lt;/span&gt;&lt;br style=&quot;color: rgb(128, 0, 0);&quot;&gt;
&lt;span style=&quot;color: rgb(128, 0, 0);&quot;&gt;Srini&lt;/span&gt;&lt;br&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;

      &lt;br /&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19092416&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Unexpected-Powerloom-truth-maintenance-behavior....-tp19092416p19092416.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18836325</id>
	<title>Re: Tried to bind |V|?x to NULL value.</title>
	<published>2008-08-05T09:59:04Z</published>
	<updated>2008-08-05T09:59:04Z</updated>
	<author>
		<name>Martin Baldan</name>
	</author>
	<content type="html">On Tue, Aug 5, 2008 at 12:03 AM, Hans Chalupsky &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18836325&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hans@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; What Tom said in his previous reply still applies, but your example
&lt;br&gt;&amp;gt; did uncover a bug where PowerLoom picked up an incorrect description
&lt;br&gt;&amp;gt; duplicate which led to the incorrect behavior you saw. &amp;nbsp;This should be
&lt;br&gt;&amp;gt; fixed with the next PowerLoom snapshot which should build
&lt;br&gt;&amp;gt; automatically overnight. &amp;nbsp;I ran your example again with the fixed
&lt;br&gt;&amp;gt; version and it now answers everything correctly (the retrieve still
&lt;br&gt;&amp;gt; doesn't give answers for the reasons Tom explained, but the asks now
&lt;br&gt;&amp;gt; do the right thing).
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;That's great, you fixed the bug so quickly! &amp;nbsp;I've just downloaded the
&lt;br&gt;new snapshot and confirmed it works as described.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18836325&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Tried-to-bind-%7CV%7C-x-to-NULL-value.-tp18792986p18836325.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18820874</id>
	<title>Re: Tried to bind |V|?x to NULL value.</title>
	<published>2008-08-04T15:03:34Z</published>
	<updated>2008-08-04T15:03:34Z</updated>
	<author>
		<name>Hans Chalupsky</name>
	</author>
	<content type="html">What Tom said in his previous reply still applies, but your example
&lt;br&gt;did uncover a bug where PowerLoom picked up an incorrect description
&lt;br&gt;duplicate which led to the incorrect behavior you saw. &amp;nbsp;This should be
&lt;br&gt;fixed with the next PowerLoom snapshot which should build
&lt;br&gt;automatically overnight. &amp;nbsp;I ran your example again with the fixed
&lt;br&gt;version and it now answers everything correctly (the retrieve still
&lt;br&gt;doesn't give answers for the reasons Tom explained, but the asks now
&lt;br&gt;do the right thing).
&lt;br&gt;&lt;br&gt;Hans
&lt;br&gt;&lt;br&gt;STELLA(3): (defobject alice)
&lt;br&gt;|i|ALICE
&lt;br&gt;STELLA(4): (defobject bob)
&lt;br&gt;|i|BOB
&lt;br&gt;STELLA(5): (defrelation friend (?x ?y))
&lt;br&gt;|r|FRIEND
&lt;br&gt;STELLA(6): (ask (friend alice bob))
&lt;br&gt;UNKNOWN
&lt;br&gt;STELLA(7): (assert (forall (?x ?y) (friend ?x ?y)))
&lt;br&gt;|P|(FORALL (?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp;(&amp;lt;= (FRIEND ?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TRUE))
&lt;br&gt;STELLA(8): (ask (friend alice bob))
&lt;br&gt;TRUE
&lt;br&gt;STELLA(9): (retrieve (friend ?x ?y))
&lt;br&gt;WARNING: Tried to bind |V|?x to NULL value. &amp;nbsp;Potentially a PowerLoom bug
&lt;br&gt;No solutions.
&lt;br&gt;STELLA(10): (ask (friend alice bob))
&lt;br&gt;TRUE
&lt;br&gt;STELLA(11): (ask (forall (?x ?y) (friend ?x ?y)))
&lt;br&gt;TRUE
&lt;br&gt;STELLA(12): (all-facts-of alice)
&lt;br&gt;()
&lt;br&gt;STELLA(13): (all-facts-of friend)
&lt;br&gt;(|P|(RELATION FRIEND) |P|(NTH-DOMAIN FRIEND 0 THING) |P|(NTH-DOMAIN FRIEND 1 THING)
&lt;br&gt;&amp;nbsp;|P?|(DUPLICATE-FREE FRIEND) |P|(FORALL (?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp;(&amp;lt;= (FRIEND ?x ?y)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TRUE)))
&lt;br&gt;;; this is now true, since it is applied by the rule above:
&lt;br&gt;STELLA(14): (ask (forall ?x (friend ?x ?x)))
&lt;br&gt;TRUE
&lt;br&gt;STELLA(15): 
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thomas Russ &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18820874&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tar@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&lt;br&gt;&amp;gt; On Aug 2, 2008, at 1:26 PM, Martin Baldan wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; Hello!
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; I'm a newbie trying to get a hang of this nice powerloom tool, but
&lt;br&gt;&amp;gt;&amp;gt; I've run into a problem. During some simple tests, the bug mentioned
&lt;br&gt;&amp;gt;&amp;gt; in the subject appeared, and I don't know what to make of it. Here's a
&lt;br&gt;&amp;gt;&amp;gt; transcript of my session, which will explain it better than my own
&lt;br&gt;&amp;gt;&amp;gt; words:
&lt;br&gt;&lt;br&gt;&amp;gt; OK. &amp;nbsp;The main thing that is going on is that PowerLoom doesn't really &amp;nbsp;
&lt;br&gt;&amp;gt; like to do extremely open-ended reasoning, and the rule that you have &amp;nbsp;
&lt;br&gt;&amp;gt; formulated is very open ended. &amp;nbsp;It says, essentially, that everything &amp;nbsp;
&lt;br&gt;&amp;gt; in the universe is the friend of everything else. &amp;nbsp;That would give a &amp;nbsp;
&lt;br&gt;&amp;gt; really large result, and PowerLoom doesn't like to attempt to reason &amp;nbsp;
&lt;br&gt;&amp;gt; if things are that open ended.
&lt;br&gt;&lt;br&gt;&amp;gt; ------------
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; PL-USER |= (powerloom-information)
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; |L|&amp;quot;PowerLoom 3.2.0
&lt;br&gt;&lt;br&gt;&amp;gt; I would encourage you to use the current PowerLoom snapshot. &amp;nbsp;It does &amp;nbsp;
&lt;br&gt;&amp;gt; include a number of bug fixes and is generally just as stable as the &amp;nbsp;
&lt;br&gt;&amp;gt; official &amp;quot;stable&amp;quot; release.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; STELLA 3.4.0 [JAVA]
&lt;br&gt;&amp;gt;&amp;gt; java.vendor = Sun Microsystems Inc.
&lt;br&gt;&amp;gt;&amp;gt; java.version = 1.6.0_06
&lt;br&gt;&amp;gt;&amp;gt; os.arch = i386
&lt;br&gt;&amp;gt;&amp;gt; os.name = Linux
&lt;br&gt;&amp;gt;&amp;gt; os.version = 2.6.25-2-486&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; PL-USER |= (defobject alice)
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; |i|ALICE
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; PL-USER |= (defobject bob)
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; |i|BOB
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; PL-USER |= (defrelation friend (?x ?y))
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; |r|FRIEND
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; PL-USER |= (ask (friend alice bob))
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; UNKNOWN
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; PL-USER |= (assert (forall (?x ?y) (friend ?x ?y)))
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; |P|(FORALL (?x ?y)
&lt;br&gt;&amp;gt;&amp;gt; (&amp;lt;= (FRIEND ?x ?y)
&lt;br&gt;&amp;gt;&amp;gt; TRUE))
&lt;/div&gt;&lt;br&gt;&amp;gt; This is the problem. &amp;nbsp;The rule that you have is just too open-ended. &amp;nbsp; 
&lt;br&gt;&amp;gt; It has the meaning that I noted above, and so everything should &amp;nbsp;
&lt;br&gt;&amp;gt; satisfy it. &amp;nbsp;But PowerLoom won't try to reason with it, because it &amp;nbsp;
&lt;br&gt;&amp;gt; would be too inefficient, especially if it appeared somewhere as just &amp;nbsp;
&lt;br&gt;&amp;gt; one step of some logical chain of reasoning.
&lt;br&gt;&lt;br&gt;&amp;gt; As a general principle, you should never write a FORALL form without &amp;nbsp;
&lt;br&gt;&amp;gt; an implication (=&amp;gt; &amp;nbsp;or &amp;nbsp;&amp;lt;=) inside of it.
&lt;br&gt;&lt;br&gt;&amp;gt; So, a slightly better formulation might be to introduce additional &amp;nbsp;
&lt;br&gt;&amp;gt; concepts like person:
&lt;br&gt;&lt;br&gt;&amp;gt; (defconcept person)
&lt;br&gt;&lt;br&gt;&amp;gt; and then write a rule that applies only to people:
&lt;br&gt;&lt;br&gt;&amp;gt; (assert (forall (?x ?y) (=&amp;gt; (and (person ?x) (person ?y))
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(friend ?x ?y))))
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; PL-USER |= (ask (friend alice bob))
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; UNKNOWN
&lt;br&gt;&lt;br&gt;&amp;gt; You would then need to tell PowerLoom that ALICE and BOB are people:
&lt;br&gt;&lt;br&gt;&amp;gt; (assert (and (person alice) (person bob)))
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; PL-USER |= (retrieve (friend ?x ?y))
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; WARNING: Tried to bind |V|?x to NULL value. &amp;nbsp;Potentially a &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; PowerLoom bug
&lt;br&gt;&amp;gt;&amp;gt; No solutions.
&lt;br&gt;&lt;br&gt;&amp;gt; The problem here is that PowerLoom doesn't have any good way to &amp;nbsp;
&lt;br&gt;&amp;gt; enumerate values of ?X, since the friend relation doesn't have any &amp;nbsp;
&lt;br&gt;&amp;gt; range or domain constraints. &amp;nbsp;That means everything has to be &amp;nbsp;
&lt;br&gt;&amp;gt; considered as being friends, including the FRIEND relation itself, &amp;nbsp;
&lt;br&gt;&amp;gt; along with all sorts of PowerLoom internal defined things.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; PL-USER |= (ask (friend alice bob))
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; UNKNOWN
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; PL-USER |= (ask (forall (?x ?y) (friend ?x ?y)))
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; UNKNOWN
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; PL-USER |= (all-facts-of alice)
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; ()
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; PL-USER |= (all-facts-of friend)
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; (|P|(RELATION FRIEND) |P|(NTH-DOMAIN FRIEND 0 THING) |P|(NTH-DOMAIN
&lt;br&gt;&amp;gt;&amp;gt; FRIEND 1 THING) |P|(DUPLICATE-FREE FRIEND) |P|(FORALL (?x ?x)
&lt;br&gt;&amp;gt;&amp;gt; (&amp;lt;= (FRIEND ?x ?x)
&lt;br&gt;&amp;gt;&amp;gt; TRUE)))
&lt;/div&gt;&lt;br&gt;&amp;gt; This last transformation, though, is a bit odd. &amp;nbsp;It looks like this &amp;nbsp;
&lt;br&gt;&amp;gt; may, in fact, be a bug in PowerLoom, since this transformation is not &amp;nbsp;
&lt;br&gt;&amp;gt; equivalent to the actual base rule.
&lt;br&gt;&lt;br&gt;&amp;gt; But since the base rule really isn't something you should be writing, &amp;nbsp;
&lt;br&gt;&amp;gt; we might take our time in tracking this down.
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; PL-USER |= (ask (forall ?x (friend ?x ?x)))
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; TRUE
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; PL-USER |=
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; ---------------------
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; I hope someone can help me to work around this. Thanks in advance.
&lt;br&gt;&amp;gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt;&amp;gt; powerloom-forum mailing list
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18820874&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; powerloom-forum mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18820874&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;powerloom-forum mailing list
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18820874&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;powerloom-forum@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mailman.isi.edu/mailman/listinfo/powerloom-forum&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Tried-to-bind-%7CV%7C-x-to-NULL-value.-tp18792986p18820874.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18817214</id>
	<title>Re: Tried to bind |V|?x to NULL value.</title>
	<published>2008-08-04T11:38:38Z</published>
	<updated>2008-08-04T11:38:38Z</updated>
	<author>
		<name>Hans Chalupsky</name>
	</author>
	<content type="html">With respect to the somewhat terse &amp;quot;explanation&amp;quot;: the way you defined
&lt;br&gt;&amp;quot;close-friend&amp;quot; makes it a subrelation of &amp;quot;friend&amp;quot; which is proven
&lt;br&gt;simply via a lookup procedure which takes subrelations into account.
&lt;br&gt;That means it is proven via specialized code as opposed to rule
&lt;br&gt;chaining. &amp;nbsp;Currently only some of these specialists provide deeper
&lt;br&gt;explanations for their results. &amp;nbsp;A similar shortcoming is that
&lt;br&gt;PowerLoom currently can't explain results that follow via forward
&lt;br&gt;inference. &amp;nbsp;We have some funding in the queue that among other things
&lt;br&gt;will address this issue and make the explanation system more complete.
&lt;br&gt;&lt;br&gt;Hans
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Martin Baldan &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18817214&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;martinobal@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&lt;br&gt;&amp;gt; On Sun, Aug 3, 2008 at 5:21 AM, Thomas Russ &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18817214&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tar@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; OK. &amp;nbsp;The main thing that is going on is that PowerLoom doesn't really like
&lt;br&gt;&amp;gt;&amp;gt; to do extremely open-ended reasoning, and the rule that you have formulated
&lt;br&gt;&amp;gt;&amp;gt; is very open ended. &amp;nbsp;It says, essentially, that everything in the universe
&lt;br&gt;&amp;gt;&amp;gt; is the friend of everything else. &amp;nbsp;That would give a really large result,
&lt;br&gt;&amp;gt;&amp;gt; and PowerLoom doesn't like to attempt to reason if things are that open
&lt;br&gt;&amp;gt;&amp;gt; ended.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; So, a slightly better formulation might be to introduce additional concepts
&lt;br&gt;&amp;gt;&amp;gt; like person:
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; (defconcept person)
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; and then write a rule that applies only to people:
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; (assert (forall (?x ?y) (=&amp;gt; (and (person ?x) (person ?y))
&lt;br&gt;&amp;gt;&amp;gt; (friend ?x ?y))))
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&amp;gt; Awesome, thanks!! &amp;nbsp;:)
&lt;br&gt;&lt;br&gt;&amp;gt; All I had to do, then, is to define a concept, like &amp;quot;person&amp;quot; or
&lt;br&gt;&amp;gt; &amp;quot;something&amp;quot; and then every time I define a new object, assert that the
&lt;br&gt;&amp;gt; concept applies to the object. I tried it in the stable version and
&lt;br&gt;&amp;gt; also downloaded the pl snapshot, as you suggested. Here's the little
&lt;br&gt;&amp;gt; plm file I saved from