Re: How should I dispose side effect ?

Thomas Russ <[email protected]> Mon, 26 Nov 2007 09:59:04 -0800
Newsgroups gmane.comp.ai.powerloom
Message-ID <[email protected]>
On Nov 25, 2007, at 7:50 PM, 张宁 wrote:

> hello ,
>         I find Powerloom is able to new a few of objects and  
> persist it into memory when I execute retrieve command .
>         Such as :
> PL-USER |= (defconcept person)
>
> |c|PERSON
>
> PL-USER |= (defrelation age ((?x person)(?y integer)))
>
> |r|AGE
>
> PL-USER |= (defrule xxx (=> (person ?x) (age ?x 1)))
>
> |P|(FORALL (?x)
>    (<= (AGE ?x 1)
>        (PERSON ?x)))
>
> PL-USER |= (assert (person p))
>
> |P|(PERSON P)
>
> PL-USER |= (retrieve all (age ?x ?y))
>
> There is 1 solution:
>   #1: ?X=P, ?Y=1
>
> PL-USER |= (retrieve all (age ?x ?y))
>
> There is 1 solution:
>   #1: ?X=P, ?Y=1
>
>      Powerloom make a duplicate of xxx's description ,save it in  
> it's homeModule's dynamicSlot and xxx's description for more  
> retrieve when I first execute retrieve command about relation age .
>
I don't quite understand what you mean by making a duplicate and  
saving it.

At least from what you show above, there is no duplicate visible.  In  
of the retrieves, only a single solution is returned, which is what  
one would expect.  Retrieve uses a variety of strategies for binding  
the query results, including the application of rules to compute things.
>      I want Powerloom not save the duplicate into memory .How  
> should I dispose this side effect ?
>
There shouldn't be any reason to do this.  PowerLoom will perform  
come caching of results, but this is generally not visible to users  
and is done for internal performance reasons.  You should normally  
not be concerned about the internals of the implementation.  Is this  
somehow preventing you from doing something with PowerLoom?


_______________________________________________
powerloom-forum mailing list
[email protected]
http://mailman.isi.edu/mailman/listinfo/powerloom-forum