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: Dave Reynolds <der@hplb.hpl.hp.com>
Date: Tue, 01 Jul 2008 14:42:01 +0100
Message-ID: <486A3429.5020309@hplb.hpl.hp.com>
To: Mark Proctor <mproctor@redhat.com>
CC: "Boley, Harold" <Harold.Boley@nrc-cnrc.gc.ca>, Gary Hallmark <gary.hallmark@oracle.com>, Christian de Sainte Marie <csma@ilog.fr>, RIF WG <public-rif-wg@w3.org>

Mark Proctor wrote:
> 
> Dave Reynolds wrote:
>>
>> Boley, Harold wrote:
>>> Production Rule languages such as the widely used CLIPS
>>> (http://en.wikipedia.org/wiki/CLIPS) employ predicates
>>> like car_problem with named arguments.
>>
>> I wasn't talking about named arguments in general but the specific 
>> case of "named argument uniterms with the semantics as defined in BLD" 
>> which is what I took the term "NAU" to stand for.
>>
>>> CLIPS (Wikipedia rule1 is a "pure production rule"):
>>>
>>> (deffacts trouble_shooting
>>>     (car_problem (name ignition_key) (status on))
>>>     (car_problem (name engine) (status wont_start))
>>>     (car_problem (name headlights) (status work))
>>>  )
>>
>> In CLIPS those are "unordered facts" (or deftemplate facts) and I 
>> believe you can partially match against them. For example you could 
>> also have a rule:
>>
>> (defrule rule1
>>     (car_problem (status wont_start))
>>      =>
>>     (assert (car_problem (name suspectedStarter))
>>  )
>>
>> and it would still match those facts even though some arguments are 
>> missing.
> yes this is correct. Named arguments on a pattern is a subset of the 
> available fields on the fact.

Thanks. So this semantics is not directly compatible with the BLD notion 
of NAU.

>> Thus I believe the CLIPS representation corresponds to more closely 
>> frames in RIF not to NAUs. I would certainly include Frames in core.
> I still dislike that Frames insist on an OID, would be happier if that 
> could be dropped. Whole point with a pattern is that it's not pointing 
> to a specific instance. I understand that this can be hidden as an 
> implementation detail, I still think it's a cludge.

With a pattern you would have a variable in the OID slot if you aren't 
trying to point to a specific instance.

Cheers,
Dave

-- 
Hewlett-Packard Limited
Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England
Received on Tuesday, 1 July 2008 13:43:51 GMT

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