Based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester A Practical Introduction to Ontologies & OWL Session 1: Primitive.

Slides:



Advertisements
Similar presentations
29/11/2004CS646: N. Drummond, M. Horridge1 Presented by the CO-ODE and HyOntUse projects Funded by CS646: OWL Tutorial (session 2)
Advertisements

29/11/2004CS646: N. Drummond, M. Horridge1 Presented by the CO-ODE and HyOntUse projects Funded by CS646: OWL Tutorial (session 1)
Developing OWL Ontologies with Protégé 4
Knowledge Representation
So What Does it All Mean? Geospatial Semantics and Ontologies Dr Kristin Stock.
Based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester A Practical Introduction to Ontologies & OWL Session 3: Additional.
1 OWL Pizzas: Practical Experience of Teaching OWL-DL: Common Errors & Common Patterns Alan Rector 1, Nick Drummond 1, Matthew Horridge 1, Jeremy Rogers.
Protege Tutorial Based on ProtegeOWLTutorial at protege website.
Protege Tutorial Based on ProtegeOWLTutorial at protege website.
Tutorial Le Phuoc Son Hoang Huu Hanh Hue University.
Of 27 lecture 7: owl - introduction. of 27 ece 627, winter ‘132 OWL a glimpse OWL – Web Ontology Language describes classes, properties and relations.
Protégé Classes, Properties and Instances Susana R. de Novoa UNIK4710.
Introduction to Ontologies focussing on OWL Nick Drummond.
1 CSC 9010 Spring, Paula MatuszekSome slides taken from
Coastal Atlas Interoperability - Ontologies (continued) Luis Bermudez Stephanie Watson Marine Metadata Interoperability Initiative 1.
Chapter 8: Web Ontology Language (OWL) Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005.
Visual Web Information Extraction With Lixto Robert Baumgartner Sergio Flesca Georg Gottlob.
1 of 6 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
The Semantic Web Week 14 Module Website: Lecture (SHORT): OWL PIZZAS Practical (LONGER): Getting to know Protégé-2000.
Semantics For the Semantic Web: The Implicit, the Formal and The Powerful Amit Sheth, Cartic Ramakrishnan, Christopher Thomas CS751 Spring 2005 Presenter:
Editing Description Logic Ontologies with the Protege OWL Plugin.
DAML+OIL Ontology Tutorial Chris Wroe, Robert Stevens (Sean Bechhofer, Carole Goble, Alan Rector, Ian Horrocks….) University of Manchester.
Objectives of the Lecture :
Logics for Data and Knowledge Representation
CS 106 Introduction to Computer Science I 04 / 13 / 2007 Friday the 13 th Instructor: Michael Eckmann.
Protege OWL Plugin Short Tutorial. OWL Usage The world wide web is a natural application area of ontologies, because ontologies could be used to describe.
Ontologies for the Integration of Geospatial Data Michael Lutz Workshop: Semantics and Ontologies for GI Services, 2006 Paper: Lutz et al., Overcoming.
ONTOLOGY ENGINEERING Lab #1 - August 25, Lab Syllabus 2  Lab 1 – 8/25: Introduction and Overview of Protégé  Lab 2 – 9/8: Building an ontology.
Building an Ontology of Semantic Web Techniques Utilizing RDF Schema and OWL 2.0 in Protégé 4.0 Presented by: Naveed Javed Nimat Umar Syed.
USCISIUSCISI Background Description Logic Systems Thomas Russ.
Metadata. Generally speaking, metadata are data and information that describe and model data and information For example, a database schema is the metadata.
Selected Topics in Software Engineering - Distributed Software Development.
BioHealth Informatics Group A Practical Introduction to Ontologies & OWL Session 2: Defined Classes and Additional Modelling Constructs in OWL Nick Drummond.
Umi Laili Yuhana December, Context Aware Group - Intelligent Agent Laboratory Computer Science and Information Engineering National Taiwan University.
Coastal Atlas Interoperability - Ontologies (Advanced topics that we did not get to in detail) Luis Bermudez Stephanie Watson Marine Metadata Interoperability.
Diagnostic Pathfinder for Instructors. Diagnostic Pathfinder Local File vs. Database Normal operations Expert operations Admin operations.
Based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester A Practical Introduction to Ontologies & OWL Session 2: Defined.
© O. Corcho, MC Suárez de Figueroa Baonza 1 OWL and SWRL Protégé 4: Building an OWL Ontology Mari Carmen Suárez-Figueroa, Oscar Corcho {mcsuarez,
OilEd An Introduction to OilEd Sean Bechhofer. Topics we will discuss Basic OilEd use –Defining Classes, Properties and Individuals in an Ontology –This.
Organization of the Lab Three meetings:  today: general introduction, first steps in Protégé OWL  November 19: second part of tutorial  December 3:
2nd Feb 2005Protege-OWL tutorial, © 2005 Univ. of Manchester1 Protégé-OWL Tutorial Session 2: Defined Classes Nick Drummond.
© University of Manchester Simplifying OWL Learning lessons from Anaesthesia Nick Drummond BioHealth Informatics Group.
2nd Sept 2004UK e-Science all hands meeting1 Designing User Interfaces to Minimise Common Errors in Ontology Development Alan Rector, Nick Drummond, Matthew.
ESIP Semantic Web Products and Services ‘triples’ “tutorial” aka sausage making ESIP SW Cluster, Jan ed.
Ontology Engineering Lab #3 – September 16, 2013.
Interfaces About Interfaces Interfaces and abstract classes provide more structured way to separate interface from implementation
Knowledge Representation. Keywordsquick way for agents to locate potentially useful information Thesaurimore structured approach than keywords, arranging.
Ontologies for the Integration of Geospatial DataTU Wien, April 24-28, 2006 Ontologies for the Integration of Geospatial Data Michael Lutz Semantics and.
ONTOLOGY ENGINEERING Lab #3 – September 15,
Description Logics Dr. Alexandra I. Cristea. Description Logics Description Logics allow formal concept definitions that can be reasoned about to be expressed.
+ Publishing Your First Post USING WORDPRESS. + A CMS (content management system) is an application that allows you to publish, edit, modify, organize,
BioHealth Informatics Group Copyright © 2005, The University of Manchester1 A Practical Introduction to Ontologies & OWL Additional Exercises: Common Errors.
Of 29 lecture 15: description logic - introduction.
Ontology Engineering Ron Rudnicki Lab #1 - August 26, 2013.
Based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester A Practical Introduction to Ontologies & OWL Session 1: Primitive.
Ccs.  Ontologies are used to capture knowledge about some domain of interest. ◦ An ontology describes the concepts in the domain and also the relationships.
1 Letting the classifier check your intuitions Existentials, Universals, & other logical variants Some, Only, Not, And, Or, etc. Lab exercise - 3b Alan.
OWL imports Nick Drummond or “How to make life hard for tool developers”
OWL (Ontology Web Language and Applications) Maw-Sheng Horng Department of Mathematics and Information Education National Taipei University of Education.
A Practical Introduction to Ontologies & OWL
Based on ProtegeOWLTutorial at protege website
Information Organization
ece 720 intelligent web: ontology and beyond
Lab exercise - 3a Alan Rector & colleagues
Presentation by the COODE and
Session 2: Defined Classes Nick Drummond
CS646: OWL Tutorial (session 2)
ece 720 intelligent web: ontology and beyond
Session 1: Primitive Classes Nick Drummond
ece 627 intelligent web: ontology and beyond
Presentation transcript:

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester A Practical Introduction to Ontologies & OWL Session 1: Primitive Classes in OWL Michael Lutz based on Slides from the Co-ode OWL Tutorial available from

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Overview ►Pizzas – Card Sorting ►Protégé Introduction ►Subsumption ►Creating a Class Hierarchy ►Consistency ►Disjointness ►Relationships & Properties ►Restrictions ►Polyhierarchies - Issues

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Our Domain ►Pizzas have been used in Manchester tutorials for years. ►Pizzas were selected as a domain for several reasons: ►They are fun ►They are internationally known ►They are highly compositional ►They have a natural limit to their scope ►They are fairly neutral ►Although arguments still break out over representation ►Even pizzas can do this - its an inevitable part of knowledge modelling ►ARGUING IS NOT BAD!

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester You are the Expert ►Most often it is not the domain expert that formalises their knowledge – because of the complexity of the modelling it is normally a specialist “knowledge engineer” ►Hopefully, as tools get easier to use, this will change ►Having access to experts is critical for most domains ►Luckily, we are all experts in Pizzas, so we just need some material to verify our knowledge…

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Reference Materials ►Having references to validate decisions, and act as provenance can be useful for maintaining an ontology ►Mistakes, omissions and intentions can be more easily traced if a reference can be made ►When building, we highly recommend documenting your model as you go – keeping provenance information is a good way of doing this ►We have provided you with a pizza menu and several cards with ingredients on

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Our Ontology ►When building an ontology we need an application in mind – ontologies should not be built for the sake of it ►Keep the application in mind when creating concepts – this should help you scope the project ►The PizzaFinder application has been developed so that you can plug your ontology in at the end of the day and see it in action Let us know your ideas for extending the application

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Our Application

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Exercise 1: Card Sorting

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Card Sorting - Issues ►different viewpoints ►Tomato – Vegetable or Fruit? ►culinary vs biological ►Ambiguity ►words not concepts ►Missing Knowledge ►What is peperonata? ►multiple classifications (2+ parents) ►lots of missing categories (superclasses?) ►competency questions ►What are we likely to want to “ask” our ontology? ►bear the application in mind

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester OWL Constructs PersonCountry Class (concept) Animal Individual (instance) Belgium Paraguay China Latvia Elvis Hai Holger Kylie S.Claus Rudolph Flipper arrow = relationship label = Property lives_in has_pet

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester OWL Constructs: Classes E.g. Mammal, Tree, Person, Building, Fluid, Company ►Classes are sets of Individuals ►aka “Type”, “Concept”, “Category” ►Membership of a Class is dependent on its logical description, not its name ►Classes do not have to be named – they can be logical expressions – e.g. things that have colour Blue ►A Class should be described such that it is possible for it to contain Individuals (unless the intention is to represent the empty class) ►Classes that cannot possibly contain any Individuals are said to be inconsistent

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester OWL Constructs: Properties E.g. hasPart, isInhabitedBy, isNextTo, occursBefore ►Properties are used to relate Individuals ►We often say that Individuals are related along a given property ►Relationships in OWL are binary: Subject  predicate  Object Individual a  hasProperty  Individual b michael_lutz  givesTutorial  SOGIS_Vienna_April_2006 ►N-ary relationships can be modelled with workarounds in OWL, but this design pattern will not be discussed today

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester OWL Constructs: Individuals E.g. me, you, this tutorial, this room ►Individuals are the objects in the domain ►aka “Instance”, “Object” ►Individuals may be (and are likely to be) a member of multiple Classes

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester … ►Is a knowledge modelling environment ►Is free, open source software ►Is developed by Stanford Medical Informatics ►Has a large user community (approx 30k) ►core is based on Frames (object oriented) modelling ►now supports OWL through the Protégé-OWL plugin So let’s have a look…

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Protégé-OWL

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Class Hierarchy Subsumption hierarchy Structure as asserted by the ontology engineer owl:Thing is the root class

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Subsumption ►Superclass/subclass relationship, “isa” ►All members of a subclass can be inferred to be members of its superclasses owl:Thing: superclass of all OWL Classes B A A subsumes B A is a superclass of B B is a subclass of A All members of B are also members of A

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Class Editor Class annotations (for class metadata) Class name and documentation Properties “available” to Class Disjoints widget Conditions Widget Class-specific tools (find usage etc)

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Exercise 2: Create Class Hierarchy ►You will notice that we use naming conventions for our ontology entities ►Typically, we use CamelNotation with a starting capital for Classes ►Use whatever conventions you like ►It is helpful to be consistent – especially when trying to find things in your ontology

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Saving OWL Files 1.Select File  Save Project As A dialog (as shown) will pop up 2.Select a file directly by clicking the button on the top right You will notice that 2 files are created.pprj – the project file this just stores information about the GUI and the workspace.owl – the OWL file this is where your ontology is stored in RDF/OWL format 3.Select OK OWL = easy to make mistakes = save regularly

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Loading OWL files 1.If you only have an OWL file: - File  New Project - Select OWL Files as the type - Tick Create from existing sources - Next to select the.owl file 2.If you’ve got a valid project file*: - File  Open Project - select the.pprj file * ieone created on this version of Protégé - the s/w gets updated once every few days, so don’t count on it unless you’ve created it recently– safest to build from the.owl file if in doubt

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Consistency Checking ►We’ve just created a class that doesn’t really make sense ►What is a MeatyVegetableTopping? ►We’d like to be able to check the logical consistency of our model ►This is one of the tasks that can be done automatically by software known as a Reasoner ►Being able to use a reasoner is one of the main advantages of using a logic-based formalism such as OWL (and why we are using OWL-DL)

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Reasoners ►Reasoners are used to infer information that is not explicitly contained within the ontology ►You may also hear them being referred to as Classifiers ►Standard reasoner services are: ►Consistency Checking ►Subsumption Checking ►Equivalence Checking ►Instantiation Checking ►Reasoners can be used at runtime in applications as a querying mechanism (esp. useful for smaller ontologies)

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Reasoners and Protégé ►Protégé-OWL supports the use of reasoners implementing the DIG interface ►This means that the reasoner you choose is independent of the ontology editor, so you can choose the implementation you want depending on your needs (eg some may be more optimised for speed/memory, others may have more features) ►These reasoners typically set up a service running locally or on a remote server – Protégé-OWL can only connect to reasoners over an connection

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Accessing the Reasoner Classify taxonomy (and check consistency) Just check consistency (for efficiency) Compute inferred types (for individuals)

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Reasoning about our Pizzas ►When we classify an ontology we could just use the “Check Consistency” button but we’ll get into the habit of doing a full classification as we’ll be doing this later ►The reasoner dialog will pop up while the reasoner works ►When the reasoner has finished, you will see an inferred hierarchy appear, which will show any movement of classes in the hierarchy ►If the reasoner has inferred anything about our model, this is reported in the reasoner dialog and in a separate results window ►inconsistent classes turn red ►moved classes turn blue

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Disjointness ►OWL assumes that classes overlap MeatTopping VegetableTopping = individual ►This means an individual could be both a MeatTopping and a VegetableTopping at the same time ►We want to state this is not the case

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Disjointness ►If we state that classes are disjoint MeatTopping VegetableTopping = individual ►This means an individual cannot be both a MeatTopping and a VegetableTopping at the same time ►We must do this explicitly in the interface

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester ClassesTab: Disjoints Widget Add siblings as disjoint Add new disjoint Remove disjoint siblings List of disjoint classes

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Exercise 3: Add Disjoints ►Run a reasoner locally on your machine ►Your reasoner may be found at…

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Why is MeatyVegetableTopping Inconsistent? ►We have asserted that a MeatyVegetableTopping is a subclass of two classes we have stated are disjoint ►The disjoint means nothing can be a MeatTopping and a VegetableTopping at the same time ►This means that MeatyVegetableTopping can never contain any individuals ►The class is therefore inconsistent ►This is what we expect! ►It can be useful to create classes we expect to be inconsistent to “test” your model – often we refer to these classes as “probes” – generally it is a good idea to document them as such to avoid later confusion

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Other Inconsistencies? ►Your ontology is likely to have several classes with multiple parents ►We call this a tangle ►As we have seen, a class cannot have 2 disjoint parents – it will be inconsistent ►To remove other inconsistencies you will have to be careful about where your disjoints are – remove disjoints between multiple parents by hand ►This is obviously an awkward thing to manage – we will later show you how to manage your tangle to simplify these issues

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester What have we got? ►We’ve created a tangled graph (not a tree – multiple parents) of mostly disjoint classes ►Disjoints are inherited down the subsumption hierarchy e.g. something that is a TomatoTopping cannot be a Pizza because its superclass, PizzaTopping, is disjoint from Pizza ►You should now be able to select every class and see its siblings in the disjoints widget (if it has any)

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester What are we missing? ►This is not a semantically rich model ►Apart from “is kind of” (subsumption) and “is not kind of” (disjoint), we currently don’t have any other information of interest ►We want to say more about Pizza Individuals, such as their relationship with other Individuals Pizza PizzaTopping = individual

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Relationships in OWL ►In OWL-DL, relationships can only be formed between Individuals or between an Individual and a data value. (In OWL-Full, Classes can be related, but this cannot be reasoned with) ►Relationships are formed along Properties ►We can restrict how these Properties are used: ►Globally – by stating things about the Property itself ►Or locally – by restricting their use for a given Class

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester OWL Properties ►Object Property – relates Individuals ►Datatype Property – relates Individuals to data (int, string, float etc) ►Annotation Property – for attaching metadata to classes, individuals or properties

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Properties Tab: Property Browser Note that Properties can be in a hierarchy, although we are not going to be using this feature today

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Creating Properties not used today: - New Datatype Property (String, int etc) New Object Property: Associates an individual to another individual Delete Property - New Annotation Properties for metadata - New SubProperty – ie create “under” the current selection

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Creating Properties ►We tend to name properties using camelNotation with a lowercase letter to begin ►We often create properties using 2 standard naming patterns: ►has… (e.g. hasColour) ►is…Of (e.g. isTeacherOf) or other suffixes (e.g. …In …To) ►This has several advantages: ►It is easier to find properties ►It is easier for tools to generate a more readable form (see tooltips on the classes in the hierarchy later) ►Inverses properties typically follow this pattern e.g. hasPart, isPartOf ►Our example hasBase fits into this (we will not create the inverse in this tutorial)

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Associating Properties with Classes ►We now have a property we want to use to describe Pizza individuals ►To do this, we must go back to the Pizza class and add some further information ►This comes in the form of Restrictions ►We create Restrictions using the Conditions widget ►Conditions can be any kind of Class – you have already added Named superclasses in the Conditions Widget. Restrictions are a type of Anonymous Class

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Conditions Widget Conditions asserted by the ontology engineer Add different types of condition Definition of the class (later) Description of the class Conditions inherited from superclasses

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Conditions Types Logical (Anonymous) Classes Add Named Superclass Create Restriction (next) Create Class Expression

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Creating Restrictions Restriction Type Restricted Property Filler Expression Syntax check Expression Construct Palette

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester What does this mean? ►We have created a restriction:  hasBase PizzaBase on Class Pizza as a necessary condition ►“If an individual is a member of this class, it is necessary that it has at least one hasBase relationship with an individual from the class PizzaBase” ►“Every individual of the Pizza class must have at least one base from the class PizzaBase” Pizza PizzaBase hasBase

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester What does this mean? ►We have created a restriction:  hasBase PizzaBase on Class Pizza as a necessary condition ►“There can be no individual, that is a member of this class, that does not have at least one hasBase relationship with an individual from the class PizzaBase” Pizza PizzaBase hasBase

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester  hasBase PizzaBase Why? ►We have created a restriction:  hasBase PizzaBase on Class Pizza as a necessary condition PizzaBase hasBase ►Each Restriction or Class Expression describes the set of all individuals that satisfy the condition

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Pizza Why? N ecessary conditions ►We have created a restriction:  hasBase PizzaBase on Class Pizza as a necessary condition ►Each necessary condition on a class is a superclass of that class PizzaBase hasBase  hasBase PizzaBase ►ie The restriction  hasBase PizzaBase is a superclass of Pizza ►As Pizza is a subclass of the restriction, all Pizzas must satisfy the restriction that they have at least one base from PizzaBase

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Exercise 4: Properties & Restrictions

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Restriction Types  Existential, someValuesFrom“Some”, “At least one”  Universal, allValuesFrom“Only”  hasValue“equals x”  Cardinality“Exactly n”  Max Cardinality“At most n”  Min Cardinality“At least n”

based on “A Practical Introduction to Ontologies & OWL” © 2005, The University of Manchester Summary You should now be able to: ►extract Knowledge (and act as an expert) ►identify components of the Protégé-OWL Interface ►create Primitive Classes ►create Properties ►create some basic Restrictions on a Class using Existential qualifiers