173
1 Costello, David B. Jacobs. © 2003 The MITRE Corporation. OWL Web Ontology Language Roger L. Costello David B. Jacobs The MITRE Corporation (The creation of this tutorial was sponsored by DARPA)

1 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation. OWL Web Ontology Language Roger L. Costello David B. Jacobs The MITRE Corporation (The

Embed Size (px)

Citation preview

1 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OWL Web Ontology Language

Roger L. Costello

David B. Jacobs

The MITRE Corporation(The creation of this tutorial was sponsored by DARPA)

2 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Acknowledgments

• We are very grateful to the Defense Advanced Research Projects Agency (DARPA) for funding the creation of this tutorial. We are especially grateful to Murray Burke (DARPA) and John Flynn (BBN) for making it all happen.

• We would like to thank Stephen Dyer for creating the labs.

• Special thanks to the following people for their help in answering our unending questions:

Peter F. Patel-SchneiderMike DeanIan DavisJim HendlerNikita OgievetskyDan ConnollyJeff Z. PanPeter CrowtherFrank ManolaDeborah McGuinness

Leo ObrstRafael BatresSteven GolleryEnrico FranconiMike PoolDavid AllsoppYuzhong QuJonathan BordenMary Pulvermacher

3 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Prerequisites

• OWL builds on top of (i.e., extends) RDF Schema.• This tutorial assumes that you already have a solid understanding of RDF

and RDF Schema.– As well as this tutorial on OWL, we have also created a tutorial on RDF, and a

tutorial on RDF Schema. Please see here:• http://www.xfront.com/rdf/

• http://www.xfront.com/rdf-schema/

4 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Origins of OWL

DAML

DAML+OIL

DAML = DARPA Agent Markup LanguageOIL = Ontology Inference Layer

OWL is now on track tobecome a W3C Recommendation!

OIL

OWL

RDF

All were influenced by RDF

5 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

W3C Status of OWL

• OWL is currently (April, '03) at the W3C Candidate Recommendation stage.

• OWL is targeted to go to Pre-Recommendation status in May, '03.

• OWL should be be at the W3C Recommendation status by summer '03.

• For complete OWL schedule details see:– http://www.w3.org/2001/sw/WebOnt/#L151

6 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Purpose of OWL

• The purpose of OWL is identical to RDF Schemas - to provide an XML vocabulary to define classes, properties and their relationships.– RDF Schema enables you to express very rudimentary

relationships and has limited inferencing capability.

– OWL enables you to express much richer relationships, thus yielding a much enhanced inferencing capability.

• The benefit of OWL is that it facilitates a much greater degree of inferencing than you get with RDF Schemas.

7 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OWL and RDF Schema enables machine-processable semantics

XML/DTD/XML Schemas

RDF Schema

OWL

Syntax

Semantics

8 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Organization of this Tutorial

• OWL gives you a syntax to express statements about properties and classes, above and beyond what you can make with RDF Schema.

• In this tutorial we present:– Using OWL to define properties.

– Using OWL to define classes.

– OWL statements that you can incorporate into your instance documents.

9 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OWL = RDF Schema + more

• Note: all of the elements/attributes provided by RDF and RDF Schema can be used when creating an OWL document.

10 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

This tutorial will use the below "water taxonomy" to explain OWL

Tributary

Rivulet

Brook

11 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Notations used in this TutorialClass1

Class2 Class3

Properties: property1: Type1 property2: Type2 ...

These are the properties of Class1.The name of the property is shown(e.g., property1), and its range isshown in italics (e.g., Type1).

Class2 and Class3 are subclasses of Class1.

Class1

Class2

Class3

Properties: property1: Type1 property2: Type2 ...

An alternate notationto the above classhierarchy is to use aVenn diagram, asshown here.

Taxonomy (Class Hierarchy):

Venn Diagram:

Continued

12 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Notations used in this Tutorial

LocationPersonbirthplace

1

This notation is used to indicate that a person has only one birthplace location:

NumberPersondriversLicenseNumber

1

This notation is used to indicate that a person has only one driver'slicense number. Further, a driver's license number is associated withonly one person:

1

13 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OWL Tools• RDF Instance Creator (RIC)

– http://www.mindswap.org/~mhgrove/RIC/RIC.shtml– Limited OWL capabilities

• OilEd:– http://oiled.man.ac.uk/– Editor for ontologies– Mostly for DAML+OIL, exports OWL but not a current representation

• OWL Validator:– http://owl.bbn.com/validator/– Web-based or command-line utility– Performs basic validation of OWL file

• Dumpont:– http://www.daml.org/2001/03/dumpont/– a simple class and hierarchy property viewer, which also works with OWL, e.g.,

• http://www.daml.org/cgi-bin/dumpont?http://www.w3.org/2002/07/owl

• OWL Ontology Validator:– http://phoebus.cs.man.ac.uk:9999/OWL/Validator– a "species validator" that checks use of OWL Lite, OWL DL, and OWL Full constructs

• Euler:– http://www.agfa.com/w3c/euler/– an inference engine which has been used for a lot of the OWL Test Cases

• Chimaera:– http://www.ksl.stanford.edu/software/chimaera/– Ontology evolution environment (diagnostics, merging, light editing)– Mostly for DAML+OIL, being updated to export and inport current OWL

• DAML Tools Page - http://www.daml.org/tools/

14 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Two Minute Preview of OWL

• Before getting into the details of OWL let's spend a couple of minutes examining three examples which demonstrate some of the capabilities of OWL.

15 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Example 1: The Robber and the Speeder

DNA samples from a robbery identified John Walker Lindh as the suspect.Here is the police report on the robbery:

<Robbery rdf:ID="report-2003-03-17-XTf4"> <description>...</description> <suspect> <Person rdf:about="http://www.person.org#John_Walker_Lindh"/> </suspect></Robbery>

Later in the day a state trooper gives a person a ticket for speeding. The driver's license showed the name Sulayman. Here is the state trooper's report on the speeder:

<Speeder rdf:ID="report-2003-03-17-QWRP"> <description>...</description> <driver> <Person rdf:about="http://www.person.org#Sulayman"/> </driver></Speeder>

16 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Any Relationship between the Robber and the Speeder?

The Central Intelligence Agency (CIA) has a file on Sulayman:

<Person rdf:about="http://www.person.org#Sulayman"> <owl:sameIndividualAs rdf:resource="http://www.person.org#John_Walker_Lindh"/></Person>

Robbery

Speeder

John Walker Lindh

Sulayman

owl:sameIndividualAs

Inference: The Robber and the Speeder are one and the same!

The local police, state troopers, and CIA share their information, thus enabling thefollowing inference to be made:

17 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Lesson Learned

• OWL provides a property (owl:sameIndividualAs) for indicating that two resources (e.g., two people) are the same.

18 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Example 2: Using a Web Bot to Purchase a Camera

My Web Assistant(a Web Bot)

Web Site

"Please send me your e-catalog"

<SLR rdf:ID="Olympus-OM10"> <f-stop>1.4</f-stop> <lens>300mm zoom</lens> <manual-adaptor>optional</manual-adaptor> <cost>$325 USD</cost></SLR>

Is "SLR" a Camera?

"Here's my e-catalog"

1

2

3

* A Web Bot is a software program which crawls the Web looking for information.

19 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Camera OWL Ontology

Camera

SLR Large-Format Digital

My Web Assistant program consults the Camera OWL Ontology. The Ontologyshows how SLR is classified. The Ontology shows that SLR is a type (subclass) of Camera. Thus, my Web Assistant Bot dynamically realizes that:

Inference: The Olympus-OM10 SLR is a Camera!

20 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Lesson Learned

• OWL provides elements to construct taxonomies (called class hierarchies). The taxonomies can be used to dynamically discover relationships!

21 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Example 3: The Birthplace of King Kamahameha is …

<Person rdf:about="http://www.person.org#King_Kamahameha"> <birthplace rdf:about="http://www.states.org#Hawaii"/></Person>

<Person rdf:about="http://www.person.org#King_Kamahameha"> <birthplace rdf:resource="http://www.history.org#Sandwich_Islands"/></Person>

<Person rdf:about="http://www.person.org#King_Kamahameha"> <birthplace rdf:resource="http://www.tourism.org#Aloha_State"/></Person>

Upon scanning the Web, three documents were found which contain information about King Kamahameha:

Question: What is the birthplace of King Kamahameha?

1

2

3

22 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Answer: all three!The Person OWL Ontology indicates that a Person has only one birthplace location:

LocationPersonbirthplace

1

Thus, the Person OWL Ontology enables this inference to be made:

Inference: Hawaii, Sandwich Islands, and Aloha State all represent the same location!

King Kamahameha Hawaii

Sandwich Islands

Aloha State

birthplace

King Kamahamehabirthplace

King Kamahamehabirthplace

They all representthe same location!

23 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Lesson LearnedIn the example we saw that the Person Ontology defined this relationship:

LocationPersonbirthplace

1

This is read as: "A person has exactly one birthplace location."

This example is a specific instance of a general capability in OWLto specify that a subject Resource has exactly one value:

Resource(value)

Resource(subject)

property

1

We saw in the example that such information can be used to make inferences.

OWL Terminology: properties that relate a resource to exactly one other resource are said to have a cardinality=1.

24 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Review

• The preceding examples demonstrated some of OWL's capabilities:– An OWL instance document can be enhanced with an OWL property to

indicate that it is the same as another instance.– OWL provides the capability to construct taxonomies (class hierarchies).

Such taxonomies can be used to dynamically understand how entities in an XML instance relate to other entities.

– OWL provides the capability to specify that a subject can have only one value.

• By leveraging OWL, additional facts about your instance data can be dynamically ascertained. That is, OWL facilitates a dynamic understanding of the semantics of your data!

• Okay, that's it for the OWL preview. Now it's time to look at the entire suite of OWL capabilities ...

25 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Using OWL to Define Properties

26 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining Property Characteristics

• RDF Schema provides three ways to characterize a property:– range: use this to indicate the range of values for a property.

– domain: use this to associate a property with a class.

– subPropertyOf: use this to specialize a property.

• Note: OWL documents also use rdfs:range, rdfs:domain, and rdfs:subPropertyOf.

• On the following slides we show the additional ways that

OWL provides to characterize properties. – We will see that these additional property characteristics enable

greater inferencing.

27 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Symmetric Properties

A Symmetric property - if water source A connectsTo water source B then water source B connects to water source A.

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

TributaryBrook

Rivulet

Properties: connectsTo: NaturallyOccurringWaterSource

28 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Symmetric Property

Yangtze.rdf

<?xml version="1.0"?><River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <connectsTo> <River rdf:about="http://www.china.org/rivers#Wu"/> </connectsTo></River>

Assume that connectsTo has been defined, in an OWL document, to be a Symmetric property:

Since connectsTo has been defined to be a Symmetric propertywe can infer that:

The Wu River connectsTo the Yangtze River.

Yangtze Wu

connectsTo

connectsTo

29 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Transitive Properties

A Transitive property - if A is containedIn B, and B is containedIn C then A is containedIn C.

OceanLake

BodyOfWater

River Sea

NaturallyOccurringWaterSource

TributaryBrook

Rivulet

Properties: containedIn: BodyOfWater

Stream

30 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Transitive Property

EastChinaSea.rdf

<?xml version="1.0"?><Sea rdf:ID="EastChinaSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <containedIn> <Sea rdf:about="http://www.china.gov#ChinaSea"/> </containedIn></Sea>

If containedIn is defined to be a Transitive property then we can infer that:

The EastChinaSea is containedIn the PacificOcean.

ChinaSea.rdf

<?xml version="1.0"?><Sea rdf:about="http://www.china.gov#ChinaSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <containedIn> <Ocean rdf:about="http://www.geodesy.org#PacificOcean"/> </containedIn></Sea>

Suppose that you retrieve these two documents from two different Web sites. One describes the EastChinaSea and the other describes the ChinaSea:

31 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Transitive Property

EastChinaSea ChinaSeacontainedIn

PacificOceancontainedIn

If containedIn is defined to be Transitive, we can infer that:

EastChinaSea PacificOceancontainedIn

32 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Functional Properties

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

TributaryBrook

Rivulet

Properties: emptiesInto: BodyOfWater

A Functional property - for each instance there is at most one value for the property.

33 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Functional Property

Yangtze-doc1.rdf

Yangtze-doc2.rdf

Suppose that there are two independent documents describing the Yangtze River:

<?xml version="1.0"?><River rdf:about="http://www.china.org/rivers#Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/></River>

<?xml version="1.0"?><River rdf:about="http://www.china.org/rivers#Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <emptiesInto rdf:resource="http://www.national-geographic.org#S1001-x-302"/></River>

If emptiesInto is defined to be functional then we can infer that:

http://www.china.org/geography#EastChinaSea = http://www.national-geographic.org#S1001-x-302

34 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Functional Property (cont.)

YangtzeemptiesInto

YangtzeemptiesInto

If emptiesInto has beendefined to be Functionalthen we can infer that thesetwo values must refer to thesame thing.

EastChinaSea

S1001-x-302

35 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Inverse Properties

OceanLake

BodyOfWater

River

Stream

Properties: emptiesInto: BodyOfWater

Sea

NaturallyOccurringWaterSource

TributaryBrook

Rivulet

Properties: feedsFrom: River

Inverse properties - if property P1 relates Resource 1 to Resource 2, then its Inverse property relates Resource 2 to Resource 1.

36 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Inverse Properties

Yangtze.rdf

<?xml version="1.0"?><River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/></River>

Consider this document:

The above states that:

The Yangtze emptiesInto the EastChinaSea.

If emptiesInto and feedsFrom are defined to be Inverse properties then we can infer that:

The EastChinaSea feedsFrom the Yangtze.

37 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

emptiesInto <---> feedsFrom (Inverse Properties)

Yangtze EastChinaSeaemptiesInto

EastChinaSea YangtzefeedsFrom

River BodyOfWateremptiesInto

BodyOfWater RiverfeedsFrom

The general case:

A specific instance:

38 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Inverse Functional Properties

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

TributaryBrook

Rivulet An Inverse Functional property - for a range value the domain is unique.

Properties: emptiesInto: BodyOfWater

Properties: feedsFrom: River

(functional)

39 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Inverse Functional Property

EastChinaSea.rdf

<?xml version="1.0"?><Sea rdf:ID="EastChinaSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <feedsFrom> <River rdf:about="http://www.china.org/rivers#Yangtze"/> </feedsFrom></Sea>

<?xml version="1.0"?><Sea rdf:ID="S1001-x-302" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <feedsFrom> <River rdf:about="http://www.china.org/rivers#Yangtze"/> </feedsFrom></Sea>

S1001-x-302.rdf

These two independent documents discuss "feeding from" the Yangtze:

40 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Inverse Functional Property (cont.)

If feedsFrom has been defined to be InverseFunctional then we can infer that: EastChinaSea = S1001-x-302.

YangtzefeedsFrom

S1001-x-302 YangtzefeedsFrom

If feedsFrom has beendefined to be InverseFunctional then we caninfer that these twoResources must referto the same thing.

EastChinaSea

41 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Time for Syntax!

• On the previous slides we have seen the different ways that OWL provides to characterize properties.

• Now let's look at the OWL syntax for expressing these property characteristics.

42 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining Properties in OWL

• Recall that with RDF Schema the rdf:Property was used for both:– relating a Resource to another Resource

• Example: The emptiesInto property relates a River to a BodyOfWater.

– relating a Resource to an rdfs:Literal or a datatype• Example: The length property relates a River to a

xsd:nonNegativeInteger.

• OWL decided that these are two classes of properties, and thus each should have its own class:– owl:ObjectProperty is used to relate a Resource to another Resource

– owl:DatatypeProperty is used to relate a Resource to an rdfs:Literal or an XML Schema built-in datatype

43 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

ObjectProperty vs. DatatypeProperty

ResourceObjectProperty

Resource

DatatypePropertyResource Value

An ObjectProperty relates one Resource to another Resource:

A DatatypeProperty relates a Resource to a Literal or an XML Schema datatype:

44 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

owl:ObjectProperty and owl:DatatypeProperty are subclasses of rdf:Property

rdf:Property

owl:ObjectProperty owl:DatatypeProperty

rdf:Property

owl:ObjectProperty owl:DatatypeProperty

45 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining Properties in OWL vs. RDF Schema

<rdf:Property rdf:ID="emptiesInto"> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="#BodyOfWater"/></rdf:Property>

<rdf:Property rdf:ID="length"> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"/></rdf:Property>

<owl:ObjectProperty rdf:ID="emptiesInto"> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="#BodyOfWater"/></owl:ObjectProperty>

<owl:DatatypeProperty rdf:ID="length"> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"/></owl:DatatypeProperty>

RD

FS

OW

L

46 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

The OWL Namespace

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:ObjectProperty rdf:ID="emptiesInto"> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="#BodyOfWater"/> </owl:ObjectProperty>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

47 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

What is the URI for the properties

and classes defined by an OWL document?

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:ObjectProperty rdf:ID="emptiesInto"> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="#BodyOfWater"/> </owl:ObjectProperty>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

The URI for an identifier (i.e., an rdf:ID value) is the concatenation of the xml:basevalue (or the document URL if there is no xml:base) with "#" and the identifier.Thus, the complete URI for the above emptiesInto property is: http://www.geodesy.org/water/naturally-occurring#emptiesInto

Note: These are the same rules that RDF Schema uses for determining the URI.

What is the full URI for the emptiesInto property in this OWL document:

48 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining Symmetric Properties

Brook

Rivulet

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

Tributary

Properties: connectsTo: NaturallyOccurringWaterSource

A Symmetric property - if water source A connectsTo water source B then water source B connects to water source A.

49 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Syntax for indicating that a property is Symmetric

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:ObjectProperty rdf:ID="connectsTo"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#SymmetricProperty"/> <rdfs:domain rdf:resource="#NaturallyOccurringWaterSource"/> <rdfs:range rdf:resource="#NaturallyOccurringWaterSource"/> </owl:ObjectProperty>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

Read this as: "connectsTo is an ObjectProperty. Specifically, it is a Symmetric Object Property."

50 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

owl:SymmetricProperty is a subclass of owl:ObjectProperty

rdf:Property

owl:ObjectProperty owl:DatatypeProperty

rdf:Property

owl:ObjectProperty owl:DatatypeProperty

owl:SymmetricProperty

SymmetricPropertyConsequently, the range of a SymmetricProperty can only be a Resource, i.e., the range cannot be a Literal or a datatype.

51 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Equivalent!

<owl:ObjectProperty rdf:ID="connectsTo"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#SymmetricProperty"/> <rdfs:domain rdf:resource="#NaturallyOccurringWaterSource"/> <rdfs:range rdf:resource="#NaturallyOccurringWaterSource"/></owl:ObjectProperty>

<owl:SymmetricProperty rdf:ID="connectsTo"> <rdfs:domain rdf:resource="#NaturallyOccurringWaterSource"/> <rdfs:range rdf:resource="#NaturallyOccurringWaterSource"/></owl:SymmetricProperty>

1

2

Read this as: "connectsTo is an ObjectProperty. Specifically, it is a Symmetric Object Property."

Read this as: "connectsTo is a SymmetricProperty."

Question: Why would you ever use the first form? The second form seems a lot more straightforward. Right?Answer: In this example, you are correct, the second form is more straightforward. However, you will see in a moment that we can define a property to be of several types, e.g., Symmetric and Functional. In that case it may be more straightforward to use the first form (and use multiple rdf:type elements).

52 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining Transitive Properties

Brook

Rivulet

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

Tributary

A Transitive property - if A is containedIn B, and B is containedIn C then A is containedIn C.

Properties: containedIn: BodyOfWater

53 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Syntax for indicating that a property is Transitive

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:ObjectProperty rdf:ID="containedIn"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#TransitiveProperty"/> <rdfs:domain rdf:resource="#Sea"/> <rdfs:range rdf:resource="#BodyOfWater"/> </owl:ObjectProperty>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

54 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

owl:TransitiveProperty is a subclass of owl:ObjectProperty

rdf:Property

owl:ObjectProperty owl:DatatypeProperty

rdf:Property

owl:ObjectProperty owl:DatatypeProperty

owl:TransitiveProperty

TransitivePropertyConsequently, the range of a TransitiveProperty can only be a Resource, i.e., the range cannot be a Literal or a datatype.

55 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining Functional Properties

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

TributaryBrook

Rivulet

Properties: emptiesInto: BodyOfWater

A Functional property - for each instance there is at most one value for the property.

56 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Syntax for indicating that a property is Functional

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:ObjectProperty rdf:ID="emptiesInto"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="BodyOfWater"/> </owl:ObjectProperty>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

57 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

owl:FunctionalProperty is a subclass of rdf:Property

rdf:Property

owl:ObjectProperty owl:DatatypeProperty

FunctionalProperty

rdf:Property

owl:ObjectProperty owl:DatatypeProperty owl:FunctionalProperty

Consequently, the range of a FunctionalProperty can be either a Resource or a Literal or a datatype.

58 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining Inverse Properties

OceanLake

BodyOfWater

River

Stream

Properties: emptiesInto: BodyOfWater

Sea

NaturallyOccurringWaterSource

TributaryBrook

Rivulet

Properties: feedsFrom: River

Inverse Properties - if property P1 relates Resource 1 to Resource 2, then its inverse property relates Resource 2 to Resource 1.

59 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Syntax for indicating that a property is the inverse of another property

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:ObjectProperty rdf:ID="emptiesInto"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="#BodyOfWater"/> </owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="feedsFrom"> <owl:inverseOf rdf:resource="#emptiesInto"/> <rdfs:domain rdf:resource="#BodyOfWater"/> <rdfs:range rdf:resource="#River"/> </owl:ObjectProperty>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

Notice that the values for domain and rangeare flipped from that inemptiesInto.

60 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining Inverse Functional Properties

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

TributaryBrook

Rivulet An Inverse Functional property - for a range value the domain is unique.

Properties: feedsFrom: River

Properties: emptiesInto: BodyOfWater

(Functional)

61 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Syntax for indicating that a property is Inverse Functional<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:ObjectProperty rdf:ID="emptiesInto"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="#BodyOfWater"/> </owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="feedsFrom"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/> <owl:inverseOf rdf:resource="#emptiesInto"/> <rdfs:domain rdf:resource="#BodyOfWater"/> <rdfs:range rdf:resource="#River"/> </owl:ObjectProperty>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

62 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

owl:InverseFunctionalProperty is a subclass of rdf:Property

rdf:Property

owl:ObjectProperty owl:DatatypeProperty

InverseFunctionalProperty

rdf:Property

owl:ObjectProperty owl:DatatypeProperty owl:InverseFunctionalProperty

Consequently, the range of an InverseFunctionalProperty can be either a Resource or a Literal or a datatype.

63 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Summary of the different ways to characterize properties

• In the preceding slides we have seen the different ways of characterizing properties. We saw that a property may be defined to be:– A Symmetric property.

– A Transitive property.

– A Functional property.

– The Inverse of another property.

– An Inverse Functional property.

64 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

Summary of Properties for the Water Taxonomy

TributaryBrook

Rivulet

Properties: feedsFrom: River

Properties: emptiesInto: BodyOfWater

(Functional)

(Inverse Functional)

(Inverse)

Properties: containedIn: BodyOfWater

(Transitive)

Properties: connectsTo: NaturallyOccurringWaterSource

(Symmetric)

65 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Inferences we can make now that we have characterized the properties

Yangtze.rdf

<?xml version="1.0"?><River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/> <connectsTo rdf:resource="http://www.china.org/rivers#Wu"/></River>

We can infer that:1. The EastChinaSea feedsFrom the Yangtze. (Since emptiesInto is the inverse of feedsFrom)2. The Wu connectsTo the Yangtze. (Since connectsTo is symmetric)3. The EastChinaSea is a BodyOfWater. (Since the range of emptiesInto is a BodyOfWater.4. The Wu is a NaturallyOccurringWaterSource. (Since the range of connectsTo is NaturallyOccurringWaterSource)

66 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Hierarchy of the property classes

rdf:Property

owl:ObjectProperty owl:DatatypeProperty

owl:SymmetricProperty owl:TransitiveProperty

owl:FunctionalProperty

Consequences: 1. SymmetricProperty and TransitiveProperty can only be used to relate Resources to Resources. 2. FunctionalProperty and InverseFunctionalProperty can be used to relate Resources to Resources, or Resources to an RDF Schema Literal or an XML Schema datatype.

owl:InverseFunctionalProperty

67 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Why wasn't owl:inverseOf shown in the preceding class hierarchy?

Do Lab1

<owl:ObjectProperty rdf:ID="feedsFrom"> <owl:inverseOf rdf:resource="#emptiesInto"/> <rdfs:domain rdf:resource="#BodyOfWater"/> <rdfs:range rdf:resource="#River"/> </owl:ObjectProperty>

Answer: owl:inverseOf is a "property", not a class, e.g.

property

rdf:Property

owl:ObjectProperty owl:DatatypeProperty

Properties: inverseOf: owl:ObjectProperty

68 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Constraining a property based upon its context

• Now we will look at ways to constrain the range of a property based upon the context (class) in which it is used ...

69 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

Sometimes a class needs to restrict the range of a property

TributaryBrook

Rivulet Flueve

Properties: emptiesInto: BodyOfWater

Since Flueve is a subclass of River, it inherits emptiesInto.The range for emptiesInto is any BodyOfWater. However,the definition of a Flueve (French) is: "a River which emptiesIntoa Sea". Thus, in the context of the Flueve class we want therange of emptiesInto restricted to Sea.

70 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Global vs Local Properties

• rdfs:range imposes a global restriction on the emptiesInto property, i.e., the rdfs:range value applies to River and all subclasses of River.

• As we have seen, in the context of the Flueve class, we would like the emptiesInto property to have its range restricted to just the Sea class. Thus, for the Flueve class we want a local definition of emptiesInto.

• Before we see how to do this, we need to look at how classes are defined in OWL ...

71 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining Classes in OWL

• OWL classes permit much greater expressiveness than RDF Schema classes.

• Consequently, OWL has created their own Class, owl:Class.

<rdfs:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/></rdfs:Class>

<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/></owl:Class>

RDFS OWL

72 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

owl:Class is a subclass of rdfs:Class

rdfs:Class

owl:Class

73 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining emptiesInto (when used in Flueve) to have

allValuesFrom the Sea class<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:Class rdf:ID="Flueve"> <rdfs:subClassOf rdf:resource="#River"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#Sea"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

74 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Flueve is a subclass of an "anonymous class"

<owl:Class rdf:ID="Flueve"> <rdfs:subClassOf rdf:resource="#River"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#Sea"/> </owl:Restriction> </rdfs:subClassOf></owl:Class>

This is read as: "The Flueve class is a subClassOf River, and a subClassOfan anonymous class which has a property emptiesInto and all values for emptiesInto must be instances of Sea."

Here's an easier way to read this: "The Flueve class is a subClassOf River.It has a property emptiesInto. All values for emptiesInto must be instancesof Sea."

anonymousclass

75 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Definition of Flueve

River

Flueve - a River that emptiesInto a Sea.

The members of this anonymousclass are instances which have anemptiesInto property in whichall values are instances of Sea.

76 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

An instance of Flueve

Yangtze.rdf

<?xml version="1.0"?><Flueve rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/></Flueve>

We can infer that this value must be a Sea!

All values for emptiesInto must be an instance of Sea, in the context of the Flueve class.

77 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Two forms of rdfs:subClassOf

<rdfs:subClassOf rdf:resource="#River"/>

<rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#Sea"/> </owl:Restriction></rdfs:subClassOf>

Specify the class using the rdf:resource attribute.

Specify the class using owl:Restriction.

1

2

78 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

To be a River at least one value of connectsTo must be BodyOfWater

TributaryBrook

Rivulet

Properties: connectsTo: NaturallyOccurringWaterSource

Every class inherits the connectsTo property. Thus, anythingcan connect to anything else.A River may connect to many things - Brooks, Tributaries, etc.However, one thing that it must connect to is a BodyOfWater(Lake, Ocean, or Sea). Thus, in the context of the River class theconnectsTo property should have at least one value that is a BodyOfWater.

79 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining connectsTo (when used in River) to have someValuesFrom

the BodyOfWater class<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#connectsTo"/> <owl:someValuesFrom rdf:resource="#BodyOfWater"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

80 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Understanding owl:someValuesFrom

<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#connectsTo"/> <owl:someValuesFrom rdf:resource="#BodyOfWater"/> </owl:Restriction> </rdfs:subClassOf></owl:Class>

This is read as: "The River class is a subClassOf Stream, and a subClassOfan anonymous class which has a property connectsTo and some values (at least one)of connectsTo must be instances of BodyOfWater."

Here's an easier way to read this: "The River class is a subClassOf Stream.It has a property connectsTo. At least one value for connectsTo must be an instanceof BodyOfWater."

81 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

An instance of River

Yangtze.rdf

<?xml version="1.0"?><River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <connectsTo rdf:resource="http://www.china.org/rivers#Wu"/> <connectsTo rdf:resource="http://www.china.org/geography#EastChinaSea"/></River>

At least one of these values mustbe a BodyOfWater (Lake, Ocean, or Sea)!(Assume that there are no other documents which describe the Yangtze.)

At least one value for connectsTo must be an instance of BodyOfWater, in the context of the River class.

82 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

allValuesFrom vs. someValuesFrom

<owl:onProperty rdf:resource="#emptiesInto"/><owl:allValuesFrom rdf:resource="#Sea"/>

Wherever there is an emptiesInto property, all its values must be instances of Sea. [There may be zero emptiesInto properties.]

<owl:onProperty rdf:resource="#connectsTo"/><owl:someValuesFrom rdf:resource="#BodyOfWater"/>

There must be at least one connectsTo property whose value isBodyOfWater. [There must be at least one connectsTo property.]

versus:

83 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

All Oceans are SaltWater

TributaryBrook

Rivulet

Properties: type: FreshWaterOrSaltWater

The water in Oceans is SaltWater. Ocean inherits the "type"property from BodyOfWater. We would like to indicatethat the "type" property, in the context of an Ocean, always has a value of SaltWater.

FreshWaterOrSaltWater

84 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining the "type" property to have

the value SaltWater (when used in Ocean)

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<FreshWaterOrSaltWater rdf:ID="SaltWater"/>

<owl:Class rdf:ID="Ocean"> <rdfs:subClassOf rdf:resource="#BodyOfWater"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#type"/> <owl:hasValue rdf:resource="#SaltWater"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

85 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Understanding owl:hasValue

<FreshWaterOrSaltWater rdf:ID="SaltWater"/>

<owl:Class rdf:ID="Ocean"> <rdfs:subClassOf rdf:resource="#BodyOfWater"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#type"/> <owl:hasValue rdf:resource="#SaltWater"/> </owl:Restriction> </rdfs:subClassOf></owl:Class>

This is read as: "The Ocean class is a subClassOf BodyOfWater, and a subClassOfan anonymous class which has a property - type - that has the value SaltWater."

Here's an easier way to read this: "The Ocean class is a subClassOf BodyOfWater.Every Ocean has a 'type' property whose value is SaltWater."

Note that this is an instanceof the class FreshWaterOrSaltWater.

86 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

An instance of Ocean

PacificOcean.rdf

<?xml version="1.0"?><Ocean rdf:ID="PacificOcean" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <type rdf:resource="http://www.geodesy.org/water/naturally-occurring#SaltWater"/></Ocean>

Every instance of Ocean must have a property"type" whose value is SaltWater.Note: it is not necessary to put the type propertyin an Ocean instance document - the "type" may be inferred from hasValue. That is, the Ontology indicates that if it's an Ocean then its type is SaltWater.

At least one "type" property must have the value SaltWater, in the context of an Ocean class.

87 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

owl:hasValue means there exists a property with the specified value

• The owl:hasValue property restriction simply asserts that there exists a property with the value.

• In fact, there may be other instances of the same property that do not have the value.

• For the Ocean example, we know that every Ocean is of type of SaltWater.

88 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Summary of the different ways a class can constrain a property

• In the preceding slides we have seen the different ways that a class can constrain a global property. We saw that a property can be constrained such that:– All values must belong to a certain class (use

allValuesFrom).

– At least one value must come from a certain class (use someValuesFrom).

– It has a specific value (use hasValue).

89 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Properties of the Restriction Class

rdfs:Class

owl:Class

owl:Restriction

Properties: onProperty: rdf:Property allValuesFrom: rdfs:Class hasValue: someValuesFrom: rdfs:Class

90 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Context-specific cardinality constraints

• Definition of cardinality: the number of occurrences.

• Now we will look at ways to constrain the cardinality of a property based upon the context (class) in which it is used ...

91 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

A BodyOfWater can have only one maxDepth (cardinality = 1)

TributaryBrook

Rivulet

Properties: maxDepth: xsd:integer

When defining the BodyOfWater class it would beuseful to indicate that there can be only onemaxDepth for a BodyOfWater.

92 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining the cardinality of the maxDepth property to be 1

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:Class rdf:ID="BodyOfWater"> <rdfs:subClassOf rdf:resource="#NaturallyOccurringWaterSource"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#maxDepth"/> <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

93 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Understanding owl:cardinality

<owl:Class rdf:ID="BodyOfWater"> <rdfs:subClassOf rdf:resource="#NaturallyOccurringWaterSource"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#maxDepth"/> <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf></owl:Class>

This is read as: "The BodyOfWater class is a subClassOf NaturallyOccurringWaterSource, and a subClassOf an anonymous class which has a property maxDepth. There can be onlyone maxDepth for a BodyOfWater. This is indicated by a cardinality of 1."

Here's an easier way to read this: "The BodyOfWater class is a subClassOf NaturallyOccurringWaterSource. It has a property maxDepth. There can be only one maxDepth for a BodyOfWater."

94 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

maxDepth of the PacificOcean

PacificOcean.rdf

<?xml version="1.0"?><Ocean rdf:ID="PacificOcean" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <maxDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2300</maxDepth></Ocean>

The PacificOcean has only one maxDepth.

There is only one maxDepth, in the context of a BodyOfWater (e.g., Ocean) class.

95 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

The cardinality is not mandating the number of occurrences of a property in

an instance document!• Differentiate between these two statements:

– 1. In an instance document there can be only one maxDepth property for a BodyOfWater.

– 2. A BodyOfWater has only one maxDepth.

• Do you see the difference?– 1. The first statement is something that you would find in an XML

Schema.– 2. The second statement is a statement of information. It places no

restrictions on the number of occurrences of the maxDepth property in an instance document. In fact, any resource may have multiple maxDepth properties. They must all be equal, however, since there can be only one maxDepth per resource.

96 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

Some Brooks have no name (minCardinality = 0)

TributaryBrook

Rivulet

Properties: name: xsd:string

All of the classes inherit the name property.When defining the Brook class it would beuseful to indicate that a Brook might not havea name.

97 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining the minCardinality of the name property to be 0

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:Class rdf:ID="Brook"> <rdfs:subClassOf rdf:resource="#Stream"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#name"/> <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

98 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining the cardinality of the name property to be a range (0-10)

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:Class rdf:ID="Brook"> <rdfs:subClassOf rdf:resource="#Stream"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#name"/> <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">10</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

99 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Summary of the different ways to express the cardinality of a property

• In the preceding slides we have seen the ways that a class can specify the cardinality of a property, using:– cardinality

– minCardinality

– maxCardinality

100 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Complete List of Properties of the Restriction Class

rdfs:Class

owl:Class

owl:RestrictionProperties: onProperty: rdf:Property allValuesFrom: rdfs:Class hasValue: someValuesFrom: rdfs:Class cardinality: xsd:nonNegativeInteger minCardinality: xsd:nonNegativeInteger maxCardinality: xsd:nonNegativeInteger

101 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Equivalent Properties

• Now we will look at the ways to express that two properties are equivalent ...

102 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

name is equivalent to the Title property in Dublin Core

TributaryBrook

Rivulet

Properties: name: xsd:string

103 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining name to be equivalent to dc:Title

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:DatatypeProperty rdf:ID="name"> <owl:equivalentProperty rdf:resource="http://pur1.org/metadata/dublin-core#Title"/> <rdfs:domain rdf:resource="#NaturallyOccurringWaterSource"/> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> </owl:DatatypeProperty>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

Do Lab2Note that we are using owl:DatatypeProperty to define name.

104 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Using OWL to Define Classes

105 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Constructing Classes using Set Operators

• OWL gives you the ability to construct classes using these set operators:– intersectionOf– unionOf– complementOf

106 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

Defining a Flueve class using the intersectionOf operator

TributaryBrook

Rivulet Flueve

Properties: emptiesInto: BodyOfWater

Recall the definition of a Flueve (French) is: "a River which emptiesIntoa Sea". Thus, a Flueve may be defined as the intersectionOf the Riverclass and an anonymous class containing the emptiesInto property withallValuesFrom Sea.

107 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining Flueve

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:Class rdf:ID="Flueve"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#River"/> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#Sea"/> </owl:Restriction> </owl:intersectionOf> </owl:Class>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

108 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Understanding intersectionOf

This is read as: "The Flueve class is the intersection of the River class and an anonymousclass that contains a property emptiesInto and all values are instances of Sea."

Here's an easier way to read this: "The Flueve class is a River that emptiesInto a Sea."

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:Class rdf:ID="Flueve"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#River"/> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#Sea"/> </owl:Restriction> </owl:intersectionOf> </owl:Class>

...

</rdf:RDF>

109 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Understanding intersectionOf

River

Flueve - a River that emptiesInto a Sea.

The members of this anonymousclass are instances which have anemptiesInto property in whichall values are instances of Sea.

110 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:Class rdf:ID="Flueve"> <rdfs:subClassOf rdf:resource="#River"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#Sea"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

Contrast with defining Flueve using 2 subClassOf statements

111 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Multiple subClassOf = a subset of the intersection

River

Flueve - a Flueve is a River that emptiesInto a Sea. However, as this diagram shows, by using multiple subClassOf elements there may be Rivers which emptiesInto a Sea that are not Flueves.

The members of this anonymousclass are instances which have anemptiesInto property in whichall values are instances of Sea.

The conjunction (AND) of two subClassOf statements is a subset of the intersection of the classes.

112 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OceanLake

BodyOfWater

River

Stream

Sea

NaturallyOccurringWaterSource

Defining a Rivìere class using the unionOf operator

TributaryBrook

Rivulet Rivìere

Properties: emptiesInto: BodyOfWater

The definition of a Rivìere (French) is: "a River which emptiesIntoa Lake or another River". Thus, to define a Rivìere we will need to use both intersectionOf and unionOf ...

113 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

A Rivìere is the intersection of River with the union of two classes

River

Rivìere - a River that emptiesInto a Sea or another River.

The members of this anonymousclass are instances which have anemptiesInto property in whichall values are instances of Sea.

The members of this anonymous class are instances which have an emptiesInto property in which all values are instances of River.

Question: do you understand why the two anonymous classes are disjoint?Answer: because emptiesInto is a Functional Property!

114 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining Rivìere<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:Class rdf:ID="Rivìere"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#River"/> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#Sea"/> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#River"/> </owl:Restriction> </owl:unionOf> </owl:Class> </owl:intersectionOf> </owl:Class>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

115 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining NaturallyOccurringWaterSource using complementOf

WaterSource

ManMadeWaterSource

NaturallyOccurringWaterSource

- the intersection of WaterSource and the complementOf ManMadeWaterSource.

116 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Using complementOf

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:Class rdf:ID="NaturallyOccurringWaterSource"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#WaterSource"/> <owl:Class> <owl:complementOf rdf:resource="#ManMadeWaterSource"/> </owl:Class> </owl:intersectionOf> </owl:Class>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

117 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Enumeration, equivalence, disjoint

• OWL gives you the ability to: – construct a class by enumerating its instances.– specify that a class is equivalent to another

class.– specify that a class is disjoint from another

class.

118 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining a class by enumerating its instances

<?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:geo="http://www.geodesy.org/water/naturally-occurring#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:Class rdf:ID="Kyoto-Protected-River"> <rdfs:subClassOf rdf:resource="#River"/> <owl:oneOf rdf:parseType="Collection"> <geo:River rdf:about="http://www.china.org/geography/rivers#Yangtze"/> <geo:River rdf:about="http://www.us.org/rivers#Mississippi"/> <geo:River rdf:about="http://www.africa.org/rivers#Nile"/> <geo:River rdf:about="http://www.s-america.org/rivers#Amazon"/> … </owl:oneOf> </owl:Class>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

Here we are enumeratingthe Rivers which areprotected by the Kyoto Treaty.

119 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining a class to be equivalent to another class

• owl:equivalentClass is used to state that a class is equivalent to another class.

• Example: suppose that another OWL document defines a class called LakeOceanSea as follows:

OceanLake

LakeOceanSea

Sea

We would like to state that BodyOfWater is equivalent to LakeOceanSea.

120 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining BodyOfWater to be equivalent to LakeOceanSea

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:Class rdf:ID="BodyOfWater"> <rdfs:subClassOf rdf:resource="#NaturallyOccurringWaterSource"/> <owl:equivalentClass rdf:resource="http://www.other.org#LakeOceanSea"/> </owl:Class>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

121 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining a class to be disjoint from another class

<?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#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/> <owl:disjointWith rdf:resource="#Brook"/> <owl:disjointWith rdf:resource="#Rivulet"/> <owl:disjointWith rdf:resource="#Tributary"/> </owl:Class>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

This definition of River indicates that a River instance cannot also bea Brook, Rivulet, or Tributary. Thus, for example, you cannot have an instance which defines the Yangtze as a Tributary.

122 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Note: disjointWith is a SymmetricProperty!

• Example: if River is disjointWith Brook, then Brook is disjointWith River.

River Brook

disjointWith

disjointWith

123 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

River is (only) disjoint from the others

Stream

River

<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/> <owl:disjointWith rdf:resource="#Brook"/> <owl:disjointWith rdf:resource="#Rivulet"/> <owl:disjointWith rdf:resource="#Tributary"/></owl:Class>

The above class definition only statesthat there are no instances of Riverwhich overlap with Brook, Rivulet, orTributary. It does not state that all fourclasses are disjoint.

Brook

Tributary

Rivulet

124 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Now we know that all are disjoint

<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/> <owl:disjointWith rdf:resource="#Brook"/> <owl:disjointWith rdf:resource="#Rivulet"/> <owl:disjointWith rdf:resource="#Tributary"/></owl:Class>

<owl:Class rdf:ID="Brook"> <rdfs:subClassOf rdf:resource="#Stream"/> <owl:disjointWith rdf:resource="#Rivulet"/> <owl:disjointWith rdf:resource="#Tributary"/></owl:Class>

<owl:Class rdf:ID="Tributary"> <rdfs:subClassOf rdf:resource="#Stream"/> <owl:disjointWith rdf:resource="#Rivulet"/></owl:Class>

Stream

River

Brook

Tributary

Rivulet

125 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Summary of Class Propertiesrdfs:Class

owl:Class

Properties: subClassOf: rdfs:Class domain: rdfs:Class range: rdfs:Class

Properties: intersectionOf: rdf:List unionOf: rdf:List complementOf: owl:Class oneOf: rdf:List equivalentClass: owl:Class disjointWith: owl:Class

owl:Restriction

Properties: onProperty: rdf:Property allValuesFrom: rdfs:Class hasValue: someValuesFrom: rdfs:Class cardinality: xsd:nonNegativeInteger minCardinality: xsd:nonNegativeInteger maxCardinality: xsd:nonNegativeInteger

126 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OWL statements that you can incorporate into instances

127 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Indicating that two instances are the same

<?xml version="1.0"?><Sea rdf:ID="EastChinaSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> ...</Sea>

<?xml version="1.0"?><Sea rdf:ID="S100-x-302" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> ... </Sea>

Consider these two instance documents:

Are they referring to the same Sea? In fact, S100-x-302 is the catalog numberfor the East China Sea. So, these two instances do refer to the same Sea. It would be useful if we could state in an instance document that it is describing the same thingas another instance document. We use owl:sameIndividualAs to express this sameness ...

128 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

owl:sameIndividualAs

<?xml version="1.0"?><Sea rdf:ID="EastChinaSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <owl:sameIndividualAs rdf:resource="http://www.national-geographic.org#S1001-x-302"/> ...</Sea>

We are clearly indicating that this instance is describing the same thing as the S100-x-302 instance.

129 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

owl:FunctionalProperty and

owl:sameIndividualAs can reinforce each other!

<?xml version="1.0"?><River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/> <emptiesInto rdf:resource="http://www.national-geographic.org#S1001-x-302"/></River>

YangtzeemptiesInto

YangtzeemptiesInto

EastChinaSea

S1001-x-302

owl:sameIndividualAs

By defining emptiesInto as a FunctionalProperty we assert that EastChinaSeaand S100-x-302 must be the same. The owl:sameIndividualAs is reconfirming this!

130 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Indicating that two instances are different

Consider these two instance documents:

It may be useful to clearly state in an instance document that it isdifferent from another instance. This is accomplished usingowl:differentFrom.

<?xml version="1.0"?><Sea rdf:ID="EastChinaSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> ...</Sea>

<?xml version="1.0"?><Sea rdf:ID="RedSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> ... </Sea>

131 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

owl:differentFrom

<?xml version="1.0"?><Sea rdf:ID="EastChinaSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <owl:differentFrom rdf:resource="http://www.mediterranean.org#RedSea"/> ...</Sea>

We are clearly indicating that this instance is different from the Red Sea instance.

132 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

owl:FunctionalProperty combined with

owl:differentFrom can expose contradictions!

<?xml version="1.0"?><River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/> <emptiesInto rdf:resource="http://www.mediterranean.org#RedSea"/></River>

YangtzeemptiesInto

YangtzeemptiesInto

EastChinaSea

RedSea

owl:differentFrom

By defining emptiesInto as a FunctionalProperty we assert that EastChinaSeaand RedSea must be the same. But owl:differentFrom indicates that they aredifferent! Thus, there is a contradiction. It indicates that the instance is in error.

133 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

owl:AllDifferent

<?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:geo="http://www.geodesy.org/water/naturally-occurring#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:AllDifferent> <owl:distinctMembers rdf:parseType="Collection"> <geo:Sea rdf:about="http://www.china.org/geography/rivers#EastChinaSea"/> <geo:Sea rdf:about="http://www.mediterranean.org#RedSea"/> <geo:Sea rdf:about="http://www.africa.org/rivers#ArabianSea"/> <geo:Sea rdf:about="http://www.philippines.org#PhilippineSea"/> </owl:distinctMembers> </owl:AllDifferent>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

Using the owl:AllDifferent class we can indicate that a collection of instances are different:

This indicates that the EastChinaSea, RedSea, ArabianSea, and PhilippineSea are all different!

134 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Summary of the different statements you can incorporate into instances

• In the preceding slides we saw the OWL statements that you can put into instance documents:– sameIndividualAs

– differentFrom

• Question: what about AllDifferent? Answer: the owl:AllDifferent class is typically used in an ontology document, not an instance document (however, you can use it in an instance document if you like).

135 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

owl:Thing

owl:Thing

Every instance in the universeis a member of owl:Thing!

owl:Thing is a predefined OWL class. All instances are members of owl:Thing.

136 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Equivalent!

<?xml version="1.0"?><River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <length>6300 kilometers</length> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/></River>

<?xml version="1.0"?><owl:Thing rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <rdf:type rdf:resource="http://www.geodesy.org/water/naturally-occurring#River"/> <length>6300 kilometers</length> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/></owl:Thing>

"Yangtze is a Thing. Specifically, it is a River Thing."

137 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

The owl:Thing class is the root of all classes

owl:Thing

. . .

. . .

138 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/></owl:Class>

<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/> <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl #Thing"/></owl:Class>

owl:Thing

Stream

River

Do Lab3

Equivalent!

139 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Importing other OWL documents

140 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Other OWL documents must be specified in-band

• With RDF Schema you can simply use another Schema. You don't have to "import" the Schema. Tools are expected to locate the Schema "out-of-band".

• With OWL you must explicitly import the OWL documents you will use.

141 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

The Ontology Header

<?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:geo="http://www.geodesy.org/water/naturally-occurring#" xml:base="http://www.geodesy.org/water/naturally-occurring">

<owl:Ontology rdf:about="http://www.geodesy.org/water/naturally-occurring"> <owl:priorVersion rdf:resource="http://www.geodesy.org/water/naturally-occurring/july-02#"/> <owl:versionInfo>naturally-occurring.owl v 2.0</owl:versionInfo> <owl:imports rdf:resource="http://www.other.org/other.owl"/> </owl:Ontology>

...

</rdf:RDF>

naturally-occurring.owl (snippet)

All class, property,and instance definitionscome after owl:Ontology

142 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

owl:Ontology Properties

owl:Ontology

Properties: imports: versionInfo: priorVersion: Ontology incompatibleWith: Ontology backwardCompatibleWith: Ontology

Note: Ontology refers to the OWL document, e.g., naturally-occurring.owl.

143 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

The Three Faces of OWL

144 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

OWL Full, OWL DL, and OWL Lite

• Not everyone will need all of the capabilities that OWL provides. Thus, there are three versions of OWL:

OWL Full

OWL DL

OWL Lite

DL = Description Logic

145 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Comparison

OWL Full OWL DL OWL Lite

Everything that hasbeen shown in thistutorial is available.Further, you can mix RDF Schema definitionswith OWL definitions.

You cannot use owl:cardinalitywith TransitiveProperty.A DL ontology cannot importan OWL Full ontology.You cannot use a class as amember of another class, i.e.,you cannot have metaclasses.FunctionalProperty andInverseFunctionalPropertycannot be used with datatypes(they can only be used with ObjectProperty).

You cannot use owl:minCardinalityor owl:maxCardinality.The only allowed values forowl:cardinality is 0 and 1.Cannot use owl:hasValue.Cannot use owl:disjointWith.Cannot use owl:oneOf.Cannot use owl:complementOf.Cannot use owl:unionOf.

146 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Advantages/Disadvantages

• Full: – The advantage of the Full version of OWL is that you get the full

power of the OWL language.– The disadvantage of the Full version of OWL is that it is difficult to

build a Full tool. Also, the user of a Full-compliant tool may not get a quick and complete answer.

• DL/Lite:– The advantage of the DL or Lite version of OWL is that tools can be

built more quickly and easily, and users can expect responses from such tools to come quicker and be more complete.

– The disadvantage of the DL or Lite version of OWL is that you don't have access to the full power of the language.

147 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Related Documents

• The OWL Guide provides a very nice description of OWL, with many examples:– http://www.w3.org/TR/owl-guide/

• Here is the URL to the OWL Reference document:– http://www.w3.org/TR/owl-ref/

• For all other OWL documents, and information on the Semantic Web see:– http://www.w3.org/2001/sw/

148 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Examples

149 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

The Robber and the Speeder (version 2)

• An expanded version of the Robber and the Speeder example is shown on the following slides. This version was created by Ian Davis. Thanks Ian!

150 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Robber drops gun while fleeing!

First of all a robbery takes place. The robber drops his gun whilefleeing. This report is filed by the investigating officers:

<RobberyEvent> <date>...</date> <description>...</description> <evidence> <Gun> <serial>ABCD</serial> </Gun> </evidence> <robber> <Person /> <!-- an unknown person --> </robber></RobberyEvent>

151 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Speeder stopped

Subsequently a car is pulled over for speeding. The traffic officerfiles this report electronically while issuing a ticket:

<SpeedingOffence> <date>...</date> <description>...</description> <speeder> <Person> <name>Fred Blogs</name> <driversLicenseNumber>ZXYZXY</driversLicenseNumber> </Person> </speeder></SpeedingOffence>

152 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

The speeder owns a gun with the same serial number as the robbery gun!

At police headquarters (HQ), a computer analyzes each report as it is filed. The computer uses the driver's license information to look up any other records it has about Fred Blogs (the speeder)and discovers this gun license:

<GunLicense> <registeredGun> <Gun> <serial>ABCD</serial> </Gun> </registeredGun> <holder> <Person> <driversLicenseNumber>ZXYZXY</driversLicenseNumber> </Person> </holder></GunLicense>

153 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Case Solved?• Not yet! These questions must be answered before the speeder can be

arrested as the robbery suspect:

– Can multiple guns have the same serial number? • If so, then just because Fred Blogs owns a gun with the same serial number as the robbery gun does

not mean it was his gun that was used in the robbery.

– Can multiple people have the same driver's license number?• If so, then the gun license information may be for someone else.

– Can a gun be registered in multiple gun licenses?• If so, then the other gun licenses may show the holder of the gun to be someone other than Fred

Blogs.

– Can a gun license have multiple holders of a registered gun?• If so, then there may be another gun license document (not available at the police HQ) which shows

the same registered gun but with a different holder.

• The OWL Ontology (Police.owl) provides the information needed to answer these questions!

154 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Can multiple guns have the same serial number?

This OWL rule (in Police.owl) tells the computer at police HQ that each gun is uniquely identified by its serial number:

<owl:InverseFunctionalProperty rdf:ID="serial"> <rdfs:domain rdf:resource="Gun"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/></owl:InverseFunctionalProperty>

155 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Can multiple people have the same driver's license number?

The following OWL rule tells the computer that a driver's licensenumber is unique to a Person:

<owl:InverseFunctionalProperty rdf:ID="driversLicenseNumber"> <rdfs:domain rdf:resource="Person"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/></owl:InverseFunctionalProperty>

156 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Can a gun be registered in multiple gun licenses?

The next OWL rule tells the computer that the registeredGun propertyuniquely identifies a GunLicense, i.e., each gun is associated withonly a single GunLicense:

<owl:InverseFunctionalProperty rdf:ID="registeredGun"> <rdfs:domain rdf:resource="GunLicense"/> <rdfs:range rdf:resource="Gun"/></owl:InverseFunctionalProperty>

157 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Can a gun license have multiple holders of a registered gun?

The police computer uses the following OWL rule to determine that the gun on thelicense is the same gun used in the robbery. This final rule seals the speeder's fate. Ittells the computer that each GunLicense applies to only one gun and one person. So, there is no doubt that the speeder is the person who owns the gun:

<owl:Class rdf:ID="GunLicense"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="#registeredGun"/> <owl:cardinality>1</owl:cardinality> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource="#holder"/> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </owl:intersectionOf></owl:Class>

158 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Summary of information provided by the Police ontology

<GunLicense> <registeredGun> <Gun> <serial>ABCD</serial> </Gun> </registeredGun> <holder> <Person> <driversLicenseNumber>ZXYZXY</driversLicenseNumber> </Person> </holder></GunLicense>

Only one gun can have this serial number.

Only one person can have this driver's license number.

A gun can beregistered inonly one gunlicense.

A gun licenseregisters onegun to one person.

We now have overwhelming evidence that the speeder is the robber!

159 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Notes

<owl:InverseFunctionalProperty rdf:ID="driversLicenseNumber"> <rdfs:domain rdf:resource="Person"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/></owl:InverseFunctionalProperty>

The example showed that a driver's license number applies to only one person:

"A driver's license number applies to only one person."

We can make an even stronger statement, because it's also true that a person has only one driver's license number:

PersondriversLicenseNumber

1 1

PersondriversLicenseNumber

1

"A driver's license number applies to only one person, and a person has onlyone driver's license number."

Literal

Literal

Continued

160 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Notes (cont.)

<owl:DatatypeProperty rdf:ID="driversLicenseNumber"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/> <rdfs:domain rdf:resource="Person"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/></owl:DatatypeProperty>

Thus, driversLicenseNumber is also a functional property:

161 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Notes (cont.)

<owl:InverseFunctionalProperty rdf:ID="serial"> <rdfs:domain rdf:resource="Gun"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/></owl:InverseFunctionalProperty>

The example also showed that a serial number applies to only one gun:

"A serial number applies to only one gun."

We can make an even stronger statement, because it's also true that a gun has only one serial number:

Gunserial

1 1

Gunserial

1

"A serial number applies to only one gun, and a gun has only one serial number."

Literal

Literal

Continued

162 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Notes (cont.)

<owl:DatatypeProperty rdf:ID="serial"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/> <rdfs:domain rdf:resource="Gun"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/></owl:DatatypeProperty>

Thus, serial is also a functional property:

163 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Invitation

• Do you have a simple example which demonstrates various OWL capabilities? If so, we invite you to send it to Roger Costello at [email protected]. We will incorporate your example (with credits) into this tutorial (time permitting, of course). Thanks!

164 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

FAQ

165 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Confused about the difference between a Functional property and an

Inverse Functional property

A Person has a single birthdate. Therefore, birthdate is a Functional Property.

Question: Is birthdate an Inverse Functional Property?Answer: No. If birthdate was an Inverse Functionalproperty then only one person could have a birthdate.There are many people that have the same birthdate. Thus, birthdate is not an Inverse Functional property.

<Person rdf:ID="JohnDoe"> <birthdate>March 24, 1971</birthdate></Person>

Consider the birthdate property in this document:

Continued

166 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Example of an Inverse Functional Property

An email address applies to only one person. Therefore, email is an Inverse Functional Property.

Question: Is email a Functional Property?Answer: No. If email was a Functional Property then a person could have only one email. Many people have multiple email addresses. Thus, email is not a Functional Property.

<Person rdf:ID="SallyJane"> <email>[email protected]</email></Person>

Consider the email property in this document:

Continued

167 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Examples of properties that are both Functional and Inverse Functional

Most ID-like properties are both Functional and InverseFunctional, e.g., driver's license, passport number, SSN,serial number, etc.

PersondriversLicense

1 1

Personpassport

1 1

PersonSSN

1 1

Gunserial

1 1

Literal

Literal

Literal

Literal

168 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Can an OWL Ontology also contain instance data?

In general, it is best to keep instance data separate from the ontology. Sometimes, however, mingling instance data with an ontology may be unavoidable. For example, suppose that you wish to use owl:AllDifferent to indicate that Mary, David, and Roger are all different:

<owl:AllDifferent> <owl:distinctMembers rdf:parseType="Collection"> <Person rdf:about="#Mary"/> <Person rdf:about="#David"/> <Person rdf:about="#Roger"/> </owl:distinctMembers></owl:AllDifferent>

You might wish to provide, in the ontology, a "barebones" definition of the Mary instance,the David instance, and the Roger instance:

<Person rdf:ID="Mary"/><Person rdf:ID="David"/><Person rdf:ID="Roger"/>

Continued

169 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Can an ontology also contain instance data? (cont.)

Now, instance documents extend the ontologies' barebones instance definitions:

<Person rdf:about="http://www.person.org#Roger"> <hometown>Boston, MA</hometown> <workplace>The MITRE Corp.</workplace></Person>

170 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Difference between a Class with a property that has a maxCardinality=1 versus a

Functional Property?

<owl:Class rdf:ID="Gun"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#serial"/> <owl:maxCardinality>1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf></owl:Class>

<owl:DatatypeProperty rdf:ID="serial"> <rdfs:domain rdf:resource="#Gun"/> <rdfs:range rdf:resource="&xsd;#string"/></owl:DatatypeProperty>

Ver

sion

1

Both forms are equivalent! Let's take an example. Below is shown a Gun Class whichis defined to have at most one serial number:

Continued

171 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining a Class which has a Functional Property is equivalent!

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

<owl:FunctionalProperty rdf:ID="serial"> <rdfs:domain rdf:resource="Gun" /> <rdfs:range rdf:resource="&rdfs;#Literal"/></owl:FunctionalProperty>V

ersi

on 2

The below serial property is defined to be a Functional Property, and is to beused with a Gun instance. Thus, the Gun Class has at most one serial number.The two forms are equivalent!

172 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Difference between a Class with multiple subclasses, each having a property that has a

maxCardinality=1 versus multiple Functional Properties?

<owl:Class rdf:ID="GunLicense"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#registeredGun"/> <owl:maxCardinality>1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#holder"/> <owl:maxCardinality>1</owl:maxCardinality> </owl:Restriction> <rdfs:subClassOf></owl:Class

<owl:ObjectProperty rdf:ID="registeredGun"> <rdfs:domain rdf:resource="#GunLicense"/> <rdfs:range rdf:resource="#Gun"/></owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="holder"> <rdfs:domain rdf:resource="#GunLicense"/> <rdfs:range rdf:resource="#Person"/></owl:ObjectProperty>

Ver

sion

1

Both forms are equivalent! Let's take an example. Below is shown a GunLicense Class whichis defined to have at most one registeredGun and at most one holder:

Continued

173 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.

Defining a Class which has multiple Functional Properties is equivalent!

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

<owl:FunctionalProperty rdf:ID="registeredGun"> <rdfs:domain rdf:resource="#GunLicense"/> <rdfs:range rdf:resource="#Gun"/></owl:FunctionalProperty>

<owl:FunctionalProperty rdf:ID="holder"> <rdfs:domain rdf:resource="#GunLicense"/> <rdfs:range rdf:resource="#Person"/></owl:FunctionalProperty>

Ver

sion

2

The below registeredGun property and holder property are defined to be Functional Properties, and are to be used with a GunLicense instance. So, the GunLicense Class has at most one registeredGun and at most one holder. Thus, the two forms are equivalent!