- From: Sandro Hawke <sandro@w3.org>
- Date: Wed, 18 Apr 2007 09:09:51 -0400
- To: Dave Reynolds <der@hplb.hpl.hp.com>
- Cc: RIF <public-rif-wg@w3.org>
> At yesterday's discussion on Issue-31 we thought it would be useful to
> develop a test case to illustrate the translation issues involved in
> choosing between the various disjointness approaches.
>
> I half-volunteered for this. I'm familiar with the corresponding issue
> in OWL but not with the corresponding issue for rule systems. Here is a
> first cut at translating a simplified OWL example into a rule system
> setting.
>
> ** Caveats:
>
> I may be misunderstanding the issue in a rule system setting, in which
> case perhaps by attempting to make it concrete that will at least shed
> light on the misunderstanding.
>
> I don't think I care about this issue enough to want to drive it.
>
> So treat this as an initial stimulus for thought. Hopefully someone with
> more experience in rule systems will be able to come up with a better
> test case.
>
> ** Notation
>
> I'm using the RIF Core human readable syntax as best I can but using
> simple labels rather than sort-tagged IRIs for the constants :-)
>
> The terms DS, ONDS, OS stand for "disjoint sorts", "overlapping-names
> disjoint sorts" (aka punning) and "overlapping sorts" as described in
> [1].
>
> ** Base test case
>
> Ruleset:
> Forall ( p(a) :- And()) # p(a).
> Forall ( q(b) :- And()) # q(b).
> Forall ( p = q :- And()) # p = q.
>
> Query: p(?x)
>
> N.B. I'm assuming that the RIF Core atomic term "p = q" treats "p" and
> "q" as individuals.
>
> This is intended to be analogous to having "p" and "q" designate OWL
> classes, "a" and "b" be OWL individuals, "p(a)" be an rdf:type assertion
> and "=" be owl:sameAs. DS is OWL/DL, ONDS is OWL/DL-1.1, OS is OWL/full.
>
> In which case ...
>
> If the core is DS this is ill-formed.
>
> If the core is ONDS this is well-formed and the query would return
> just the binding p(a). The equality statement only asserts equality
> between "p" and "q" when used in the syntactic role of individuals and
> does not affect their interpretation as unary predicates.
>
> If the core is OS this is well-formed and the query would return the
> two bindings p(a) and p(b).
>
> (a) Am I right in understanding that this is what everyone means by
> the DS/ONDS/OS choice?
>
> (b) Is this a legal formulation of a test case in RIF Core?
>
> If the answer to the above are both yes (hah) then we can look at the
> translation issues.
Yes, thank you.
An example I thought of this morning, that's simpler but probably too
simple (it's not a real test case like yours):
in DS, the atom a(a) is not well-formed
in ONDS, the atom a(a) makes reference to two different things
(the predicate called 'a', and something else called 'a')
in OS, the atom a(a) is self-referential
(the predicate called 'a' is applied to itself)
I think we're in agreement about what DS/ONDS/OS mean. Now I need to
work through your translation examples....
-- Sandro
Received on Wednesday, 18 April 2007 13:09:58 UTC