- From: Gary Hallmark <gary.hallmark@oracle.com>
- Date: Mon, 14 Jan 2008 22:58:44 -0800
- To: "Boley, Harold" <Harold.Boley@nrc-cnrc.gc.ca>
- CC: Michael Kifer <kifer@cs.sunysb.edu>, Sandro Hawke <sandro@w3.org>, public-rif-wg@w3.org
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 06:57:50 UTC