owl web ontology languagehy566/owl.pdf · these are the properties of class1. the name of the...

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

Upload: others

Post on 04-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

OWL Web Ontology Language

Roger L. CostelloDavid B. Jacobs

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

Page 2: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 3: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

3Roger 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/

Page 4: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Origins of OWL

DAML = DARPA Agent Markup LanguageOIL = Ontology Inference Layer

RDF

All were influenced by RDF

DAML OIL

DAML+OIL

OWLOWL is now on track tobecome a W3C Recommendation!

Page 5: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 6: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 7: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

OWL and RDF Schema enables machine-processable semantics

XML/DTD/XML Schemas

RDF Schema

OWLSemantics

Syntax

Page 8: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 9: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 10: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

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

NaturallyOccurringWaterSource

BodyOfWaterStream

OceanLakeRiver SeaTributary

Rivulet

Brook

Page 11: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Notations used in this TutorialProperties:

property1: Type1property2: 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).

Taxonomy (Class Hierarchy): Class1

Class2 Class3

Class2 and Class3 are subclasses of Class1.

Class2Class3

Properties:property1: Type1property2: Type2...

Class1Venn Diagram:

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

Continued

Page 12: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Notations used in this TutorialThis notation is used to indicate that a person has only one birthplace location:

LocationPersonbirthplace

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:

NumberPersondriversLicenseNumber

1 1

Page 13: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

13Roger 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/

Page 14: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 15: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 16: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

16Roger 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 John Walker Lindh

Speeder

owl:sameIndividualAs

Sulayman

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

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

Page 17: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 18: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Example 2: Using a Web Bot to Purchase a Camera

Is "SLR" a Camera?

3 My Web Assistant(a Web Bot)

"Please send me your e-catalog" 1

Web Site

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

"Here's my e-catalog"

2

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

Page 19: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Camera OWL OntologyCamera

SLR DigitalLarge-Format

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!

Page 20: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

20Roger 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!

Page 21: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Example 3: The Birthplace of King Kamahameha is …

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

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

</Person>1

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

</Person>2

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

</Person>3

Question: What is the birthplace of King Kamahameha?

Page 22: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

22Roger 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!

birthplace HawaiiKing Kamahameha

birthplace They all representthe same location!

Sandwich IslandsKing Kamahameha

birthplace Aloha StateKing Kamahameha

Page 23: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

23Roger 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 oneother resource are said to have a cardinality=1.

Page 24: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 25: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Using OWL to Define Properties

Page 26: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 27: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Symmetric Properties

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

Ocean

BodyOfWater

Properties:connectsTo: NaturallyOccurringWaterSource

NaturallyOccurringWaterSource

Stream

LakeRiver SeaBrook Tributary

Rivulet

Page 28: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

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

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

Yangtze.rdf

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

The Wu River connectsTo the Yangtze River.

connectsTo

connectsToWuYangtze

Page 29: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Transitive Properties

NaturallyOccurringWaterSource

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

OceanLake

BodyOfWater

River

Stream

Brook Tributary Sea

Properties:containedIn: BodyOfWater

Rivulet

Page 30: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Transitive Property

EastChinaSea.rdf

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

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

Page 31: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Transitive Property

containedIncontainedIn PacificOceanChinaSeaEastChinaSea

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

containedIn PacificOceanEastChinaSea

Page 32: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Functional Properties

NaturallyOccurringWaterSource

BodyOfWaterStream

OceanLakeRiverBrook Tributary SeaProperties:

emptiesInto: BodyOfWater

Rivulet

A Functional property - for each instance thereis at most one value forthe property.

Page 33: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 34: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Functional Property (cont.)

emptiesIntoYangtze

Yangtze emptiesInto

EastChinaSea

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

S1001-x-302

Page 35: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Inverse Properties

Ocean

Properties:feedsFrom: River

Inverse properties - if property P1 relatesResource 1 to Resource 2,then its Inverse propertyrelates Resource 2 toResource 1.

NaturallyOccurringWaterSource

BodyOfWaterStream

Brook River Tributary Lake SeaProperties:

emptiesInto: BodyOfWater

Rivulet

Page 36: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Inverse Properties

Yangtze.rdf

Consider this document:<?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>

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.

Page 37: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

emptiesInto <---> feedsFrom (Inverse Properties)

emptiesInto EastChinaSeaYangtze

A specific instance:

feedsFrom YangtzeEastChinaSea

emptiesInto BodyOfWaterRiver

The general case:

