Thanks for catching this. The restriction was actually correct, but the
definition of associatedWith was left over from when I was only dealing with
Person objects. I changed the definition of associatedWith to:
<owl:SymmetricProperty rdf:ID="associatedWith">
<rdfs:domain rdf:resource="#Agent" />
<rdfs:range rdf:resource="#Agent" />
</owl:SymmetricProperty>
So that should fix the inconsistency.
-----Original Message-----
From: Dave Reynolds [mailto:[email protected]]
Sent: Monday, March 18, 2013 5:28 PM
To: [email protected]
Subject: Re: Super/Subclass relationships in OntModel?
On 18/03/13 20:18, Joshua TAYLOR wrote:
> On Mon, Mar 18, 2013 at 4:06 PM, Brian McBride <[email protected]> wrote:
>> I spotted an inconsistency in the ontology.
>>
>> #NewsOrganization has a restriction:
>>
>> [[
>>
>> <rdfs:subClassOf>
>> <owl:Restriction>
>> <owl:onProperty rdf:resource="#associatedWith" />
>> <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">0
>> </owl:maxCardinality>
>> </owl:Restriction>
>> </rdfs:subClassOf>
>>
>> ]]
>>
>> Thus #NewsOrganization can have an #associatedWith property, i.e. is
>> within the domain of #associatedWith. The domain of #associatedWith is
>> #Person.
>> #Organization is disjoint with #Person. #NewsOrganization is a subclass
>> of #Organization.
>>
>> The ontology is thus inconsistent.
>
> 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]?
Correct.
Pellet is happy the the ontology is consistent so long as you ignore the broken
owl:equivalentClass usage that I've already mentioned.
Dave