[rules-dev] Prolog Style Backward Chaining - First Cut
Mark Proctor
mproctor at codehaus.org
Mon Apr 18 12:42:46 EDT 2011
On 18/04/2011 17:08, Wolfgang Laun wrote:
> This doesn't seem to be quite correct.
>
> * There's a fact "location" and another one "Location" - are they
> the same?
>
that misses something, it was just a sample of queries. I had a location
query that maps to the Location fact.
"query location( String thing, String location ) \n" +
"
org.drools.integrationtests.BackwardChainingTest.Location( thing :
thing, location : location ) \n"+
"end\n" +
That shouldn't be needed after the changes sotty jsut did to allow
positional of Fact patterns too.
>
> * Query "look" is defined; query "look2" is referenced.
>
I already updated the blog.
>
> * How is the fact L/location defined?
>
There is a single knowlege store, that hasn't changed. it's no
different to the way that standard querries work.
Mark
> Regards
> Wolfgang
>
>
>
>
> On 18 April 2011 16:57, Mark Proctor <mproctor at codehaus.org
> <mailto:mproctor at codehaus.org>> wrote:
>
> Here is a more friendly example based around "Adventures in Proglog"'s
> "Nani Search". This is just a sampling of queries and rules, which it
> uses to provide an adventure like game environment. The "?" means to
> pull results, rather than the normal reactive nature of patterns.
> http://www.amzi.com/AdventureInProlog/
>
> query niceFood( String thing, String location )
> location(thing, location) and
> edible(thing)
> end
>
> query connect( String x, String y )
> door(x, y;)
> or
> door(y, x;)
> end
>
> query look(String place, List things, List exits)
> things : List() from accumulate( Location(thing, place;) ,
>
> collectList( thing ) )
> food : List() from accumulate( ?niceFood(thing, place;) ,
> collectList(
> thing ) )
> exits : List() from accumulate( ?connect(place, exit;) ,
> collectList(
> [place, exit] ) )
> end
>
> rule reactiveLook when
> Here( place : location)
> ?look2(place, things, exits)
> then System.out.println( " You are in the " + place );
> System.out.println( " You can see " + things );
> System.out.println( " You can eat" + eat );
> System.out.println( " You can go to " + exits );
> end
>
> -----Output----
> You are in the kitchen
> You can see [crackers, broccoli, apple]
> You can eat[crackers, apple]
> You can go to [[kitchen, dining room], [kitchen, cellar]]
>
> _______________________________________________
> rules-dev mailing list
> rules-dev at lists.jboss.org <mailto:rules-dev at lists.jboss.org>
> https://lists.jboss.org/mailman/listinfo/rules-dev
>
>
>
> _______________________________________________
> rules-dev mailing list
> rules-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20110418/7a20713e/attachment.html
More information about the rules-dev
mailing list