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

Re: implementing named-argument uniterms (ISSUE-44)

From: Gary Hallmark <gary.hallmark@oracle.com>
Date: Mon, 14 Jan 2008 23:34:15 -0800
Message-ID: <478C61F7.2000103@oracle.com>
To: Michael Kifer <kifer@cs.sunysb.edu>
CC: "Boley, Harold" <Harold.Boley@nrc-cnrc.gc.ca>, Sandro Hawke <sandro@w3.org>, public-rif-wg@w3.org

yes, that much even I can glean from the model theory :-)
I'm suggesting that we get rid of the 2 interpretation functions Isr and 
Isf because frames are more expressive and there is no reason not to use 
them to interchange slotted relations if your source or target rule 
language has such a thing. 

I am not all persuaded by the argument that because CLIPS has a syntax 
that looks like slotted relations, that we should therefore have slotted 
uniterms in RIF.  Frames are more useful, and have the right semantics 
for the CLIPS use case (the only one we have for this feature).

Michael Kifer wrote:
> Frames have a different semantics.
>
>
>   
>> It seems simpler to just use frames for the interchange as well:
>>
>> <Exists>
>>   <declare><Var>car_problem_oid</Var></declare>
>> <Frame>
>>   <Member>
>>     <lower><Var>car_problem_oid</Var></lower>
>>     <upper><Const type="rif:local">car_problem</Const></upper>
>>   </Member>
>>   <slot>
>>     <Const type="rif:local">name</Const>
>>     <Const type="rif:local">headlights</Const>
>>   </slot>
>>   <slot>
>>     <Const type="rif:local">status</Const>
>>     <Const type="rif:local">work</Const>
>>   </slot>
>> </Frame>
>> </Exists>
>>
>> Then we can remove slotted uniterms from the syntax and semantics.
>>
>> Boley, Harold wrote:
>>     
>>> We have slides on this from a breakout session:
>>>
>>> [TED] Slides of F2F4 Breakout on Abstract Syntax and Semantics: Slots &
>>> Constraints
>>> http://lists.w3.org/Archives/Public/public-rif-wg/2006Nov/0025.html
>>>
>>> as well as a wiki entry:
>>>
>>> [TED] CORE Pages Edited for Slot-to-Positional Transformation and
>>> Multisorted Syntax
>>> http://lists.w3.org/Archives/Public/public-rif-wg/2006Dec/0110.html
>>> http://www.w3.org/2005/rules/wg/wiki/CORE/Conditions/Positive?action=rec
>>> all&rev=10
>>> (SYNTACTIC TRANSFORMATION)
>>>
>>> Another translation approach might be to regard
>>> named-argument uniterms as (named-argument) frames
>>> whose OIDs are [bNodes or are] generated as indicated
>>> in the 8 Jan 2008 telecon using the CLIPS example:
>>>
>>> http://lists.w3.org/Archives/Public/public-rif-wg/2008Jan/att-0028/rif-m
>>> inutes-jan8-2008.html
>>>
>>> However, following up on the discussion with Gary,
>>> CLIPS' source-level Lisp-like named-argument uniterm
>>> <http://en.wikipedia.org/wiki/CLIPS>:
>>>
>>> (car_problem (name headlights) (status work))
>>>
>>> should be *interchanged* in RIF somehow like this
>>> <http://www.w3.org/2005/rules/wg/wiki/Core/Slotted_Conditions>:
>>>
>>> <Uniterm>
>>>   <op><Const type="rif:local">car_problem</Const></op>
>>>   <slot>
>>>     <Const type="rif:local">name</Const>
>>>     <Const type="rif:local">headlights</Const>
>>>   </slot>
>>>   <slot>
>>>     <Const type="rif:local">status</Const>
>>>     <Const type="rif:local">work</Const>
>>>   </slot>
>>> </Uniterm>
>>>
>>> Only when being *stored* in an engine would an OID be
>>> generated, and the uniterm be transitioned into a frame.
>>>
>>> The generated OID (<Fact-0> or <Fact-1> or ...) may
>>> depend on the assertion/loading history of one session
>>> for a specific engine. But an interchange format
>>> should be (initially) concerned with exchanging entire
>>> KBs on the source-level as in the 'static' example of
>>> <http://en.wikipedia.org/wiki/CLIPS> rather than with
>>> exchanging stored KB parts as in the 'trace' example at
>>> http://www.ghg.net/clips/download/documentation/bpg.pdf
>>> (page 206).
>>>
>>> -- Harold
>>>
>>>
>>> -----Original Message-----
>>> From: public-rif-wg-request@w3.org [mailto:public-rif-wg-request@w3.org]
>>> On Behalf Of Michael Kifer
>>> Sent: Wednesday, January 09, 2008 1:10 PM
>>> To: Sandro Hawke
>>> Cc: public-rif-wg@w3.org
>>> Subject: Re: implementing named-argument uniterms (ISSUE-44) 
>>>
>>>
>>>
>>> If the order of arguments is fixed, then it is easy. But the order of
>>> arguments is not fixed in BLD, and this is cumbersome.
>>>
>>>
>>> 	--michael  
>>>
>>>   
>>>       
>>>> How hard is it to translate from BLD with named-argument uniterms to
>>>>     
>>>>         
>>> BLD
>>>   
>>>       
>>>> without them, or to various rule languages without them?  Is this
>>>> basically syntactic sugar, or is it pretty hard?
>>>>
>>>> If it's hard, I don't think it's appropriate to include named-argument
>>>> uniterms in BLD, as much as I happen to personally like them.
>>>>
>>>> Specifically, can someone provide a translation algorithm and example?
>>>>
>>>>     -- Sandro
>>>>
>>>>
>>>>     
>>>>         
>>>
>>>
>>>   
>>>       
>
>
>   
Received on Tuesday, 15 January 2008 07:33:33 GMT

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