W3C home > Mailing lists > Public > public-rif-wg@w3.org > July 2008

Re: RIF Core, and how much is PRD allowed to diverge from BLD [Was: Re: [PRD] Issues to resolve before publication]

From: Mark Proctor <mproctor@redhat.com>
Date: Tue, 01 Jul 2008 14:46:27 +0100
Message-ID: <486A3533.3090108@redhat.com>
To: Christian de Sainte Marie <csma@ilog.fr>
CC: Gary Hallmark <gary.hallmark@oracle.com>, RIF WG <public-rif-wg@w3.org>

Christian de Sainte Marie wrote:
> Mark Proctor wrote:
>>
>> If you supported Clips unororded facts (named arguments), except 
>> COOL, and made "or" and "forall" optional you would be able to target 
>> all the mainstream engines - Jess, Drools, Clips, JRules, OPSJ. It's 
>> really that simple.
>
> "Forall" is just a construct to declare rule variables: how can you do 
> without it?
Why would you declare your variables separately? No production rule 
systems makes you do this.

Forall ?chicken ?potato ?allowance ?age ?weight (
.....
        ?chicken#jim:Chicken 
        // The object bound to ?chicken is a "Chicken" as specified in Jim's object model
This makes the forall variables superflous information and will cause confusion when we eventually provide support for PR 
'forall' element. 


'forall' in production rules terms is a universal quantifier when the 
given patterns are true for all data.
forall( Bus( color == red )
Makes sure that all the Buses in my system are Red.
>
>> All these engines implement TMS in the same way, but that could be 
>> excluded from the base PR dialect, as it's an advanced feature only a 
>> few users use.
>
> Yes, I agree: logical facts and truth maintenance are for a future 
> version (of this draft, or maybe even of this dialect).
>
>> So I would look to make this subset of Clips my "base" PR dialect. At 
>> a later date I would then look to make an advanced addition on this 
>> that looked to support "or", "forall", "collect/accumulate" for 
>> reason of sets of data, nested accessors, lists/maps, out of working 
>> memory data. "collect" is an important one that is supported by Jess, 
>> JRules and Drools (don't know about OPSJ) as it's the only efficient 
>> way to do cardinality constraints on patterns, and users really 
>> struggle without it. Jess supports collect via accumulate, accumulate 
>> is actually far more powerful and generic and collect is a 
>> specialised accumulate implementation.
>
> Yes. I proposed "collect" in the very first proto-draft, and a more 
> general aggregation construct in the second one, but we decided to 
> keep that for later, as they were only half-backed trials (to say the 
> least :-)
agreed, just opening peoples eyes as to how PR provide a lot of high 
level constructs for stuff, that we should aim to support one day to 
make PR systems more accessible to users. If we stick with propositional 
logic only, it'll be hard to convince users of the value.
>
> Christian
>


-- 
JBoss, a Division of Red Hat
Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, 
SI4 1TE, United Kingdom. 
Registered in UK and Wales under Company Registration No. 3798903 
Directors: Michael Cunningham (USA), Charlie Peters (USA), Matt Parsons (USA) and Brendan Lane (Ireland)
Received on Tuesday, 1 July 2008 13:49:48 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:33:50 GMT