Upload
linette-flynn
View
224
Download
5
Embed Size (px)
Citation preview
1 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OWL Web Ontology Language
Roger L. Costello
David B. Jacobs
The MITRE Corporation(The creation of this tutorial was sponsored by DARPA)
2 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Acknowledgments
• We are very grateful to the Defense Advanced Research Projects Agency (DARPA) for funding the creation of this tutorial. We are especially grateful to Murray Burke (DARPA) and John Flynn (BBN) for making it all happen.
• We would like to thank Stephen Dyer for creating the labs.
• Special thanks to the following people for their help in answering our unending questions:
Peter F. Patel-SchneiderMike DeanIan DavisJim HendlerNikita OgievetskyDan ConnollyJeff Z. PanPeter CrowtherFrank ManolaDeborah McGuinness
Leo ObrstRafael BatresSteven GolleryEnrico FranconiMike PoolDavid AllsoppYuzhong QuJonathan BordenMary Pulvermacher
3 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Prerequisites
• OWL builds on top of (i.e., extends) RDF Schema.• This tutorial assumes that you already have a solid understanding of RDF
and RDF Schema.– As well as this tutorial on OWL, we have also created a tutorial on RDF, and a
tutorial on RDF Schema. Please see here:• http://www.xfront.com/rdf/
• http://www.xfront.com/rdf-schema/
4 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Origins of OWL
DAML
DAML+OIL
DAML = DARPA Agent Markup LanguageOIL = Ontology Inference Layer
OWL is now on track tobecome a W3C Recommendation!
OIL
OWL
RDF
All were influenced by RDF
5 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
W3C Status of OWL
• OWL is currently (April, '03) at the W3C Candidate Recommendation stage.
• OWL is targeted to go to Pre-Recommendation status in May, '03.
• OWL should be be at the W3C Recommendation status by summer '03.
• For complete OWL schedule details see:– http://www.w3.org/2001/sw/WebOnt/#L151
6 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Purpose of OWL
• The purpose of OWL is identical to RDF Schemas - to provide an XML vocabulary to define classes, properties and their relationships.– RDF Schema enables you to express very rudimentary
relationships and has limited inferencing capability.
– OWL enables you to express much richer relationships, thus yielding a much enhanced inferencing capability.
• The benefit of OWL is that it facilitates a much greater degree of inferencing than you get with RDF Schemas.
7 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OWL and RDF Schema enables machine-processable semantics
XML/DTD/XML Schemas
RDF Schema
OWL
Syntax
Semantics
8 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Organization of this Tutorial
• OWL gives you a syntax to express statements about properties and classes, above and beyond what you can make with RDF Schema.
• In this tutorial we present:– Using OWL to define properties.
– Using OWL to define classes.
– OWL statements that you can incorporate into your instance documents.
9 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OWL = RDF Schema + more
• Note: all of the elements/attributes provided by RDF and RDF Schema can be used when creating an OWL document.
10 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
This tutorial will use the below "water taxonomy" to explain OWL
Tributary
Rivulet
Brook
11 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Notations used in this TutorialClass1
Class2 Class3
Properties: property1: Type1 property2: Type2 ...
These are the properties of Class1.The name of the property is shown(e.g., property1), and its range isshown in italics (e.g., Type1).
Class2 and Class3 are subclasses of Class1.
Class1
Class2
Class3
Properties: property1: Type1 property2: Type2 ...
An alternate notationto the above classhierarchy is to use aVenn diagram, asshown here.
Taxonomy (Class Hierarchy):
Venn Diagram:
Continued
12 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Notations used in this Tutorial
LocationPersonbirthplace
1
This notation is used to indicate that a person has only one birthplace location:
NumberPersondriversLicenseNumber
1
This notation is used to indicate that a person has only one driver'slicense number. Further, a driver's license number is associated withonly one person:
1
13 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OWL Tools• RDF Instance Creator (RIC)
– http://www.mindswap.org/~mhgrove/RIC/RIC.shtml– Limited OWL capabilities
• OilEd:– http://oiled.man.ac.uk/– Editor for ontologies– Mostly for DAML+OIL, exports OWL but not a current representation
• OWL Validator:– http://owl.bbn.com/validator/– Web-based or command-line utility– Performs basic validation of OWL file
• Dumpont:– http://www.daml.org/2001/03/dumpont/– a simple class and hierarchy property viewer, which also works with OWL, e.g.,
• http://www.daml.org/cgi-bin/dumpont?http://www.w3.org/2002/07/owl
• OWL Ontology Validator:– http://phoebus.cs.man.ac.uk:9999/OWL/Validator– a "species validator" that checks use of OWL Lite, OWL DL, and OWL Full constructs
• Euler:– http://www.agfa.com/w3c/euler/– an inference engine which has been used for a lot of the OWL Test Cases
• Chimaera:– http://www.ksl.stanford.edu/software/chimaera/– Ontology evolution environment (diagnostics, merging, light editing)– Mostly for DAML+OIL, being updated to export and inport current OWL
• DAML Tools Page - http://www.daml.org/tools/
14 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Two Minute Preview of OWL
• Before getting into the details of OWL let's spend a couple of minutes examining three examples which demonstrate some of the capabilities of OWL.
15 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Example 1: The Robber and the Speeder
DNA samples from a robbery identified John Walker Lindh as the suspect.Here is the police report on the robbery:
<Robbery rdf:ID="report-2003-03-17-XTf4"> <description>...</description> <suspect> <Person rdf:about="http://www.person.org#John_Walker_Lindh"/> </suspect></Robbery>
Later in the day a state trooper gives a person a ticket for speeding. The driver's license showed the name Sulayman. Here is the state trooper's report on the speeder:
<Speeder rdf:ID="report-2003-03-17-QWRP"> <description>...</description> <driver> <Person rdf:about="http://www.person.org#Sulayman"/> </driver></Speeder>
16 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Any Relationship between the Robber and the Speeder?
The Central Intelligence Agency (CIA) has a file on Sulayman:
<Person rdf:about="http://www.person.org#Sulayman"> <owl:sameIndividualAs rdf:resource="http://www.person.org#John_Walker_Lindh"/></Person>
Robbery
Speeder
John Walker Lindh
Sulayman
owl:sameIndividualAs
Inference: The Robber and the Speeder are one and the same!
The local police, state troopers, and CIA share their information, thus enabling thefollowing inference to be made:
17 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Lesson Learned
• OWL provides a property (owl:sameIndividualAs) for indicating that two resources (e.g., two people) are the same.
18 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Example 2: Using a Web Bot to Purchase a Camera
My Web Assistant(a Web Bot)
Web Site
"Please send me your e-catalog"
<SLR rdf:ID="Olympus-OM10"> <f-stop>1.4</f-stop> <lens>300mm zoom</lens> <manual-adaptor>optional</manual-adaptor> <cost>$325 USD</cost></SLR>
Is "SLR" a Camera?
"Here's my e-catalog"
1
2
3
* A Web Bot is a software program which crawls the Web looking for information.
19 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Camera OWL Ontology
Camera
SLR Large-Format Digital
My Web Assistant program consults the Camera OWL Ontology. The Ontologyshows how SLR is classified. The Ontology shows that SLR is a type (subclass) of Camera. Thus, my Web Assistant Bot dynamically realizes that:
Inference: The Olympus-OM10 SLR is a Camera!
20 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Lesson Learned
• OWL provides elements to construct taxonomies (called class hierarchies). The taxonomies can be used to dynamically discover relationships!
21 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Example 3: The Birthplace of King Kamahameha is …
<Person rdf:about="http://www.person.org#King_Kamahameha"> <birthplace rdf:about="http://www.states.org#Hawaii"/></Person>
<Person rdf:about="http://www.person.org#King_Kamahameha"> <birthplace rdf:resource="http://www.history.org#Sandwich_Islands"/></Person>
<Person rdf:about="http://www.person.org#King_Kamahameha"> <birthplace rdf:resource="http://www.tourism.org#Aloha_State"/></Person>
Upon scanning the Web, three documents were found which contain information about King Kamahameha:
Question: What is the birthplace of King Kamahameha?
1
2
3
22 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Answer: all three!The Person OWL Ontology indicates that a Person has only one birthplace location:
LocationPersonbirthplace
1
Thus, the Person OWL Ontology enables this inference to be made:
Inference: Hawaii, Sandwich Islands, and Aloha State all represent the same location!
King Kamahameha Hawaii
Sandwich Islands
Aloha State
birthplace
King Kamahamehabirthplace
King Kamahamehabirthplace
They all representthe same location!
23 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Lesson LearnedIn the example we saw that the Person Ontology defined this relationship:
LocationPersonbirthplace
1
This is read as: "A person has exactly one birthplace location."
This example is a specific instance of a general capability in OWLto specify that a subject Resource has exactly one value:
Resource(value)
Resource(subject)
property
1
We saw in the example that such information can be used to make inferences.
OWL Terminology: properties that relate a resource to exactly one other resource are said to have a cardinality=1.
24 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Review
• The preceding examples demonstrated some of OWL's capabilities:– An OWL instance document can be enhanced with an OWL property to
indicate that it is the same as another instance.– OWL provides the capability to construct taxonomies (class hierarchies).
Such taxonomies can be used to dynamically understand how entities in an XML instance relate to other entities.
– OWL provides the capability to specify that a subject can have only one value.
• By leveraging OWL, additional facts about your instance data can be dynamically ascertained. That is, OWL facilitates a dynamic understanding of the semantics of your data!
• Okay, that's it for the OWL preview. Now it's time to look at the entire suite of OWL capabilities ...
26 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining Property Characteristics
• RDF Schema provides three ways to characterize a property:– range: use this to indicate the range of values for a property.
– domain: use this to associate a property with a class.
– subPropertyOf: use this to specialize a property.
• Note: OWL documents also use rdfs:range, rdfs:domain, and rdfs:subPropertyOf.
• On the following slides we show the additional ways that
OWL provides to characterize properties. – We will see that these additional property characteristics enable
greater inferencing.
27 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Symmetric Properties
A Symmetric property - if water source A connectsTo water source B then water source B connects to water source A.
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
TributaryBrook
Rivulet
Properties: connectsTo: NaturallyOccurringWaterSource
28 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Symmetric Property
Yangtze.rdf
<?xml version="1.0"?><River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <connectsTo> <River rdf:about="http://www.china.org/rivers#Wu"/> </connectsTo></River>
Assume that connectsTo has been defined, in an OWL document, to be a Symmetric property:
Since connectsTo has been defined to be a Symmetric propertywe can infer that:
The Wu River connectsTo the Yangtze River.
Yangtze Wu
connectsTo
connectsTo
29 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Transitive Properties
A Transitive property - if A is containedIn B, and B is containedIn C then A is containedIn C.
OceanLake
BodyOfWater
River Sea
NaturallyOccurringWaterSource
TributaryBrook
Rivulet
Properties: containedIn: BodyOfWater
Stream
30 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Transitive Property
EastChinaSea.rdf
<?xml version="1.0"?><Sea rdf:ID="EastChinaSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <containedIn> <Sea rdf:about="http://www.china.gov#ChinaSea"/> </containedIn></Sea>
If containedIn is defined to be a Transitive property then we can infer that:
The EastChinaSea is containedIn the PacificOcean.
ChinaSea.rdf
<?xml version="1.0"?><Sea rdf:about="http://www.china.gov#ChinaSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <containedIn> <Ocean rdf:about="http://www.geodesy.org#PacificOcean"/> </containedIn></Sea>
Suppose that you retrieve these two documents from two different Web sites. One describes the EastChinaSea and the other describes the ChinaSea:
31 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Transitive Property
EastChinaSea ChinaSeacontainedIn
PacificOceancontainedIn
If containedIn is defined to be Transitive, we can infer that:
EastChinaSea PacificOceancontainedIn
32 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Functional Properties
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
TributaryBrook
Rivulet
Properties: emptiesInto: BodyOfWater
A Functional property - for each instance there is at most one value for the property.
33 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Functional Property
Yangtze-doc1.rdf
Yangtze-doc2.rdf
Suppose that there are two independent documents describing the Yangtze River:
<?xml version="1.0"?><River rdf:about="http://www.china.org/rivers#Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/></River>
<?xml version="1.0"?><River rdf:about="http://www.china.org/rivers#Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <emptiesInto rdf:resource="http://www.national-geographic.org#S1001-x-302"/></River>
If emptiesInto is defined to be functional then we can infer that:
http://www.china.org/geography#EastChinaSea = http://www.national-geographic.org#S1001-x-302
34 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Functional Property (cont.)
YangtzeemptiesInto
YangtzeemptiesInto
If emptiesInto has beendefined to be Functionalthen we can infer that thesetwo values must refer to thesame thing.
EastChinaSea
S1001-x-302
35 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Inverse Properties
OceanLake
BodyOfWater
River
Stream
Properties: emptiesInto: BodyOfWater
Sea
NaturallyOccurringWaterSource
TributaryBrook
Rivulet
Properties: feedsFrom: River
Inverse properties - if property P1 relates Resource 1 to Resource 2, then its Inverse property relates Resource 2 to Resource 1.
36 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Inverse Properties
Yangtze.rdf
<?xml version="1.0"?><River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/></River>
Consider this document:
The above states that:
The Yangtze emptiesInto the EastChinaSea.
If emptiesInto and feedsFrom are defined to be Inverse properties then we can infer that:
The EastChinaSea feedsFrom the Yangtze.
37 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
emptiesInto <---> feedsFrom (Inverse Properties)
Yangtze EastChinaSeaemptiesInto
EastChinaSea YangtzefeedsFrom
River BodyOfWateremptiesInto
BodyOfWater RiverfeedsFrom
The general case:
A specific instance:
38 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Inverse Functional Properties
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
TributaryBrook
Rivulet An Inverse Functional property - for a range value the domain is unique.
Properties: emptiesInto: BodyOfWater
Properties: feedsFrom: River
(functional)
39 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Inverse Functional Property
EastChinaSea.rdf
<?xml version="1.0"?><Sea rdf:ID="EastChinaSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <feedsFrom> <River rdf:about="http://www.china.org/rivers#Yangtze"/> </feedsFrom></Sea>
<?xml version="1.0"?><Sea rdf:ID="S1001-x-302" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <feedsFrom> <River rdf:about="http://www.china.org/rivers#Yangtze"/> </feedsFrom></Sea>
S1001-x-302.rdf
These two independent documents discuss "feeding from" the Yangtze:
40 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Inverse Functional Property (cont.)
If feedsFrom has been defined to be InverseFunctional then we can infer that: EastChinaSea = S1001-x-302.
YangtzefeedsFrom
S1001-x-302 YangtzefeedsFrom
If feedsFrom has beendefined to be InverseFunctional then we caninfer that these twoResources must referto the same thing.
EastChinaSea
41 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Time for Syntax!
• On the previous slides we have seen the different ways that OWL provides to characterize properties.
• Now let's look at the OWL syntax for expressing these property characteristics.
42 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining Properties in OWL
• Recall that with RDF Schema the rdf:Property was used for both:– relating a Resource to another Resource
• Example: The emptiesInto property relates a River to a BodyOfWater.
– relating a Resource to an rdfs:Literal or a datatype• Example: The length property relates a River to a
xsd:nonNegativeInteger.
• OWL decided that these are two classes of properties, and thus each should have its own class:– owl:ObjectProperty is used to relate a Resource to another Resource
– owl:DatatypeProperty is used to relate a Resource to an rdfs:Literal or an XML Schema built-in datatype
43 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
ObjectProperty vs. DatatypeProperty
ResourceObjectProperty
Resource
DatatypePropertyResource Value
An ObjectProperty relates one Resource to another Resource:
A DatatypeProperty relates a Resource to a Literal or an XML Schema datatype:
44 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
owl:ObjectProperty and owl:DatatypeProperty are subclasses of rdf:Property
rdf:Property
owl:ObjectProperty owl:DatatypeProperty
rdf:Property
owl:ObjectProperty owl:DatatypeProperty
45 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining Properties in OWL vs. RDF Schema
<rdf:Property rdf:ID="emptiesInto"> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="#BodyOfWater"/></rdf:Property>
<rdf:Property rdf:ID="length"> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"/></rdf:Property>
<owl:ObjectProperty rdf:ID="emptiesInto"> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="#BodyOfWater"/></owl:ObjectProperty>
<owl:DatatypeProperty rdf:ID="length"> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"/></owl:DatatypeProperty>
RD
FS
OW
L
46 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
The OWL Namespace
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:ObjectProperty rdf:ID="emptiesInto"> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="#BodyOfWater"/> </owl:ObjectProperty>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
47 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
What is the URI for the properties
and classes defined by an OWL document?
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:ObjectProperty rdf:ID="emptiesInto"> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="#BodyOfWater"/> </owl:ObjectProperty>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
The URI for an identifier (i.e., an rdf:ID value) is the concatenation of the xml:basevalue (or the document URL if there is no xml:base) with "#" and the identifier.Thus, the complete URI for the above emptiesInto property is: http://www.geodesy.org/water/naturally-occurring#emptiesInto
Note: These are the same rules that RDF Schema uses for determining the URI.
What is the full URI for the emptiesInto property in this OWL document:
48 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining Symmetric Properties
Brook
Rivulet
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
Tributary
Properties: connectsTo: NaturallyOccurringWaterSource
A Symmetric property - if water source A connectsTo water source B then water source B connects to water source A.
49 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Syntax for indicating that a property is Symmetric
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:ObjectProperty rdf:ID="connectsTo"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#SymmetricProperty"/> <rdfs:domain rdf:resource="#NaturallyOccurringWaterSource"/> <rdfs:range rdf:resource="#NaturallyOccurringWaterSource"/> </owl:ObjectProperty>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
Read this as: "connectsTo is an ObjectProperty. Specifically, it is a Symmetric Object Property."
50 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
owl:SymmetricProperty is a subclass of owl:ObjectProperty
rdf:Property
owl:ObjectProperty owl:DatatypeProperty
rdf:Property
owl:ObjectProperty owl:DatatypeProperty
owl:SymmetricProperty
SymmetricPropertyConsequently, the range of a SymmetricProperty can only be a Resource, i.e., the range cannot be a Literal or a datatype.
51 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Equivalent!
<owl:ObjectProperty rdf:ID="connectsTo"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#SymmetricProperty"/> <rdfs:domain rdf:resource="#NaturallyOccurringWaterSource"/> <rdfs:range rdf:resource="#NaturallyOccurringWaterSource"/></owl:ObjectProperty>
<owl:SymmetricProperty rdf:ID="connectsTo"> <rdfs:domain rdf:resource="#NaturallyOccurringWaterSource"/> <rdfs:range rdf:resource="#NaturallyOccurringWaterSource"/></owl:SymmetricProperty>
1
2
Read this as: "connectsTo is an ObjectProperty. Specifically, it is a Symmetric Object Property."
Read this as: "connectsTo is a SymmetricProperty."
Question: Why would you ever use the first form? The second form seems a lot more straightforward. Right?Answer: In this example, you are correct, the second form is more straightforward. However, you will see in a moment that we can define a property to be of several types, e.g., Symmetric and Functional. In that case it may be more straightforward to use the first form (and use multiple rdf:type elements).
52 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining Transitive Properties
Brook
Rivulet
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
Tributary
A Transitive property - if A is containedIn B, and B is containedIn C then A is containedIn C.
Properties: containedIn: BodyOfWater
53 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Syntax for indicating that a property is Transitive
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:ObjectProperty rdf:ID="containedIn"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#TransitiveProperty"/> <rdfs:domain rdf:resource="#Sea"/> <rdfs:range rdf:resource="#BodyOfWater"/> </owl:ObjectProperty>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
54 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
owl:TransitiveProperty is a subclass of owl:ObjectProperty
rdf:Property
owl:ObjectProperty owl:DatatypeProperty
rdf:Property
owl:ObjectProperty owl:DatatypeProperty
owl:TransitiveProperty
TransitivePropertyConsequently, the range of a TransitiveProperty can only be a Resource, i.e., the range cannot be a Literal or a datatype.
55 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining Functional Properties
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
TributaryBrook
Rivulet
Properties: emptiesInto: BodyOfWater
A Functional property - for each instance there is at most one value for the property.
56 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Syntax for indicating that a property is Functional
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:ObjectProperty rdf:ID="emptiesInto"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="BodyOfWater"/> </owl:ObjectProperty>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
57 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
owl:FunctionalProperty is a subclass of rdf:Property
rdf:Property
owl:ObjectProperty owl:DatatypeProperty
FunctionalProperty
rdf:Property
owl:ObjectProperty owl:DatatypeProperty owl:FunctionalProperty
Consequently, the range of a FunctionalProperty can be either a Resource or a Literal or a datatype.
58 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining Inverse Properties
OceanLake
BodyOfWater
River
Stream
Properties: emptiesInto: BodyOfWater
Sea
NaturallyOccurringWaterSource
TributaryBrook
Rivulet
Properties: feedsFrom: River
Inverse Properties - if property P1 relates Resource 1 to Resource 2, then its inverse property relates Resource 2 to Resource 1.
59 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Syntax for indicating that a property is the inverse of another property
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:ObjectProperty rdf:ID="emptiesInto"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="#BodyOfWater"/> </owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="feedsFrom"> <owl:inverseOf rdf:resource="#emptiesInto"/> <rdfs:domain rdf:resource="#BodyOfWater"/> <rdfs:range rdf:resource="#River"/> </owl:ObjectProperty>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
Notice that the values for domain and rangeare flipped from that inemptiesInto.
60 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining Inverse Functional Properties
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
TributaryBrook
Rivulet An Inverse Functional property - for a range value the domain is unique.
Properties: feedsFrom: River
Properties: emptiesInto: BodyOfWater
(Functional)
61 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Syntax for indicating that a property is Inverse Functional<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:ObjectProperty rdf:ID="emptiesInto"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> <rdfs:domain rdf:resource="#River"/> <rdfs:range rdf:resource="#BodyOfWater"/> </owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="feedsFrom"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/> <owl:inverseOf rdf:resource="#emptiesInto"/> <rdfs:domain rdf:resource="#BodyOfWater"/> <rdfs:range rdf:resource="#River"/> </owl:ObjectProperty>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
62 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
owl:InverseFunctionalProperty is a subclass of rdf:Property
rdf:Property
owl:ObjectProperty owl:DatatypeProperty
InverseFunctionalProperty
rdf:Property
owl:ObjectProperty owl:DatatypeProperty owl:InverseFunctionalProperty
Consequently, the range of an InverseFunctionalProperty can be either a Resource or a Literal or a datatype.
63 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Summary of the different ways to characterize properties
• In the preceding slides we have seen the different ways of characterizing properties. We saw that a property may be defined to be:– A Symmetric property.
– A Transitive property.
– A Functional property.
– The Inverse of another property.
– An Inverse Functional property.
64 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
Summary of Properties for the Water Taxonomy
TributaryBrook
Rivulet
Properties: feedsFrom: River
Properties: emptiesInto: BodyOfWater
(Functional)
(Inverse Functional)
(Inverse)
Properties: containedIn: BodyOfWater
(Transitive)
Properties: connectsTo: NaturallyOccurringWaterSource
(Symmetric)
65 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Inferences we can make now that we have characterized the properties
Yangtze.rdf
<?xml version="1.0"?><River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/> <connectsTo rdf:resource="http://www.china.org/rivers#Wu"/></River>
We can infer that:1. The EastChinaSea feedsFrom the Yangtze. (Since emptiesInto is the inverse of feedsFrom)2. The Wu connectsTo the Yangtze. (Since connectsTo is symmetric)3. The EastChinaSea is a BodyOfWater. (Since the range of emptiesInto is a BodyOfWater.4. The Wu is a NaturallyOccurringWaterSource. (Since the range of connectsTo is NaturallyOccurringWaterSource)
66 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Hierarchy of the property classes
rdf:Property
owl:ObjectProperty owl:DatatypeProperty
owl:SymmetricProperty owl:TransitiveProperty
owl:FunctionalProperty
Consequences: 1. SymmetricProperty and TransitiveProperty can only be used to relate Resources to Resources. 2. FunctionalProperty and InverseFunctionalProperty can be used to relate Resources to Resources, or Resources to an RDF Schema Literal or an XML Schema datatype.
owl:InverseFunctionalProperty
67 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Why wasn't owl:inverseOf shown in the preceding class hierarchy?
Do Lab1
<owl:ObjectProperty rdf:ID="feedsFrom"> <owl:inverseOf rdf:resource="#emptiesInto"/> <rdfs:domain rdf:resource="#BodyOfWater"/> <rdfs:range rdf:resource="#River"/> </owl:ObjectProperty>
Answer: owl:inverseOf is a "property", not a class, e.g.
property
rdf:Property
owl:ObjectProperty owl:DatatypeProperty
Properties: inverseOf: owl:ObjectProperty
68 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Constraining a property based upon its context
• Now we will look at ways to constrain the range of a property based upon the context (class) in which it is used ...
69 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
Sometimes a class needs to restrict the range of a property
TributaryBrook
Rivulet Flueve
Properties: emptiesInto: BodyOfWater
Since Flueve is a subclass of River, it inherits emptiesInto.The range for emptiesInto is any BodyOfWater. However,the definition of a Flueve (French) is: "a River which emptiesIntoa Sea". Thus, in the context of the Flueve class we want therange of emptiesInto restricted to Sea.
70 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Global vs Local Properties
• rdfs:range imposes a global restriction on the emptiesInto property, i.e., the rdfs:range value applies to River and all subclasses of River.
• As we have seen, in the context of the Flueve class, we would like the emptiesInto property to have its range restricted to just the Sea class. Thus, for the Flueve class we want a local definition of emptiesInto.
• Before we see how to do this, we need to look at how classes are defined in OWL ...
71 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining Classes in OWL
• OWL classes permit much greater expressiveness than RDF Schema classes.
• Consequently, OWL has created their own Class, owl:Class.
<rdfs:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/></rdfs:Class>
<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/></owl:Class>
RDFS OWL
72 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
owl:Class is a subclass of rdfs:Class
rdfs:Class
owl:Class
73 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining emptiesInto (when used in Flueve) to have
allValuesFrom the Sea class<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:Class rdf:ID="Flueve"> <rdfs:subClassOf rdf:resource="#River"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#Sea"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
74 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Flueve is a subclass of an "anonymous class"
<owl:Class rdf:ID="Flueve"> <rdfs:subClassOf rdf:resource="#River"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#Sea"/> </owl:Restriction> </rdfs:subClassOf></owl:Class>
This is read as: "The Flueve class is a subClassOf River, and a subClassOfan anonymous class which has a property emptiesInto and all values for emptiesInto must be instances of Sea."
Here's an easier way to read this: "The Flueve class is a subClassOf River.It has a property emptiesInto. All values for emptiesInto must be instancesof Sea."
anonymousclass
75 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Definition of Flueve
River
Flueve - a River that emptiesInto a Sea.
The members of this anonymousclass are instances which have anemptiesInto property in whichall values are instances of Sea.
76 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
An instance of Flueve
Yangtze.rdf
<?xml version="1.0"?><Flueve rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/></Flueve>
We can infer that this value must be a Sea!
All values for emptiesInto must be an instance of Sea, in the context of the Flueve class.
77 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Two forms of rdfs:subClassOf
<rdfs:subClassOf rdf:resource="#River"/>
<rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#Sea"/> </owl:Restriction></rdfs:subClassOf>
Specify the class using the rdf:resource attribute.
Specify the class using owl:Restriction.
1
2
78 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
To be a River at least one value of connectsTo must be BodyOfWater
TributaryBrook
Rivulet
Properties: connectsTo: NaturallyOccurringWaterSource
Every class inherits the connectsTo property. Thus, anythingcan connect to anything else.A River may connect to many things - Brooks, Tributaries, etc.However, one thing that it must connect to is a BodyOfWater(Lake, Ocean, or Sea). Thus, in the context of the River class theconnectsTo property should have at least one value that is a BodyOfWater.
79 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining connectsTo (when used in River) to have someValuesFrom
the BodyOfWater class<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#connectsTo"/> <owl:someValuesFrom rdf:resource="#BodyOfWater"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
80 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Understanding owl:someValuesFrom
<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#connectsTo"/> <owl:someValuesFrom rdf:resource="#BodyOfWater"/> </owl:Restriction> </rdfs:subClassOf></owl:Class>
This is read as: "The River class is a subClassOf Stream, and a subClassOfan anonymous class which has a property connectsTo and some values (at least one)of connectsTo must be instances of BodyOfWater."
Here's an easier way to read this: "The River class is a subClassOf Stream.It has a property connectsTo. At least one value for connectsTo must be an instanceof BodyOfWater."
81 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
An instance of River
Yangtze.rdf
<?xml version="1.0"?><River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <connectsTo rdf:resource="http://www.china.org/rivers#Wu"/> <connectsTo rdf:resource="http://www.china.org/geography#EastChinaSea"/></River>
At least one of these values mustbe a BodyOfWater (Lake, Ocean, or Sea)!(Assume that there are no other documents which describe the Yangtze.)
At least one value for connectsTo must be an instance of BodyOfWater, in the context of the River class.
82 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
allValuesFrom vs. someValuesFrom
<owl:onProperty rdf:resource="#emptiesInto"/><owl:allValuesFrom rdf:resource="#Sea"/>
Wherever there is an emptiesInto property, all its values must be instances of Sea. [There may be zero emptiesInto properties.]
<owl:onProperty rdf:resource="#connectsTo"/><owl:someValuesFrom rdf:resource="#BodyOfWater"/>
There must be at least one connectsTo property whose value isBodyOfWater. [There must be at least one connectsTo property.]
versus:
83 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
All Oceans are SaltWater
TributaryBrook
Rivulet
Properties: type: FreshWaterOrSaltWater
The water in Oceans is SaltWater. Ocean inherits the "type"property from BodyOfWater. We would like to indicatethat the "type" property, in the context of an Ocean, always has a value of SaltWater.
FreshWaterOrSaltWater
84 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining the "type" property to have
the value SaltWater (when used in Ocean)
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<FreshWaterOrSaltWater rdf:ID="SaltWater"/>
<owl:Class rdf:ID="Ocean"> <rdfs:subClassOf rdf:resource="#BodyOfWater"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#type"/> <owl:hasValue rdf:resource="#SaltWater"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
85 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Understanding owl:hasValue
<FreshWaterOrSaltWater rdf:ID="SaltWater"/>
<owl:Class rdf:ID="Ocean"> <rdfs:subClassOf rdf:resource="#BodyOfWater"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#type"/> <owl:hasValue rdf:resource="#SaltWater"/> </owl:Restriction> </rdfs:subClassOf></owl:Class>
This is read as: "The Ocean class is a subClassOf BodyOfWater, and a subClassOfan anonymous class which has a property - type - that has the value SaltWater."
Here's an easier way to read this: "The Ocean class is a subClassOf BodyOfWater.Every Ocean has a 'type' property whose value is SaltWater."
Note that this is an instanceof the class FreshWaterOrSaltWater.
86 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
An instance of Ocean
PacificOcean.rdf
<?xml version="1.0"?><Ocean rdf:ID="PacificOcean" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <type rdf:resource="http://www.geodesy.org/water/naturally-occurring#SaltWater"/></Ocean>
Every instance of Ocean must have a property"type" whose value is SaltWater.Note: it is not necessary to put the type propertyin an Ocean instance document - the "type" may be inferred from hasValue. That is, the Ontology indicates that if it's an Ocean then its type is SaltWater.
At least one "type" property must have the value SaltWater, in the context of an Ocean class.
87 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
owl:hasValue means there exists a property with the specified value
• The owl:hasValue property restriction simply asserts that there exists a property with the value.
• In fact, there may be other instances of the same property that do not have the value.
• For the Ocean example, we know that every Ocean is of type of SaltWater.
88 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Summary of the different ways a class can constrain a property
• In the preceding slides we have seen the different ways that a class can constrain a global property. We saw that a property can be constrained such that:– All values must belong to a certain class (use
allValuesFrom).
– At least one value must come from a certain class (use someValuesFrom).
– It has a specific value (use hasValue).
89 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Properties of the Restriction Class
rdfs:Class
owl:Class
owl:Restriction
Properties: onProperty: rdf:Property allValuesFrom: rdfs:Class hasValue: someValuesFrom: rdfs:Class
90 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Context-specific cardinality constraints
• Definition of cardinality: the number of occurrences.
• Now we will look at ways to constrain the cardinality of a property based upon the context (class) in which it is used ...
91 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
A BodyOfWater can have only one maxDepth (cardinality = 1)
TributaryBrook
Rivulet
Properties: maxDepth: xsd:integer
When defining the BodyOfWater class it would beuseful to indicate that there can be only onemaxDepth for a BodyOfWater.
92 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining the cardinality of the maxDepth property to be 1
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:Class rdf:ID="BodyOfWater"> <rdfs:subClassOf rdf:resource="#NaturallyOccurringWaterSource"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#maxDepth"/> <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
93 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Understanding owl:cardinality
<owl:Class rdf:ID="BodyOfWater"> <rdfs:subClassOf rdf:resource="#NaturallyOccurringWaterSource"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#maxDepth"/> <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf></owl:Class>
This is read as: "The BodyOfWater class is a subClassOf NaturallyOccurringWaterSource, and a subClassOf an anonymous class which has a property maxDepth. There can be onlyone maxDepth for a BodyOfWater. This is indicated by a cardinality of 1."
Here's an easier way to read this: "The BodyOfWater class is a subClassOf NaturallyOccurringWaterSource. It has a property maxDepth. There can be only one maxDepth for a BodyOfWater."
94 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
maxDepth of the PacificOcean
PacificOcean.rdf
<?xml version="1.0"?><Ocean rdf:ID="PacificOcean" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <maxDepth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2300</maxDepth></Ocean>
The PacificOcean has only one maxDepth.
There is only one maxDepth, in the context of a BodyOfWater (e.g., Ocean) class.
95 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
The cardinality is not mandating the number of occurrences of a property in
an instance document!• Differentiate between these two statements:
– 1. In an instance document there can be only one maxDepth property for a BodyOfWater.
– 2. A BodyOfWater has only one maxDepth.
• Do you see the difference?– 1. The first statement is something that you would find in an XML
Schema.– 2. The second statement is a statement of information. It places no
restrictions on the number of occurrences of the maxDepth property in an instance document. In fact, any resource may have multiple maxDepth properties. They must all be equal, however, since there can be only one maxDepth per resource.
96 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
Some Brooks have no name (minCardinality = 0)
TributaryBrook
Rivulet
Properties: name: xsd:string
All of the classes inherit the name property.When defining the Brook class it would beuseful to indicate that a Brook might not havea name.
97 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining the minCardinality of the name property to be 0
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:Class rdf:ID="Brook"> <rdfs:subClassOf rdf:resource="#Stream"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#name"/> <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
98 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining the cardinality of the name property to be a range (0-10)
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:Class rdf:ID="Brook"> <rdfs:subClassOf rdf:resource="#Stream"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#name"/> <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">10</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
99 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Summary of the different ways to express the cardinality of a property
• In the preceding slides we have seen the ways that a class can specify the cardinality of a property, using:– cardinality
– minCardinality
– maxCardinality
100 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Complete List of Properties of the Restriction Class
rdfs:Class
owl:Class
owl:RestrictionProperties: onProperty: rdf:Property allValuesFrom: rdfs:Class hasValue: someValuesFrom: rdfs:Class cardinality: xsd:nonNegativeInteger minCardinality: xsd:nonNegativeInteger maxCardinality: xsd:nonNegativeInteger
101 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Equivalent Properties
• Now we will look at the ways to express that two properties are equivalent ...
102 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
name is equivalent to the Title property in Dublin Core
TributaryBrook
Rivulet
Properties: name: xsd:string
103 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining name to be equivalent to dc:Title
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:DatatypeProperty rdf:ID="name"> <owl:equivalentProperty rdf:resource="http://pur1.org/metadata/dublin-core#Title"/> <rdfs:domain rdf:resource="#NaturallyOccurringWaterSource"/> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> </owl:DatatypeProperty>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
Do Lab2Note that we are using owl:DatatypeProperty to define name.
105 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Constructing Classes using Set Operators
• OWL gives you the ability to construct classes using these set operators:– intersectionOf– unionOf– complementOf
106 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
Defining a Flueve class using the intersectionOf operator
TributaryBrook
Rivulet Flueve
Properties: emptiesInto: BodyOfWater
Recall the definition of a Flueve (French) is: "a River which emptiesIntoa Sea". Thus, a Flueve may be defined as the intersectionOf the Riverclass and an anonymous class containing the emptiesInto property withallValuesFrom Sea.
107 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining Flueve
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:Class rdf:ID="Flueve"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#River"/> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#Sea"/> </owl:Restriction> </owl:intersectionOf> </owl:Class>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
108 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Understanding intersectionOf
This is read as: "The Flueve class is the intersection of the River class and an anonymousclass that contains a property emptiesInto and all values are instances of Sea."
Here's an easier way to read this: "The Flueve class is a River that emptiesInto a Sea."
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:Class rdf:ID="Flueve"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#River"/> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#Sea"/> </owl:Restriction> </owl:intersectionOf> </owl:Class>
...
</rdf:RDF>
109 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Understanding intersectionOf
River
Flueve - a River that emptiesInto a Sea.
The members of this anonymousclass are instances which have anemptiesInto property in whichall values are instances of Sea.
110 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:Class rdf:ID="Flueve"> <rdfs:subClassOf rdf:resource="#River"/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#Sea"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
Contrast with defining Flueve using 2 subClassOf statements
111 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Multiple subClassOf = a subset of the intersection
River
Flueve - a Flueve is a River that emptiesInto a Sea. However, as this diagram shows, by using multiple subClassOf elements there may be Rivers which emptiesInto a Sea that are not Flueves.
The members of this anonymousclass are instances which have anemptiesInto property in whichall values are instances of Sea.
The conjunction (AND) of two subClassOf statements is a subset of the intersection of the classes.
112 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OceanLake
BodyOfWater
River
Stream
Sea
NaturallyOccurringWaterSource
Defining a Rivìere class using the unionOf operator
TributaryBrook
Rivulet Rivìere
Properties: emptiesInto: BodyOfWater
The definition of a Rivìere (French) is: "a River which emptiesIntoa Lake or another River". Thus, to define a Rivìere we will need to use both intersectionOf and unionOf ...
113 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
A Rivìere is the intersection of River with the union of two classes
River
Rivìere - a River that emptiesInto a Sea or another River.
The members of this anonymousclass are instances which have anemptiesInto property in whichall values are instances of Sea.
The members of this anonymous class are instances which have an emptiesInto property in which all values are instances of River.
Question: do you understand why the two anonymous classes are disjoint?Answer: because emptiesInto is a Functional Property!
114 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining Rivìere<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:Class rdf:ID="Rivìere"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#River"/> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#Sea"/> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource="#emptiesInto"/> <owl:allValuesFrom rdf:resource="#River"/> </owl:Restriction> </owl:unionOf> </owl:Class> </owl:intersectionOf> </owl:Class>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
115 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining NaturallyOccurringWaterSource using complementOf
WaterSource
ManMadeWaterSource
NaturallyOccurringWaterSource
- the intersection of WaterSource and the complementOf ManMadeWaterSource.
116 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Using complementOf
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:Class rdf:ID="NaturallyOccurringWaterSource"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#WaterSource"/> <owl:Class> <owl:complementOf rdf:resource="#ManMadeWaterSource"/> </owl:Class> </owl:intersectionOf> </owl:Class>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
117 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Enumeration, equivalence, disjoint
• OWL gives you the ability to: – construct a class by enumerating its instances.– specify that a class is equivalent to another
class.– specify that a class is disjoint from another
class.
118 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining a class by enumerating its instances
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:geo="http://www.geodesy.org/water/naturally-occurring#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:Class rdf:ID="Kyoto-Protected-River"> <rdfs:subClassOf rdf:resource="#River"/> <owl:oneOf rdf:parseType="Collection"> <geo:River rdf:about="http://www.china.org/geography/rivers#Yangtze"/> <geo:River rdf:about="http://www.us.org/rivers#Mississippi"/> <geo:River rdf:about="http://www.africa.org/rivers#Nile"/> <geo:River rdf:about="http://www.s-america.org/rivers#Amazon"/> … </owl:oneOf> </owl:Class>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
Here we are enumeratingthe Rivers which areprotected by the Kyoto Treaty.
119 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining a class to be equivalent to another class
• owl:equivalentClass is used to state that a class is equivalent to another class.
• Example: suppose that another OWL document defines a class called LakeOceanSea as follows:
OceanLake
LakeOceanSea
Sea
We would like to state that BodyOfWater is equivalent to LakeOceanSea.
120 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining BodyOfWater to be equivalent to LakeOceanSea
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:Class rdf:ID="BodyOfWater"> <rdfs:subClassOf rdf:resource="#NaturallyOccurringWaterSource"/> <owl:equivalentClass rdf:resource="http://www.other.org#LakeOceanSea"/> </owl:Class>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
121 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining a class to be disjoint from another class
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/> <owl:disjointWith rdf:resource="#Brook"/> <owl:disjointWith rdf:resource="#Rivulet"/> <owl:disjointWith rdf:resource="#Tributary"/> </owl:Class>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
This definition of River indicates that a River instance cannot also bea Brook, Rivulet, or Tributary. Thus, for example, you cannot have an instance which defines the Yangtze as a Tributary.
122 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Note: disjointWith is a SymmetricProperty!
• Example: if River is disjointWith Brook, then Brook is disjointWith River.
River Brook
disjointWith
disjointWith
123 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
River is (only) disjoint from the others
Stream
River
<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/> <owl:disjointWith rdf:resource="#Brook"/> <owl:disjointWith rdf:resource="#Rivulet"/> <owl:disjointWith rdf:resource="#Tributary"/></owl:Class>
The above class definition only statesthat there are no instances of Riverwhich overlap with Brook, Rivulet, orTributary. It does not state that all fourclasses are disjoint.
Brook
Tributary
Rivulet
124 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Now we know that all are disjoint
<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/> <owl:disjointWith rdf:resource="#Brook"/> <owl:disjointWith rdf:resource="#Rivulet"/> <owl:disjointWith rdf:resource="#Tributary"/></owl:Class>
<owl:Class rdf:ID="Brook"> <rdfs:subClassOf rdf:resource="#Stream"/> <owl:disjointWith rdf:resource="#Rivulet"/> <owl:disjointWith rdf:resource="#Tributary"/></owl:Class>
<owl:Class rdf:ID="Tributary"> <rdfs:subClassOf rdf:resource="#Stream"/> <owl:disjointWith rdf:resource="#Rivulet"/></owl:Class>
Stream
River
Brook
Tributary
Rivulet
125 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Summary of Class Propertiesrdfs:Class
owl:Class
Properties: subClassOf: rdfs:Class domain: rdfs:Class range: rdfs:Class
Properties: intersectionOf: rdf:List unionOf: rdf:List complementOf: owl:Class oneOf: rdf:List equivalentClass: owl:Class disjointWith: owl:Class
owl:Restriction
Properties: onProperty: rdf:Property allValuesFrom: rdfs:Class hasValue: someValuesFrom: rdfs:Class cardinality: xsd:nonNegativeInteger minCardinality: xsd:nonNegativeInteger maxCardinality: xsd:nonNegativeInteger
126 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OWL statements that you can incorporate into instances
127 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Indicating that two instances are the same
<?xml version="1.0"?><Sea rdf:ID="EastChinaSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> ...</Sea>
<?xml version="1.0"?><Sea rdf:ID="S100-x-302" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> ... </Sea>
Consider these two instance documents:
Are they referring to the same Sea? In fact, S100-x-302 is the catalog numberfor the East China Sea. So, these two instances do refer to the same Sea. It would be useful if we could state in an instance document that it is describing the same thingas another instance document. We use owl:sameIndividualAs to express this sameness ...
128 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
owl:sameIndividualAs
<?xml version="1.0"?><Sea rdf:ID="EastChinaSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <owl:sameIndividualAs rdf:resource="http://www.national-geographic.org#S1001-x-302"/> ...</Sea>
We are clearly indicating that this instance is describing the same thing as the S100-x-302 instance.
129 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
owl:FunctionalProperty and
owl:sameIndividualAs can reinforce each other!
<?xml version="1.0"?><River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/> <emptiesInto rdf:resource="http://www.national-geographic.org#S1001-x-302"/></River>
YangtzeemptiesInto
YangtzeemptiesInto
EastChinaSea
S1001-x-302
owl:sameIndividualAs
By defining emptiesInto as a FunctionalProperty we assert that EastChinaSeaand S100-x-302 must be the same. The owl:sameIndividualAs is reconfirming this!
130 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Indicating that two instances are different
Consider these two instance documents:
It may be useful to clearly state in an instance document that it isdifferent from another instance. This is accomplished usingowl:differentFrom.
<?xml version="1.0"?><Sea rdf:ID="EastChinaSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> ...</Sea>
<?xml version="1.0"?><Sea rdf:ID="RedSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> ... </Sea>
131 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
owl:differentFrom
<?xml version="1.0"?><Sea rdf:ID="EastChinaSea" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <owl:differentFrom rdf:resource="http://www.mediterranean.org#RedSea"/> ...</Sea>
We are clearly indicating that this instance is different from the Red Sea instance.
132 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
owl:FunctionalProperty combined with
owl:differentFrom can expose contradictions!
<?xml version="1.0"?><River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/> <emptiesInto rdf:resource="http://www.mediterranean.org#RedSea"/></River>
YangtzeemptiesInto
YangtzeemptiesInto
EastChinaSea
RedSea
owl:differentFrom
By defining emptiesInto as a FunctionalProperty we assert that EastChinaSeaand RedSea must be the same. But owl:differentFrom indicates that they aredifferent! Thus, there is a contradiction. It indicates that the instance is in error.
133 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
owl:AllDifferent
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:geo="http://www.geodesy.org/water/naturally-occurring#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:AllDifferent> <owl:distinctMembers rdf:parseType="Collection"> <geo:Sea rdf:about="http://www.china.org/geography/rivers#EastChinaSea"/> <geo:Sea rdf:about="http://www.mediterranean.org#RedSea"/> <geo:Sea rdf:about="http://www.africa.org/rivers#ArabianSea"/> <geo:Sea rdf:about="http://www.philippines.org#PhilippineSea"/> </owl:distinctMembers> </owl:AllDifferent>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
Using the owl:AllDifferent class we can indicate that a collection of instances are different:
This indicates that the EastChinaSea, RedSea, ArabianSea, and PhilippineSea are all different!
134 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Summary of the different statements you can incorporate into instances
• In the preceding slides we saw the OWL statements that you can put into instance documents:– sameIndividualAs
– differentFrom
• Question: what about AllDifferent? Answer: the owl:AllDifferent class is typically used in an ontology document, not an instance document (however, you can use it in an instance document if you like).
135 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
owl:Thing
owl:Thing
Every instance in the universeis a member of owl:Thing!
owl:Thing is a predefined OWL class. All instances are members of owl:Thing.
136 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Equivalent!
<?xml version="1.0"?><River rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <length>6300 kilometers</length> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/></River>
<?xml version="1.0"?><owl:Thing rdf:ID="Yangtze" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns="http://www.geodesy.org/water/naturally-occurring#"> <rdf:type rdf:resource="http://www.geodesy.org/water/naturally-occurring#River"/> <length>6300 kilometers</length> <emptiesInto rdf:resource="http://www.china.org/geography#EastChinaSea"/></owl:Thing>
"Yangtze is a Thing. Specifically, it is a River Thing."
137 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
The owl:Thing class is the root of all classes
owl:Thing
. . .
. . .
138 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/></owl:Class>
<owl:Class rdf:ID="River"> <rdfs:subClassOf rdf:resource="#Stream"/> <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl #Thing"/></owl:Class>
owl:Thing
Stream
River
Do Lab3
Equivalent!
140 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Other OWL documents must be specified in-band
• With RDF Schema you can simply use another Schema. You don't have to "import" the Schema. Tools are expected to locate the Schema "out-of-band".
• With OWL you must explicitly import the OWL documents you will use.
141 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
The Ontology Header
<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:geo="http://www.geodesy.org/water/naturally-occurring#" xml:base="http://www.geodesy.org/water/naturally-occurring">
<owl:Ontology rdf:about="http://www.geodesy.org/water/naturally-occurring"> <owl:priorVersion rdf:resource="http://www.geodesy.org/water/naturally-occurring/july-02#"/> <owl:versionInfo>naturally-occurring.owl v 2.0</owl:versionInfo> <owl:imports rdf:resource="http://www.other.org/other.owl"/> </owl:Ontology>
...
</rdf:RDF>
naturally-occurring.owl (snippet)
All class, property,and instance definitionscome after owl:Ontology
142 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
owl:Ontology Properties
owl:Ontology
Properties: imports: versionInfo: priorVersion: Ontology incompatibleWith: Ontology backwardCompatibleWith: Ontology
Note: Ontology refers to the OWL document, e.g., naturally-occurring.owl.
144 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
OWL Full, OWL DL, and OWL Lite
• Not everyone will need all of the capabilities that OWL provides. Thus, there are three versions of OWL:
OWL Full
OWL DL
OWL Lite
DL = Description Logic
145 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Comparison
OWL Full OWL DL OWL Lite
Everything that hasbeen shown in thistutorial is available.Further, you can mix RDF Schema definitionswith OWL definitions.
You cannot use owl:cardinalitywith TransitiveProperty.A DL ontology cannot importan OWL Full ontology.You cannot use a class as amember of another class, i.e.,you cannot have metaclasses.FunctionalProperty andInverseFunctionalPropertycannot be used with datatypes(they can only be used with ObjectProperty).
You cannot use owl:minCardinalityor owl:maxCardinality.The only allowed values forowl:cardinality is 0 and 1.Cannot use owl:hasValue.Cannot use owl:disjointWith.Cannot use owl:oneOf.Cannot use owl:complementOf.Cannot use owl:unionOf.
146 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Advantages/Disadvantages
• Full: – The advantage of the Full version of OWL is that you get the full
power of the OWL language.– The disadvantage of the Full version of OWL is that it is difficult to
build a Full tool. Also, the user of a Full-compliant tool may not get a quick and complete answer.
• DL/Lite:– The advantage of the DL or Lite version of OWL is that tools can be
built more quickly and easily, and users can expect responses from such tools to come quicker and be more complete.
– The disadvantage of the DL or Lite version of OWL is that you don't have access to the full power of the language.
147 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Related Documents
• The OWL Guide provides a very nice description of OWL, with many examples:– http://www.w3.org/TR/owl-guide/
• Here is the URL to the OWL Reference document:– http://www.w3.org/TR/owl-ref/
• For all other OWL documents, and information on the Semantic Web see:– http://www.w3.org/2001/sw/
149 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
The Robber and the Speeder (version 2)
• An expanded version of the Robber and the Speeder example is shown on the following slides. This version was created by Ian Davis. Thanks Ian!
150 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Robber drops gun while fleeing!
First of all a robbery takes place. The robber drops his gun whilefleeing. This report is filed by the investigating officers:
<RobberyEvent> <date>...</date> <description>...</description> <evidence> <Gun> <serial>ABCD</serial> </Gun> </evidence> <robber> <Person /> <!-- an unknown person --> </robber></RobberyEvent>
151 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Speeder stopped
Subsequently a car is pulled over for speeding. The traffic officerfiles this report electronically while issuing a ticket:
<SpeedingOffence> <date>...</date> <description>...</description> <speeder> <Person> <name>Fred Blogs</name> <driversLicenseNumber>ZXYZXY</driversLicenseNumber> </Person> </speeder></SpeedingOffence>
152 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
The speeder owns a gun with the same serial number as the robbery gun!
At police headquarters (HQ), a computer analyzes each report as it is filed. The computer uses the driver's license information to look up any other records it has about Fred Blogs (the speeder)and discovers this gun license:
<GunLicense> <registeredGun> <Gun> <serial>ABCD</serial> </Gun> </registeredGun> <holder> <Person> <driversLicenseNumber>ZXYZXY</driversLicenseNumber> </Person> </holder></GunLicense>
153 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Case Solved?• Not yet! These questions must be answered before the speeder can be
arrested as the robbery suspect:
– Can multiple guns have the same serial number? • If so, then just because Fred Blogs owns a gun with the same serial number as the robbery gun does
not mean it was his gun that was used in the robbery.
– Can multiple people have the same driver's license number?• If so, then the gun license information may be for someone else.
– Can a gun be registered in multiple gun licenses?• If so, then the other gun licenses may show the holder of the gun to be someone other than Fred
Blogs.
– Can a gun license have multiple holders of a registered gun?• If so, then there may be another gun license document (not available at the police HQ) which shows
the same registered gun but with a different holder.
• The OWL Ontology (Police.owl) provides the information needed to answer these questions!
154 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Can multiple guns have the same serial number?
This OWL rule (in Police.owl) tells the computer at police HQ that each gun is uniquely identified by its serial number:
<owl:InverseFunctionalProperty rdf:ID="serial"> <rdfs:domain rdf:resource="Gun"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/></owl:InverseFunctionalProperty>
155 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Can multiple people have the same driver's license number?
The following OWL rule tells the computer that a driver's licensenumber is unique to a Person:
<owl:InverseFunctionalProperty rdf:ID="driversLicenseNumber"> <rdfs:domain rdf:resource="Person"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/></owl:InverseFunctionalProperty>
156 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Can a gun be registered in multiple gun licenses?
The next OWL rule tells the computer that the registeredGun propertyuniquely identifies a GunLicense, i.e., each gun is associated withonly a single GunLicense:
<owl:InverseFunctionalProperty rdf:ID="registeredGun"> <rdfs:domain rdf:resource="GunLicense"/> <rdfs:range rdf:resource="Gun"/></owl:InverseFunctionalProperty>
157 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Can a gun license have multiple holders of a registered gun?
The police computer uses the following OWL rule to determine that the gun on thelicense is the same gun used in the robbery. This final rule seals the speeder's fate. Ittells the computer that each GunLicense applies to only one gun and one person. So, there is no doubt that the speeder is the person who owns the gun:
<owl:Class rdf:ID="GunLicense"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Restriction> <owl:onProperty rdf:resource="#registeredGun"/> <owl:cardinality>1</owl:cardinality> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource="#holder"/> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </owl:intersectionOf></owl:Class>
158 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Summary of information provided by the Police ontology
<GunLicense> <registeredGun> <Gun> <serial>ABCD</serial> </Gun> </registeredGun> <holder> <Person> <driversLicenseNumber>ZXYZXY</driversLicenseNumber> </Person> </holder></GunLicense>
Only one gun can have this serial number.
Only one person can have this driver's license number.
A gun can beregistered inonly one gunlicense.
A gun licenseregisters onegun to one person.
We now have overwhelming evidence that the speeder is the robber!
159 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Notes
<owl:InverseFunctionalProperty rdf:ID="driversLicenseNumber"> <rdfs:domain rdf:resource="Person"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/></owl:InverseFunctionalProperty>
The example showed that a driver's license number applies to only one person:
"A driver's license number applies to only one person."
We can make an even stronger statement, because it's also true that a person has only one driver's license number:
PersondriversLicenseNumber
1 1
PersondriversLicenseNumber
1
"A driver's license number applies to only one person, and a person has onlyone driver's license number."
Literal
Literal
Continued
160 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Notes (cont.)
<owl:DatatypeProperty rdf:ID="driversLicenseNumber"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/> <rdfs:domain rdf:resource="Person"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/></owl:DatatypeProperty>
Thus, driversLicenseNumber is also a functional property:
161 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Notes (cont.)
<owl:InverseFunctionalProperty rdf:ID="serial"> <rdfs:domain rdf:resource="Gun"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/></owl:InverseFunctionalProperty>
The example also showed that a serial number applies to only one gun:
"A serial number applies to only one gun."
We can make an even stronger statement, because it's also true that a gun has only one serial number:
Gunserial
1 1
Gunserial
1
"A serial number applies to only one gun, and a gun has only one serial number."
Literal
Literal
Continued
162 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Notes (cont.)
<owl:DatatypeProperty rdf:ID="serial"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/> <rdfs:domain rdf:resource="Gun"/> <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/></owl:DatatypeProperty>
Thus, serial is also a functional property:
163 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Invitation
• Do you have a simple example which demonstrates various OWL capabilities? If so, we invite you to send it to Roger Costello at [email protected]. We will incorporate your example (with credits) into this tutorial (time permitting, of course). Thanks!
165 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Confused about the difference between a Functional property and an
Inverse Functional property
A Person has a single birthdate. Therefore, birthdate is a Functional Property.
Question: Is birthdate an Inverse Functional Property?Answer: No. If birthdate was an Inverse Functionalproperty then only one person could have a birthdate.There are many people that have the same birthdate. Thus, birthdate is not an Inverse Functional property.
<Person rdf:ID="JohnDoe"> <birthdate>March 24, 1971</birthdate></Person>
Consider the birthdate property in this document:
Continued
166 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Example of an Inverse Functional Property
An email address applies to only one person. Therefore, email is an Inverse Functional Property.
Question: Is email a Functional Property?Answer: No. If email was a Functional Property then a person could have only one email. Many people have multiple email addresses. Thus, email is not a Functional Property.
<Person rdf:ID="SallyJane"> <email>[email protected]</email></Person>
Consider the email property in this document:
Continued
167 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Examples of properties that are both Functional and Inverse Functional
Most ID-like properties are both Functional and InverseFunctional, e.g., driver's license, passport number, SSN,serial number, etc.
PersondriversLicense
1 1
Personpassport
1 1
PersonSSN
1 1
Gunserial
1 1
Literal
Literal
Literal
Literal
168 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Can an OWL Ontology also contain instance data?
In general, it is best to keep instance data separate from the ontology. Sometimes, however, mingling instance data with an ontology may be unavoidable. For example, suppose that you wish to use owl:AllDifferent to indicate that Mary, David, and Roger are all different:
<owl:AllDifferent> <owl:distinctMembers rdf:parseType="Collection"> <Person rdf:about="#Mary"/> <Person rdf:about="#David"/> <Person rdf:about="#Roger"/> </owl:distinctMembers></owl:AllDifferent>
You might wish to provide, in the ontology, a "barebones" definition of the Mary instance,the David instance, and the Roger instance:
<Person rdf:ID="Mary"/><Person rdf:ID="David"/><Person rdf:ID="Roger"/>
Continued
169 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Can an ontology also contain instance data? (cont.)
Now, instance documents extend the ontologies' barebones instance definitions:
<Person rdf:about="http://www.person.org#Roger"> <hometown>Boston, MA</hometown> <workplace>The MITRE Corp.</workplace></Person>
170 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Difference between a Class with a property that has a maxCardinality=1 versus a
Functional Property?
<owl:Class rdf:ID="Gun"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#serial"/> <owl:maxCardinality>1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf></owl:Class>
<owl:DatatypeProperty rdf:ID="serial"> <rdfs:domain rdf:resource="#Gun"/> <rdfs:range rdf:resource="&xsd;#string"/></owl:DatatypeProperty>
Ver
sion
1
Both forms are equivalent! Let's take an example. Below is shown a Gun Class whichis defined to have at most one serial number:
Continued
171 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining a Class which has a Functional Property is equivalent!
<owl:Class rdf:ID="Gun"/>
<owl:FunctionalProperty rdf:ID="serial"> <rdfs:domain rdf:resource="Gun" /> <rdfs:range rdf:resource="&rdfs;#Literal"/></owl:FunctionalProperty>V
ersi
on 2
The below serial property is defined to be a Functional Property, and is to beused with a Gun instance. Thus, the Gun Class has at most one serial number.The two forms are equivalent!
172 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Difference between a Class with multiple subclasses, each having a property that has a
maxCardinality=1 versus multiple Functional Properties?
<owl:Class rdf:ID="GunLicense"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#registeredGun"/> <owl:maxCardinality>1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#holder"/> <owl:maxCardinality>1</owl:maxCardinality> </owl:Restriction> <rdfs:subClassOf></owl:Class
<owl:ObjectProperty rdf:ID="registeredGun"> <rdfs:domain rdf:resource="#GunLicense"/> <rdfs:range rdf:resource="#Gun"/></owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="holder"> <rdfs:domain rdf:resource="#GunLicense"/> <rdfs:range rdf:resource="#Person"/></owl:ObjectProperty>
Ver
sion
1
Both forms are equivalent! Let's take an example. Below is shown a GunLicense Class whichis defined to have at most one registeredGun and at most one holder:
Continued
173 Roger L. Costello, David B. Jacobs. © 2003 The MITRE Corporation.
Defining a Class which has multiple Functional Properties is equivalent!
<owl:Class rdf:ID="GunLicense"/>
<owl:FunctionalProperty rdf:ID="registeredGun"> <rdfs:domain rdf:resource="#GunLicense"/> <rdfs:range rdf:resource="#Gun"/></owl:FunctionalProperty>
<owl:FunctionalProperty rdf:ID="holder"> <rdfs:domain rdf:resource="#GunLicense"/> <rdfs:range rdf:resource="#Person"/></owl:FunctionalProperty>
Ver
sion
2
The below registeredGun property and holder property are defined to be Functional Properties, and are to be used with a GunLicense instance. So, the GunLicense Class has at most one registeredGun and at most one holder. Thus, the two forms are equivalent!