feedsFrom RiverBodyOfWater

Page 38: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

38Roger 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 thedomain is unique.

Properties:emptiesInto: BodyOfWater

Properties:feedsFrom: River

(functional)

Page 39: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

39Roger 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:

Page 40: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

feedsFrom

feedsFrom

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

EastChinaSea Yangtze

YangtzeS1001-x-302

Page 41: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 42: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 43: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

ObjectProperty vs. DatatypeProperty

An ObjectProperty relates one Resource to another Resource:

Resource ResourceObjectProperty

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

ResourceDatatypeProperty

Value

Page 44: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

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

rdf:Propertyrdf:Property

owl:ObjectProperty owl:DatatypePropertyowl:DatatypePropertyowl:ObjectProperty

Page 45: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

RD

FS

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

OW

L

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

</owl:DatatypeProperty>

Page 46: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

46Roger 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)

Page 47: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

What is the URI for the properties and classes defined by an OWL document?

What is the full URI for the emptiesInto property in this 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.

Page 48: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Defining Symmetric Properties

Brook

BodyOfWater

Properties:connectsTo: NaturallyOccurringWaterSource

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

NaturallyOccurringWaterSource

Stream

River OceanTributary Lake Sea

Rivulet

Page 49: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

49Roger 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."

Page 50: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

owl:SymmetricProperty is a subclass of owl:ObjectProperty

rdf:Propertyrdf:Property

owl:ObjectProperty owl:DatatypePropertyowl:DatatypePropertyowl:ObjectProperty

owl:SymmetricProperty

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

Page 51: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

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

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

1

Read this as: "connectsTo is a SymmetricProperty."<owl:SymmetricProperty rdf:ID="connectsTo">

<rdfs:domain rdf:resource="#NaturallyOccurringWaterSource"/><rdfs:range rdf:resource="#NaturallyOccurringWaterSource"/>

</owl:SymmetricProperty>

2

Question: Why would you ever use the first form? The second form seemsa 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 beof 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).

Page 52: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Defining Transitive Properties

NaturallyOccurringWaterSource

BodyOfWaterStream

Brook

Rivulet

OceanLakeRiver Tributary Sea

Properties:containedIn: BodyOfWater

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

Page 53: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

53Roger 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)

Page 54: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

owl:TransitiveProperty is a subclass of owl:ObjectProperty

rdf:Propertyrdf:Property

owl:ObjectProperty owl:DatatypePropertyowl:DatatypePropertyowl:ObjectProperty

owl:TransitiveProperty

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

Page 55: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

55Roger 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 thereis at most one value for theproperty.

Page 56: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

56Roger 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)

Page 57: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

owl:FunctionalProperty is a subclass of rdf:Property

rdf:Propertyrdf:Property

owl:ObjectProperty owl:DatatypePropertyowl:FunctionalPropertyowl:DatatypePropertyowl:ObjectProperty

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

Page 58: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

58Roger 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 relatesResource 1 to Resource 2,then its inverse propertyrelates Resource 2 toResource 1.

Page 59: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

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

naturally-occurring.owl (snippet)

Page 60: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

60Roger 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 thedomain is unique.

Properties:feedsFrom: River

Properties:emptiesInto: BodyOfWater

(Functional)

Page 61: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

61Roger 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)

Page 62: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

owl:InverseFunctionalProperty is a subclass of rdf:Property

rdf:Propertyrdf:Property

owl:ObjectProperty owl:DatatypePropertyowl:InverseFunctionalPropertyowl:DatatypePropertyowl:ObjectProperty

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

Page 63: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 64: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Summary of Properties for the Water Taxonomy

Ocean

BodyOfWaterProperties:

feedsFrom: River

(Functional)

(Inverse Functional)

(Inverse)

Properties:connectsTo: NaturallyOccurringWaterSource

(Symmetric)

NaturallyOccurringWaterSource

Stream

Brook River Tributary Lake SeaProperties:

emptiesInto: BodyOfWaterProperties:

containedIn: BodyOfWater(Transitive)

Rivulet

Page 65: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

65Roger 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)

Page 66: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Hierarchy of the property classes

rdf:Property

owl:ObjectProperty owl:DatatypeProperty

owl:SymmetricProperty

owl:InverseFunctionalPropertyowl:FunctionalProperty

owl:TransitiveProperty

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.

Page 67: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

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

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

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

</owl:ObjectProperty>property

rdf:Property

owl:ObjectProperty owl:DatatypeProperty

