<?xml version="1.0"?>


<!DOCTYPE rdf:RDF [
    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
    <!ENTITY owl2xml "http://www.w3.org/2006/12/owl2-xml#" >
    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
    <!ENTITY pizza "http://www.co-ode.org/ontologies/pizza/pizza.owl#" >
]>


<rdf:RDF xmlns="http://www.co-ode.org/ontologies/pizza/pizza.owl#"
     xml:base="http://www.co-ode.org/ontologies/pizza/pizza.owl"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:owl2xml="http://www.w3.org/2006/12/owl2-xml#"
     xmlns:pizza="http://www.co-ode.org/ontologies/pizza/pizza.owl#"
     xmlns:owl="http://www.w3.org/2002/07/owl#"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <owl:Ontology rdf:about="">
        <owl:versionInfo rdf:datatype="&xsd;string">version 1.5</owl:versionInfo>
        <rdfs:comment xml:lang="en"
            >An example ontology that contains all constructs required for the various versions of the Pizza Tutorial run by Manchester University (see http://www.co-ode.org/resources/tutorials/)</rdfs:comment>
        <owl:versionInfo xml:lang="en"
            >v.1.4. Added Food class (used in domain/range of hasIngredient), Added several hasCountryOfOrigin restrictions on pizzas, Made hasTopping invers functional</owl:versionInfo>
        <owl:versionInfo xml:lang="en"
            >v.1.5. Removed protege.owl import and references. Made ontology URI date-independent</owl:versionInfo>
    </owl:Ontology>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Object Properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#hasBase -->

    <owl:ObjectProperty rdf:about="#hasBase">
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
        <rdfs:domain rdf:resource="#Pizza"/>
        <rdfs:range rdf:resource="#PizzaBase"/>
        <rdfs:subPropertyOf rdf:resource="#hasIngredient"/>
        <owl:inverseOf rdf:resource="#isBaseOf"/>
    </owl:ObjectProperty>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#hasIngredient -->

    <owl:ObjectProperty rdf:about="#hasIngredient">
        <rdf:type rdf:resource="&owl;TransitiveProperty"/>
        <rdfs:comment xml:lang="en"
            >NB Transitive - the ingredients of ingredients are ingredients of the whole</rdfs:comment>
        <rdfs:range rdf:resource="#Food"/>
        <rdfs:domain rdf:resource="#Food"/>
        <owl:inverseOf rdf:resource="#isIngredientOf"/>
    </owl:ObjectProperty>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#hasTopping -->

    <owl:ObjectProperty rdf:about="#hasTopping">
        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
        <rdfs:comment xml:lang="en"
            >Note that hasTopping is inverse functional because isToppingOf is functional</rdfs:comment>
        <rdfs:domain rdf:resource="#Pizza"/>
        <rdfs:range rdf:resource="#PizzaTopping"/>
        <rdfs:subPropertyOf rdf:resource="#hasIngredient"/>
        <owl:inverseOf rdf:resource="#isToppingOf"/>
    </owl:ObjectProperty>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#isBaseOf -->

    <owl:ObjectProperty rdf:about="#isBaseOf">
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
        <rdfs:range rdf:resource="#Pizza"/>
        <rdfs:domain rdf:resource="#PizzaBase"/>
        <rdfs:subPropertyOf rdf:resource="#isIngredientOf"/>
    </owl:ObjectProperty>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#isIngredientOf -->

    <owl:ObjectProperty rdf:about="#isIngredientOf">
        <rdf:type rdf:resource="&owl;TransitiveProperty"/>
        <rdfs:comment xml:lang="en"
            >The inverse property tree to hasIngredient - all subproperties and attributes of the properties should reflect those under hasIngredient.</rdfs:comment>
        <rdfs:domain rdf:resource="#Food"/>
        <rdfs:range rdf:resource="#Food"/>
    </owl:ObjectProperty>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#isToppingOf -->

    <owl:ObjectProperty rdf:about="#isToppingOf">
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:comment xml:lang="en"
            >Any given instance of topping should only be added to a single pizza (no cheap half-measures on our pizzas)</rdfs:comment>
        <rdfs:range rdf:resource="#Pizza"/>
        <rdfs:domain rdf:resource="#PizzaTopping"/>
        <rdfs:subPropertyOf rdf:resource="#isIngredientOf"/>
    </owl:ObjectProperty>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Classes
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#American -->

    <owl:Class rdf:about="#American">
        <rdfs:label xml:lang="pt">Americana</rdfs:label>
        <rdfs:subClassOf rdf:resource="#NamedPizza"/>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#TomatoTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:allValuesFrom>
                    <owl:Class>
                        <owl:unionOf rdf:parseType="Collection">
                            <rdf:Description rdf:about="#MozzarellaTopping"/>
                            <rdf:Description rdf:about="#PeperoniSausageTopping"/>
                            <rdf:Description rdf:about="#TomatoTopping"/>
                        </owl:unionOf>
                    </owl:Class>
                </owl:allValuesFrom>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#MozzarellaTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#PeperoniSausageTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <owl:disjointWith rdf:resource="#Cajun"/>
        <owl:disjointWith rdf:resource="#PolloAdAstra"/>
        <owl:disjointWith rdf:resource="#QuattroFormaggi"/>
        <owl:disjointWith rdf:resource="#UnclosedPizza"/>
        <owl:disjointWith rdf:resource="#Veneziana"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#ArtichokeTopping -->

    <owl:Class rdf:about="#ArtichokeTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeArtichoke</rdfs:label>
        <rdfs:subClassOf rdf:resource="#VegetableTopping"/>
        <owl:disjointWith rdf:resource="#AsparagusTopping"/>
        <owl:disjointWith rdf:resource="#GarlicTopping"/>
        <owl:disjointWith rdf:resource="#MushroomTopping"/>
        <owl:disjointWith rdf:resource="#OliveTopping"/>
        <owl:disjointWith rdf:resource="#OnionTopping"/>
        <owl:disjointWith rdf:resource="#PepperTopping"/>
        <owl:disjointWith rdf:resource="#PetitPoisTopping"/>
        <owl:disjointWith rdf:resource="#RocketTopping"/>
        <owl:disjointWith rdf:resource="#SpinachTopping"/>
        <owl:disjointWith rdf:resource="#TomatoTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#AsparagusTopping -->

    <owl:Class rdf:about="#AsparagusTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeAspargos</rdfs:label>
        <rdfs:subClassOf rdf:resource="#VegetableTopping"/>
        <owl:disjointWith rdf:resource="#GarlicTopping"/>
        <owl:disjointWith rdf:resource="#MushroomTopping"/>
        <owl:disjointWith rdf:resource="#OliveTopping"/>
        <owl:disjointWith rdf:resource="#OnionTopping"/>
        <owl:disjointWith rdf:resource="#PepperTopping"/>
        <owl:disjointWith rdf:resource="#PetitPoisTopping"/>
        <owl:disjointWith rdf:resource="#RocketTopping"/>
        <owl:disjointWith rdf:resource="#SpinachTopping"/>
        <owl:disjointWith rdf:resource="#TomatoTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#Cajun -->

    <owl:Class rdf:about="#Cajun">
        <rdfs:label xml:lang="pt">Cajun</rdfs:label>
        <rdfs:subClassOf rdf:resource="#NamedPizza"/>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#OnionTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#TobascoPepperSauce"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#MozzarellaTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#TomatoTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <owl:disjointWith rdf:resource="#PolloAdAstra"/>
        <owl:disjointWith rdf:resource="#QuattroFormaggi"/>
        <owl:disjointWith rdf:resource="#UnclosedPizza"/>
        <owl:disjointWith rdf:resource="#Veneziana"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#CheeseTopping -->

    <owl:Class rdf:about="#CheeseTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeQueijo</rdfs:label>
        <rdfs:subClassOf rdf:resource="#PizzaTopping"/>
        <owl:disjointWith rdf:resource="#FruitTopping"/>
        <owl:disjointWith rdf:resource="#MeatTopping"/>
        <owl:disjointWith rdf:resource="#SauceTopping"/>
        <owl:disjointWith rdf:resource="#VegetableTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#CheeseyPizza -->

    <owl:Class rdf:about="#CheeseyPizza">
        <rdfs:label xml:lang="pt">PizzaComQueijo</rdfs:label>
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="#Pizza"/>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#hasTopping"/>
                        <owl:someValuesFrom rdf:resource="#CheeseTopping"/>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
        <rdfs:comment xml:lang="en"
            >Any pizza that has at least 1 cheese topping.</rdfs:comment>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#CheeseyVegetableTopping -->

    <owl:Class rdf:about="#CheeseyVegetableTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeQueijoComVegetais</rdfs:label>
        <rdfs:subClassOf rdf:resource="#CheeseTopping"/>
        <rdfs:subClassOf rdf:resource="#VegetableTopping"/>
        <rdfs:comment xml:lang="en"
            >This class will be inconsistent. This is because we have given it 2 disjoint parents, which means it could never have any members (as nothing can simultaneously be a CheeseTopping and a VegetableTopping). NB Called ProbeInconsistentTopping in the ProtegeOWL Tutorial.</rdfs:comment>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#ChickenTopping -->

    <owl:Class rdf:about="#ChickenTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeFrango</rdfs:label>
        <rdfs:subClassOf rdf:resource="#MeatTopping"/>
        <owl:disjointWith rdf:resource="#HamTopping"/>
        <owl:disjointWith rdf:resource="#PeperoniSausageTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#DeepPanBase -->

    <owl:Class rdf:about="#DeepPanBase">
        <rdfs:label xml:lang="pt">BaseEspessa</rdfs:label>
        <rdfs:subClassOf rdf:resource="#PizzaBase"/>
        <owl:disjointWith rdf:resource="#ThinAndCrispyBase"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#Food -->

    <owl:Class rdf:about="#Food"/>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#FruitTopping -->

    <owl:Class rdf:about="#FruitTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeFrutas</rdfs:label>
        <rdfs:subClassOf rdf:resource="#PizzaTopping"/>
        <owl:disjointWith rdf:resource="#MeatTopping"/>
        <owl:disjointWith rdf:resource="#SauceTopping"/>
        <owl:disjointWith rdf:resource="#VegetableTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#GarlicTopping -->

    <owl:Class rdf:about="#GarlicTopping">
        <rdfs:label xml:lang="pt">CoberturaDeAlho</rdfs:label>
        <rdfs:subClassOf rdf:resource="#VegetableTopping"/>
        <owl:disjointWith rdf:resource="#MushroomTopping"/>
        <owl:disjointWith rdf:resource="#OliveTopping"/>
        <owl:disjointWith rdf:resource="#OnionTopping"/>
        <owl:disjointWith rdf:resource="#PepperTopping"/>
        <owl:disjointWith rdf:resource="#PetitPoisTopping"/>
        <owl:disjointWith rdf:resource="#RocketTopping"/>
        <owl:disjointWith rdf:resource="#SpinachTopping"/>
        <owl:disjointWith rdf:resource="#TomatoTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#HamTopping -->

    <owl:Class rdf:about="#HamTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDePresunto</rdfs:label>
        <rdfs:subClassOf rdf:resource="#MeatTopping"/>
        <owl:disjointWith rdf:resource="#PeperoniSausageTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#InterestingPizza -->

    <owl:Class rdf:about="#InterestingPizza">
        <rdfs:label xml:lang="pt"
            >PizzaInteressante</rdfs:label>
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="#Pizza"/>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#hasTopping"/>
                        <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">3</owl:minCardinality>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
        <rdfs:comment xml:lang="en"
            >Any pizza that has at least 3 toppings. Note that this is a cardinality constraint on the hasTopping property and NOT a qualified cardinality constraint (QCR). A QCR would specify from which class the members in this relationship must be. eg has at least 3 toppings from PizzaTopping. This is currently not supported in OWL.</rdfs:comment>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#MeatTopping -->

    <owl:Class rdf:about="#MeatTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeCarne</rdfs:label>
        <rdfs:subClassOf rdf:resource="#PizzaTopping"/>
        <owl:disjointWith rdf:resource="#SauceTopping"/>
        <owl:disjointWith rdf:resource="#VegetableTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#MeatyPizza -->

    <owl:Class rdf:about="#MeatyPizza">
        <rdfs:label xml:lang="pt">PizzaDeCarne</rdfs:label>
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="#Pizza"/>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#hasTopping"/>
                        <owl:someValuesFrom rdf:resource="#MeatTopping"/>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
        <rdfs:comment xml:lang="en"
            >Any pizza that has at least one meat topping</rdfs:comment>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#MozzarellaTopping -->

    <owl:Class rdf:about="#MozzarellaTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeMozzarella</rdfs:label>
        <rdfs:subClassOf rdf:resource="#CheeseTopping"/>
        <owl:disjointWith rdf:resource="#ParmesanTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#MushroomTopping -->

    <owl:Class rdf:about="#MushroomTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeCogumelo</rdfs:label>
        <rdfs:subClassOf rdf:resource="#VegetableTopping"/>
        <owl:disjointWith rdf:resource="#OliveTopping"/>
        <owl:disjointWith rdf:resource="#OnionTopping"/>
        <owl:disjointWith rdf:resource="#PepperTopping"/>
        <owl:disjointWith rdf:resource="#PetitPoisTopping"/>
        <owl:disjointWith rdf:resource="#RocketTopping"/>
        <owl:disjointWith rdf:resource="#SpinachTopping"/>
        <owl:disjointWith rdf:resource="#TomatoTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#NamedPizza -->

    <owl:Class rdf:about="#NamedPizza">
        <rdfs:label xml:lang="pt">PizzaComUmNome</rdfs:label>
        <rdfs:subClassOf rdf:resource="#Pizza"/>
        <rdfs:comment xml:lang="en"
            >A pizza that can be found on a pizza menu</rdfs:comment>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#OliveTopping -->

    <owl:Class rdf:about="#OliveTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeAzeitona</rdfs:label>
        <rdfs:subClassOf rdf:resource="#VegetableTopping"/>
        <owl:disjointWith rdf:resource="#OnionTopping"/>
        <owl:disjointWith rdf:resource="#PepperTopping"/>
        <owl:disjointWith rdf:resource="#PetitPoisTopping"/>
        <owl:disjointWith rdf:resource="#RocketTopping"/>
        <owl:disjointWith rdf:resource="#SpinachTopping"/>
        <owl:disjointWith rdf:resource="#TomatoTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#OnionTopping -->

    <owl:Class rdf:about="#OnionTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeCebola</rdfs:label>
        <rdfs:subClassOf rdf:resource="#VegetableTopping"/>
        <owl:disjointWith rdf:resource="#PepperTopping"/>
        <owl:disjointWith rdf:resource="#PetitPoisTopping"/>
        <owl:disjointWith rdf:resource="#RocketTopping"/>
        <owl:disjointWith rdf:resource="#SpinachTopping"/>
        <owl:disjointWith rdf:resource="#TomatoTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#ParmesanTopping -->

    <owl:Class rdf:about="#ParmesanTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeParmesao</rdfs:label>
        <rdfs:subClassOf rdf:resource="#CheeseTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#PeperoniSausageTopping -->

    <owl:Class rdf:about="#PeperoniSausageTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeCalabreza</rdfs:label>
        <rdfs:subClassOf rdf:resource="#MeatTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#PepperTopping -->

    <owl:Class rdf:about="#PepperTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDePimentao</rdfs:label>
        <rdfs:subClassOf rdf:resource="#VegetableTopping"/>
        <owl:disjointWith rdf:resource="#PetitPoisTopping"/>
        <owl:disjointWith rdf:resource="#RocketTopping"/>
        <owl:disjointWith rdf:resource="#SpinachTopping"/>
        <owl:disjointWith rdf:resource="#TomatoTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#PetitPoisTopping -->

    <owl:Class rdf:about="#PetitPoisTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaPetitPois</rdfs:label>
        <rdfs:subClassOf rdf:resource="#VegetableTopping"/>
        <owl:disjointWith rdf:resource="#RocketTopping"/>
        <owl:disjointWith rdf:resource="#SpinachTopping"/>
        <owl:disjointWith rdf:resource="#TomatoTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#Pizza -->

    <owl:Class rdf:about="#Pizza">
        <rdfs:label xml:lang="en">Pizza</rdfs:label>
        <rdfs:subClassOf rdf:resource="#Food"/>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasBase"/>
                <owl:someValuesFrom rdf:resource="#PizzaBase"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <owl:disjointWith rdf:resource="#PizzaBase"/>
        <owl:disjointWith rdf:resource="#PizzaTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#PizzaBase -->

    <owl:Class rdf:about="#PizzaBase">
        <rdfs:label xml:lang="pt">BaseDaPizza</rdfs:label>
        <rdfs:subClassOf rdf:resource="#Food"/>
        <owl:disjointWith rdf:resource="#PizzaTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#PizzaTopping -->

    <owl:Class rdf:about="#PizzaTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDaPizza</rdfs:label>
        <rdfs:subClassOf rdf:resource="#Food"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#PolloAdAstra -->

    <owl:Class rdf:about="#PolloAdAstra">
        <rdfs:label xml:lang="pt">PolloAdAstra</rdfs:label>
        <rdfs:subClassOf rdf:resource="#NamedPizza"/>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#GarlicTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#MozzarellaTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#TomatoTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#ChickenTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <owl:disjointWith rdf:resource="#QuattroFormaggi"/>
        <owl:disjointWith rdf:resource="#UnclosedPizza"/>
        <owl:disjointWith rdf:resource="#Veneziana"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#QuattroFormaggi -->

    <owl:Class rdf:about="#QuattroFormaggi">
        <rdfs:label xml:lang="pt">QuatroQueijos</rdfs:label>
        <rdfs:subClassOf rdf:resource="#NamedPizza"/>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#TomatoTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <owl:disjointWith rdf:resource="#UnclosedPizza"/>
        <owl:disjointWith rdf:resource="#Veneziana"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#RocketTopping -->

    <owl:Class rdf:about="#RocketTopping">
        <rdfs:label xml:lang="pt">CoberturaRocket</rdfs:label>
        <rdfs:subClassOf rdf:resource="#VegetableTopping"/>
        <owl:disjointWith rdf:resource="#SpinachTopping"/>
        <owl:disjointWith rdf:resource="#TomatoTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#SauceTopping -->

    <owl:Class rdf:about="#SauceTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaEmMolho</rdfs:label>
        <rdfs:subClassOf rdf:resource="#PizzaTopping"/>
        <owl:disjointWith rdf:resource="#VegetableTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#SpinachTopping -->

    <owl:Class rdf:about="#SpinachTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeEspinafre</rdfs:label>
        <rdfs:subClassOf rdf:resource="#VegetableTopping"/>
        <owl:disjointWith rdf:resource="#TomatoTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#ThinAndCrispyBase -->

    <owl:Class rdf:about="#ThinAndCrispyBase">
        <rdfs:label xml:lang="pt"
            >BaseFinaEQuebradica</rdfs:label>
        <rdfs:subClassOf rdf:resource="#PizzaBase"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#ThinAndCrispyPizza -->

    <owl:Class rdf:about="#ThinAndCrispyPizza">
        <owl:equivalentClass>
            <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="#Pizza"/>
                    <owl:Restriction>
                        <owl:onProperty rdf:resource="#hasBase"/>
                        <owl:allValuesFrom rdf:resource="#ThinAndCrispyBase"/>
                    </owl:Restriction>
                </owl:intersectionOf>
            </owl:Class>
        </owl:equivalentClass>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#TobascoPepperSauce -->

    <owl:Class rdf:about="#TobascoPepperSauce">
        <rdfs:label xml:lang="pt"
            >MolhoTobascoPepper</rdfs:label>
        <rdfs:subClassOf rdf:resource="#SauceTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#TomatoTopping -->

    <owl:Class rdf:about="#TomatoTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeTomate</rdfs:label>
        <rdfs:subClassOf rdf:resource="#FruitTopping"/>
        <rdfs:subClassOf rdf:resource="#VegetableTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#UnclosedPizza -->

    <owl:Class rdf:about="#UnclosedPizza">
        <rdfs:label xml:lang="pt">PizzaAberta</rdfs:label>
        <rdfs:subClassOf rdf:resource="#NamedPizza"/>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#MozzarellaTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <owl:disjointWith rdf:resource="#Veneziana"/>
        <rdfs:comment rdf:datatype="&xsd;string"
            >An unclosed Pizza cannot be inferred to be either a VegetarianPizza or a NonVegetarianPizza, because it might have other toppings.</rdfs:comment>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#VegetableTopping -->

    <owl:Class rdf:about="#VegetableTopping">
        <rdfs:label xml:lang="pt"
            >CoberturaDeVegetais</rdfs:label>
        <rdfs:subClassOf rdf:resource="#PizzaTopping"/>
    </owl:Class>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#Veneziana -->

    <owl:Class rdf:about="#Veneziana">
        <rdfs:label xml:lang="pt">Veneziana</rdfs:label>
        <rdfs:subClassOf rdf:resource="#NamedPizza"/>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#OliveTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#MozzarellaTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#TomatoTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="#hasTopping"/>
                <owl:someValuesFrom rdf:resource="#OnionTopping"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    


    <!-- http://www.w3.org/2002/07/owl#Thing -->

    <owl:Class rdf:about="&owl;Thing"/>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Individuals
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#America -->

    <owl:Thing rdf:about="#America"/>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#England -->

    <owl:Thing rdf:about="#England"/>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#France -->

    <owl:Thing rdf:about="#France"/>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#Germany -->

    <owl:Thing rdf:about="#Germany"/>
    


    <!-- http://www.co-ode.org/ontologies/pizza/pizza.owl#Italy -->

    <owl:Thing rdf:about="#Italy"/>
    


    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // General axioms
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->

    <rdf:Description>
        <rdf:type rdf:resource="&owl;AllDifferent"/>
        <owl:distinctMembers rdf:parseType="Collection">
            <rdf:Description rdf:about="#Italy"/>
            <rdf:Description rdf:about="#England"/>
            <rdf:Description rdf:about="#Germany"/>
            <rdf:Description rdf:about="#France"/>
            <rdf:Description rdf:about="#America"/>
        </owl:distinctMembers>
    </rdf:Description>
</rdf:RDF>



<!-- Generated by the OWL API (version 2.2.1.974) http://owlapi.sourceforge.net -->

