Title: DAML OIL Ontology Tutorial
1DAMLOIL Ontology Tutorial
- Chris Wroe, Robert Stevens
- (Sean Bechhofer, Carole Goble, Alan Rector, Ian
Horrocks.) - University of Manchester
23 goals for today
- Why use DAMLOIL ontologies?
- What are the design principles?
- What is the syntax of DAMLOIL?
3Providing a controlled vocabulary
Applications
Day Location Qty Pizza type
02/01/02 Cambridge Margherita
1
- Prevent the user spelling magherita differently
- Prevent me from adding a type of car to that
field - c) Ensure the users and application have the same
notion of a magherita pizza - d) Help an application answer queries such as how
many vegetarian pizzas were sold?
4Schema integration
Applications
Ontology
Schema 2
Schema 1
Database 1
Database 2
Schema 3
Database 3
5TAMBIS
Applications
6Ontologies to support rules
Drug Catalogue
Rules
Atenolol
oral
25mg
IffAntianginalthen...
Patient Record
?
7Ontologies to support rules
Drug Catalogue
Drug Ontology
Antianginal
B-Blocker
Atenolol
Patient Record
Guideline
Date
Medication
IffAntianginalthen...
?
311299
Atenolol 25mg tabs bd
8How are ontologies encoded?
3. Multiple hierarchy
2. Tree
spicy pizza
meat pizza
American hot pizza
9Property driven classification
Principles
- Most taxonomies are hand crafted
- Difficult to maintain when large or intricate
- Become too large to use but too small to capture
what you want to say - Now possible to calculate a hierarchy
- Supply the lego building blocks to allow the
ontology author or user to define classes - Use reasoning to check consistency and calculate
classification based on these definitions
10Descriptions are key
- Classification driven by description
- Effort moved from manual placement of classes in
a taxonomy to formal definition of classes. - The same classes can be classified in different
ways for different purposes
11Applications can dynamically build descriptions
12Exercise 1
- Specific Tasks
- Use the information in the menus to write
definitions for margherita, la reine, soho and
neptune pizzas - List the concepts and relationships used in the
definitions - General questions
- How else could do you describe types of pizza?
- What parts of the description will drive
classification? - What kinds of concepts are used in the
description?
13Pizza template
- Pizza types are mainly defined in terms of their
topping ingredients - Many high level groups of pizza types depends on
a categorisation of ingredients
14Exercise 2
- Use card sorting to categorise pizza ingredients.
15Exercise 2 beginning with OilEd
- Open an ontology (pizza-tutorial-ex-2.daml)
- Set the namespace
- Add classes to an ontology
- (ham, olive, parmesan)
- Add superclasses (parents) to a class
- (meat, fish, vegetable, and cheese ingredient)
- Reason with the ontology (nothing happens)
- Save an ontology
16Organisation Terms
Principles
- Classification
- A grouping of things into classes
- Instances
- Members of a class
- Hierarchy
- A stratified organisation of things in which
there is a top and a bottom - Taxonomy
- A hierarchical classification
17Taxonomies as sets
Principles
Eukaryota
Primate
Homo sapiens
Chris
18Disjointness
- In the DAMLOIL world every class is assumed to
overlap with every other. - We need to explicitly state something cannot be a
member of two classes at the same time e.g. man
and women
19Exercise 3 adding a disjoint axiom
- Make tuna a subclass of both meat and fish
ingredient classes. - Verify the ontology
- Add a disjoint axiom between meat and fish
ingredient. - Send the ontology to the reasoner (verify).
- At this point also add disjoint axioms between
meat, cheese and vegetable ingredient classes.
20Relationships
- Non taxonomic links
- Relationship type is called a Property
- Properties can be placed in a taxonomy of their
own
21Exercise 4
- Add a property has_topping_ingredient
- Add a property has_part
- Make has_part a super property of
has_topping_ingredient
22Restrictions
- Describing a class in terms of its relationships
to other classes - Restricting class membership to only those
individuals that posses these criteria.
23Exercise 5
- Create a restriction relating margherita pizza to
its topping ingredients mozzarella and tomato
24Necessary and sufficient criteria
- To be a member I must have these relationships
(necessary subclassOf) - If I have these relationships I must be a member
(necessary and sufficient sameClassAs)
25Exercise 6
- Load ontology pizza-tutorial-ex-6.daml
- Create a class called cheesy pizza as a
subclass of pizza which has a topping ingredient
of cheese ingredient. - Change to a SameClassAs definition
- Send the ontology to the reasoner (verify).
26Negation and disjunction
- DAMLOIL allows logical expressions to be used
anywhere a named class could be used. - Allows much more precision and flexibility in
defining classes.
27Exercise 7
- Write down a definition for a vegetarian pizza
- Create a new class in the ontology called
vegetarian pizza and represent the paper based
definition in DAMLOIL - Send the ontology to the reasoner.
28Types of relationship
- hasClass members of class A have this
relationship with some members of class B - toClass members of class A (if they have this
relationship) only have this relationship with
members of class B
29Exercise 8
- Change restriction type in the vegetarian pizza
to toClass. - Send the ontology to the reasoner
30Open world assumption
- Open world of the web - always assumes someone
could add some extra information - Some one could come along and add a statement to
say margherita pizza has ham on it. - We have to cap off the description to say
margherita pizza has these toppings and I know it
doesnt have any meat ingredients. (It may have
herbs etc.)
31Exercise 9
- Cap off the definition of margherita pizza with
a toClass restriction. - Send the ontology to the reasoner.
- (Note we can now explicitly say Neptune has no
cheese ingredient in the same way) - Load ontology pizza-tutorial-ex-10.daml to see
more definitions.
32Transitivity
- Vegetarians are picky!
- Soho pizza isnt classed as vegetarian in the
menu - Some cheeses are made with meat products (rennin)
- The ingredient property is transitive. If
parmesan has a meat ingredient in it any pizza
with parmesan should be also be classed as
containing a meat ingredient
33Exercise 10
- Make the has_part relationship transitive
- Add rennin as a subclass of meat ingredient
- Add a restriction on parmesan to say it has_part
some rennin. - Send the ontology to the reasoner.
34Cardinality
- More precise numerical constraints can be placed
on relationships. - It should be read as members of class A are
related by this property to this many members of
class B
35Exercise 11
- Change the definition of cheesy pizza to a pizza
with at least 2 types of cheese - Add a new type of pizza called four cheese
pizza which has exactly four topping ingredients
of type cheese ingredient - Use the reasoner
- Add a disjoint axiom between parmesan and
mozzarella. - Use the reasoner
36Domain and range constraints
- Used to specify what classes can be used with
properties - May be useful but can have undesirable effects
37Exercise 12
- For has_topping_ingredient add a domain of pizza
and a range of ingredient - Make intentional errors to test the system e.g.
add ham as a topping ingredient of onion and add
four cheeses pizza as a topping of margherita
pizza. - Use the reasoner
- Examine the superclasses of onion
- Add a disjoint axiom between pizza and ingredient
- Use the reasoner
38Things not covered
- Inverse properties, symmetrical properties,
unique properties. - Subclass and sameClass axioms.
- Use of individuals
39Current example ontologies
40Current example applications
- Clinergy not DAMLOIL
- PEDro
41Providing a controlled vocabulary
Applications
Day Location Pizza type
02/01/02 Cambridge Margherita
3. Multiple hierarchy
2. Tree
meat pizza
spicy pizza
American hot pizza
42(No Transcript)