Title: Introduction to Ontologies
1Introduction to Ontologies
Nick Drummond
2Overview
- Getting to Know OWL
- How Can I Recognise OWL?
- OWL Constructs Overview
- More About Classes
- More About Properties
- Reasoners Inference
- Is OWL Dangerous?
- Common Mistakes
- The Open World Problem
- Creating Using OWL
- Where Can I find Examples?
3Getting to Know OWL
- OWL is the Web Ontology Language
- Its part of the Semantic Web framework
- Its a standard
4OWL Has Explicit Semantics
- Can therefore be used to capture knowledge in a
machine understandable way
5OWL Helps Us
Describe something, rather than just name it.
Class (BlueThing) does not mean anything
Class (BlueThing complete owlThing restriction
(hasColour someValuesFrom (Blue)))
6OWL comes in 3 Flavours
7How Can I Recognise OWL?
- OWL is often thought of as an extension to RDF
which is not strictly true - OWL is a syntax independent language that has
several common representations - Abstract Syntax
- N3
- RDF/XML
- Many tools try to completely abstract away from
the syntax
8OWL Syntax abstract syntax
- One of the clearer human-readable syntaxes
- Class(SpicyPizza complete
- annotation(rdfslabel "PizzaTemperada"_at_pt)
- annotation(rdfscomment "Any pizza that has a
spicy topping - is a SpicyPizza"_at_en)
- Pizza
- restriction(hasTopping someValuesFrom(SpicyToppin
g)) - )
9OWL Syntax N3
- Recommended for human-readable fragments
- defaultSpicyPizza
- a owlClass
- rdfscomment "Any pizza that has a spicy
topping is a SpicyPizza"_at_en - rdfslabel "PizzaTemperada"_at_pt
- owlequivalentClass
- a owlClass
- owlintersectionOf (defaultPizza
a owlRestriction - owlonProperty
defaulthasTopping - owlsomeValuesFrom
defaultSpicyTopping - )
- .
10OWL Syntax RDF/XML
- Recommended for serialisation
- ltowlClass rdfID"SpicyPizza"gt
- ltrdfslabel xmllang"pt"gtPizzaTemperadalt/rdfs
labelgt - ltrdfscomment xmllang"en"gtAny pizza that
has a spicy topping is a SpicyPizzalt/rdfscommentgt
- ltowlequivalentClassgt
- ltowlClassgt
- ltowlintersectionOf rdfparseType"Collect
ion"gt - ltowlClass rdfabout"Pizza"/gt
- ltowlRestrictiongt
- ltowlonPropertygt
- ltowlObjectProperty
rdfabout"hasTopping"/gt - lt/owlonPropertygt
- ltowlsomeValuesFrom
rdfresource"SpicyTopping"/gt - lt/owlRestrictiongt
- lt/owlintersectionOfgt
- lt/owlClassgt
- lt/owlequivalentClassgt
- lt/owlClassgt
11Tools Hiding the Syntax
- In the tools, you are more likely to find OWL
looking more like a tree of classes - And their descriptions
12OWL Constructs Overview
13OWL Constructs Classes
- Eg Mammal, Tree, Person, Building, Fluid, Company
- Classes are sets of Individuals
- aka Type, Concept, Category, Kind
- 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 eg things that have colour
Blue
14OWL Constructs Properties
- Eg 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
- nick_drummond ? givesTalk ? owl_overview_talk_Dec
_2005
15OWL Constructs Individuals
- Eg me, you, this talk, this room
- Individuals are the objects in our domain of
interest - aka Instance, Object
- Individuals may be (and are likely to be) a
member of multiple Classes
16More About Classes
- Describing a Class Hierarchy
- Types of Class
- Describing the Classes
- Relationships in OWL
17Describing a Class Hierarchy
- 2 important things to say about classes
- Where can we put them?
- Where cant we put them?
Animal
Shark
Hot Air Balloon?
18Where can we put this class?
Subsumption in OWL
- Subsumption is the primary axis (relationship) in
OWL - Superclass/subclass relationship, isa
- All members of a subclass must be members of its
superclasses
owlThing superclass of all Classes
- Animal subsumes Shark
- Animal is a superclass of Shark
- Shark is a subclass of Animal
- All Sharks are also Animals
19Where cant we put this class?
Disjointness in OWL
- Regardless of where they exist in the hierarchy,
OWL assumes that classes can overlap
By default, an individual could be both an Animal
and a Hot Air Balloon at the same time
20Where cant we put this class?
Disjointness in OWL
- Stating that 2 classes are disjoint means
individual
Something cannot be both an Animal and a Hot Air
Balloon at the same time
Hot Air Balloon can never be a subclass of Animal
(and vice-versa) This can help us find errors
21Types of Class
22Primitive vs Defined
Blue Things
Sharks
Smart Class Acts like a query
Natural Kinds
Like primitive, but also define necessary
conditions that are also sufficient to recognise
a member Eg have colour Blue
Describe the necessary features of the members Eg
live underwater
All sharks live underwater, but not everything
that lives underwater is a shark
All things that have colour blue are members of
this class
23Anonymous Classes
- Made up of logical expressions
- Unions and Intersections (Or, And)
- Complements (Not)
- Enumerations (specified membership)
- Restrictions (related to Property use)
- The members of an anonymous class are the set of
Individuals that satisfy its logical definition
24Relationships 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
25Restrictions
- Restrictions are a type of anonymous class
- They describe the relationships that must hold
for members (Individuals) of this class
26An example
- Existential restriction on primitive class Shark
- necessarily hasMouthPart some Teeth
Every member of the Shark class must have at
least one mouthpart from the class Teeth
27An example
- Existential restriction on primitive class Shark
- necessarily hasMouthPart some Teeth
There can be no member of Shark, that does not
have at least one hasMouthPart relationship with
an member of class Teeth
28Restriction Types
29More About Properties
- Different Types
- Object Property relates Individuals to
Individuals - Datatype Property relates Individuals to data
(int, string, float etc) - Annotation Property for attaching metadata to
classes, individuals or properties
30Property Characteristics
- Domain and range can be set
- A property hierarchy can be created
- Inverse properties can be set
- Properties can be
- Transitive
- Functional
- Inverse Functional
- Symmetric
31Reasoners Inference
Reasoner A clever (probably magic) black box
designed by clever people Best to let them worry
about how they work
32Reasoners Inference
- 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 (Automatic Subsumption)
- Equivalence Checking
- Instantiation Checking
33Consistency Checking
Shark (primitive class) Animal and eats some
(Person and Seal)
Inconsistent cannot contain any individuals
Disjoint (Person, Seal) Person and Seal
empty Cannot have some empty
Person
Seal
34Automatic Classification
Trivial example
Shark (primitive class) Animal and hasMouthPart
some Fangs
35When to use a Reasoner
- We often use one during development as an
ontology compiler. A well designed ontology can
be compiled to check its meaning is that intended - Or at publish time so many inferences are
already made for the user apps - Or at runtime in applications as a querying
mechanism (esp. useful for smaller ontologies)
36Reasoners and the tools
- Many of the editing tools and APIs support the
use of reasoners implementing the DIG interface - This means that the reasoner you choose is
independent of the application using it, 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, for example can connect to reasoners
over an http// connection
37Is OWL Dangerous?
- Yes, in the wrong hands!!
- 3 major issues
- Because of the explicit semantics its important
that OWL be used as intended - Learning OWL is non-trivial and some common
mistakes are made by most beginners - OWL operates under the Open World Assumption
38Use OWL Correctly
- As weve seen, OWL is more than just a syntax
- Please do not decide to interpret it in your own
way - Doing this makes reuse impossible
39Common Modelling Mistakes
- Some of the common mistakes made when modelling
have been enumerated - They include
- Misuse of property domain and range
- Misunderstanding of intersections and other
constructs - Not understanding the Open World Assumption
- Misuse/lack of of disjoints
- See OWL Pizzas Common errors common patterns
- http//www.co-ode.org/resources/papers/
40Open World Assumption
- In a closed world (like DBs), the information we
have is everything - On the Semantic Web, we want people to be able to
extend our models. In this open world, we assume
there can always more information added later - Where a database, for example, returns a negative
if it cannot find some data, the reasoner makes
no assumption about the completeness of the
information it is given - The reasoner cannot determine something does not
hold unless it is explicitly stated in the model
41Open World Assumption
- hasMouthPart some
- Do sharks have a trunk?
- Can sharks fly hot air balloons?
42Closure
- hasMouthPart some
- hasMouthPart only
- Sharks definitely cannot have trunks(as long as
Trunks are disjoint from Teeth) - But someone could still extend our description to
say that Sharks can fly Hot Air Balloons
43Creating Using OWL
- Issues
- Editors
- Programming APIs
- Storage
- Reasoners
44Issues
- Suitability for purpose
- Open vs Closed World problems
- When to use a reasoner
- How to expose/hide the ontology
- Interfaces/ontology services
- Ontology Development Methodologies
- Small team, tight knit
- Open folksonomies
45Editing OWL
- Editing the RDF/XML by hand is probably not
recommended (as we have seen) - Ontologies range in size, but because of their
explicit nature they require verbose definitions - Thankfully we have tools to help us reduce the
syntactic complexity - However, the tools are still in the process of
trying to reduce the semantic complexity - Building ontologies in OWL is still hard
46OWL Editors
http//www.xml.com/pub/a/2004/07/14/onto.html
47- Is a knowledge modelling environment
- Is free, open source software
- Is developed by Stanford Medical Informatics
- Has a large user community (approx 30k)
- http//protege.stanford.edu
48- core is based on object oriented modelling
- has an open architecture that allows other
modelling languages to be built on top - supports development of plugins to allow backend
/ interface extensions - supports OWL through the Protégé-OWL plugin
49(No Transcript)
50Programming with OWL
- Protégé OWL API
- Wonderweb OWL API
- Jena
- pOWL API
51API features
- Parsing / Serialisation
- Model Manipulation
- Reasoning
- Querying
- Modularisation
52Storage of OWL
- Files (RDF/XML)
- Databases (triplestores)
- 3Store
- Sesame
- Jena
- InstanceStore (Individuals)
53Reasoners
54Where Can I Find Examples?
- The w3c OWL pages are a good place to start
- The w3c Semantic Web Best Practices and
Deployment Working Group - Tutorials and courses run by Manchester and other
establishments generate a large number of
examples (eg CS646)
55Example Ontologies
- OBO Open BioMedical Ontologies
- The Gene Ontology
- Bio tutorial and Pizza tutorial examples on the
CO-ODE site - Libraries are commonly published on OWL editor
websites - Search using Google or Swoogle
56Example Applications
- PizzaFinder (dummy query application)
- COHSE dynamic hyperlinking using ontologies
- Protein Phosphatase Modelling ask Robert
Stevens - OWL Validator
- GONG (Gene Ontology Next Generation)
- AKT http//www.aktors.org/
- The Semantic Web Challenge http//challenge.seman
ticweb.org/
57Where Do I Go Next?
- For tutorial materials, examples and links to
some of the tools go to the CO-ODE site - http//www.co-ode.org/
(in)famous pizza tutorial