]> v.1.4. Added Food class (used in domain/range of hasIngredient), Added several hasCountryOfOrigin restrictions on pizzas, Made hasTopping invers functional version 1.5 v.1.5. Removed protege.owl import and references. Made ontology URI date-independent 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/) Americana AmericanaPicante CoberturaDeAnchovies CoberturaDeArtichoke CoberturaDeAspargos Cajun CoberturaDeCajun CoberturaDeCaper Capricciosa Caprina CoberturaDeQueijo Any pizza that has at least 1 cheese topping. PizzaComQueijo 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 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. Sorvete PizzaInteressante 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. 3 CoberturaDeJalapeno LaReine CoberturaDeLeek Margherita CoberturaDeCarne Any pizza that has at least one meat topping PizzaDeCarne Media NaoPicante CoberturaDeFrutosDoMarMistos CoberturaDeMozzarella Cogumelo CoberturaDeCogumelo A pizza that can be found on a pizza menu PizzaComUmNome Napoletana Any Pizza that is not a VegetarianPizza PizzaNaoVegetariana CoberturaDeCastanha CoberturaDeAzeitona CoberturaDeCebola CoberturaDePrezuntoParma Parmense CoberturaDeParmesao CoberturaPeperonata CoberturaDeCalabreza CoberturaDePimentao CoberturaPetitPois CoberturaPineKernels Pizza BaseDaPizza CoberturaDaPizza PolloAdAstra CoberturaDeCamarao CoberturaPrinceCarlo QuatroQueijos 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. PizzaItalianaReal CoberturaDeCebolaVermelha CoberturaRocket Rosa CoberturaRosemary CoberturaEmMolho Siciliana CoberturaDeTomateFatiado SloppyGiuseppe Soho A ValuePartition that describes only values from Hot, Medium or Mild. NB Subclasses can themselves be divided up into further partitions. Tempero Any pizza that has a spicy topping is a SpicyPizza PizzaTemperada 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. PizzaTemperadaEquivalente Any pizza topping that has spiciness Hot CoberturaTemperada 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. 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 PizzaVegetarianaEquivalente1 An alternative to VegetarianPizzaEquiv1 that does not require a definition of VegetarianTopping. Perhaps more difficult to maintain. Not equivalent to VegetarianPizza PizzaVegetarianaEquivalente2 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. CoberturaVegetariana Veneziana 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)