- From: Alan Wu <alan.wu@oracle.com>
- Date: Wed, 05 Mar 2008 14:45:13 -0500
- To: Boris Motik <boris.motik@comlab.ox.ac.uk>
- CC: bcg@cs.man.ac.uk, hendler@cs.rpi.edu, "'Jeremy Carroll'" <jjc@hpl.hp.com>, "'Michael Schneider'" <schneid@fzi.de>, OWL Working Group WG <public-owl-wg@w3.org>
Boris,
Copying WG on this.
> I've extended the rules table as you've suggested and have added a new table with constraints for the schema entailments. Let me
> know what you think. Below are the responses to other questions.
>
That is quick, Boris! Thank you. I will review the changes.
>>> * If rdfs:subClassOf triples can be generated, then those N rules in
>>> Table 3 regarding rdf:unionOf (should be owl:unionOf)
>>> can be simplified into one rule deducing that T(?C1,
>>> rdfs:subClassOf, ?C), T(?C2, rdfs:subClassOf, ?C) ...
>>> T(?Cn, rdfs:subClassOf, ?C)
>>>
>> I'm sorry, I don't really understand this comment.
>>
>
>
>> The idea is instead of N separate rules, we can have just one rule (please forgive me for
>> introducing a new syntax).
>> C owl:unionOf {c1, c2, ... cn}
>> ===> c1 rdfs:subClassOf C, c2 rdfs:subClassOf C, .... cn rdfs:subClassOf C.
>>
> I am not sure whether this would solve our problem. The reason why we need n rules is because the disjunction (and the same holds
> for conjunction as well) in OWL can have an arbitrary number of disjuncts (i.e., conjuncts). This is why we introduced n rules: we
> don't know in advance what the arity is going to be.
>
> Now I understand that this is quite impractical for implementations. There might be a way of dealing with this; I have to think
> about it more though. In the worst case, implementors can simply instantiate these rules for all "reasonable" numbers of n.
>
I guess I did not make myself clear on this. If we change the rule from
its original form (N rules that are operating on instances) to one rule
that generates N rdfs:subClassOf schema triples, then implementation
is easy, right?
The generation of those N schema triples is just a one time deal. The
rest of the work will be handled by the first rule in Table 4.
>>> I don't think we need this restriction on the rules: we won't generate an invalid triple as long
>>> as p is not a blank node or a literal. Thus, as long as the input obeys is syntactically correct,
>>> it seems to me that none of the rules should really worry about producing syntactically correct
>>> triples.
>>>
>
>
>> Let me use an example. It seems to me that the following is allowed syntactically in OWL-R FULL
>> (RDFS 3.0).
>>
>> T(http://abc/d#1, owl:sameAs, "Hello")
>>
>> If we apply symmetricity, then we get an illegal triple, right?
>>
> Yes, true. However, the problem is not in the rules; rather, the problem is in the first triple:
>
> T(http://abc/d#1, owl:sameAs, "Hello")
>
> This triple equates resources to literals. In OWL DL this is illegal. I am not sure I understand exactly what the meaning of this in
> light of OWL Full is; perhaps Jeremy can shed light on this. I do believe, though, that we should either (1) declare the knowledge
> base to the in error or (2) indeed replace 1 with "Hello" in all triples. Simply ignoring the semantics of equality for this triple
> would probably be not such a good idea.
>
I am not so sure on this one myself. (1) sounds better.
> Regards,
>
> Boris
>
Thanks,
Zhe
Received on Wednesday, 5 March 2008 19:53:38 UTC