Upload
sofia-quinlan
View
221
Download
3
Tags:
Embed Size (px)
Citation preview
Dr. Alexandra I. Cristea
http://www.dcs.warwick.ac.uk/~acristea/
OWL
2
What is OWL?• W3C Recommendation, February 2004.
– web standard – Newest OWL 2 (November 2009)
• Web Ontology Language • built on top of RDF • for processing information on the web • designed to be interpreted by computers, not
for being read by people • OWL is written in XML
3
Why OWL?• OWL is a part of the "Semantic Web Vision" - a
future where:– Web information has exact meaning – Web information can be processed by computers – Computers can integrate information from the web
• OWL was designed to – provide a common way to process the content of web
information (instead of displaying it).– be read by computer applications (instead of humans).
4
OWL is Different from RDF
• OWL , RDF similar
• but OWL – stronger language – greater machine interpretability – larger vocabulary – stronger syntax.
5
What is an Ontology?• formal specification of a certain domain• machine manipulable model• Ontology is about the exact description of things and
their relationships and an inference mechanism for it.
• For the web, ontology is about – the exact description of web information and– relationships between web information and– reasoning with it.
• dictionary taxonomy ontology
6
OWL Sublanguages• OWL has three sublanguages:
– OWL Lite • hierarchy + simple constraints + cardinality {0,1}
– OWL DL (includes OWL Lite) • complete, decidable (part of FOL)
• Type separations (class <> property <> individual)
• OWL DL is the subset of OWL (Full) that is optimized for reasoning and knowledge modeling
– OWL Full (includes OWL DL) • aug. meaning RDF..
• Classes - individuals
7
OWL is Written in XML
• By using XML, OWL information can easily be exchanged between different types of computers using different types of operating system and application languages.
• Oh yes, there is a namespace:
xmlns:owl ="http://www.w3.org/2002/07/owl#"
8
(more on) OWL
• Based on predecessors (DAML+OIL)
• A Web Language: Based on RDF(S)
• An Ontology Language: Based on logic
9
OWL Ontologies• What’s inside an OWL ontology
– Classes + class-hierarchy– Properties (Slots) / values– Relations between classes
(inheritance, disjoints, equivalents)– Restrictions on properties (type, cardinality)– Characteristics of properties (transitive, …)– Annotations– Individuals
• Reasoning tasks: classification, consistency checking
10
OWL Use Cases
• At least two different user groups– OWL used as data exchange language
(define interfaces of services and agents)– OWL used for terminologies or knowledge models
11
OWL Example (Airport)• Example:
http://www.cs.man.ac.uk/~rector/Modules/CS646-2004/Labs/Thursday/Simple_University-01.owl
• Find the error in the OWL Resource: http://www.daml.org/2001/10/html/airport-ont
• Validators are:– For RDF: http://www.w3.org/RDF/Validator – For OWL: http://www.mygrid.org.uk/OWL/Validator
• Semantic web search engine: http://swoogle.umbc.edu/
12
Scenario
• Semantic Web for Tourism/Traveling
• Goal: Find matching holiday destinations for a customer
I am looking for a comfortable destination
with beach access
Tourism Web
13
Scenario Architecture
• A search problem: Match customer’s expectations with potential destinations
• Required: Web Service that exploits formal information about the available destinations– Accommodation (Hotels, B&B, Camping, ...)– Activities (Sightseeing, Sports, ...)
14
Tourism Semantic Web
• Open World:– New hotels are being added– New activities are offered
• Providers publish their services dynamically
• Standard format / grounding is needed → Tourism Ontology
15
Tourism Semantic Web
OWLMetadata
(Individuals)
OWLMetadata
(Individuals)
OWLMetadata
(Individuals)
OWLMetadata
(Individuals)
Tourism Ontology
Web Services
Destination
AccomodationActivity
16
OWL
• Individuals (e.g., “FourSeasons”)
• Properties– ObjectProperties (references)– DatatypeProperties (simple values)
• Classes (e.g., “Hotel”)
17
Individuals (Instances)
• Represent objects in the domain
• Specific things
• Two names could represent the same “real-world” individual
SydneysOlympicBeachBondiBeach
Sydney
18
Example of Individuals
<Region rdf:ID="CentralCoastRegion" />
equivalent to:
<owl:Thing rdf:ID="CentralCoastRegion" />
<owl:Thing rdf:about="#CentralCoastRegion"> <rdf:type rdf:resource="#Region"/>
</owl:Thing>
19
ObjectProperties
• Link two individuals together
• Relationships (0..n, n..m)
Sydney
BondiBeachhasPart
FourSeasonshasAccomodation
20
Example Property
<owl:ObjectProperty rdf:ID=“hasPart"> <rdfs:domain rdf:resource="#Destination" /> <rdfs:range rdf:resource="#Beaches" />
</owl:ObjectProperty>
21
Property Domain & Range• If a relation is:
subject_individual hasProperty object_individual
• The domain is the class of the subject individual• The range is the class of the object individual (or a
datatype if hasProperty is a Datatype Property)
DomainClass RangeClasshasProperty
hasProperty
hasProperty
22
Properties, Range and Domain• Property characteristics
– Domain: “left side of relation” (Destination)– Range: “right side” (Accomodation)
Sydney
BestWestern
FourSeasonshasAccomodation
DestinationAccomodation
hasAccomodation
23
Domains
• Individuals can only take values of properties that have matching domain– “Only Destinations can have Accommodations”
• Domain can contain multiple classes
• Domain can be undefined:Property can be used everywhere
24
Property Restriction: Example Cardinality<owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="&food;PotableLiquid"/>
<rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape"/> <owl:minCardinality
rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality> </owl:Restriction>
</rdfs:subClassOf> ... </owl:Class>
<owl:Restriction> <owl:onProperty rdf:resource="#madeFromGrape"/> <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality> </owl:Restriction>
25
OWL Extends Other Ontologies• extend existing ontology by saying things about terms in it:<owl:Class rdf:about="#Animal">
<rdfs:comment> Animals have exactly two parents, ie: If x is an animal, it has exactly 2
parents (but NOT anything that has 2 parents is an animal). </rdfs:comment> <rdfs:subClassOf> <owl:Restriction owl:cardinality="2"> <owl:onProperty rdf:resource="#hasParent"/> </owl:Restriction> </rdfs:subClassOf>
</owl:Class>
• If ontology is already published, you use the full URL.<owl:Class rdf:about="http://www.sample.com/ontologies/zoo#Animal">
26
Inverse Properties
• Represent bidirectional relationships
• Adding a value to one property also adds a value to the inverse property (!)
Sydney
BondiBeachhasPart
isPartOf
27
Inverse Property Example
<owl:ObjectProperty rdf:ID="hasPart">
<rdf:type rdf:resource="&owl;FunctionalProperty" />
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID=“isPartOf"> <owl:inverseOf rdf:resource="#hasPart" />
</owl:ObjectProperty>
28
Transitive Properties
• If A is related to B and B is related to C then A is also related to C
• Often used for part-of relationships
Sydney
BondiBeach
hasPart
NewSouthWales
hasPart
hasPart (derived)
29
Transitive Property Example<owl:ObjectProperty rdf:ID="locatedIn">
<rdf:type rdf:resource="&owl;TransitiveProperty" /> <rdfs:domain rdf:resource="&owl;Thing" /> <rdfs:range rdf:resource="#Region" />
</owl:ObjectProperty>
<Region rdf:ID="SantaCruzMountainsRegion"> <locatedIn rdf:resource="#CaliforniaRegion" />
</Region>
<Region rdf:ID="CaliforniaRegion"> <locatedIn rdf:resource="#USRegion" />
</Region>
30
Sub-properties Example<owl:ObjectProperty rdf:ID="hasWineDescriptor">
<rdfs:domain rdf:resource="#Wine" /> <rdfs:range rdf:resource="#WineDescriptor" />
</owl:ObjectProperty> <owl:ObjectProperty rdf:ID="hasColor">
<rdfs:subPropertyOf rdf:resource="#hasWineDescriptor" /> <rdfs:range rdf:resource="#WineColor" /> ...
</owl:ObjectProperty>
31
DatatypeProperties
• Link individuals to primitive values(integers, floats, strings, Booleans etc)
• Often: AnnotationProperties without formal “meaning”
Sydney
hasSize = 4,500,000isCapital = truerdfs:comment = “Don’t miss the opera house”
32
Classes• Sets of individuals with common
characteristics
• Individuals are instances of at least one class
City
Sydney
Beach
Cairns
BondiBeach
CurrawongBeach
33
Examples of Classes in OWL
<owl:Class rdf:ID="Winery"/>
<owl:Class rdf:ID="Region"/>
<owl:Class rdf:ID="ConsumableThing"/>
34
Superclass Relationships• Classes can be organized in a hierarchy
• Direct instances of subclass are also (indirect) instances of superclasses
Cairns
Sydney
Canberra
Coonabarabran
35
Example Subclasses<owl:Class rdf:ID="PotableLiquid"> <rdfs:subClassOf rdf:resource="#ConsumableThing" /> …
</owl:Class>
<owl:Class rdf:ID="Wine"> <rdfs:subClassOf rdf:resource="&food;PotableLiquid"/> <rdfs:label xml:lang="en">wine</rdfs:label> <rdfs:label xml:lang="fr">vin</rdfs:label> ... </owl:Class>
36
Class Relationships
• Classes can overlap arbitrarily
City
Sydney
CairnsBondiBeach
RetireeDestination
37
Class Disjointness• All classes could potentially overlap
• In many cases we want to make sure they don’t share instances
Sydney
UrbanArea RuralArea
SydneyWoomera
CapeYork
disjointWith
City Destination
38
Example disjoint
<owl:Class rdf:about="#Man"> <owl:disjointWith rdf:resource="#Woman"/>
</owl:Class>
only in OWL full !
39
Class versus Individual (Instance)• Levels of representation:
– In certain contexts a class can be considered an instance of something else.
– Grape, set of all grape varietals. CabernetSauvingonGrape is an instance of this class, but could be considered a class, the set of all actual Cabernet Sauvignon grapes.
• Subclass vs. instance: easy to confuse instance-of relationship with subclass relationship! – CabernetSauvignonGrape as individual & instance of Grape,
or subclass of Grape. – But: Grape class is the set of all grape varietals, any
subclass should be a subset. – CabernetSauvignonGrape is an instance of Grape, It does
not describe a subset of Grape varietals, it is a grape varietal.
40
Class Descriptions• Classes can be described by their
logical characteristics
• Descriptions are “anonymous classes”Things with three star accommodation
Things with sightseeing opportunities
RetireeDestination
SydneySanJose
BlueMountains
41
Class Descriptions
• Define the “meaning” of classes
• Anonymous class expressions are used– “All national parks have campgrounds.”– “A backpackers destination is a destination
that has budget accommodation and offers sports or adventure activities.”
• Expressions mostly restrict property values (OWL Restrictions)
42
Reasoning with Classes
• Tool support for 3 types of reasoning exists:– Consistency checking:
Can a class have any instances?
– Classification:Is A a subclass of B?
– Instance classification:Which classes does an individual belong to?
43
Restrictions (Overview)
• Define a condition for property values– allValuesFrom– someValuesFrom– hasValue– minCardinality– maxCardinality– cardinality
• An anonymous class consisting of all individuals that fulfill the condition
44
Cardinality Restrictions• Meaning: The property must have at least/at
most/exactly x values• is the shortcut for and• Example: A FamilyDestination is a
Destination that has at least one Accomodation and at least 2 Activities
45
allValuesFrom Restrictions• Meaning: All values of the property must
be of a certain type
• Warning: Also individuals with no values fulfill this condition (trivial satisfaction)
• Example: Hiking is a Sport that is only possible in NationalParks
46
Value constraints
<owl:Restriction>
<owl:onProperty rdf:resource="#hasParent" /> <owl:allValuesFrom rdf:resource="#Human" />
</owl:Restriction>
47
someValuesFrom Restrictions• Meaning: At least one value of the property
must be of a certain type
• Others may exist as well
• Example: A NationalPark is a RuralArea that has at least one Campground and offers at least one Hiking opportunity
48
hasValue Restrictions• Meaning: At least one of the values of
the property is a certain value
• Similar to someValuesFrom but with Individuals and primitive values
• Example: A PartOfSydney is a Destination where one of the values of the isPartOf property is Sydney
49
Enumerated Classes• Consist of exactly the listed individuals
OneStarRating
TwoStarRatingThreeStarRating
BudgetAccomodation
50
Example Description: Enumeration
<owl:Class> <owl:oneOf rdf:parseType="Collection"> <owl:Thing rdf:about="#Eurasia"/> <owl:Thing rdf:about="#Africa"/> <owl:Thing rdf:about="#NorthAmerica"/> <owl:Thing rdf:about="#SouthAmerica"/> <owl:Thing rdf:about="#Australia"/> <owl:Thing rdf:about="#Antarctica"/>
</owl:oneOf> </owl:Class> Not OWL Lite!
51
Logical Class Definitions• Define classes out of other classes
– unionOf (or)– intersectionOf (and)– complementOf (not)
• Allow arbitrary nesting of class descriptions (A and (B or C) and not D)
• >>> OWL DL
52
unionOf• The class of individuals that belong to
class A or class B (or both)
• Example: Adventure or Sports activities
Adventure Sports
53
intersectionOf• The class of individuals that belong to
both class A and class B
• Example: A BudgetHotelDestination is a destination with accomodation that is a budget accomodation and a hotel
BudgetAccomodation
Hotel
54
Implicit intersectionOf• When a class is defined by more than one class
description, then it consists of the intersection of the descriptions
• Example: A luxury hotel is a hotel that is also an accommodation with 3 stars
AccomodationWith3StarsHotel
LuxuryHotel
55
complementOf• The class of all individuals that do not belong to
a certain class
• Example: A quiet destination is a destination that is not a family destination
Destination
FamilyDestination
QuietDestination (grayed)
56
Class Conditions• Necessary Conditions:
(Primitive / partial classes)“If we know that something is a X,then it must fulfill the conditions...”
• Necessary & Sufficient Conditions:(Defined / complete classes)“If something fulfills the conditions...,then it is an X.”
57
Class Conditions (2)
QuietDestination
NationalPark
(not everything that fulfills theseconditions is a NationalPark)
(everything that fulfills theseconditions is a QuietDestination)
58
ClassificationNationalPark
BackpackersDestination
• A RuralArea is a Destination
• A Campground is BudgetAccomodation
• Hiking is a Sport• Therefore:
Every NationalPark is a Backpackers-Destination
(Other BackpackerDestinations)
59
Reasoning with Property, Domain & Range<owl:ObjectProperty rdf:ID="madeFromGrape"> <rdfs:domain rdf:resource="#Wine"/> <rdfs:range rdf:resource="#WineGrape"/></owl:ObjectProperty>
<owl:Thing rdf:ID="LindemansBin65Chardonnay"> <madeFromGrape rdf:resource="#ChardonnayGrape" />
</owl:Thing> => LindemansBin65Chardonnay is a wine
60
Visualization with OWLViz
61
Putting it All Together
• Ontology has been developed
• Published on a dedicated web address
• Ontology provides standard terminology
• Other ontologies can extend it
• Users can instantiate the ontology to provide instances– specific hotels– specific activities
62
Ontology Import
• Adds all classes, properties and individuals from an external OWL ontology into your project
• Allows to create individuals, subclasses, or to further restrict imported classes
• Can be used to instantiate an ontology for the Semantic Web
63
Tourism Semantic Web (2)
OWLMetadata
(Individuals)Tourism Ontology
Web Services
Destination
AccommodationActivity
64
OWL File & import<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:travel="http://protege.stanford.edu/plugins/
owl/owl-library/travel.owl#" xml:base="http://protege.stanford.edu/plugins/owl/owl-
library/heli-bunjee.owl">
[. . .]</rdf:RDF>
65
OWL File: [. . .] OWL body in RDF wrap <owl:Ontology rdf:about=""> <owl:imports rdf:resource="http://protege.stanford.edu/
plugins/owl/owl-library/travel.owl"/> </owl:Ontology>
<owl:Class rdf:ID="HeliBunjeeJumping"> <rdfs:subClassOf rdf:resource="http://protege.stanford. edu/plugins/owl/owl-library/travel.owl#BunjeeJumping"/> </owl:Class>
<HeliBunjeeJumping rdf:ID="ManicSuperBunjee">
[***]
</HeliBunjeeJumping>
66
OWL File [***] in HeliBunjeeJumping
<travel:isPossibleIn> <rdf:Description rdf:about="http://protege.stanford.edu/plugins/owl/owl-library/travel.owl#Sydney"> <travel:hasActivity rdf:resource="#ManicSuperBunjee"/> </rdf:Description> </travel:isPossibleIn> <travel:hasContact> [ +++ ] </travel:hasContact> <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Manic super bunjee now offers nerve wrecking jumps from 300 feet right out of a helicopter. Satisfaction guaranteed.</rdfs:comment>
67
OWL File [+++] in travel:hasContact
<travel:Contact rdf:ID="MSBInc"> <travel:hasEmail rdf:datatype="http://www.w3.org/2001/XMLSchema#string">[email protected] </travel:hasEmail> <travel:hasCity rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Sydney</travel:hasCity> <travel:hasStreet rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Queen Victoria St</travel:hasStreet> <travel:hasZipCode rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1240</travel:hasZipCode> </travel:Contact>
68
OWL Lite Synopsis• RDF Schema
Features: • Class (Thing, Nothing) • rdfs:subClassOf • rdf:Property • rdfs:subPropertyOf • rdfs:domain • rdfs:range • Individual • (In)Equality: • equivalentClass • equivalentProperty • sameAs • differentFrom • AllDifferent • distinctMembers
• Property Characteristics: • ObjectProperty
• DatatypeProperty
• inverseOf
• TransitiveProperty
• SymmetricProperty
• FunctionalProperty
• InverseFunctionalProperty • Property Restrictions: • Restriction • onProperty • allValuesFrom • someValuesFrom • Restricted Cardinality: • minCardinality (only 0 or 1) • maxCardinality (only 0 or 1) • cardinality (only 0 or 1)
• Header Information: • Ontology • imports • Class Intersection: • intersectionOf • Versioning: • versionInfo • priorVersion • backwardCompatibleW
ith
• incompatibleWith • DeprecatedClass • DeprecatedProperty • Annotation
Properties: • rdfs:label • rdfs:comment • rdfs:seeAlso • rdfs:isDefinedBy • AnnotationProperty • OntologyProperty • Datatypes • xsd datatypes
69
OWL DL + Full• Class Axioms: • oneOf, dataRange • disjointWith • equivalentClass
(applied to class expressions) • rdfs:subClassOf
(applied to class expressions) • Boolean Combinations of Class Expressions: • unionOf • complementOf • intersectionOf • Arbitrary Cardinality: • minCardinality • maxCardinality • cardinality • Filler Information: • hasValue
70
Problems with RDFSRDFS too weak to describe resources in sufficient detail
– No localised range and domain constraints• Can’t say that the range of hasChild is person when applied to
persons and elephant when applied to elephants
– No existence/cardinality constraints• Can’t say that all instances of person have a mother that is also a
person, or that persons have exactly 2 parents
– No transitive, inverse or symmetrical properties• Can’t say that isPartOf is a transitive property, that hasPart is the
inverse of isPartOf or that touches is symmetrical
Difficult to provide reasoning support– No “native” reasoners for non-standard semantics– May be possible to reason via FO axiomatisation
71
Web Ontology Language RequirementsDesirable features identified for Web Ontology
Language:
Extends existing Web standards – Such as XML, RDF, RDFS
• Easy to understand and use– Should be based on familiar KR idioms
• Formally specified
• Of “adequate” expressive power
• Possible to provide automated reasoning support
72
From RDF to OWL• Two languages developed to satisfy above requirements
– OIL: developed by group of (largely) European researchers (several from EU OntoKnowledge project)
– DAML-ONT: developed by group of (largely) US researchers (in DARPA DAML programme)
• Efforts merged to produce DAML+OIL– Development was carried out by “Joint EU/US Committee on Agent
Markup Languages”
– Extends (“DL subset” of) RDF
• DAML+OIL submitted to W3C as basis for standardisation– Web-Ontology (WebOnt) Working Group formed
– WebOnt group developed OWL language based on DAML+OIL
– OWL language now a W3C Proposed Recommendation
73
OWL Language• Three species of OWL
– OWL full is union of OWL syntax and RDF– OWL DL restricted to FOL fragment (¼ DAML+OIL)– OWL Lite is “easier to implement” subset of OWL DL
• Semantic layering– OWL DL ¼ OWL full within DL fragment– DL semantics officially definitive
• OWL DL based on SHIQ Description Logic– In fact it is equivalent to SHOIN(Dn) DL
• OWL DL Benefits from many years of DL research– Well defined semantics– Formal properties well understood (complexity, decidability)– Known reasoning algorithms– Implemented systems (highly optimised)
74
OWL built-in classes
• owl:FunctionalProperty, owl:InverseFunctionalProperty, owl:SymmetricProperty, owl:TransitiveProperty, owl:DeprecatedClass, owl:DeprecatedProperty
75
OWL built in properties• owl:equivalentClass, owl:disjointWith,
owl:equivalentProperty, owl:inverseOf, owl:sameAs, owl:differentFrom, owl:complementOf, owl:unionOf, owl:intersectionOf, owl:oneOf, owl:allValuesFrom, owl:onProperty, owl:someValuesFrom, owl:hasValue, owl:minCardinality, owl:maxCardinality, owl:cardinality, owl:distinctMembers
• annotation properties: owl:versionInfo, rdfs:label, rdfs:comment, rdfs:seeAlso, rdfs:isDefinedBy
• ontology properties: owl:imports, owl:priorVersion, owl:backwardCompatibleWith, owl:incompatibleWith
76
OWL Class Constructors
• XMLS datatypes as well as classes in
• Arbitrarily complex nesting of constructors
77
OWL Syntax
<owl:Class> <owl:intersectionOf rdf:parseType="collection"> <owl:Class rdf:about="#Person"/> <owl:Restriction> <owl:onProperty rdf:resource="#hasChild"/> <owl:allValuesFrom> <owl:unionOf rdf:parseType="collection"> <owl:Class rdf:about="#Doctor"/> <owl:Restriction> <owl:onProperty rdf:resource="#hasChild"/> <owl:hasClass rdf:resource="#Doctor"/> </owl:Restriction> </owl:unionOf> </owl:allValuesFrom> </owl:Restriction> </owl:intersectionOf></owl:Class>
E.g., Person hasChild.(Doctor hasChild.Doctor):
78
OWL Axioms
79
XML Schema Datatypes in OWL
• OWL supports XML Schema primitive datatypes– E.g., integer, real, string, …
• Strict separation between “object” classes and datatypes– Disjoint interpretation domain for datatypes
– Disjoint “object” and datatype properties
80
Why Separate Classes and Datatypes?• Philosophical reasons:
– Datatypes structured by built-in predicates
– Not appropriate to form new datatypes using ontology language
• Practical reasons:– Ontology language remains simple and compact
– Semantic integrity of ontology language not compromised
– Implementability not compromised — can use hybrid reasoner
81
OWL query language: OWL-QL
• OWL Query Language (OWL-QL) is an updated version of the DAML Query Language (DQL).
• It is intended to be a candidate standard language and protocol for query-answering dialogues among Semantic Web computational agents.
82
OWL Conclusion
• We have learned:– OWL definition– OWL comparison with RDF– OWL classes and properties– Usage scenarios