- From: Boley, Harold <Harold.Boley@nrc-cnrc.gc.ca>
- Date: Mon, 21 Jan 2008 10:02:40 -0500
- To: "Mark Proctor" <mproctor@redhat.com>
- Cc: "Michael Kifer" <kifer@cs.sunysb.edu>, "Sandro Hawke" <sandro@w3.org>, <public-rif-wg@w3.org>
- Message-ID: <E4D07AB09F5F044299333C8D0FEB45E904FFDCAB@nrccenexb1.nrc.ca>
Such slotted instances have been implemented by, and used in, OO jDREW
(http://www.jdrew.org/oojdrew/docs/OOjDREW.pdf):
"... Since the named slots do not
require any particular order,
an artificial order (such as a lexicographical order), can be imposed
internally upon
the slots. In OO jDREW the ordering of slots is the encounter order,
where slots are
ordered based upon the order in which they are first encountered; this
ordering is
performed when creating the internal data structures that represent the
terms."
"This ordering allows the algorithm to scan the two
lists of arguments,
matching roles (...) and unifying the fillers in each of the argument
lists."
-- Harold
________________________________
From: Mark Proctor [mailto:mproctor@redhat.com]
Sent: Tuesday, January 15, 2008 12:26 PM
To: Boley, Harold
Cc: Michael Kifer; Sandro Hawke; public-rif-wg@w3.org
Subject: Re: implementing named-argument uniterms (ISSUE-44)
Mark Proctor wrote:
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>
<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>
<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>
<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).
Fact IDs should really be considered local to that engine and
only applicable for that session scope. Any form of OID is really only
for objects inserted externally into the engine. Considering that
engines have different schemes for IDs, and some are counter based,
others not - any forcing of the ID semantics on internal data would be
problematic.
If we wanted to have IDs to allow things like retractions based on an
ID, we would need to make sure that an spec implementator can provide a
mapping from their internal IDs to our defined IDs - that or support RIF
ID schema generators.
However I still think for anonymous instances we should still be able to
define them without an ID - they are anonymous at this stage they have
not been inserted into the engine yet.
-- 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
--
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)
--
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 Monday, 21 January 2008 15:02:56 UTC