Properties:inverseOf: owl:ObjectProperty

Do Lab1

Page 68: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 69: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Sometimes a class needs to restrict the range of a property

NaturallyOccurringWaterSource

BodyOfWaterStream

OceanLakeRiverBrook Tributary Sea

Rivulet

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.

Flueve

Page 70: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Global vs Local Properties

• rdfs:range imposes a global restriction on theemptiesInto 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 ...

Page 71: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

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

</owl:Class>

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

</rdfs:Class>

RDFS OWL

Page 72: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

owl:Class is a subclass of rdfs:Class

rdfs:Class

owl:Class

Page 73: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

73Roger 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)

Page 74: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

anonymousclass

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

Page 75: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 76: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 77: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Two forms of rdfs:subClassOf

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

Specify the class using the rdf:resource attribute.

1

Specify the class using owl:Restriction.

<rdfs:subClassOf><owl:Restriction>

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

</owl:Restriction></rdfs:subClassOf>

2

Page 78: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

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

Properties:connectsTo: NaturallyOccurringWaterSource

NaturallyOccurringWaterSource

BodyOfWaterStream

OceanLakeRiverBrook Tributary Sea

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.

Rivulet

Page 79: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

79Roger 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)

Page 80: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

80Roger 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."

Page 81: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 82: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

82Roger 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.]

versus:

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

Page 83: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

All Oceans are SaltWater

OceanLake

Properties:type: FreshWaterOrSaltWater

NaturallyOccurringWaterSource

BodyOfWaterStream

Brook River Tributary Sea

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.

Rivulet

FreshWaterOrSaltWater

Page 84: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

84Roger 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)

Page 85: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Note that this is an instanceof the class FreshWaterOrSaltWater.

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

Page 86: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 87: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

owl:hasValue means there existsa 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.

Page 88: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 89: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Properties of the Restriction Class

rdfs:Class

owl:Class

owl:RestrictionProperties:

onProperty: rdf:PropertyallValuesFrom: rdfs:ClasshasValue:someValuesFrom: rdfs:Class

Page 90: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 91: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

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

OceanLake

Properties:maxDepth: xsd:integer

NaturallyOccurringWaterSource

BodyOfWaterStream

Brook River Tributary Sea

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

Page 92: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

92Roger 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)

Page 93: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

93Roger 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."

Page 94: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 95: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 96: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Some Brooks have no name (minCardinality = 0)

Properties:name: xsd:string

NaturallyOccurringWaterSource

BodyOfWaterStream

OceanLakeRiverBrook Tributary Sea

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

Page 97: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

97Roger 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)

Page 98: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

98Roger 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)

Page 99: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 100: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

100Roger 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:PropertyallValuesFrom: rdfs:ClasshasValue:someValuesFrom: rdfs:Classcardinality: xsd:nonNegativeIntegerminCardinality: xsd:nonNegativeIntegermaxCardinality: xsd:nonNegativeInteger

Page 101: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 102: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

name is equivalent to the Title property in Dublin Core

Properties:name: xsd:string

NaturallyOccurringWaterSource

BodyOfWaterStream

OceanLakeRiverBrook Tributary Sea

Rivulet

Page 103: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 104: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Using OWL to Define Classes

Page 105: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 106: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Defining a Flueve class using the intersectionOf operator

NaturallyOccurringWaterSource

BodyOfWaterStream

OceanLakeRiverBrook Tributary SeaProperties:

emptiesInto: BodyOfWater

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

Page 107: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

107Roger 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)

Page 108: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Understanding intersectionOf<?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>

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

Page 109: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 110: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Contrast with defining Flueve using 2 subClassOf statements

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

Page 111: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Multiple subClassOf = a subset of the intersectionRiver

Flueve - a Flueve is a River that emptiesInto a Sea.However, as this diagram shows, by usingmultiple subClassOf elements there maybe Rivers which emptiesInto a Sea that arenot 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.

Page 112: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Defining a Rivìere class using the unionOf operator

NaturallyOccurringWaterSource

BodyOfWaterStream

OceanLakeRiverBrook Tributary SeaProperties:

emptiesInto: BodyOfWater

RivìereRivuletThe 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 ...

Page 113: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Question: do you understand why the twoanonymous classes are disjoint?

Answer: because emptiesInto is a FunctionalProperty!

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

Page 114: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

114Roger 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)

Page 115: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Defining NaturallyOccurringWaterSource using complementOf

WaterSource

ManMadeWaterSource

