On 18/03/13 21:16, Joshua TAYLOR wrote:
On Mon, Mar 18, 2013 at 4:55 PM, Brian McBride <[email protected]> wrote:
On 18/03/2013 20:18, Joshua TAYLOR wrote:
Wouldn't the maxCardinality 0 mean that every NewsOrganization isn't
associatedWith *anything*, so there should never be a [newsOrgX
associatedWith foo] to use with [associatedWith domain Person] to
infer [newsOrgX a Person]?
That's true and I've been wondering since my message whether a max
cardinality constraint really does assert that the restriction class is in
the domain of the property. I'm finding it hard to tell looking at the Owl
documents.
However, I think the reasoner is doing that. With the restriction and a
cut down ontology I was seeing classes with owl:Nothing as a super class.
Eliminating the restriction eliminated the owl:Nothing and produces the
expected answers for the code provided running on the full ontology.
This spurred me to look at some of the relevant rules, and I'm kind of
puzzled by them. E.g., (from owl-fb.rules, line 277):
[maxRec2: (?C owl:equivalentClass max(?P, 0)), (?P rdfs:domain ?D),
(?E owl:disjointWith ?D)
-> (?E owl:equivalentClass ?C)]
That's not quite the situation here however ...
If I'm reading maxRec2 correctly, wouldn't it fire in this case:
NonHornedThing owl:equivalentClass max( hasHorn, 0 )
hasHorn rdfs:domain Animal
Mineral owl:disjointWith Animal
and produce
Mineral owl:equivalentClass NonHornedThing ,
which doesn't seem right (although
Mineral owl:subClassOf NonHornedThing
would be OK). Am I missing something here?
Hmm. Yes, it looks like the RHS of that rule should be rdfs:subClassOf.
Dave