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
Forwarded message 1
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?
Dave