On Feb 16, 2012, at 21:45 , Satya Sahoo wrote:
[snip]
>
> ie, using a union of classes as part of the domain is not allowed. The rules also express this. And, although a layperson in terms of hard core logic, I can see why: if a resource is the subject of that property, a simple rule engine _cannot_ find out which of the constituents of the union it belongs to. Ie, it cannot make any intelligent deduction.
>
> Can you please clarify the above point - reasoners do consistency check (class with no possible instance) and classification (identify inferred sub/super class), the above example of inferring class membership seems to be a RDFS entailment.
Correct. Reasoners, say, DL reasoners do this stuff, but those are inferences on the classes themselves. However, again from my non-logician perspective, OWL 2 RL concentrates more on the instance data, on the inferences drawn on individuals. The OWL 2 RL Rules do that, and they do it in a way that they can be easily implemented either directed or through some rule engine. And that is where the problem comes in.
If I have
provo:hadTemporalEngine rdfs:domain A .
then the rules can be used for the inference :
x provo:hadTemporalEngine y . => x rdf:type A .
but if I have
provo:hadTemporalEngine rdfs:domain [ owl:union ( A,B,C) ] .
then, again in the case of
x provo:hadTemporalEngine y . => x rdf:type A .
there is no rule that would help me to make any kind of statement on the type of 'x' v.a.v. A, B, or C. In other words, if I simply use the OWL 2 RL Rules, that domain statement does not provide any information that the reasoner could exploit on the data.
I hope this is clearer (and that I am right:-)
Cheers
Ivan
----
Ivan Herman, W3C Semantic Web Activity Lead
Home: http://www.w3.org/People/Ivan/
mobile: +31-641044153
FOAF: http://www.ivan-herman.net/foaf.rdf