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 in 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: http://virgo.cs.usfca.edu:8080.

Next, extend the Pizza Ontology in the following ways:
  1. Add the following types of pizzas. You may add additional toppings or bases as necessary. (thanks to Pizza Orgasmica for ideas):
  2. 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.
  3. 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 of 10.
  4. Next, create a class called Order. This will represent a customer order. It should have a property called contains, whose range is Pizzas.
  5. Finally, we will create a set of individuals. These are specific pizzas someone might have ordered. Create the following orders: