]> 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/) v.1.5. Removed protege.owl import and references. Made ontology URI date-independent version 1.5 v.1.4. Added Food class (used in domain/range of hasIngredient), Added several hasCountryOfOrigin restrictions on pizzas, Made hasTopping invers functional NB Transitive - the ingredients of ingredients are ingredients of the whole A property created to be used with the ValuePartition - Spiciness. Note that hasTopping is inverse functional because isToppingOf is functional The inverse property tree to hasIngredient - all subproperties and attributes of the properties should reflect those under hasIngredient. Any given instance of topping should only be added to a single pizza (no cheap half-measures on our pizzas) Americana AmericanaPicante CoberturaDeAnchovies CoberturaDeArtichoke CoberturaDeAspargos Cajun CoberturaDeCajun CoberturaDeCaper Capricciosa Caprina CoberturaDeQueijo PizzaComQueijo Any pizza that has at least 1 cheese topping. CoberturaDeQueijoComVegetais 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. CoberturaDeFrango Pais A class that is equivalent to the set of individuals that are described in the enumeration - ie Countries can only be either America, England, France, Germany or Italy and nothing else. Note that these individuals have been asserted to be allDifferent from each other. BaseEspessa Fiorentina CoberturaDePeixe CoberturaQuatroQueijos QuatroQueijos CoberturaDeFrutas FrutosDoMar CoberturaDeAlho Giardiniera CoberturaDeQueijoDeCabra CoberturaDeGorgonzola CoberturaDePimentaoVerde CoberturaDePresunto CoberturaDeErvas Picante CoberturaDePimentaoVerdePicante CoberturaDeBifePicante Sorvete 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. PizzaInteressante 3 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. CoberturaDeJalapeno LaReine CoberturaDeLeek Margherita CoberturaDeCarne PizzaDeCarne Any pizza that has at least one meat topping Media NaoPicante CoberturaDeFrutosDoMarMistos CoberturaDeMozzarella Cogumelo CoberturaDeCogumelo PizzaComUmNome A pizza that can be found on a pizza menu Napoletana PizzaNaoVegetariana Any Pizza that is not a VegetarianPizza CoberturaDeCastanha CoberturaDeAzeitona CoberturaDeCebola CoberturaDePrezuntoParma Parmense CoberturaDeParmesao CoberturaPeperonata CoberturaDeCalabreza CoberturaDePimentao CoberturaPetitPois CoberturaPineKernels Pizza BaseDaPizza CoberturaDaPizza PolloAdAstra CoberturaDeCamarao CoberturaPrinceCarlo QuatroQueijos PizzaItalianaReal This defined class has conditions that are part of the definition: ie any Pizza that has the country of origin, Italy is a RealItalianPizza. It also has conditions that merely describe the members - that all RealItalianPizzas must only have ThinAndCrispy bases. In essence, all pizzas from Italy must have ThinAndCrispy bases. CoberturaDeCebolaVermelha CoberturaRocket Rosa CoberturaRosemary CoberturaEmMolho Siciliana CoberturaDeTomateFatiado SloppyGiuseppe Soho Tempero A ValuePartition that describes only values from Hot, Medium or Mild. NB Subclasses can themselves be divided up into further partitions. PizzaTemperada Any pizza that has a spicy topping is a SpicyPizza PizzaTemperadaEquivalente An alternative definition for the SpicyPizza which does away with needing a definition of SpicyTopping and uses a slightly more complicated restriction: Pizzas that have at least one topping that is both a PizzaTopping and has spiciness hot are members of this class. CoberturaTemperada Any pizza topping that has spiciness Hot CoberturaDeEspinafre CoberturaSultana CoberturaDeTomateRessecadoAoSol CoberturaDePimentaoDoce BaseFinaEQuebradica MolhoTobascoPepper CoberturaDeTomate PizzaAberta An unclosed Pizza cannot be inferred to be either a VegetarianPizza or a NonVegetarianPizza, because it might have other toppings. ValorDaParticao A ValuePartition is a pattern that describes a restricted set of classes from which a property can be associated. The parent class is used in restrictions, and the covering axiom means that only members of the subclasses may be used as values. The possible subclasses cannot be extended without updating the ValuePartition class. CoberturaDeVegetais PizzaVegetariana Any pizza that does not have fish topping and does not have meat topping is a VegetarianPizza. Members of this class do not need to have any toppings at all. PizzaVegetarianaEquivalente1 Any pizza that only has vegetarian toppings or no toppings is a VegetarianPizzaEquiv1. Should be inferred to be equivalent to VegetarianPizzaEquiv2. Not equivalent to VegetarianPizza because PizzaTopping is not covering PizzaVegetarianaEquivalente2 An alternative to VegetarianPizzaEquiv1 that does not require a definition of VegetarianTopping. Perhaps more difficult to maintain. Not equivalent to VegetarianPizza CoberturaVegetariana An example of a covering axiom. VegetarianTopping is equivalent to the union of all toppings in the given axiom. VegetarianToppings can only be Cheese or Vegetable or....etc. Veneziana