http://www.co-ode.org/ontologies/pizza/pizza.owl#IceCream
A class to demonstrate mistakes made with setting a property domain. The property hasTopping has a domain of Pizza. This means that the reasoner can infer that all individuals using the hasTopping property must be of type Pizza. Because of the restriction on this class, all members of IceCream must use the hasTopping property, and therefore must also be members of Pizza. However, Pizza and IceCream are disjoint, so this causes an inconsistency. If they were not disjoint, IceCream would be inferred to be a subclass of Pizza.
Instances of pizza.owl:IceCream can have the following properties:
PROPERTY | TYPE | DESCRIPTION | RANGE |
---|---|---|---|
From class pizza.owl:Food | |||
pizza.owl:hasIngredient | owl:ObjectProperty | NB Transitive - the ingredients of ingredients are ingredients of the whole | pizza.owl:Food |
pizza.owl:isIngredientOf | owl:ObjectProperty | The inverse property tree to hasIngredient - all subproperties and attributes of the properties should reflect those under hasIngredient. | pizza.owl:Food |
From class owl:Thing | |||
pizza.owl:hasCountryOfOrigin | owl:ObjectProperty | owl:Thing | |
pizza.owl:hasSpiciness | owl:FunctionalProperty | A property created to be used with the ValuePartition - Spiciness. | pizza.owl:Spiciness |
@prefix : <http://www.co-ode.org/ontologies/pizza/pizza.owl#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
:IceCream a owl:Class ;
rdfs:label "Sorvete"@pt ;
rdfs:comment "A class to demonstrate mistakes made with setting a property domain. The property hasTopping has a domain of Pizza. This means that the reasoner can infer that all individuals using the hasTopping property must be of type Pizza. Because of the restriction on this class, all members of IceCream must use the hasTopping property, and therefore must also be members of Pizza. However, Pizza and IceCream are disjoint, so this causes an inconsistency. If they were not disjoint, IceCream would be inferred to be a subclass of Pizza."@en ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty :hasTopping ;
owl:someValuesFrom :FruitTopping ],
:Food ;
owl:disjointWith :Pizza,
:PizzaBase,
:PizzaTopping .