NaturallyOccurringWaterSource- the intersection of WaterSource

and the complementOf ManMadeWaterSource.

Page 116: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

116Roger 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)

Page 117: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 118: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

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

naturally-occurring.owl (snippet)

Page 119: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 120: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

120Roger 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)

Page 121: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 122: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

disjointWith

disjointWithBrookRiver

Page 123: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

River is (only) disjoint from the others

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

Stream

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

Rivulet

River

Tributary

Page 124: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Stream

River

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

</owl:Class> Brook

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

</owl:Class>Tributary

Rivulet

Page 125: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Summary of Class Propertiesrdfs:Class

Properties:subClassOf: rdfs:Classdomain: rdfs:Classrange: rdfs:Class

owl:ClassProperties:

intersectionOf: rdf:ListunionOf: rdf:ListcomplementOf: owl:ClassoneOf: rdf:ListequivalentClass: owl:ClassdisjointWith: owl:Class

owl:RestrictionProperties:

onProperty: rdf:PropertyallValuesFrom: rdfs:ClasshasValue:someValuesFrom: rdfs:Classcardinality: xsd:nonNegativeIntegerminCardinality: xsd:nonNegativeIntegermaxCardinality: xsd:nonNegativeInteger

Page 126: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

OWL statements that you can incorporate into instances

Page 127: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Indicating that two instances are the same

Consider these two instance documents:<?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>

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

Page 128: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 129: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

emptiesInto EastChinaSeaYangtze

Yangtze emptiesInto

owl:sameIndividualAs

S1001-x-302

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

Page 130: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Indicating that two instances are different

Consider these two instance documents:<?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>

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

Page 131: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 132: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

emptiesInto EastChinaSeaYangtze

Yangtze emptiesInto

owl:differentFrom

RedSea

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.

Page 133: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

owl:AllDifferent

Using the owl:AllDifferent class we can indicate that a collection of instances are different:<?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)

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

Page 134: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 135: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

owl:Thing

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

owl:Thing

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

Page 136: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

136Roger 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."

Page 137: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

The owl:Thing class is the root of all classes

owl:Thing

. . .

. . .

Page 138: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

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

</owl:Class>

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

Page 139: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Importing other OWL documents

Page 140: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 141: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

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

naturally-occurring.owl (snippet)

Page 142: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

owl:Ontology Properties

owl:OntologyProperties:

imports:versionInfo:priorVersion: OntologyincompatibleWith: OntologybackwardCompatibleWith: Ontology

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

Page 143: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

The Three Faces of OWL

Page 144: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 145: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

145Roger 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: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.

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

Page 146: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

146Roger 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 responsesfrom 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.

Page 147: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

147Roger 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 Referencedocument:– 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/

Page 148: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Examples

Page 149: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

149Roger 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!

Page 150: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 151: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

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

Page 152: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 153: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

153Roger 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!

Page 154: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 155: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 156: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 157: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 158: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

158Roger 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!

Page 159: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

NotesThe example showed that a driver's license number applies to only one 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>

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

1

Literal

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

Continued

Page 160: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Notes (cont.)Thus, driversLicenseNumber is also a functional property:

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

Page 161: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Notes (cont.)The example also showed that a serial number applies to only one gun:

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

"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

Literal1

Literal

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

Page 162: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Notes (cont.)Thus, serial is also a functional property:

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

Page 163: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

163Roger 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!

Page 164: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

FAQ

Page 165: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Confused about the difference between a Functional property and an

Inverse Functional propertyConsider the birthdate property in this document:

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

</Person>

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

Page 166: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Example of an Inverse Functional Property

Consider the email property in this document:<Person rdf:ID="SallyJane">

<email>[email protected]</email></Person>

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

Page 167: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

167Roger 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 1Literal

Personpassport

1 1Literal

PersonSSN

1 1Literal

Gunserial

1 1Literal

Page 168: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 169: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Page 170: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

170Roger 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?Both forms are equivalent! Let's take an example. Below is shown a Gun Class whichis defined to have at most one serial number:

<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

Continued

Page 171: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Defining a Class which has a Functional Property is equivalent!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!

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

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

</owl:FunctionalProperty>Ver

sion

2

Page 172: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

172Roger 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?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:

<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

Continued

Page 173: OWL Web Ontology Languagehy566/OWL.pdf · These are the properties of Class1. The name of the property is shown (e.g., property1), and its range is shown in italics (e.g., Type1)

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

Defining a Class which has multiple Functional Properties is equivalent!

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!

<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