v.1.4. Added Food class (used in domain/range of hasIngredient), Added several hasCountryOfOrigin restrictions on pizzas, Made hasTopping invers functional
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
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.
Any pizza that has at least one meat topping
A pizza that can be found on a pizza menu
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.
An unclosed Pizza cannot be inferred to be either a VegetarianPizza or a NonVegetarianPizza, because it might have other toppings.
NB Transitive - the ingredients of ingredients are ingredients of the whole
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)