390 likes | 423 Views
DAML+OIL Ontology Tutorial. Chris Wroe, Robert Stevens (Sean Bechhofer, Carole Goble, Alan Rector, Ian Horrocks….) University of Manchester. 3 goals for today. Why use DAML+OIL ontologies? What are the design principles? What is the syntax of DAML+OIL?. Applications. Pizza DB.
E N D
DAML+OIL Ontology Tutorial Chris Wroe, Robert Stevens (Sean Bechhofer, Carole Goble, Alan Rector, Ian Horrocks….) University of Manchester
3 goals for today • Why use DAML+OIL ontologies? • What are the design principles? • What is the syntax of DAML+OIL?
Applications Pizza DB Providing a controlled vocabulary 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 pizza’s were sold?
Applications Schema integration Ontology Schema 2 Schema 1 Database 1 Database 2 Schema 3 Database 3
Applications TAMBIS
Date Medication 311299 Atenolol 25mg tabs bd Ontologies to support rules Drug Catalogue Rules oral 25mg Atenolol IffAntianginalthen... Patient Record ?
Atenolol oral 25mg Date Medication Ontologies to support rules Drug Catalogue Drug Ontology Antianginal B-Blocker Atenolol Patient Record Guideline Date Medication IffAntianginalthen... ? 311299 Atenolol 25mg tabs bd
1. List Margherita Capricciosa …. …. …. …. …. How are ontologies encoded? 2. Tree 3. Multiple hierarchy spicy pizza meat pizza American hot pizza
Principles Property driven classification • 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
Descriptions 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
Applications can dynamically build descriptions • Pizza finder
Exercise 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?
Pizza 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
Exercise 2 • Use card sorting to categorise pizza ingredients.
Exercise 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
Principles Organisation Terms • 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
Disjointness • In the DAML+OIL 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
Exercise 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 vegetableingredient classes.
Relationships • Non taxonomic links • Relationship type is called a Property • Properties can be placed in a taxonomy of their own
Exercise 4 • Add a property has_topping_ingredient • Add a property has_part • Make has_part a super property of has_topping_ingredient
Restrictions • Describing a class in terms of its relationships to other classes • Restricting class membership to only those individuals that posses these criteria.
Exercise 5 • Create a restriction relating margherita pizza to its topping ingredients mozzarella and tomato
Necessary 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)
Exercise 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).
Negation and disjunction • DAML+OIL allows logical expressions to be used anywhere a named class could be used. • Allows much more precision and flexibility in defining classes.
Exercise 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 DAML+OIL • Send the ontology to the reasoner.
Types of relationship • hasClass – members ofclass 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
Exercise 8 • Change restriction type in the vegetarian pizza to toClass. • Send the ontology to the reasoner
Open 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 doesn’t have any meat ingredients. (It may have herbs etc.)
Exercise 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.
Transitivity • Vegetarians are picky! • Soho pizza isn’t 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
Exercise 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.
Cardinality • 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 ‘
Exercise 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
Domain and range constraints • Used to specify what classes can be used with properties • May be useful but can have undesirable effects
Exercise 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
Things not covered • Inverse properties, symmetrical properties, unique properties. • Subclass and sameClass axioms. • Use of individuals
Current example ontologies • GONG • myGrid
Current example applications • Clinergy – not DAML+OIL • PEDro