1 / 82

OWL - PowerPoint PPT Presentation

  • Uploaded on

OWL. Dr. Alexandra I. Cristea http://www.dcs.warwick.ac.uk/~acristea/. What is OWL?. W3C Recommendation, February 2004. web standard Newest OWL 2 (November 2009) W eb O ntology L anguage built on top of RDF for processing information on the web

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' OWL' - deacon

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript


Dr. Alexandra I. Cristea


What is owl
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

Why owl
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).

Owl is different from rdf
OWL is Different from RDF

  • OWL , RDF similar

  • but OWL

    • stronger language

    • greater machine interpretability

    • larger vocabulary

    • stronger syntax.

What is an ontology
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

Owl sublanguages
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

Owl is written in xml
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#"

More on owl
(more on) OWL

  • Based on predecessors (DAML+OIL)

  • A Web Language: Based on RDF(S)

  • An Ontology Language: Based on logic

Owl ontologies
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

Owl use cases
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

Owl example airport
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/


  • 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

Scenario architecture
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, ...)

Tourism semantic web
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

Tourism semantic web1
Tourism Semantic Web







Tourism Ontology










Web Services


  • Individuals (e.g., “FourSeasons”)

  • Properties

    • ObjectProperties (references)

    • DatatypeProperties (simple values)

  • Classes (e.g., “Hotel”)

Individuals instances




Individuals (Instances)

  • Represent objects in the domain

  • Specific things

  • Two names could represent the same “real-world” individual

Example of individuals
Example of Individuals

<Region rdf:ID="CentralCoastRegion" />

equivalent to:

<owl:Thing rdf:ID="CentralCoastRegion" />

<owl:Thing rdf:about="#CentralCoastRegion"> <rdf:type rdf:resource="#Region"/>









  • Link two individuals together

  • Relationships (0..n, n..m)

Example property
Example Property

<owl:ObjectProperty rdf:ID=“hasPart"> <rdfs:domain rdf:resource="#Destination" /> <rdfs:range rdf:resource="#Beaches" />


Property domain range






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 hasPropertyis a Datatype Property)

Properties range and domain








Properties, Range and Domain

  • Property characteristics

    • Domain: “left side of relation” (Destination)

    • Range: “right side” (Accomodation)


  • 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

Property restriction example cardinality
Property Restriction: Example Cardinality

<owl:Class rdf:ID="Wine">

<rdfs:subClassOf rdf:resource="&food;PotableLiquid"/> <rdfs:subClassOf>


<owl:onProperty rdf:resource="#madeFromGrape"/>

<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>


</rdfs:subClassOf> ...



<owl:onProperty rdf:resource="#madeFromGrape"/>

<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>


Owl extends other ontologies
OWL Extends Other Ontologies

  • extend existing ontology by saying things about terms in it:

    <owl:Class rdf:about="#Animal">


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



    <owl:Restriction owl:cardinality="2">

    <owl:onProperty rdf:resource="#hasParent"/>




  • If ontology is already published, you use the full URL.

    <owl:Class rdf:about="http://www.sample.com/ontologies/zoo#Animal">

Inverse properties





Inverse Properties

  • Represent bidirectional relationships

  • Adding a value to one property also adds a value to the inverse property (!)

Inverse property example
Inverse Property Example

<owl:ObjectProperty rdf:ID="hasPart">

<rdf:type rdf:resource="&owl;FunctionalProperty" />


<owl:ObjectProperty rdf:ID=“isPartOf"> <owl:inverseOf rdf:resource="#hasPart" />


Transitive properties

hasPart (derived)






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

Transitive property example
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" />


<Region rdf:ID="SantaCruzMountainsRegion">

<locatedIn rdf:resource="#CaliforniaRegion" />


<Region rdf:ID="CaliforniaRegion">

<locatedIn rdf:resource="#USRegion" />


Sub properties example
Sub-properties Example

<owl:ObjectProperty rdf:ID="hasWineDescriptor"> <rdfs:domain rdf:resource="#Wine" />

<rdfs:range rdf:resource="#WineDescriptor" />


<owl:ObjectProperty rdf:ID="hasColor"> <rdfs:subPropertyOf rdf:resource="#hasWineDescriptor" />

<rdfs:range rdf:resource="#WineColor" /> ...





  • Link individuals to primitive values(integers, floats, strings, Booleans etc)

  • Often: AnnotationProperties without formal “meaning”

hasSize = 4,500,000

isCapital = true

rdfs:comment = “Don’t miss the opera house”









  • Sets of individuals with common characteristics

  • Individuals are instances of at least one class

Examples of classes in owl
Examples of Classes in OWL

<owl:Class rdf:ID="Winery"/>

<owl:Class rdf:ID="Region"/>

<owl:Class rdf:ID="ConsumableThing"/>

Superclass relationships





Superclass Relationships

  • Classes can be organized in a hierarchy

  • Direct instances of subclass are also (indirect) instances of superclasses

Example subclasses
Example Subclasses

<owl:Class rdf:ID="PotableLiquid">

<rdfs:subClassOf rdf:resource="#ConsumableThing" /> …


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


Class relationships






Class Relationships

  • Classes can overlap arbitrarily

Class disjointness









Class Disjointness

  • All classes could potentially overlap

  • In many cases we want to make sure they don’t share instances


Example disjoint
Example disjoint

