1 / 57

Introduction to Ontologies

Introduction to Ontologies. Nick Drummond. focussing on OWL. Overview. 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

laird
Download Presentation

Introduction to Ontologies

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Ontologies Nick Drummond focussing on OWL

  2. Overview • 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?

  3. Getting to Know OWL • OWL is the Web Ontology Language • It’s part of the Semantic Web framework • It’s a standard

  4. OWL Has Explicit Semantics Can therefore be used to capture knowledge in a machine understandable way

  5. OWL Helps Us… Describe something, rather than just name it. Class (BlueThing) does not mean anything Class (BlueThing complete owl:Thing restriction (hasColour someValuesFrom (Blue)))

  6. Lite partially restricted to aid learning curve • DL = Description LogicDescription Logics are a fragment of First Order Logic (FOL) that can be reasoned with lite Full unrestricted use of OWL constructs, but cannot reason DL Full OWL comes in 3 Flavours

  7. How 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

  8. OWL Syntax: abstract syntax • One of the clearer human-readable syntaxes Class(SpicyPizza complete annotation(rdfs:label "PizzaTemperada"@pt) annotation(rdfs:comment "Any pizza that has a spicy topping is a SpicyPizza"@en) Pizza restriction(hasTopping someValuesFrom(SpicyTopping)) )

  9. OWL Syntax: N3 • Recommended for human-readable fragments default:SpicyPizza a owl:Class ; rdfs:comment "Any pizza that has a spicy topping is a SpicyPizza"@en ; rdfs:label "PizzaTemperada"@pt ; owl:equivalentClass [ a owl:Class ; owl:intersectionOf (default:Pizza [ a owl:Restriction ; owl:onProperty default:hasTopping ; owl:someValuesFrom default:SpicyTopping ]) ] .

  10. OWL Syntax: RDF/XML • Recommended for serialisation <owl:Class rdf:ID="SpicyPizza"> <rdfs:label xml:lang="pt">PizzaTemperada</rdfs:label> <rdfs:comment xml:lang="en">Any pizza that has a spicy topping is a SpicyPizza</rdfs:comment> <owl:equivalentClass> <owl:Class> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Pizza"/> <owl:Restriction> <owl:onProperty> <owl:ObjectProperty rdf:about="#hasTopping"/> </owl:onProperty> <owl:someValuesFrom rdf:resource="#SpicyTopping"/> </owl:Restriction> </owl:intersectionOf> </owl:Class> </owl:equivalentClass> </owl:Class>

  11. Tools “Hiding the Syntax” • In the tools, you are more likely to find OWL looking more like a tree of classes • And their descriptions

  12. lives_in Person Country Elvis Belgium Holger lives_in Paraguay Class (concept) Kylie Latvia S.Claus China Hai lives_in Individual (instance) has_pet arrow = relationship label = Property has_pet Flipper has_pet Animal Rudolph OWL Constructs Overview

  13. OWL 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

  14. OWL 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

  15. OWL 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

  16. More About Classes • Describing a Class Hierarchy • Types of Class • Describing the Classes • Relationships in OWL

  17. Describing a Class Hierarchy 2 important things to say about classes: • Where can we put them? • Where can’t we put them? Animal Shark Hot Air Balloon?

  18. Animal Shark Where 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 owl:Thing superclass of all Classes • Animal subsumes Shark • Animal is a superclass of Shark • Shark is a subclass of Animal • All Sharks are also Animals

  19. Hot Air Balloon Animal = individual Where can’t 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

  20. Hot Air Balloon Animal Where can’t 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

  21. owl:Thing (everything) Animal (primitive named class) hasDangerLevel some Dangerous (anonymous class - restriction) owl:Nothing (nothing) DangerousAnimal (defined named class) Types of Class

  22. Primitive vs Defined Blue Things Sharks “Smart Class” Acts like a query “Natural Kinds” Like primitive, but also: define necessaryconditions 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”

  23. Anonymous 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

  24. 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

  25. Restrictions • Restrictions are a type of anonymous class • They describe the relationships that must hold for members (Individuals) of this class

  26. hasMouthPart Shark Teeth hasMouthPart hasMouthPart An 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”

  27. hasMouthPart Shark Teeth hasMouthPart hasMouthPart An 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”

  28. Restriction Types

  29. More About Properties • Different Types: • Object Propertyrelates Individuals to Individuals • Datatype Propertyrelates Individuals to data (int, string, float etc) • Annotation Propertyfor attaching metadata to classes, individuals or properties

  30. Property 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

  31. ? ! ? ! ? ! Reasoners & Inference Reasoner: A clever (probably magic) black box designed by clever people Best to let them worry about how they work

  32. Reasoners: 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

  33. Consistency 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

  34. DangerousAnimal (defined class) Animal and hasMouthPart some Teeth Teeth Fangs Automatic Classification Trivial example Shark (primitive class) Animal and hasMouthPart some Fangs

  35. When 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)

  36. Reasoners 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

  37. Is 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

  38. Use OWL Correctly • As we’ve seen, OWL is more than just a syntax • Please do not decide to interpret it in your own way • Doing this makes reuse impossible

  39. Common 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/

  40. Open 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

  41. Open World Assumption hasMouthPart some • Do sharks have a trunk? • Can sharks fly hot air balloons?

  42. Closure 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

  43. Creating & Using OWL • Issues • Editors • Programming APIs • Storage • Reasoners

  44. Issues • 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”

  45. Editing 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

  46. SWOOP OWL 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. Programming with OWL • Protégé OWL API • Wonderweb OWL API • Jena • pOWL API

More Related