CS 662 Assignment 6: Ontologies
Assigned: Thursday, October 12.
Due: Thursday October 19 at the start of class.
30 points total.
What to turn in: Place a copy of your .pprj file in your submit
directory. You do not need to turn in any hard copy.
This assignment will give you some exposure to the creation of an
ontology using Protege, a graphical tool for constructing
ontologies. Ontology construction is a big and complex topic; we'll
just be scratching the surface in here.
You'll be working with the Pizza ontology described
this document.. It demonstrates how to create classes and
subclasses, properties and restrictions, and use a reasoner to compute
inferred types and classifications.
To begin, work through the first 5 chapters in the tutorial. (It looks
long, but it goes quickly - there are lots of pictures.) Racer is
currently set up on virgo.cs.usfca.edu at:
Next, extend the Pizza Ontology in the following ways:
- Add the following types of pizzas. You may add additional
toppings or bases as necessary. (thanks to Pizza Orgasmica for ideas):
- Orgasmica: A pizza with CornMeal base and the following toppings:
pepperoni, salami, sausage, mushrooms, onions, bell peppers
- Hula: a pizza with canadian bacon and pineapple.
- Adam and Eve: A pizza with a DeepPan base and the following
toppings: spinach, green onions, green peppers, black olives,
- Garden of Eden: a pizza with ExtraCrispy base and the following
toppings: mushrooms, onions, bell peppers, tomatoes.
- Next, create three subclasses of Pizza, called LargePizza,
MediumPizza, and SmallPizza. Create the following restrictions: a
small pizza has two or fewer toppings, a medium pizza has 3-6
toppings, and a large pizza has more than 6 toppings. (Note: you
should make these classes disjoint.) Rerun the reasoner to classify
all of your pizza types according to this new taxonomy.
- Then, add a property called price to smallPizza, mediumPizza, and
largePizza. (this should be a datatype property.) Large pizzas
should have a price of 15, medium a price of 12, and small a price
- Next, create a class called Order. This will represent a customer
order. It should have a property called contains, whose range is
- Finally, we will create a set of individuals. These are specific
pizzas someone might have ordered. Create the following orders:
- Order 1: One Americana Pizza, one deepdish base pizza with
mushrooms and mozzarella, and one extracrispy base pizza with
pepperoni, tomatoes, onions, mozzarella, and olives.
- Order 2: One Soho Pizza, one Margherita Pizza, and one
extracrsipy pizza with tuna, prawns, parmesan cheese, ham, and
- Order 3: One AmericanHotPizza, one deepdish pizza with salami,
tomatoes, and jalapenos, and two extracrispy pizzas with pepperoni,
mozzarella, capers, and anchovies.