<owl:Class rdf:about="#Man"> <owl:disjointWith rdf:resource="#Woman"/>


only in OWL full !

Class versus individual instance
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.

Class descriptions

Things with three star accommodation

Things with sightseeing opportunities





Class Descriptions

  • Classes can be described by their logical characteristics

  • Descriptions are “anonymous classes”

Class descriptions1
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)

Reasoning with classes
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?

Restrictions overview
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

Cardinality restrictions
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

Allvaluesfrom restrictions
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

Value constraints
Value constraints


<owl:onProperty rdf:resource="#hasParent" /> <owl:allValuesFrom rdf:resource="#Human" />


Somevaluesfrom restrictions
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

Hasvalue restrictions
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

Enumerated classes





Enumerated Classes

  • Consist of exactly the listed individuals

Example description enumeration
Example Description: Enumeration


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


Not OWL Lite!

Logical class definitions
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





  • The class of individuals that belong to class A or class B (or both)

  • Example: Adventure or Sports activities





  • 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

Implicit intersectionof




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


QuietDestination (grayed)




  • 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

Class conditions
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.”

Class conditions 2



Class Conditions (2)

(not everything that fulfills theseconditions is a NationalPark)

(everything that fulfills theseconditions is a QuietDestination)





  • A RuralArea is a Destination

  • A Campground is BudgetAccomodation

  • Hiking is a Sport

  • Therefore:Every NationalPark is a Backpackers-Destination

(Other BackpackerDestinations)

Reasoning with property domain range
Reasoning with Property, Domain & Range

<owl:ObjectProperty rdf:ID="madeFromGrape">

<rdfs:domain rdf:resource="#Wine"/>

<rdfs:range rdf:resource="#WineGrape"/>


<owl:Thing rdf:ID="LindemansBin65Chardonnay"> <madeFromGrape rdf:resource="#ChardonnayGrape" />


=> LindemansBin65Chardonnay is a wine

Putting it all together
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

Ontology import
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

Tourism semantic web 2
Tourism Semantic Web (2)




Tourism Ontology




Web Services

Owl file import
OWL File & import

<?xml version="1.0"?>








xml:base="http://protege.stanford.edu/plugins/owl/owl- library/heli-bunjee.owl">

[. . .]


Owl file owl body in rdf wrap
OWL File: [. . .] OWL body in RDF wrap

<owl:Ontology rdf:about="">

<owl:imports rdf:resource="http://protege.stanford.edu/



<owl:Class rdf:ID="HeliBunjeeJumping">

<rdfs:subClassOf rdf:resource="http://protege.stanford.



<HeliBunjeeJumping rdf:ID="ManicSuperBunjee">



Owl file in helibunjeejumping
OWL File [***] in HeliBunjeeJumping


<rdf:Description rdf:about="http://protege.stanford.edu/plugins/owl/owl- library/travel.owl#Sydney">

<travel:hasActivity rdf:resource="#ManicSuperBunjee"/>




[ +++ ]


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

Owl file in travel hascontact
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>


Owl lite synopsis

  • Header Information:

  • Ontology

  • imports

  • Class Intersection:

  • intersectionOf

  • Versioning:

  • versionInfo

  • priorVersion

  • backwardCompatibleWith

  • incompatibleWith

  • DeprecatedClass

  • DeprecatedProperty

  • Annotation Properties:

  • rdfs:label

  • rdfs:comment

  • rdfs:seeAlso

  • rdfs:isDefinedBy

  • AnnotationProperty

  • OntologyProperty

  • Datatypes

  • xsd datatypes

OWL Lite Synopsis

  • 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)

  • 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

Owl dl full
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

Problems with rdfs
Problems with RDFS

RDFS 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

Web ontology language requirements
Web Ontology Language Requirements

Desirable 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

  • From rdf to owl
    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

    Owl language
    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 SHIQDescription 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)

    Owl built in classes
    OWL built-in classes

    • owl:FunctionalProperty, owl:InverseFunctionalProperty, owl:SymmetricProperty, owl:TransitiveProperty, owl:DeprecatedClass, owl:DeprecatedProperty

    Owl built in properties
    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

    Owl class constructors
    OWL Class Constructors

    • XMLS datatypes as well as classes in

    • Arbitrarily complex nesting of constructors

    Owl syntax
    OWL Syntax

    E.g., Person hasChild.(Doctor hasChild.Doctor):


    <owl:intersectionOf rdf:parseType="collection">

    <owl:Class rdf:about="#Person"/>


    <owl:onProperty rdf:resource="#hasChild"/>


    <owl:unionOf rdf:parseType="collection">

    <owl:Class rdf:about="#Doctor"/>


    <owl:onProperty rdf:resource="#hasChild"/>

    <owl:hasClass rdf:resource="#Doctor"/>







    Xml schema datatypes in owl
    XML Schema Datatypes in OWL

    • OWL supports XML Schemaprimitive datatypes

      • E.g., integer, real, string, …

    • Strict separationbetween “object” classes and datatypes

      • Disjoint interpretation domain for datatypes

      • Disjoint “object” and datatype properties

    Why separate classes and datatypes
    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

    Owl query language owl ql
    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.

    Owl conclusion
    OWL Conclusion

    • We have learned:

      • OWL definition

      • OWL comparison with RDF

      • OWL classes and properties

      • Usage scenarios