Re: Issue-31: Disjoint sorts - sketch of test case

> 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