pizza.owl:IceCream leaf node


URI

http://www.co-ode.org/ontologies/pizza/pizza.owl#IceCream

Label

Sorvete

Description

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.

Usage

Instances of pizza.owl:IceCream can have the following properties:

PROPERTYTYPEDESCRIPTIONRANGE
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

Implementation

@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 .