- From: Michael Kifer <kifer@cs.sunysb.edu>
- Date: Sat, 24 Oct 2009 20:21:18 -0400
- To: Jos de Bruijn <debruijn@inf.unibz.it>
- Cc: RIF WG Public list <public-rif-wg@w3.org>
On Thu, 22 Oct 2009 11:00:52 +0200 Jos de Bruijn <debruijn@inf.unibz.it> wrote: > > > In today's telecon I was asked to reanimate the issue of OWL compatibility, > > which was discussed 1 month ago. > > > > Here is the relevant message: > > > > http://lists.w3.org/Archives/Public/public-rif-wg/2009Sep/0017.html > > > > The current situation is a bug, IMO. If it isn't a bug then at least that part > > of the document is very unsatisfactory and obscure. Jos proposed 3 solutions: > > > > 1- leave things as they are, assuming that # and ## are not of interest > > to users of RIF-OWL DL combinations > > 2- explain the use of # and ## in the document (this would certainly not > > be a substantive change, so we should not run into procedural problems) > > 3- define the semantics of # and ## in RIF-OWL DL combinations in a > > similar fashion as in RIF-RDF combinations: a one-to-one correspondence > > between # and OWL class membership statements and implication between ## > > and OWL subclassing. > > > > The easiest for him would be to do nothing (1), thus leaving things > > unsatisfactory and obscure. His next choice is (3), which is also my choice and > > the "right thing to do." (3) stretches things a little, but it can be argued > > that it is a simple fix. > > In my earlier e-mail to Michael referred to I did not say what my > preference is among the mentioned options. You indicated which ones are easier for you to implement :-) > I guess arguments can be > made for all three options, so in fact I do not have a strong > preference, but I do have a concern about option (3): implementation > might be harder. If, for example, implementation is done through > embedding in other rules system, like the embedding of RIF-OWL2RL > combination in the appendix of the document, quite a few rules need to > be added for the ## construct. > In particular, for every pair of distinct class names (A,B), we need to > add the rule: > > Forall ?x (?x[rdf:type -> B] :- And(?x[rdf:type -> A] A##B)) > > This means adding a quadratic number of rules. First, adding these rules is not hard -- just some additional work. Second, we should do what's right. Third, the whole issue came up because the current spec is somewhat cryptic and non-uniform w.r.t. the treatment of ## in the sense that it does not match expectations. I am sure quite a number of implementors would have problems understanding it as intended (just as I had). > Dealing with # is easy: in the mapping of RIF DL-document formulas to > RIF documents [1] we simply map a#b to tr'(b)(a). Clearly, we would > restrict b in formulas a#b to constant symbols. > > > [1] > http://www.w3.org/TR/rif-rdf-owl/#Embedding_RIF_DL-document_formulas_into_RIF_BLD > > > > > > Solution (2) is more work. It fixes the obscurity aspect, not the > > unsatisfactory aspect of the definitions. So, (3) seems like the best way to > > proceed. > > > > Solution (3) still leaves some problems, which are unrelated to the above > > issues. In the current semantics, subclassing in RIF implies subclassing in > > OWL/RDF, but not vice versa. > > > > In this regard, I would like to point to my follow-up message > > http://lists.w3.org/Archives/Public/public-rif-wg/2009Sep/0019.html > > Here I proposed a stronger semantics, which fixes this non-entailment problem. > > Michael proposed the following semantics: > > {(A,B) | A rdfs:subclassOf B and A != B on the RDF side} > = {(A,B) | A##B on the RIF side} > > I feel that this would take us out of Horn, even when considering Simple > entailment, because implementation would require (classical) negation. > At least, that is the only way I current see how this could be > implemented. As we know, classical negation in the body amounts to > disjunction in the head, so we would end up adding the following rule to > the embedding of RDF-RDF combinations: > > Forall ?x, ?y (Or(?x##?y ?x=?y) :- ?x[rdfs:subClassOf -> ?y]) > > For RIF-OWL DL combinations such a semantics is even more problematic, > because subclass in OWL DL means subset relation between class > extensions, so the condition would look something like (X^C is the class > extension of X): > > {(A,B) | A^C subset B^C and A^C != B^C on the RDF side} > = {(A,B) | A##B on the RIF side} > > (Actually, we will need to apply some tricks here, since A and B are not > constants on the OWL side, but I guess we can come up with a definition > that kind-of achieves this semantics) > > A formula implementing the => direction of the condition for a pair of > class names A,B would look something like (again, negation in the body > becomes disjunction in the head): > > Forall ?x ( > Or(A##B > And(Forall ?x(?x[rdf:type -> B] :- ?x[rdf:type -> A]) > Forall ?x(?x[rdf:type -> A] :- ?x[rdf:type -> B]))) > :- > Forall ?x(?x[rdf:type -> B] :- ?x[rdf:type -> A])) > > > So, I would not be in favor of extending either the semantics of RDF or > the semantics of OWL DL combinations with such a condition. Yes, it is harder to implement and I was not proposing it for CR. I said that we might consider it for the future. But it seems that there will be opposition to that. michael > Best, Jos > > > > This would certainly be a substantive change semantically (although not > > significant textually). If we don't have the energy to do it this time, > > maybe for RIF 1.1. > > > > michael > > >
Received on Sunday, 25 October 2009 00:21:54 UTC