- 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