Dave - The contents of the slides written and shown by Harold are only meant as illustration. The concrete syntax of slotted term he added to the "core" condition and Horn rule language syntax is not formally consistent (or perhaps I would not do it exactly like that). Be that as it may, I am currently writing up a formal treatment of how to view data models as constraint systems. This, as you may recall, is an action that was put on me in response to members of the RIF WG at the last F2F in Athens, GA (viz., Jeff Pan and Alex Kozlenkov) that requested that I produce such a duly referenced technical argument showing how this may be achieved. I now writing a first draft of this document elaborating on the CLP summary that I had made available last month to the rest of the RIF WG. I summarize also the systematic semantic connections between the several formal syntaxes of attributed structures. In other words, an object may be seen - and thus written - indifferently as either a term (slotted or not), a labelled graph, or an order-sorted feature (OSF) constraint which is a conjunction atomic statements akin to RDF triples: nodes are variables, arrows are features, and node labels are sorts. In other words, the OSF term 'person(name -> id(last -> string, first -> string), age -> int)' becomes: 'X:person & X.name=Y & Y:id & Y.last=Z & X:string & Y.first=U & U:string & X.age=V & X:int'. (Note that, unlike in Harold's notation, the dot 'operator' relates two variables, not two sorts (i.e., function symbols). All these syntaxes may each be given a simple formal semantics, each of which concides - i.e., these are distinct forms of the same denotations. In a sense, OSF constraints are to OSF terms what ions are to molecules. Thus, an OSF constraint is called the "dissolved" form of the term. Therefore, Dave Reynolds's questions and points are quite justified, and may be thus answered: (1) yes - slotted terms are syntactic sugar that gets desugared as OSF constraints; (2) Herbrand terms are a special case of OSF terms and therefore also syntactic sugar - e.g., the Herbrand term 'f(a,g(b,c))' becomes the OSF constraint 'X:f & X.1=A & A:a & X.2=G & G:g & G.1=B & B:b & G.2=C & C:c'; (3) other data models may be accommodated using this "data model as constraint system" paradigm and conjugated with definite clauses using the CLP scheme in order to obtain Horn-like rule systems over varied data types (e.g., Java, C#, or C++ classes/objects). I hope to have a first legible draft with all the gory technical details of the above within a week or so. Cheers, -hak -- Hassan Aït-Kaci ILOG, Inc. - Product Division R&D tel/fax: +1 (604) 930-5603 - email: hak @ ilog . com
attached mail follows:
Thanks for your questions. Background for this response is Hassan's CLP formulation: http://www.w3.org/2005/rules/wg/wiki/B.1.1_CLP_Formulation Slide 3 from the breakout and the plenary makes two related distinctions, which should have been separated more clearly, as done below. Positional vs. slotted arguments (already in RIFRAF): Positional arguments: f(A1, ..., An) Slotted arguments: f{k1->A1, ..., kn->An} Remark: f(A1, ..., An) viewable as shorthand for f{1->A1, ..., n->An} Herbrand unification assumed vs. equational constraints explicated (suggestion for RIFRAF): Herbrand unification assumed: f(a1, ..., an) is unified with f(A1, ..., An) by dynamically solving a1=A1, ..., an=An f{k1->a1, ..., kn->an} is unified with f{k1->A1, ..., kn->An} by dynamically solving a1=A1, ..., an=An Equational constraints explicated: f(a1, ..., an) is statically transformed, via abstraction f(?x1, ..., ?xn), i.e. f{1->?x1, ..., n->?xn}, to a conjunctive constraint call (?x1=) f.1=a1, ..., (?xn=) f.n=an f{k1->a1, ..., kn->an} is statically transformed, via abstraction f{k1->?x1, ..., kn->?xn}, to a conjunctive constraint call (?x1=) f.k1=a1, ..., (?xn=) f.kn=an I'm traveling, but will come back to email later. -- Harold -----Original Message----- From: Dave Reynolds [mailto:der@hplb.hpl.hp.com] Sent: Sunday, November 19, 2006 11:16 AM To: Boley, Harold Cc: RIF WG Subject: Re: [TED] CORE Pages on Positive Conditions and Horn Rules Edited: Slots & Constraints Boley, Harold wrote: > Referring to the slides of an F2F4 breakout session > (http://lists.w3.org/Archives/Public/public-rif-wg/2006Nov/0025.html), > I edited two wiki pages for extending the existing work with > slots and calls to external constraint solvers (ACTION-180): Thanks. I'm not sure I properly understood the results from the breakout session so forgive me if these questions are off base ... > Slots (CORE Page on Positive Conditions): > > http://www.w3.org/2005/rules/wg/wiki/A.1_Basis%3A_Positive_Conditions > > http://www.w3.org/2005/rules/wg/wiki/A.1_Basis%3A_Positive_Conditions?ac > tion=diff&rev2=45&rev1=43 That just seems to add slotted notation in as an additional piece of syntax. For some reason I'd had the impression that the proposal was that the slotted notation would be the fundamental one with labels '1', '2' etc used to translate positional notation. I guess I expected the revised abstract syntax to only have slotted notation and there would be a separate "with syntactic sugar" syntax layered on top. Note, it's not that I'm necessarily trying to push for this just trying to understand at this stage. > Calls to external constraint solvers (CORE Page on Horn Rules): > > http://www.w3.org/2005/rules/wg/wiki/B.1_Horn_Rules > > http://www.w3.org/2005/rules/wg/wiki/B.1_Horn_Rules?action=diff&rev2=24& > rev1=22 First, I guess I have the same question as above. This seems to have EXTCALL added as an optional extra call whereas I thought the proposed most primitive form of RIF Core was slotted notation with a conjunction of ground dot-notation terms in the constraint equation. Second, and related, presumably there needs to be an abstract syntax for the primitive constraint equations needed for Herbrand terms? DaveReceived on Tuesday, 21 November 2006 05:20:49 GMT
This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:33:34 GMT