You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4032 lines
164 KiB
4032 lines
164 KiB
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!DOCTYPE html
|
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html lang="en-US" xml:lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
|
|
|
|
<!-- TODO
|
|
|
|
NOTE: The link checks were all done prior to renaming links to "TR/2003/CR-".
|
|
|
|
DONE: CSS Validation - Had some warnings, but so did the CR css.
|
|
DONE: Link Validation - Fixed all, checked failed HEAD requests by hand.
|
|
DONE: HTML Validation - Passed as iso-8859-1, XHTML 1.0 Transitional
|
|
|
|
DONE: Fix Version links.
|
|
Replaced
|
|
http://www-db-out.bell-labs.com/user/pfps/owl/semantics/
|
|
by http://www.w3.org/TR/2003/CR-owl-semantics-20030818/
|
|
http://www.daml.org/2002/06/webont/owl-ref-proposed
|
|
by http://www.w3.org/TR/2003/CR-owl-ref-20030818/
|
|
|
|
-->
|
|
|
|
<head>
|
|
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
|
|
<title>OWL Web Ontology Language Guide</title>
|
|
|
|
<style type="text/css">
|
|
<!--
|
|
|
|
SPAN.note { BACKGROUND-COLOR: #ffb1f1 }
|
|
SPAN.highlight { BACKGROUND-COLOR: #dddddd }
|
|
SPAN.red { BACKGROUND-COLOR: #ffaaaa }
|
|
|
|
pre { MARGIN-LEFT: 2em;
|
|
MARGIN-RIGHT: 2em; FONT-FAMILY: monospace }
|
|
|
|
table.propositions { MARGIN-LEFT: 2em; BORDER: 1pt }
|
|
table.small { FONT: 80% sans-serif}
|
|
table.info { MARGIN-LEFT: 2em }
|
|
|
|
td.index { FONT: 80% sans-serif; VERTICAL-ALIGN: top}
|
|
|
|
-->
|
|
</style>
|
|
<link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-CR" />
|
|
</head>
|
|
<body lang="EN" xml:lang="EN">
|
|
<div class="head">
|
|
<a href="http://www.w3.org/">
|
|
<img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home" />
|
|
</a>
|
|
<h1 id="mainTitle">OWL Web Ontology Language<br />
|
|
Guide</h1>
|
|
<h2><a id="w3c-doctype" name="w3c-doctype"></a>
|
|
W3C Candidate Recommendation 18 August 2003</h2>
|
|
<dl>
|
|
<dt>This version: </dt>
|
|
<dd><a href="http://www.w3.org/TR/2003/CR-owl-guide-20030818/">
|
|
http://www.w3.org/TR/2003/CR-owl-guide-20030818/
|
|
</a>
|
|
</dd>
|
|
<dt>Latest version: </dt>
|
|
<dd><a href="http://www.w3.org/TR/owl-guide/">
|
|
http://www.w3.org/TR/owl-guide/
|
|
</a>
|
|
</dd>
|
|
<dt>Previous version:</dt>
|
|
<dd><a href="http://www.w3.org/TR/2003/WD-owl-guide-20030331/">
|
|
http://www.w3.org/TR/2003/WD-owl-guide-20030331/
|
|
</a>
|
|
</dd>
|
|
<dt>Editors:</dt>
|
|
<dd>
|
|
Michael K. Smith, Electronic Data Systems,
|
|
<img align="middle" src="Email.Michael.K.Smith.gif"
|
|
alt="Michael dot Smith at e d s dot com"/> <br />
|
|
Chris Welty, IBM Research,
|
|
<img align="middle" src="Email.Chris.Welty.gif"
|
|
alt="Chris dot Welty at u s dot ibm dot com"/> <br />
|
|
Deborah L. McGuinness, Stanford University,
|
|
<img align="middle" src="Email.Deborah.McGuinness.gif"
|
|
alt="d l m at k s l dot stanford dot edu"/> <br />
|
|
</dd>
|
|
</dl>
|
|
<p class="copyright"><a
|
|
href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
|
|
Copyright</a> ©2003 <a
|
|
href="http://www.w3.org/"><acronym
|
|
title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup>
|
|
(<a href="http://www.lcs.mit.edu/"><acronym
|
|
title="Massachusetts Institute of Technology">MIT</acronym></a>,
|
|
<a href="http://www.ercim.org/">
|
|
<acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym>
|
|
</a>, <a href="http://www.keio.ac.jp/">Keio</a>),
|
|
All Rights Reserved. W3C
|
|
<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">
|
|
liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">
|
|
trademark</a>, <a href="http://www.w3.org/Consortium/Legal/copyright-documents">
|
|
document use</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-software">
|
|
software licensing</a> rules apply.</p>
|
|
|
|
<hr title="Separator for header" />
|
|
</div>
|
|
|
|
<h2><a name="Abstract" id="Abstract">Abstract</a></h2>
|
|
|
|
<p>
|
|
The World Wide Web as it is currently constituted resembles a poorly
|
|
mapped geography. Our insight into the documents and capabilities
|
|
available are based on keyword searches, abetted by clever use of
|
|
document connectivity and usage patterns. The sheer mass of this data
|
|
is unmanageable without powerful tool support. In order to map this
|
|
terrain more precisely, computational agents require machine-readable
|
|
descriptions of the content and capabilities of Web accessible
|
|
resources. These descriptions must be in addition to the
|
|
human-readable versions of that information.
|
|
</p>
|
|
|
|
<p>
|
|
The OWL Web Ontology Language is intended to provide a language that
|
|
can be used to describe the classes and relations between them that
|
|
are inherent in Web documents and applications.
|
|
</p>
|
|
|
|
<p>
|
|
This document demonstrates the use of the OWL language to
|
|
</p>
|
|
|
|
<ol>
|
|
<li>formalize a domain by defining classes and properties of those classes,</li>
|
|
<li>define individuals and assert properties about them, and</li>
|
|
<li>reason about these classes and individuals to the degree permitted
|
|
by the formal semantics of the OWL language.</li>
|
|
</ol>
|
|
|
|
<p>
|
|
The sections are organized to present an incremental definition of a
|
|
set of classes, properties and individuals, beginning with the
|
|
fundamentals and proceeding to more complex language components.
|
|
</p>
|
|
|
|
|
|
<h2><a id="status" name="status"></a>Status of this document</h2>
|
|
<div class="status">
|
|
|
|
<p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/">W3C technical reports index</a> at http://www.w3.org/TR/.</em></p>
|
|
|
|
<p><em>Publication as a Candidate Recommendation does not imply
|
|
endorsement by the W3C Membership. This is a draft document and may be
|
|
updated, replaced or obsoleted by other documents at any time. It is
|
|
inappropriate to cite this document as other than "work in
|
|
progress".</em></p>
|
|
|
|
<p>This draft is one of <a href=
|
|
"http://www.w3.org/TR/2003/CR-owl-features-20030818/#s1.1">six
|
|
parts</a> of the <a
|
|
href="http://www.w3.org/2003/06/Process-20030618/tr.html#cfi">Candidate
|
|
Recommendation</a> (CR) for OWL, the Web Ontology Language. It has
|
|
been developed by the <a href="http://www.w3.org/2001/sw/WebOnt/">Web
|
|
Ontology Working Group</a> as part of the <a
|
|
href="http://www.w3.org/2001/sw/">W3C Semantic Web Activity</a> (<a
|
|
href="http://www.w3.org/2001/sw/Activity">Activity Statement</a>, <a
|
|
href="http://www.w3.org/2001/sw/WebOnt/charter">Group Charter</a>) for
|
|
publication on 18 August 2003. </p>
|
|
|
|
<p>The design of OWL expressed in earlier versions of these documents
|
|
has been widely reviewed and satisfies the Working Group's technical
|
|
requirements. The Working Group has addressed <a
|
|
href="http://lists.w3.org/Archives/Public/public-webont-comments/">
|
|
all comments received</a>, making changes as necessary. Changes to
|
|
this document since the <a
|
|
href="http://www.w3.org/TR/2003/WD-owl-guide-20030331/">Last Call
|
|
Working Draft</a> are detailed in the <a href="#AppendixD">change log</a>.
|
|
</p>
|
|
|
|
<p>The Working Group now hopes to gather experience from the growing
|
|
number of <a href="http://www.w3.org/2001/sw/WebOnt/impls">OWL
|
|
implementations</a> in order to increase confidence in the language
|
|
and meet specific <a
|
|
href="http://www.w3.org/2001/sw/WebOnt/impls#exit">exit criteria</a>.
|
|
This CR period will extend until at least <strong><span
|
|
class="commentsDue date">20 September 2003</span></strong>. After
|
|
that date, when and if the exit criteria are met, the group intends to
|
|
request <a
|
|
href="http://www.w3.org/2003/06/Process-20030618/tr.html#RecsPR">
|
|
Proposed Recommendation</a> status.</p>
|
|
|
|
<p>Please send reports of implementation experience to <a
|
|
href="mailto:public-webont-comments@w3.org">public-webont-comments@w3.org</a>
|
|
(<a
|
|
href="http://lists.w3.org/Archives/Public/public-webont-comments/">archive</a>).
|
|
Reports of any success or difficulty with the <a
|
|
href="http://www.w3.org/TR/2003/CR-owl-test-20030818/">Test Cases</a>
|
|
are encouraged, and reports received by 20 September 2003 will be
|
|
particularly helpful. General discussion of related technology is
|
|
welcome at <a href="mailto:www-rdf-logic@w3.org"
|
|
shape="rect">www-rdf-logic@w3.org</a> (<a
|
|
href="http://lists.w3.org/Archives/Public/www-rdf-logic/"
|
|
shape="rect">archive</a>). </p>
|
|
|
|
<p>Although OWL is essentially stable, later versions of these
|
|
documents are expected to contain minor improvements. The <a
|
|
href="http://www.w3.org/2002/03owlt/">test site</a> is likely to
|
|
include new, clarifying tests, even during this CR period.
|
|
Additionally, the design of OWL depends in part on the design of RDF,
|
|
and at this time the relevant RDF specifications are only Working
|
|
Drafts. It is therefore possible that unanticipated changes in RDF
|
|
may require changes to OWL.</p>
|
|
|
|
<p>The W3C maintains a list of <a
|
|
href="http://www.w3.org/2001/sw/WebOnt/discl" rel="disclosure">any
|
|
patent disclosures related to this work</a>.</p>
|
|
|
|
</div>
|
|
|
|
<hr />
|
|
|
|
|
|
<!-- tag syntax. Drop initial 'the', delete all spaces.
|
|
Truncate at any other punctuation or 'and'. Disambiguate with 1, 2, ... -->
|
|
|
|
<h1><a name="Contents" id="Contents">Contents</a></h1>
|
|
|
|
<ul>
|
|
<li><a href="#Abstract">Abstract</a></li>
|
|
<li><a href="#status">Status of This Document</a></li>
|
|
<li><a href="#Contents">Contents</a></li>
|
|
<li><a href="#Introduction">1. Introduction</a>
|
|
<ul>
|
|
<li><a href="#OwlVarieties">1.1. The Species of OWL</a></li>
|
|
<li><a href="#StructureOfDoc">1.2. Structure of the Document</a></li>
|
|
</ul></li>
|
|
<li><a href="#StructureOfOntologies">2. The Structure of Ontologies</a>
|
|
<ul>
|
|
<li><a href="#Namespaces">2.1. Namespaces </a></li>
|
|
<li><a href="#OntologyHeaders">2.2. Ontology Headers</a></li>
|
|
<li><a href="#Privacy">2.3. Data Aggregation and Privacy</a></li>
|
|
</ul></li>
|
|
<li><a href="#BasicDefinitions">3. Basic Elements</a>
|
|
<ul>
|
|
<li><a href="#SimpleClasses">3.1. Simple Classes and Individuals</a>
|
|
<ul>
|
|
<li><a href="#DefiningSimpleClasses">3.1.1. Simple Named Classes </a></li>
|
|
<li><a href="#DefiningIndividuals">3.1.2. Individuals </a></li>
|
|
<li><a href="#DesignForUse">3.1.3. Design for Use</a></li>
|
|
</ul></li>
|
|
<li><a href="#SimpleProperties">3.2. Simple Properties </a>
|
|
<ul>
|
|
<li><a href="#DefiningProperties">3.2.1. Defining Properties </a> </li>
|
|
<li><a href="#Datatypes1">3.2.2. Properties and Datatypes</a></li>
|
|
<li><a href="#PropertiesOfIndividuals">3.2.3. Properties of Individuals</a></li>
|
|
</ul></li>
|
|
<li><a href="#PropertyCharacteristics">3.3. Property Characteristics</a></li>
|
|
<li><a href="#PropertyRestrictions">3.4. Property Restrictions</a>
|
|
<ul>
|
|
<li><a href="#allValuesFrom">3.4.1. allValuesFrom, someValuesFrom </a></li>
|
|
<li><a href="#simpleCardinality">3.4.2. Cardinality </a></li>
|
|
<li><a href="#hasValue">3.4.3. hasValue</a></li>
|
|
</ul></li>
|
|
</ul></li>
|
|
<li><a href="#OntologyMapping">4. Ontology Mapping </a>
|
|
<ul>
|
|
<li><a href="#equivalentClass1">4.1. Equivalence between Classes and Properties</a></li>
|
|
<li><a href="#sameAs">4.2. Identity between Individuals</a></li>
|
|
<li><a href="#differentFrom">4.3. 4.3. Different Individuals</a></li>
|
|
</ul></li>
|
|
<li><a href="#ComplexClasses">5. Complex Classes</a>
|
|
<ul>
|
|
<li><a href="#SetOperators">5.1. Set Operators</a></li>
|
|
<li><a href="#EnumeratedClasses">5.2. Enumerated Classes</a></li>
|
|
<li><a href="#DisjointClasses">5.3. Disjoint Classes</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#OntologyVersioning">6. Ontology Versioning</a></li>
|
|
|
|
<li><a href="#Usage">7. Usage Examples</a>
|
|
<ul>
|
|
<li><a href="#WinePortal">7.1. Wine Portal</a></li>
|
|
<li><a href="#WineAgent">7.2. Wine Agent</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#Acknowledgements">Acknowledgements</a></li>
|
|
<li><a href="#OWLGlossary">OWL Glossary</a></li>
|
|
<li><a href="#TermIndex">Term Index and Cross Reference</a></li>
|
|
<li><a href="#References">References</a></li>
|
|
<li><a href="#AppendixA">Appendix A: XML + RDF Basics</a></li>
|
|
<li><a href="#AppendixB">Appendix B: History</a></li>
|
|
<li><a href="#AppendixC">Appendix C: An Alternative Region Ontology</a></li>
|
|
<li><a href="#AppendixD">Appendix D: Change Log Since Last Call Release</a></li>
|
|
</ul>
|
|
|
|
<hr />
|
|
|
|
<h1><a name="Introduction">1. Introduction</a></h1>
|
|
|
|
<p class="quote">
|
|
"Tell me what wines I should buy to serve with each course of the
|
|
following menu. And, by the way, I don't like Sauterne."</p>
|
|
|
|
<p>
|
|
It would be difficult today to construct a Web agent that would be
|
|
capable of performing a search for wines on the Web that satisfied
|
|
this query. Similarly, consider actually assigning a software agent
|
|
the task of making a coherent set of travel arrangements. (For more
|
|
use cases see the <a href="http://www.w3.org/TR/2003/CR-webont-req-20030818/">OWL
|
|
requirements document</a>.)
|
|
</p>
|
|
|
|
<p>
|
|
To support this sort of computation, it is necessary to go beyond
|
|
keywords and specify the meaning of the resources described on
|
|
the Web. This additional layer of interpretation captures the
|
|
<em>semantics</em> of the data.
|
|
</p>
|
|
|
|
<p>
|
|
<a id="term_ontology" name="term_ontology"></a>
|
|
The OWL Web Ontolgoy Language is a language for defining and instantiating <em>Web
|
|
ontologies</em>. <em>Ontology</em> is a term borrowed from philosophy
|
|
that refers to the science of describing the kinds of entities in the
|
|
world and how they are related. An
|
|
<a name="Owl_Ontology_definition" id="Owl_Ontology_definition">
|
|
<em>OWL ontology</em></a> may include
|
|
descriptions of <i>classes</i>, <i>properties</i> and their instances.
|
|
Given such an ontology, the
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/">
|
|
OWL formal semantics</a> specifies how to derive its logical
|
|
consequences, i.e. facts not literally present in the ontology, but
|
|
<a id="term_entailed" name="term_entailed"></a><em>entailed</em> by the
|
|
semantics. These entailments may be based on
|
|
a single document or multiple distributed documents that have been
|
|
combined using defined <a href="#import">OWL mechanisms</a>.
|
|
</p>
|
|
|
|
<p>
|
|
This document is one component of the description of OWL, the Web Ontology
|
|
Language, being produced by the W3C Web Ontology Working Group (WebOnt).
|
|
The <a href="http://www.w3.org/TR/2003/CR-owl-features-20030818/#s1.1">Document Roadmap</a> section
|
|
of the Overview describes each of the different parts
|
|
and how they fit together.
|
|
</p>
|
|
|
|
<p>
|
|
One question that comes up when describing yet another XML/Web
|
|
standard is "What does this buy me that XML and XML Schema don't?"
|
|
<!-- An operational consensus can always be developed over the meaning of a
|
|
set of XML tags and their contents. There is furious ongoing
|
|
standards activity doing exactly this.
|
|
</p>
|
|
<p> -->
|
|
There are two answers to this question.
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
An ontology differs from an XML schema in that it is a knowledge
|
|
representation, not a message format. Most industry based Web
|
|
standards consist of a combination of message formats and protocol
|
|
specifications. These formats have been given an operational
|
|
semantics, such as, "Upon receipt of this <tt>PurchaseOrder</tt> message,
|
|
transfer <tt>Amount</tt> dollars from <tt>AccountFrom</tt> to
|
|
<tt>AccountTo</tt> and ship <tt>Product</tt>." But the specification
|
|
is not designed to support reasoning outside the transaction context.
|
|
For example, we won't in general have a mechanism to conclude that
|
|
because the <tt>Product</tt> is a type of Chardonnay it must also be a
|
|
white wine. <br /><br />
|
|
</li>
|
|
|
|
<li>
|
|
One advantage of OWL ontologies will be the availability of tools that
|
|
can reason about them. Tools will provide <em>generic</em> support
|
|
that is not specific to the particular subject domain, which would be
|
|
the case if one were to build a system to reason about a specific
|
|
industry-standard XML schema. Building a sound and useful reasoning
|
|
system is not a simple effort. Constructing an ontology is much more
|
|
tractable. It is our expectation that many groups will embark on
|
|
ontology construction. They will benefit from third party tools based
|
|
on the formal properties of the OWL language, tools that will deliver
|
|
an assortment of capabilities that most organizations would be hard
|
|
pressed to duplicate. <br />
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
<h2><a name="OwlVarieties">1.1. The Species of OWL</a></h2>
|
|
|
|
<p>
|
|
The OWL language provides three increasingly expressive sublanguages
|
|
designed for use by specific communities of implementers and users.
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
<p><a id="term_OWLLite" name="term_OWLLite"></a><em>OWL Lite</em> supports those users primarily needing a classification
|
|
hierarchy and simple constraint features. For example, while OWL Lite
|
|
supports cardinality constraints, it only permits cardinality values
|
|
of 0 or 1. It should be simpler to provide tool support for
|
|
OWL Lite than its more expressive relatives, and provide a quick migration path
|
|
for thesauri and other taxonomies. </p>
|
|
</li>
|
|
|
|
<li>
|
|
<p><a id="term_OWLDL" name="term_OWLDL"></a><em>OWL DL</em> supports those users
|
|
who want the maximum expressiveness without losing computational
|
|
completeness (all entailments are guaranteed to be computed) and decidability (all
|
|
computations will finish in finite time) of reasoning systems.
|
|
OWL DL includes all OWL language constructs
|
|
with restrictions such as type separation (a class can not also be an individual or
|
|
property, a property can not also be an individual or class).
|
|
OWL DL is so named due to its correspondence with
|
|
<a href="#DescriptionLogics"><em>description logics</em></a>,
|
|
a field of research that has studied a particular decidable fragment of
|
|
first order logic. OWL DL was designed to support the existing Description Logic
|
|
business segment and has desirable computational properties
|
|
for reasoning systems.
|
|
</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p><a id="term_OWLFull" name="term_OWLFull"></a><em>OWL Full</em> is meant for
|
|
users who want maximum expressiveness and the syntactic freedom of RDF with
|
|
no computational guarantees. For example, in OWL Full a class
|
|
can be treated simultaneously as a collection of individuals
|
|
and as an individual in its own right. Another significant difference from
|
|
OWL DL is that a <tt>owl:DatatypeProperty</tt> can be marked as
|
|
an <tt>owl:InverseFunctionalProperty</tt>. OWL Full allows an ontology to
|
|
augment the meaning of the pre-defined (RDF or OWL) vocabulary. It is
|
|
unlikely that any reasoning software will be able to support every feature of
|
|
OWL Full.
|
|
<!-- DELETED
|
|
Some communities may find it useful
|
|
to create other subsets of OWL Full than OWL DL that
|
|
have desireable computational properties while requiring
|
|
a different set of constraints. -->
|
|
</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>
|
|
Each of these sublanguages is an extension of its simpler predecessor, both
|
|
in what can be legally expressed and in what can be validly concluded.
|
|
The following set of relations hold. Their inverses do not.
|
|
</p>
|
|
<ul>
|
|
<li>Every legal OWL Lite ontology is a legal OWL DL ontology. </li>
|
|
<li>Every legal OWL DL ontology is a legal OWL Full ontology. </li>
|
|
<li>Every valid OWL Lite conclusion is a valid OWL DL conclusion.</li>
|
|
<li>Every valid OWL DL conclusion is a valid OWL Full conclusion.</li>
|
|
</ul>
|
|
|
|
<p>
|
|
Ontology developers adopting OWL should consider which species best
|
|
suits their needs. The choice between OWL Lite and OWL DL
|
|
depends on the extent to which users require the more expressive
|
|
restriction constructs provided by OWL DL. Reasoners for OWL
|
|
Lite will have desirable computational properties. Reasoners for
|
|
OWL DL, while dealing with a decidable sublanguage, will be subject to
|
|
higher worst-case complexity.
|
|
The choice between OWL DL and OWL Full mainly
|
|
depends on the extent to which users require the
|
|
meta-modelling facilities of RDF Schema (i.e. defining classes of
|
|
classes).
|
|
When using OWL Full as compared to OWL
|
|
DL, reasoning support is less predictable.
|
|
For more information about this issue see the
|
|
<a href="#FormalModel">semantics document</a>.
|
|
</p>
|
|
<p>
|
|
|
|
Users migrating from RDF to OWL DL or OWL Lite need to take care to
|
|
ensure that the original RDF document complies with the constraints
|
|
imposed by OWL DL and OWL Lite. The details of these constraints are
|
|
explained in
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#app-DLinRDF">
|
|
Appendix E</a> of the OWL Reference.
|
|
|
|
</p>
|
|
<p>
|
|
<a name="OWL_DL_tag"></a>
|
|
<a name="OWL_Full_tag"></a>
|
|
When we introduce constructs that are only permitted in OWL DL or
|
|
OWL Full, they are marked by "[OWL DL]".
|
|
</p>
|
|
|
|
<h2><a name="StructureOfDoc">1.2. Structure of the Document</a></h2>
|
|
|
|
<p>
|
|
In order to provide a consistent set of examples throughout the
|
|
guide, we have created a <a href="wine.rdf">wine</a> and
|
|
<a href="food.rdf">food</a> ontology. This
|
|
is an OWL DL ontology. Some of our discussion will
|
|
focus on OWL Full capabilities and is so marked.
|
|
|
|
The wine and food ontology is a significant modification of an <a
|
|
href="#wine1">element</a> of the DAML ontology library with a long
|
|
history. It was originally developed by McGuinness as a CLASSIC
|
|
description logic <a href="#wine3">example</a>, expanded to a
|
|
description logic <a href="#wine4">tutorial</a>, and expanded to an ontology
|
|
<a href="#wine2">tutorial</a>.
|
|
</p>
|
|
|
|
<p>
|
|
In this document we present examples using the
|
|
<a href="http://www.w3.org/TR/REC-rdf-syntax/#grammar">RDF/XML syntax</a>,
|
|
assuming XML will be familiar
|
|
to the largest audience. The normative OWL exchange syntax is RDF/XML.
|
|
Note that OWL has been designed for maximal compatibility
|
|
with RDF and RDF Schema. These XML and RDF formats are part of the
|
|
OWL standard.
|
|
</p>
|
|
|
|
<!--
|
|
Notes indicating expected changes pending clarification are marked
|
|
with '@@', e.g. [@@ Note].
|
|
-->
|
|
|
|
<p>
|
|
All of the examples presented in this document are taken from the
|
|
ontologies contained in <a href="wine.rdf">wine.rdf</a> and <a
|
|
href="food.rdf">food.rdf</a>, except those marked with <span
|
|
class="red"> ¬ </span> in the bottom right corner.
|
|
</p>
|
|
|
|
<hr />
|
|
|
|
<h1><a name="StructureOfOntologies">2. The Structure of Ontologies</a>
|
|
</h1>
|
|
|
|
<p>
|
|
OWL is a component of the <a
|
|
href="http://www.w3.org/2001/sw/"><i>Semantic Web</i></a>
|
|
activity. This effort aims to make Web resources more readily
|
|
accessible to automated processes by adding information about the resources
|
|
that describe or provide Web content.
|
|
As the Semantic Web is inherently distributed, OWL must allow for information to be
|
|
gathered from distributed sources. This is partly done by allowing
|
|
ontologies to be related, including explicitly importing
|
|
information from other ontologies.
|
|
</p>
|
|
<p>
|
|
In addition, OWL makes an <a id="term_openworld"
|
|
name="term_openworld"></a><em>open world</em> assumption. That is,
|
|
descriptions of resources are not confined to a single file or scope.
|
|
While class <tt>C1</tt> may be defined originally in ontology O1, it
|
|
can be extended in other ontologies. The consequences of these
|
|
additional propositions about <tt>C1</tt> are <a id="term_monotonic"
|
|
name="term_monotonic"></a><em>monotonic</em>. New information cannot
|
|
retract previous information. New information can be contradictory,
|
|
but facts and entailments can only be <em>added</em>, never
|
|
<em>deleted</em>.
|
|
</p>
|
|
<p>
|
|
The possibility of such contradictions is something the designer of an
|
|
ontology needs to take into consideration. It is expected that tool
|
|
support will help detect such cases.
|
|
</p>
|
|
|
|
<p>
|
|
In order to write an ontology that can be interpreted
|
|
unambiguously and used by software agents we require a syntax and formal semantics for
|
|
OWL. OWL is a vocabulary extension
|
|
<a href="http://www.w3.org/TR/rdf-mt/">[RDF Semantics]</a> of RDF.
|
|
The OWL semantics are defined in
|
|
<a href="#FormalModel"><i>OWL Web Ontology Language Semantics and Abstract Syntax</i></a>.
|
|
</p>
|
|
|
|
|
|
<h2><a name="Namespaces">2.1. Namespaces</a></h2>
|
|
|
|
<p>
|
|
Before we can use a set of terms, we need a precise indication of what
|
|
specific vocabularies are being used.
|
|
A standard initial component of an ontology includes a set of
|
|
<a href="#XMLNS"><em>XML namespace</em></a> declarations enclosed in
|
|
an opening <tt>rdf:RDF</tt> tag.
|
|
|
|
These provide a means to unambiguously interpret identifiers and make
|
|
the rest of the ontology presentation much more readable. A typical
|
|
OWL ontology begins with a <a href="#XMLNS">namespace declaration</a>
|
|
similar to the following. Of course, the URI's of the defined
|
|
ontologies will not usually be w3.org references.
|
|
</p>
|
|
|
|
|
|
<pre>
|
|
<rdf:RDF
|
|
xmlns ="http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#"
|
|
xmlns:vin ="http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#"
|
|
xml:base ="http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#"
|
|
xmlns:food="http://www.w3.org/TR/2003/CR-owl-guide-20030818/food#"
|
|
xmlns:owl ="http://www.w3.org/2002/07/owl#"
|
|
xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
|
|
xmlns:xsd ="http://www.w3.org/2000/10/XMLSchema#">
|
|
</pre>
|
|
|
|
<p>
|
|
The first two declarations identify the namespace associated with this
|
|
ontology. The first makes it the <em>default</em> namespace, stating that
|
|
unprefixed qualified names refer to the current
|
|
ontology. The second identifies the namespace of the current ontology
|
|
with the prefix <tt>vin:</tt>. The third identifies the namespace of
|
|
the supporting food ontology with the prefix <tt>food:</tt>.
|
|
</p>
|
|
|
|
<p>
|
|
The fourth namespace declaration says that in this document, elements
|
|
prefixed with <tt>owl:</tt> should be understood as referring to
|
|
things drawn from the namespace called
|
|
<code>http://www.w3.org/2002/07/owl#</code>. This is a conventional
|
|
OWL declaration, used to introduce the OWL vocabulary.
|
|
</p>
|
|
|
|
<p>
|
|
OWL depends on constructs defined by RDF, RDFS, and XML Schema datatypes.
|
|
In this document, the <tt>rdf:</tt> prefix refers to things drawn from
|
|
the namespace called
|
|
<code>http://www.w3.org/1999/02/22-rdf-syntax-ns#</code>. The next two
|
|
namespace declarations make similar statements about the RDF Schema
|
|
(<tt>rdfs:</tt>) and XML Schema datatype (<tt>xsd:</tt>) namespaces.
|
|
</p>
|
|
|
|
<p>
|
|
As an aid to writing lengthy URLs it can often be
|
|
useful to provide a set of entity definitions in a document type
|
|
declaration (DOCTYPE) that precedes the ontology definitions. The names defined by the namespace
|
|
declarations only have significance as parts of XML tags. Attribute
|
|
values are <em>not</em> namespace sensitive. But in OWL we frequently
|
|
reference ontology identifiers using attribute values. They can be
|
|
written down in their fully expanded form, for
|
|
example "http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#merlot". Alternatively,
|
|
abbreviations can be defined using an ENTITY definition, for example:
|
|
</p>
|
|
<pre>
|
|
<!DOCTYPE rdf:RDF [
|
|
<!ENTITY vin "http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#" >
|
|
<!ENTITY food "http://www.w3.org/TR/2003/CR-owl-guide-20030818/food#" > ]>
|
|
</pre>
|
|
<p>
|
|
After this pair of ENTITY declarations, we could write the value
|
|
"&vin;merlot" and it would expand to
|
|
"http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#merlot".
|
|
</p>
|
|
<p>
|
|
Perhaps more importantly, the <tt>rdf:RDF</tt> namespace declarations
|
|
can then be simplified so that changes made to the
|
|
entity declarations will propagate through the ontology consistently.
|
|
</p>
|
|
<pre>
|
|
<rdf:RDF
|
|
xmlns ="&vin;"
|
|
xmlns:vin ="&vin;"
|
|
xml:base ="&vin;"
|
|
xmlns:food="&food;"
|
|
xmlns:owl ="http://www.w3.org/2002/07/owl#"
|
|
xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
|
|
xmlns:xsd ="http://www.w3.org/2000/10/XMLSchema#">
|
|
</pre>
|
|
|
|
<h2><a name="OntologyHeaders" id="OntologyHeaders">2.2. Ontology Headers</a></h2>
|
|
|
|
<p><a id="owl_Ontology" name="owl_Ontology"></a>
|
|
Once namespaces are established we normally include a
|
|
collection of assertions about the ontology grouped under
|
|
an <tt>owl:Ontology</tt> tag. These tags support
|
|
such critical housekeeping tasks as comments, version control and
|
|
inclusion of other ontologies.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Ontology rdf:about="">
|
|
<rdfs:comment>An example OWL ontology</rdfs:comment>
|
|
<owl:priorVersion rdf:resource="http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine"/>
|
|
<owl:imports rdf:resource="http://www.w3.org/TR/2003/CR-owl-guide-20030818/food"/>
|
|
<rdfs:label>Wine Ontology</rdfs:label>
|
|
...
|
|
</pre>
|
|
|
|
<p>
|
|
Note that we use '...' to indicate that there is additional text that
|
|
has been elided for purposes of the example.
|
|
</p>
|
|
|
|
<p>
|
|
The <tt>owl:Ontology</tt> element is a place to collect much of
|
|
the OWL meta-data for the document. It does not guarantee that the
|
|
document describes an ontology in the traditional sense.
|
|
In some communities, ontologies
|
|
are not about individuals but only the classes and properties that define a domain.
|
|
When using OWL to describe a collection of instance data
|
|
the <tt>owl:Ontology</tt> tag may be needed in order to record version
|
|
information and to import the definitions that the document depends on.
|
|
Thus, in OWL the term <em>ontology</em> has been broadened to include
|
|
instance data (<a href="#Owl_Ontology_definition">see above</a>).
|
|
</p>
|
|
|
|
<p>
|
|
<a id="owl_imports" name="owl_imports"></a>
|
|
<a id="rdfs_comment" name="rdfs_comment"></a>
|
|
The <tt>rdf:about</tt> attribute provides a name or reference for the ontology.
|
|
Where the value of the attribute is "", the standard case, the
|
|
name of the ontology is the base URI of the <tt>owl:Ontology</tt> element.
|
|
Typically, this is the URI of the document containing the ontology.
|
|
An exception to this is a context that makes use of <tt>xml:base</tt>
|
|
which may set the base URI for an element to something other than the
|
|
URI of the current document.
|
|
</p>
|
|
|
|
<p>
|
|
<tt>rdfs:comment</tt> provides the obvious needed capability
|
|
to annotate an ontology.
|
|
</p>
|
|
|
|
<p>
|
|
<tt>owl:priorVersion</tt> is a standard tag intended to provide
|
|
hooks for version control systems working with ontologies. Ontology
|
|
versioning is discussed further <a href="#OntologyVersioning">below.</a>
|
|
</p>
|
|
|
|
<p>
|
|
<a name="term_import" id="term_import"></a>
|
|
<a name="import" id="import"><tt>owl:imports</tt></a>
|
|
provides an include-style mechanism.
|
|
<tt>owl:imports</tt>
|
|
takes a single argument, identified by the <tt>rdf:resource</tt> attribute.
|
|
</p>
|
|
|
|
<p>
|
|
Importing another ontology brings the entire set of assertions
|
|
provided by that ontology into the current ontology.
|
|
In order to make best use of this imported ontology it would normally
|
|
be coordinated with a namespace declaration. Notice the distinction
|
|
between these two mechanisms. The namespace declarations provide
|
|
a convenient means to <em>reference</em> names defined in other OWL
|
|
ontologies.
|
|
|
|
Conceptually, <tt>owl:imports</tt> is provided to indicate your
|
|
intention to <em>include</em> the assertions of the target ontology.
|
|
Importing another ontology, <em>O2</em>, will also import all of the
|
|
ontologies that <em>O2</em> imports.
|
|
</p>
|
|
|
|
<p>
|
|
Note that <tt>owl:imports</tt> may not always succeed. As you would
|
|
expect when dealing with the Semantic Web, access to resources
|
|
distributed across the Web may not always be possible. Tools will
|
|
respond to this situation in an implementation defined manner.
|
|
</p>
|
|
|
|
<p>
|
|
Note that in order to use the OWL vocabulary you do not need to
|
|
import the <a href="http://www.w3.org/2002/07/owl">owl.rdf</a>
|
|
ontology. In fact, such an import is not recommended.
|
|
</p>
|
|
|
|
<p>
|
|
One common set of additional tags that could reasonably be included
|
|
here are some of the standard <a href="#DublinCore">Dublin
|
|
Core</a> metadata tags. The subset includes those that take simple
|
|
types or strings as values. Examples include Title, Creator,
|
|
Description, Publisher, and Date (see
|
|
<a href="http://purl.org/dc/elements/1.1/">RDF declarations</a>).
|
|
</p>
|
|
|
|
<p>
|
|
Properties that are used as annotations should be declared using
|
|
<tt>owl:AnnotationProperty</tt>. E.g.
|
|
</p>
|
|
<pre>
|
|
<owl:AnnotationProperty rdf:about="&dc;creator" />
|
|
</pre>
|
|
|
|
<p>
|
|
OWL provides several other mechanisms to tie the current ontology and
|
|
imported ontologies together (see <a href="#OntologyMapping">ontology
|
|
mapping</a>).
|
|
</p>
|
|
<p>
|
|
We also include an <tt>rdfs:label</tt> to
|
|
support a natural language label for our ontology.
|
|
</p>
|
|
|
|
<p>The ontology header definition is closed with
|
|
the following tag.
|
|
</p>
|
|
<pre>
|
|
</owl:Ontology>
|
|
</pre>
|
|
<p>
|
|
This prelude is followed by the actual definitions that
|
|
make up the ontology and is ultimately closed by
|
|
</p>
|
|
<pre>
|
|
</rdf:RDF>
|
|
</pre>
|
|
|
|
<h2><a id="Privacy" name="Privacy">2.3. Data Aggregation and Privacy</a></h2>
|
|
|
|
<p>
|
|
OWL's ability to express ontological information about instances
|
|
appearing in multiple documents supports linking of data from diverse
|
|
sources in a principled way. The underlying semantics provides
|
|
support for inferences over this data that may yield unexpected
|
|
results. In particular, the ability to express equivalences using
|
|
<tt>owl:sameAs</tt> can be used to state that seemingly
|
|
different individuals are actually the same.
|
|
<tt>Owl:InverseFunctionalProperty</tt> can also be used to link
|
|
individuals together.
|
|
For example, if a property such as "SocialSecurityNumber" is an
|
|
<tt>owl:InverseFunctionalProperty</tt>, then two separate individuals
|
|
could be inferred to be identical based on having the same value of
|
|
that property. When individuals are determined to be the same by such
|
|
means, information about them from different sources can be
|
|
merged. This <i>aggregation</i> can be used to determine facts that
|
|
are not <i>directly</i> represented in any one source.
|
|
</p>
|
|
|
|
<p>
|
|
The ability of the Semantic Web to link information from multiple
|
|
sources is a desirable and powerful feature that can be used in many
|
|
<a href="#IntegratingApplications">applications</a>.
|
|
However, the capability to merge data from multiple sources, combined
|
|
with the inferential power of OWL, does have potential for abuse.
|
|
Users of OWL should be alert to the potential privacy implications.
|
|
|
|
Detailed security solutions were considered out of scope for the
|
|
Workng Group. A number of organizations are addressing these
|
|
issues with a variety of security and preference solutions.
|
|
See for example
|
|
<a href="http://www.oasis-open.org/committees/security/charter.php">
|
|
SAML</a> and
|
|
<a href="http://www.w3.org/P3P/">P3P</a>.
|
|
</p>
|
|
|
|
<hr />
|
|
|
|
<h1><a name="BasicDefinitions">3. Basic Elements</a></h1>
|
|
|
|
<p>
|
|
Most of the elements of an OWL ontology concern classes, properties,
|
|
instances of classes, and relationships between these instances.
|
|
This section presents the language components essential to introducing
|
|
these elements.
|
|
</p>
|
|
|
|
<h2><a name="SimpleClasses">3.1. Simple Classes and Individuals</a></h2>
|
|
|
|
<p>
|
|
Many uses of an ontology will depend on the ability to reason
|
|
about individuals. In order to do this in a useful fashion we need to
|
|
have a mechanism to describe the classes that individuals belong to
|
|
and the properties that they inherit by virtue of class membership.
|
|
We can always assert specific properties about individuals, but much
|
|
of the power of ontologies comes from class-based reasoning.
|
|
</p>
|
|
<p>
|
|
Sometimes we want to emphasize the distinction between a class as an
|
|
object and a class as a set containing elements.
|
|
We call the set of individuals that are members of a class
|
|
the <a id="term_extension" name="term_extension"></a><em>extension</em> of the class.
|
|
</p>
|
|
|
|
|
|
<h3><a name="DefiningSimpleClasses">3.1.1. Simple Named Classes</a><br />
|
|
<tt>Class, rdfs:subClassOf</tt></h3>
|
|
|
|
<p>
|
|
<a id="owl_Thing" name="owl_Thing"></a>
|
|
<a id="owl_Nothing" name="owl_Nothing"></a>
|
|
The most basic concepts in a domain should correspond
|
|
to classes that are the roots of various
|
|
taxonomic trees. Every individual in the OWL world is a member of
|
|
the class
|
|
<tt>owl:Thing</tt>. Thus each user-defined class
|
|
is implicitly a subclass of <tt>owl:Thing</tt>. Domain specific root classes are
|
|
defined by simply declaring a named class.
|
|
OWL also defines the empty class, <tt>owl:Nothing</tt>.
|
|
</p>
|
|
|
|
<p><a id="owl_Class" name="owl_Class"></a>
|
|
For our sample wines domain, we create three root classes: <tt>Winery</tt>,
|
|
<tt>Region</tt>, and <tt>ConsumableThing</tt>.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="Winery"/>
|
|
<owl:Class rdf:ID="Region"/>
|
|
<owl:Class rdf:ID="ConsumableThing"/>
|
|
</pre>
|
|
|
|
<p>
|
|
Note that we have only said that there exist classes that have been
|
|
given these names, indicated by the '<tt>rdf:ID=</tt>' syntax. Formally, we
|
|
know almost nothing about these classes other than their existence,
|
|
despite the use of familiar English terms as labels. And while the
|
|
classes exist, they may have no members. For all we know at the
|
|
moment, these classes might as well have been called <tt>Thing1</tt>,
|
|
<tt>Thing2</tt>, and <tt>Thing3</tt>.
|
|
</p>
|
|
<p>
|
|
It is important to remember that definitions may be incremental and distributed.
|
|
In particular, we will have more to say about <tt>Winery</tt> later.
|
|
</p>
|
|
|
|
<p>
|
|
The syntax <tt>rdf:ID="Region"</tt> is used to introduce a
|
|
name, as part of its definition. This is the
|
|
<a href="http://www.w3.org/TR/rdf-syntax-grammar/#idAttr">rdf:ID</a>
|
|
attribute that is like the familiar ID attribute defined by XML.
|
|
Within this document, the <tt>Region</tt> class can now be referred to using
|
|
<tt>rdf:resource="#Region"</tt>. Other ontologies may reference this
|
|
name using its complete form,
|
|
<tt>"http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#Region"</tt>.
|
|
</p>
|
|
|
|
<p>
|
|
Another form of reference
|
|
uses the syntax <tt>rdf:about="#Region"</tt> to <a
|
|
href="#DefiningIndividuals"><em>extend</em></a> the definition of a
|
|
resource.
|
|
This use of the <tt>rdf:about="#x"</tt> syntax is a critical element
|
|
in the creation of a distributed ontology. It permits the extension
|
|
of the imported definition of <tt>x</tt> without modifying the
|
|
original document and supports the incremental construction of a larger ontology.
|
|
</p>
|
|
<p>
|
|
It is now possible to refer to the classes we defined in other OWL
|
|
constructs using their given identifier. For the first class, within
|
|
this document, we can use the relative identifier, <tt>#Winery</tt>.
|
|
Other documents may need to reference this class as well. The most
|
|
reasonable way to do so is to provide namespace and entity definitions
|
|
that include the defining document as a source:
|
|
</p>
|
|
<pre>
|
|
...
|
|
<!ENTITY vin "http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#" >
|
|
<!ENTITY food "http://www.w3.org/TR/2003/CR-owl-guide-20030818/food#" >
|
|
...
|
|
<rdf:RDF xmlns:vin ="http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#"
|
|
xmlns:food="http://www.w3.org/TR/2003/CR-owl-guide-20030818/food#" ... >
|
|
...
|
|
</pre>
|
|
<p>
|
|
Given these definitions we can refer to the winery class either
|
|
using the XML tag <tt>vin:Winery</tt> or the attribute value <tt>&vin;Winery</tt>.
|
|
More literally, it is always possible to reference a resource using its full URI,
|
|
here <code>http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#Winery</code>.
|
|
</p>
|
|
|
|
<p>
|
|
The fundamental taxonomic constructor for
|
|
classes is <tt>rdfs:subClassOf</tt>.
|
|
It relates a more specific class to a more general
|
|
class. If X is a subclass of Y, then every instance of X is also
|
|
an instance of Y.
|
|
The <tt>rdfs:subClsssOf</tt> relation is transitive. If X is a subclass of Y
|
|
and Y a subclass of Z then X is a subclass of Z.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="PotableLiquid">
|
|
<rdfs:subClassOf rdf:resource="#ConsumableThing" />
|
|
...
|
|
</owl:Class>
|
|
</pre>
|
|
|
|
<p>
|
|
We define <tt>PotableLiquid</tt> (liquids suitable for drinking) to
|
|
be a subclass of <tt>ConsumableThing</tt>.
|
|
</p>
|
|
<p>
|
|
In the world of Web-based ontologies, both of these classes
|
|
can be defined in a separate ontology that would provide the basic
|
|
building blocks for a wide variety of food and drink ontologies, which
|
|
is what we have done - they are defined in the
|
|
<a href="food.rdf">food</a> ontology, which
|
|
is <a href="#import">imported</a> into the wine ontology.
|
|
The food ontology includes a number of classes, for example
|
|
<tt>Food</tt>, <tt>EdibleThing</tt>, <tt>MealCourse</tt>, and
|
|
<tt>Shellfish</tt>, that do not belong in a collection of wine facts,
|
|
but must be connected to the wine vocabulary if we are going to
|
|
perform useful reasoning. Food and wine are mutually
|
|
dependent, in order to satisfy our need to identify wine/food matches.
|
|
</p>
|
|
|
|
<p>
|
|
A class definition has two parts: a name introduction or reference
|
|
and a list of restrictions. Each of the immediate contained
|
|
expressions in the class definition further restricts the instances of
|
|
the defined class. Instances of the class belong to the intersection of
|
|
the restrictions. (Though see the details of <a href="#owl_equivalentClass">
|
|
<tt>owl:equivalentClass</tt></a>.)
|
|
So far we have only seen examples that include a single restriction,
|
|
forcing the new class to be a subclass of some other named class.
|
|
</p>
|
|
|
|
<p>
|
|
<a id="rdfs_subClassOf" name="rdfs_subClassOf"></a>
|
|
<a id="rdfs_label" name="rdfs_label"></a>
|
|
At this point it is possible to create a simple (and incomplete)
|
|
definition for the class <tt>Wine</tt>. <tt>Wine</tt> is a
|
|
<tt>PotableLiquid</tt>. We also define <tt>Pasta</tt> as an
|
|
<tt>EdibleThing</tt>.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="Wine">
|
|
<rdfs:subClassOf rdf:resource="&food;PotableLiquid"/>
|
|
<rdfs:label xml:lang="en">wine</rdfs:label>
|
|
<rdfs:label xml:lang="fr">vin</rdfs:label>
|
|
...
|
|
</owl:Class>
|
|
|
|
<owl:Class rdf:ID="Pasta">
|
|
<rdfs:subClassOf rdf:resource="#EdibleThing" />
|
|
...
|
|
</owl:Class>
|
|
</pre>
|
|
|
|
<p>
|
|
The <tt>rdfs:label</tt> entry provides an optional human readable
|
|
name for this class. Presentation tools can make use of it.
|
|
The "lang" attribute provides support for multiple languages. A label
|
|
is like a comment and contributes nothing to the logical
|
|
interpretation of an ontology. </p>
|
|
|
|
<p>
|
|
Our wine definition is still very incomplete. We know nothing about
|
|
wines except that they are things and potable liquids, but we have
|
|
sufficient information to create and reason about individuals.
|
|
</p>
|
|
|
|
<h3><a name="DefiningIndividuals">3.1.2. Individuals</a></h3>
|
|
|
|
<p>
|
|
In addition to classes, we want to be able to describe their members.
|
|
We normally think of these as individuals in our universe of things.
|
|
An individual is minimally introduced by declaring it to be a member
|
|
of a class.
|
|
</p>
|
|
<pre>
|
|
<Region rdf:ID="CentralCoastRegion" />
|
|
</pre>
|
|
|
|
<p>
|
|
Note that the following is identical in meaning to the
|
|
example above.
|
|
<a id="rdf_type" name="rdf_type"></a>
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Thing rdf:ID="CentralCoastRegion" />
|
|
|
|
<owl:Thing rdf:about="#CentralCoastRegion">
|
|
<rdf:type rdf:resource="#Region"/>
|
|
</owl:Thing>
|
|
</pre>
|
|
|
|
<p>
|
|
<tt>rdf:type</tt> is an RDF property that ties an individual to a class
|
|
of which it is a member.
|
|
</p>
|
|
|
|
<p>
|
|
There are a couple of points to be made here. First,
|
|
we have decided that <tt>CentralCoastRegion</tt> (a specific area) is
|
|
member of <tt>Region</tt>, the class containing all geographical regions.
|
|
Second, there is no requirement in the two-part example that the two
|
|
elements need to be adjacent to one another, or even in the same
|
|
file (though the names would need to be extended with a URI in such a
|
|
case). We design Web ontologies to be distributed. They can be
|
|
imported and augmented, creating derived ontologies.
|
|
</p>
|
|
|
|
<p>
|
|
In order to have available a few more classes for the
|
|
properties introduced in the next sections, we define a branch
|
|
of the <tt>Grape</tt> taxonomy, with an individual denoting the
|
|
Cabernet Sauvignon grape varietal. Grapes are defined in the food ontology:
|
|
</p>
|
|
<pre>
|
|
<owl:Class rdf:ID="Grape">
|
|
...
|
|
</owl:Class>
|
|
</pre>
|
|
<p>
|
|
And then in the wine ontology we have:
|
|
</p>
|
|
<pre>
|
|
<owl:Class rdf:ID="WineGrape">
|
|
<rdfs:subClassOf rdf:resource="&food;Grape" />
|
|
</owl:Class>
|
|
|
|
<WineGrape rdf:ID="CabernetSauvignonGrape" />
|
|
</pre>
|
|
|
|
<p>
|
|
<!-- this means that we have in some sense limited our ontology
|
|
for specific purposes. Because it is itself an individual,
|
|
we cannot create an instance of <tt>CabernetSauvignonGrape</tt>.
|
|
If we needed to talk about individual grapes or specific bunches of grapes, we would have
|
|
designed the ontology differently. -->
|
|
|
|
As discussed in the next section,
|
|
<tt>CabernetSauvignonGrape</tt> is an individual because it denotes a
|
|
single grape varietal.
|
|
</p>
|
|
|
|
<h3><a name="DesignForUse">3.1.3. Design for Use</a></h3>
|
|
|
|
<p>
|
|
<a id="term_class" name="term_class"></a>
|
|
<a id="term_individual" name="term_individual"></a>
|
|
There are important issues regarding the distinction between a <i>class</i> and
|
|
an <i>individual</i> in OWL. A class is simply a name and collection of properties
|
|
that describe a set of individuals. Individuals are the members of those sets.
|
|
Thus classes should correspond to naturally occurring sets of things in a domain
|
|
of discourse, and individuals should correspond to actual entities that can be grouped
|
|
into these classes.
|
|
</p>
|
|
<p>
|
|
In building ontologies, this distinction is frequently blurred in two ways:
|
|
</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<i>Levels of representation:</i> It is well known that in certain contexts something
|
|
that is obviously a class can itself be considered an instance of something else. For
|
|
example, in the wine ontology we have the notion of a <tt>Grape</tt>, which is
|
|
intended to denote the set of all <i>grape varietals.</i>
|
|
<tt>CabernetSauvingonGrape</tt> is
|
|
an example instance of this class, as it denotes the actual grape varietal
|
|
called Cabernet Sauvignon.
|
|
However, <tt>CabernetSauvignonGrape</tt> could itself be considered a class, the set of all
|
|
actual Cabernet Sauvignon grapes.
|
|
<br />
|
|
<br />
|
|
</li>
|
|
|
|
<li>
|
|
<a id="instance-of" name="instance-of"></a>
|
|
<a id="term_instanceOf" name="term_instanceOf"></a>
|
|
<i>Subclass vs. instance:</i> It is very easy to confuse the
|
|
instance-of relationship with the subclass relationship.
|
|
For example, it may seem arbitrary to choose to make <tt>CabernetSauvignonGrape</tt>
|
|
an individual that is an instance of <tt>Grape,</tt> as opposed to a subclass of <tt>Grape</tt>.
|
|
This is not an arbitrary
|
|
decision. The <tt>Grape</tt> class denotes the set of all
|
|
<i>grape varietals</i>, and therefore any subclass of <tt>Grape</tt> should denote a subset of these
|
|
varietals. Thus, CabernetSauvignonGrape should be considered an
|
|
<a id="term_instance" name="term_instance"></a><em>instance of</em> Grape, and not a subclass. It does not
|
|
describe a subset of Grape varietals, it <em>is</em> a grape varietal.
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
<p>
|
|
Note that the same distinction arises with the treatment of the
|
|
<tt>Wine</tt> class. The <tt>Wine</tt> class actually denotes the set
|
|
of all <em>varieties</em> of wine, not the set of actual bottles that
|
|
someone may purchase.
|
|
|
|
Each instance of <tt>Wine</tt> could be considered the class
|
|
consisting of all the bottles of wine of that type. It is easy to
|
|
imagine an information system, such as an inventory system for a wine
|
|
merchant, that needs to consider individual bottles of wine.
|
|
|
|
The wine ontology as it currently exists would require the ability to
|
|
treat classes as instances in order to support such an interpretation.
|
|
|
|
Note that OWL Full permits such expressivity,
|
|
allowing us to treat an instance of a wine variety simultaneously
|
|
as a class whose instances are bottles of wine.
|
|
|
|
</p>
|
|
|
|
<p>
|
|
In a similar vein, the wines produced by wineries in specific years
|
|
are considered vintages. In order to represent the notion of a
|
|
vintage, we must determine where it fits in the current ontology. An
|
|
instance of the <tt>Wine</tt> class, as discussed above, represents a
|
|
single variety of wine produced by a single winery, for example
|
|
<tt>FormanChardonnay.</tt>
|
|
</p>
|
|
|
|
<p>
|
|
Adding that the wine produced in the year 2000 is considered a
|
|
<a id="vintageIntro" name="vintageIntro">vintage</a>
|
|
poses a challenge, because we don't have the ability to represent a
|
|
subset of a given wine individual. This vintage is not a new
|
|
variety of wine, it is a special subset of the wine - that produced in
|
|
the year 2000.
|
|
|
|
An option would be to use OWL Full and treat the wine instances as
|
|
classes with subclasses (subsets) denoting vintages. Another option is
|
|
to use a workaround and to consider <tt>Vintage</tt> as a separate class whose
|
|
instances have a relationship to the Wine they are a vintage of.
|
|
|
|
For example, <tt>FormanChardonnay2000</tt> is an
|
|
individual <tt>Vintage</tt> with a <tt>vintageOf</tt> property whose value is
|
|
the <tt>Wine</tt>, <tt>FormanChardonnay.</tt> We define the
|
|
<a href="#vintage"><tt>Vintage</tt></a> class below.
|
|
</p>
|
|
|
|
<p>
|
|
The point of this
|
|
discussion is to note that the development of an ontology should be
|
|
firmly driven by the intended usage. These issues also underlie
|
|
one major difference between OWL Full and OWL DL. OWL Full
|
|
allows the use of classes as instances and OWL DL does not.
|
|
The wine ontology is designed to work in OWL DL, and
|
|
as a result individuals like <tt>FormanChardonnay</tt> are not
|
|
simultaneously treated as classes.
|
|
</p>
|
|
|
|
|
|
<h2><a name="SimpleProperties">3.2. Simple Properties </a></h2>
|
|
|
|
<p>This world of classes and individuals would be pretty uninteresting
|
|
if we could only define taxonomies.
|
|
<a id="term_Properties" name="term_Properties"></a><em>Properties</em> let us assert
|
|
general facts about the members of classes and specific facts about
|
|
individuals.
|
|
</p>
|
|
|
|
<h3><a name="DefiningProperties">3.2.1. Defining Properties</a><br />
|
|
<tt>ObjectProperty, DatatypeProperty, rdfs:subPropertyOf, <br />
|
|
rdfs:domain, rdfs:range</tt></h3>
|
|
|
|
<p>A property is a binary relation.
|
|
Two types of properties are distinguished:
|
|
</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<a id="term_datatypeproperties" name="term_datatypeproperties"></a><em>datatype properties</em>,
|
|
relations between instances of
|
|
classes and RDF literals and XML Schema datatypes</li>
|
|
|
|
<li><a id="term_objectproperties" name="term_objectproperties"></a><em>object properties</em>,
|
|
relations between instances of two classes.
|
|
Note that the name <i>object</i> property is not intended to reflect a
|
|
connection with the <a href="http://www.w3.org/RDF/">RDF</a> term <a
|
|
href="http://www.w3.org/TR/rdf-schema/#ch_object">rdf:object</a>.
|
|
</li>
|
|
</ul>
|
|
|
|
<p>
|
|
<a id="owl_ObjectProperty" name="owl_ObjectProperty"></a>
|
|
<a id="term_domain" name="term_domain"></a>
|
|
<a id="term_range" name="term_range"></a>
|
|
<a id="rdfs_domain" name="rdfs_domain"></a>
|
|
<a id="rdfs_range" name="rdfs_range"></a>
|
|
When we define a property
|
|
there are a number of ways to restrict the relation.
|
|
The domain and range can be specified. The property can be defined to
|
|
be a specialization (subproperty) of an existing property. More elaborate
|
|
restrictions are possible and are described
|
|
<a href="#PropertyCharacteristics">later</a>.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:ObjectProperty rdf:ID="madeFromGrape">
|
|
<rdfs:domain rdf:resource="#Wine"/>
|
|
<rdfs:range rdf:resource="#WineGrape"/>
|
|
</owl:ObjectProperty>
|
|
|
|
<owl:ObjectProperty rdf:ID="course">
|
|
<rdfs:domain rdf:resource="#Meal" />
|
|
<rdfs:range rdf:resource="#MealCourse" />
|
|
</owl:ObjectProperty>
|
|
</pre>
|
|
|
|
<p>
|
|
<a id="rdfs_subPropertyOf" name="rdfs_subPropertyOf"></a>
|
|
In OWL, a sequence of elements without an explicit operator
|
|
represents an implicit conjunction.
|
|
The property <tt>madeFromGrape</tt> has a domain of <tt>Wine</tt>
|
|
<em>and</em> a range of <tt>WineGrape</tt>. That is, it relates
|
|
instances of the class <tt>Wine</tt> to instances of the class
|
|
<tt>WineGrape</tt>. Multiple domains mean that the
|
|
domain of the property is the intersection of
|
|
the identified classes (and similarly for range).
|
|
</p>
|
|
<p>
|
|
Similarly, the property <tt>course</tt> ties a <tt>Meal</tt> to a <tt>MealCourse</tt>.
|
|
</p>
|
|
<p>
|
|
Note that the use of range and domain information in OWL is different
|
|
from type information in a programming language. Among other things, types
|
|
are used to check consistency in a programming language. In OWL, a range may be
|
|
used to infer a type. For example, given:
|
|
</p>
|
|
<pre>
|
|
<owl:Thing rdf:ID="LindemansBin65Chardonnay">
|
|
<madeFromGrape rdf:resource="#ChardonnayGrape" />
|
|
</owl:Thing> <span class="red"> ¬ </span>
|
|
</pre>
|
|
<p>
|
|
we can infer that <tt>LindemansBin65Chardonnay</tt> is a wine because
|
|
the domain of <tt>madeFromGrape</tt> is <tt>Wine</tt>.
|
|
</p>
|
|
<p>
|
|
Properties, like classes, can be arranged in a hierarchy.
|
|
</p>
|
|
<pre>
|
|
<owl:Class rdf:ID="WineDescriptor" />
|
|
|
|
<owl:Class rdf:ID="WineColor">
|
|
<rdfs:subClassOf rdf:resource="#WineDescriptor" />
|
|
...
|
|
</owl:Class>
|
|
|
|
<owl:ObjectProperty rdf:ID="hasWineDescriptor">
|
|
<rdfs:domain rdf:resource="#Wine" />
|
|
<rdfs:range rdf:resource="#WineDescriptor" />
|
|
</owl:ObjectProperty>
|
|
|
|
<owl:ObjectProperty rdf:ID="hasColor">
|
|
<rdfs:subPropertyOf rdf:resource="#hasWineDescriptor" />
|
|
<rdfs:range rdf:resource="#WineColor" />
|
|
...
|
|
</owl:ObjectProperty>
|
|
</pre>
|
|
<p>
|
|
<tt>WineDescriptor</tt> properties relate wines to their color and components of their
|
|
taste, including sweetness, body, and flavor. <tt>hasColor</tt> is a
|
|
subproperty of the <tt>hasWineDescriptor</tt> property, with its range
|
|
further restricted to <tt>WineColor</tt>. The <tt>rdfs:subPropertyOf</tt>
|
|
relation in this case means that anything with a <tt>hasColor</tt>
|
|
property with value X also has a <tt>hasWineDescriptor</tt> property
|
|
with value X.
|
|
</p>
|
|
|
|
<p>
|
|
Next we introduce the <tt>locatedIn</tt> property, which relates things to
|
|
the regions they are located in.
|
|
</p>
|
|
<pre>
|
|
<owl:ObjectProperty rdf:ID="locatedIn">
|
|
...
|
|
<rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing" />
|
|
<rdfs:range rdf:resource="#Region" />
|
|
</owl:ObjectProperty>
|
|
</pre>
|
|
<p>
|
|
Notice how the domain and range of <tt>locatedIn</tt> are defined.
|
|
The domain permits anything to be located in a region, including
|
|
regions themselves. And the <a href="#owl_TransitiveProperty
|
|
">transitive</a>
|
|
composition of this relation
|
|
essentially creates a network of geographically included subregions
|
|
and things. Those things that have nothing located in them
|
|
can be of any class, while those that contain others must be
|
|
regions.
|
|
</p>
|
|
|
|
<p>
|
|
It is now possible to expand the definition of <tt>Wine</tt> to
|
|
include the notion of regions, and that a wine is
|
|
made from at least one <tt>WineGrape</tt>.
|
|
As with property definitions, class definitions have multiple subparts that are
|
|
implicitly conjoined.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="Wine">
|
|
<rdfs:subClassOf rdf:resource="&food;PotableLiquid"/>
|
|
<rdfs:subClassOf>
|
|
<span class="highlight"> <owl:Restriction>
|
|
<owl:onProperty rdf:resource="#madeFromGrape"/>
|
|
<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
|
|
</owl:Restriction> </span>
|
|
</rdfs:subClassOf>
|
|
...
|
|
</owl:Class>
|
|
</pre>
|
|
<p>
|
|
The highlighted subclass restriction above
|
|
</p>
|
|
<pre>
|
|
<owl:Restriction>
|
|
<owl:onProperty rdf:resource="#madeFromGrape"/>
|
|
<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
|
|
</owl:Restriction>
|
|
</pre>
|
|
<p>
|
|
defines an unnamed class that represents the set of things
|
|
with at least one <tt>madeFromGrape</tt> property.
|
|
We call these <a id="term_anonymousClass" name="term_anonymousClass"></a><em>anonymous</em>
|
|
classes. Including this restriction in the <tt>Wine</tt>
|
|
class definition body states that things that are wines are also
|
|
members of this anonymous class. That is, every individual wine must participate
|
|
in at least one <tt>madeFromGrape</tt> relation.
|
|
</p>
|
|
|
|
<p>
|
|
<a name="vintage" id="vintage"/>
|
|
We can now describe the class of <tt>Vintage</tt>s, discussed <a href="#vintageIntro">previously</a>.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="Vintage">
|
|
<rdfs:subClassOf>
|
|
<owl:Restriction>
|
|
<owl:onProperty rdf:resource="#vintageOf"/>
|
|
<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
|
|
</owl:Restriction>
|
|
</rdfs:subClassOf>
|
|
</owl:Class> <span class="red"> ¬ </span>
|
|
</pre>
|
|
|
|
<p>
|
|
The property <tt>vintageOf</tt> ties a <tt>Vintage</tt> to a
|
|
<tt>Wine</tt>.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:ObjectProperty rdf:ID="vintageOf">
|
|
<rdfs:domain rdf:resource="#Vintage" />
|
|
<rdfs:range rdf:resource="#Wine" />
|
|
</owl:ObjectProperty> <span class="red"> ¬ </span>
|
|
</pre>
|
|
<p>
|
|
We relate <tt>Vintage</tt>s to their years in the next section.
|
|
</p>
|
|
|
|
<h3><a name="rdfs_Datatype"></a>
|
|
<a id="term_datatype" name="term_datatype"></a>
|
|
<a name="Datatypes1">3.2.2. Properties and Datatypes</a></h3>
|
|
|
|
<p>
|
|
We distinguish
|
|
properties according to whether they relate individuals to individuals
|
|
(object properties) or individuals to datatypes (datatype properties).
|
|
Datatype properties may range over strings or they may make use of
|
|
simple types defined in accordance with
|
|
<a href="http://www.w3.org/TR/xmlschema-2/">XML Schema datatypes</a>.
|
|
</p>
|
|
|
|
<p>
|
|
<a id="owl_DatatypeProperty" name="owl_DatatypeProperty"></a>
|
|
OWL uses some of many of the built-in XML
|
|
Schema datatypes. References to these datatypes are by
|
|
means of the URI reference for the datatype,
|
|
<tt>http://www.w3.org/2001/XMLSchema</tt>. The following datatypes are
|
|
<em>recommended</em> for use with OWL:
|
|
</p>
|
|
|
|
<table class="info">
|
|
<tr><td>xsd:string</td><td>xsd:normalizedString</td><td>xsd:boolean</td></tr>
|
|
<tr><td>xsd:decimal</td><td>xsd:float</td><td>xsd:double</td></tr>
|
|
<tr><td>xsd:integer</td><td>xsd:nonNegativeInteger</td><td>xsd:positiveInteger</td></tr>
|
|
<tr><td>xsd:nonPositiveInteger</td><td>xsd:negativeInteger</td></tr>
|
|
|
|
<tr><td>xsd:long</td><td>xsd:int</td><td>xsd:short</td><td>xsd:byte</td></tr>
|
|
<tr><td>xsd:unsignedLong</td><td>xsd:unsignedInt</td><td>xsd:unsignedShort</td><td>xsd:unsignedByte</td></tr>
|
|
<tr><td>xsd:hexBinary</td><td>xsd:base64Binary</td></tr>
|
|
<tr><td>xsd:dateTime</td><td>xsd:time</td><td>xsd:date</td><td>xsd:gYearMonth</td></tr>
|
|
<tr><td>xsd:gYear</td><td>xsd:gMonthDay</td><td>xsd:gDay</td><td>xsd:gMonth</td></tr>
|
|
<tr><td>xsd:anyURI</td><td>xsd:token</td><td>xsd:language</td></tr>
|
|
<tr><td>xsd:NMTOKEN</td><td>xsd:Name</td><td>xsd:NCName</td></tr>
|
|
</table>
|
|
<p>
|
|
The above datatypes, plus <tt>rdfs:Literal</tt>, form the built-in OWL datatypes.
|
|
All OWL reasoners are required to support the <tt>xsd:integer</tt>
|
|
and <tt>xsd:string</tt> datatypes.
|
|
</p>
|
|
|
|
<p>
|
|
Other built-in XML Schema datatypes may
|
|
be used in OWL Full, but with caveats described in the
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/syntax.html">
|
|
OWL Semantics and Abstract Syntax</a> documentation.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="VintageYear" />
|
|
|
|
<owl:DatatypeProperty rdf:ID="yearValue">
|
|
<rdfs:domain rdf:resource="#VintageYear" />
|
|
<rdfs:range rdf:resource="&xsd;positiveInteger"/>
|
|
</owl:DatatypeProperty>
|
|
</pre>
|
|
|
|
<p>
|
|
The <tt>yearValue</tt> property relates <tt>VintageYear</tt>s to positive
|
|
integer values.
|
|
We introduce the <tt>hasVintageYear</tt> property, which relates a <tt>Vintage</tt> to a
|
|
<tt>VintageYear</tt> <a href="#FunctionalProperty">below.</a>
|
|
</p>
|
|
|
|
<p>
|
|
The <a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#EnumeratedDatatype">
|
|
OWL Reference</a> describes the use of <tt>owl:oneOf</tt> and
|
|
<tt>rdf:List</tt> and <tt>rdf:rest</tt> to define an enumerated
|
|
datatype. The example shows how to construct the <tt>owl:DatatypeProperty</tt>,
|
|
<tt>tennisGameScore</tt>, with a range equal to the elements of the list of integer
|
|
values {0, 15, 30, 40}.
|
|
</p>
|
|
|
|
<h3><a name="PropertiesOfIndividuals">3.2.3. Properties of Individuals</a></h3>
|
|
|
|
<p>
|
|
First we describe <tt>Region</tt> and <tt>Winery</tt> individuals, and then
|
|
we define our first wine, a Cabernet Sauvignon.
|
|
</p>
|
|
|
|
<pre>
|
|
<Region rdf:ID="SantaCruzMountainsRegion">
|
|
<locatedIn rdf:resource="#CaliforniaRegion" />
|
|
</Region>
|
|
|
|
<Winery rdf:ID="SantaCruzMountainVineyard" />
|
|
|
|
<CabernetSauvignon rdf:ID="SantaCruzMountainVineyardCabernetSauvignon" ><a name="CabernetSauvignon" id="CabernetSauvignon"/>
|
|
<locatedIn rdf:resource="#SantaCruzMountainsRegion"/>
|
|
<hasMaker rdf:resource="#SantaCruzMountainVineyard" />
|
|
</CabernetSauvignon>
|
|
</pre>
|
|
|
|
<p>
|
|
This is still incomplete. There are other aspects of the wine flavor
|
|
that are defined in the full ontology. But the pieces are falling
|
|
together. We could begin reasoning about what menu items in our food
|
|
ontology this wine might
|
|
accompany. We know from the definition above that the Santa Cruz
|
|
Mountain Vineyard makes it.
|
|
Because it is a Cabernet Sauvignon (see <a href="wine.rdf">wine.rdf</a>),
|
|
we know it is a dry, red wine.
|
|
</p>
|
|
|
|
<p>
|
|
Datatype properties can be added to individuals in a similar
|
|
fashion. Below we describe an instance of <tt>VintageYear</tt> and tie it to a
|
|
specific value of type <tt>xdt:positiveInteger</tt>.
|
|
</p>
|
|
|
|
<pre>
|
|
<VintageYear rdf:ID="Year1998">
|
|
<yearValue rdf:datatype="&xsd;positiveInteger">1998</yearValue>
|
|
</VintageYear>
|
|
</pre>
|
|
|
|
<h2><a name="PropertyCharacteristics" id="PropertyCharacteristics">
|
|
3.3. Property Characteristics</a></h2>
|
|
|
|
<p>
|
|
The next few sections describe the mechanisms used to further specify
|
|
properties. It is possible to specify property
|
|
<a id="term_characteristics" name="term_characteristics"></a><em>characteristics</em>, which provides a powerful mechanism for enhanced
|
|
reasoning about a property.
|
|
</p>
|
|
|
|
<dl>
|
|
<dt><a name="TransitiveProperty">TransitiveProperty</a></dt>
|
|
<dd>
|
|
|
|
<p>
|
|
<a id="owl_TransitiveProperty" name="owl_TransitiveProperty"></a>
|
|
If a property, P, is specified as transitive then for any x, y, and z:
|
|
</p>
|
|
|
|
<pre>
|
|
P(x,y) and P(y,z) implies P(x,z)
|
|
</pre>
|
|
|
|
<p>
|
|
The property <tt>locatedIn</tt> is transitive.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:ObjectProperty rdf:ID="locatedIn">
|
|
<rdf:type rdf:resource="&owl;TransitiveProperty" />
|
|
<rdfs:domain rdf:resource="&owl;Thing" />
|
|
<rdfs:range rdf:resource="#Region" />
|
|
</owl:ObjectProperty>
|
|
|
|
<Region rdf:ID="SantaCruzMountainsRegion">
|
|
<locatedIn rdf:resource="#CaliforniaRegion" />
|
|
</Region>
|
|
|
|
<Region rdf:ID="CaliforniaRegion">
|
|
<locatedIn rdf:resource="#USRegion" />
|
|
</Region>
|
|
</pre>
|
|
|
|
<p>
|
|
Because the <tt>SantaCruzMountainsRegion</tt> is <tt>locatedIn</tt> the
|
|
<tt>CaliforniaRegion</tt>, then it must also be <tt>locatedIn</tt> the
|
|
<tt>USRegion</tt>, since <tt>locatedIn</tt> is transitive.
|
|
</p>
|
|
|
|
</dd>
|
|
|
|
<dt><a name="SymmetricProperty">SymmetricProperty</a></dt>
|
|
|
|
<dd>
|
|
<p><a id="owl_SymmetricProperty" name="owl_SymmetricProperty"></a>
|
|
If a property, P, is tagged as
|
|
symmetric then for any x and y:
|
|
</p>
|
|
<pre>
|
|
P(x,y) iff P(y,x)
|
|
</pre>
|
|
<p>
|
|
The property <tt>adjacentRegion</tt> is symmetric, while <tt>locatedIn</tt> is not.
|
|
(To be more precise, <tt>locatedIn</tt> is not intended to be
|
|
symmetric. Nothing in the wine ontology at present prevents it from being symmetric.)
|
|
|
|
</p>
|
|
<pre>
|
|
<owl:ObjectProperty rdf:ID="adjacentRegion">
|
|
<rdf:type rdf:resource="&owl;SymmetricProperty" />
|
|
<rdfs:domain rdf:resource="#Region" />
|
|
<rdfs:range rdf:resource="#Region" />
|
|
</owl:ObjectProperty>
|
|
|
|
<Region rdf:ID="MendocinoRegion">
|
|
<locatedIn rdf:resource="#CaliforniaRegion" />
|
|
<adjacentRegion rdf:resource="#SonomaRegion" />
|
|
</Region>
|
|
</pre>
|
|
<p>
|
|
The <tt>MendocinoRegion</tt> is adjacent to the <tt>SonomaRegion</tt>
|
|
and vice-versa. The <tt>MendocinoRegion</tt> is located in the
|
|
<tt>CaliforniaRegion</tt> but not vice versa.
|
|
</p>
|
|
</dd>
|
|
|
|
<dt><a name="FunctionalProperty">FunctionalProperty</a></dt>
|
|
|
|
<dd>
|
|
<p>
|
|
<a id="owl_FunctionalProperty" name="owl_FunctionalProperty"></a>
|
|
If a property, P, is tagged as functional then for all x, y, and z:
|
|
</p>
|
|
<pre>
|
|
P(x,y) and P(x,z) implies y = z
|
|
</pre>
|
|
<p>
|
|
In our wine ontology, <tt>hasVintageYear</tt>
|
|
is functional. A wine has a unique vintage year.
|
|
That is, a given individual <tt>Vintage</tt> can only be associated with a
|
|
single year using the <tt>hasVintageYear</tt> property.
|
|
It is not a requirement of a <tt>owl:FunctionalProperty</tt>
|
|
that all elements of the domain have values. See the discussion of
|
|
<a href="#simpleCardinality"><tt>Vintage</tt> cardinality</a>.
|
|
</p>
|
|
<pre>
|
|
<owl:Class rdf:ID="VintageYear" />
|
|
|
|
<owl:ObjectProperty rdf:ID="hasVintageYear">
|
|
<rdf:type rdf:resource="&owl;FunctionalProperty" />
|
|
<rdfs:domain rdf:resource="#Vintage" />
|
|
<rdfs:range rdf:resource="#VintageYear" />
|
|
</owl:ObjectProperty>
|
|
</pre>
|
|
</dd>
|
|
|
|
<dt>inverseOf</dt>
|
|
|
|
<dd>
|
|
<p><a id="owl_inverseOf" name="owl_inverseOf"></a>
|
|
If a property, P1, is tagged as the <tt>owl:inverseOf</tt> P2, then for
|
|
all x, y, and z:
|
|
</p>
|
|
|
|
<pre>
|
|
P1(x,y) iff P2(y,x)
|
|
</pre>
|
|
|
|
<p>
|
|
Note that the syntax for <tt>owl:inverseOf</tt> takes a property name as an argument.
|
|
<tt>A iff B</tt> means <tt>(A implies B) and (B implies A)</tt>.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:ObjectProperty rdf:ID="hasMaker">
|
|
<rdf:type rdf:resource="&owl;FunctionalProperty" />
|
|
</owl:ObjectProperty>
|
|
|
|
<owl:ObjectProperty rdf:ID="producesWine">
|
|
<owl:inverseOf rdf:resource="#hasMaker" />
|
|
</owl:ObjectProperty>
|
|
</pre>
|
|
|
|
<p>
|
|
<tt>Wine</tt>s have makers, which in the definition of <tt>Wine</tt>
|
|
are restricted to <tt>Winery</tt>s. Then each
|
|
<tt>Winery</tt> produces the set of wines that identify it as maker.
|
|
</p>
|
|
|
|
</dd>
|
|
|
|
<dt>InverseFunctionalProperty</dt>
|
|
|
|
<dd>
|
|
<p>
|
|
<a id="owl_InverseFunctionalProperty" name="owl_InverseFunctionalProperty"></a>
|
|
If a property, P, is tagged as InverseFunctional then for all x and y:
|
|
</p>
|
|
|
|
<pre>
|
|
P(y,x) and P(z,x) implies y = z
|
|
</pre>
|
|
|
|
<p>
|
|
Notice that <tt>producesWine</tt> in the preceding section is inverse
|
|
functional. The reason is that the inverse of a functional property
|
|
must be inverse functional. We could have defined <tt>hasMaker</tt>
|
|
and <tt>producesWine</tt> as follows and achieved the identical
|
|
effect as the preceding example.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:ObjectProperty rdf:ID="hasMaker" />
|
|
|
|
<owl:ObjectProperty rdf:ID="producesWine">
|
|
<rdf:type rdf:resource="&owl;InverseFunctionalProperty" />
|
|
<owl:inverseOf rdf:resource="#hasMaker" />
|
|
</owl:ObjectProperty> <span class="red"> ¬ </span>
|
|
</pre>
|
|
|
|
<p>
|
|
Think of the elements of the range in an inverse functional property
|
|
as defining a unique key in the database sense.
|
|
<tt>owl:InverseFunctional</tt> implies that the elements of the range
|
|
provide a unique identifier for each element of the domain.
|
|
</p>
|
|
<p>
|
|
<a name="rdfs_Literal"/>
|
|
In OWL Full, we can tag a <tt>DatatypeProperty</tt> as
|
|
inverseFunctional. This permits us to identify a string as
|
|
a unique key. In OWL DL literals are disjoint from owl:Thing, which
|
|
is why OWL DL does not permit <tt>InverseFunctional</tt> to be applied to
|
|
<tt>DatatypeProperty</tt>.
|
|
</p>
|
|
|
|
</dd>
|
|
|
|
</dl>
|
|
|
|
<h2>
|
|
<a name="PropertyRestrictions" id="PropertyRestrictions"></a>
|
|
<a name="restrictions" id="restrictions"></a>
|
|
3.4. Property Restrictions</h2>
|
|
|
|
<p>
|
|
<a id="owl_Restriction" name="owl_Restriction"></a>
|
|
<a id="owl_onProperty" name="owl_onProperty"></a>
|
|
In addition to designating property characteristics, it is possible to
|
|
further constrain the range of a property in specific contexts in a
|
|
variety of ways.
|
|
We do this with <i>property restrictions</i>. The various
|
|
forms described below can only be used within the context of an <tt>owl:Restriction</tt>.
|
|
The <tt>owl:onProperty</tt> element indicates the restricted property.
|
|
</p>
|
|
<h3>
|
|
<a name="allValuesFrom" id="allValuesFrom"></a>
|
|
<a name="someValuesFrom" id="someValuesFrom"></a>
|
|
<a id="owl_allValuesFrom" name="owl_allValuesFrom"></a>
|
|
<a id="term_restriction_class" name="term_restriction_class"></a>
|
|
3.4.1. allValuesFrom, someValuesFrom</h3>
|
|
|
|
<p>
|
|
We have already seen one way to restrict the types of the elements that
|
|
make up a property. The mechanisms to
|
|
date have been <em>global</em> in that they apply to all
|
|
instances of the property. These next two, <tt>allValuesFrom</tt> and
|
|
<tt>someValuesFrom</tt>, are <em>local</em> to their containing class definition.
|
|
</p>
|
|
<p>
|
|
<!-- The <tt>owl:allValuesFrom</tt> restriction means that every instance of
|
|
the class must have an instance of the specified property with
|
|
values that are all instances of the specified restriction class. -->
|
|
|
|
The <tt>owl:allValuesFrom</tt> restriction requires that for every instance of
|
|
the class that has instances of the specified property, the
|
|
values of the property are all members of the class indicated by the
|
|
<tt>owl:allValuesFrom</tt> clause.
|
|
</p>
|
|
<pre>
|
|
<owl:Class rdf:ID="Wine">
|
|
<rdfs:subClassOf rdf:resource="&food;PotableLiquid" />
|
|
...
|
|
<rdfs:subClassOf>
|
|
<owl:Restriction>
|
|
<owl:onProperty rdf:resource="#hasMaker" />
|
|
<owl:allValuesFrom rdf:resource="#Winery" />
|
|
</owl:Restriction>
|
|
</rdfs:subClassOf>
|
|
...
|
|
</owl:Class>
|
|
</pre>
|
|
|
|
<p>
|
|
The maker of a <tt>Wine</tt> must be a <tt>Winery</tt>.
|
|
The <tt>allValuesFrom</tt> restriction is on the <tt>hasMaker</tt> property of
|
|
this <tt>Wine</tt> class <em>only</em>. Makers of <tt>Cheese</tt> are
|
|
not constrained by this local restriction.
|
|
</p>
|
|
|
|
<p>
|
|
<a id="owl_someValuesFrom" name="owl_someValuesFrom"></a>
|
|
<tt>owl:someValuesFrom</tt> is similar. If we
|
|
replaced <tt>owl:allValuesFrom</tt> with <tt>owl:someValuesFrom</tt>
|
|
in the example above, it would mean that at least <em>one</em> of the
|
|
<tt>hasMaker</tt> properties of a <tt>Wine</tt> must point to an
|
|
individual that is a <tt>Winery</tt>.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="Wine">
|
|
<rdfs:subClassOf rdf:resource="&food;PotableLiquid" />
|
|
<rdfs:subClassOf>
|
|
<owl:Restriction>
|
|
<owl:onProperty rdf:resource="#hasMaker" />
|
|
<owl:someValuesFrom rdf:resource="#Winery" />
|
|
</owl:Restriction>
|
|
</rdfs:subClassOf>
|
|
...
|
|
</owl:Class> <span class="red"> ¬ </span>
|
|
</pre>
|
|
|
|
<p>
|
|
The difference between the two formulations is the difference between
|
|
a universal and existential quantification.
|
|
</p>
|
|
|
|
<table class="propositions">
|
|
<tr><th>Relation</th><th>Implications</th></tr>
|
|
<tr><td>allValuesFrom</td><td>For all wines, if they have
|
|
makers, all the makers are wineries.</td></tr>
|
|
<tr><td>someValuesFrom </td><td>For all wines, they have at least one maker that is a winery.</td></tr>
|
|
</table>
|
|
|
|
<p>
|
|
The first does not require a wine to have a maker. If it does have one or more, they
|
|
must all be wineries. The second requires that there be at least one maker
|
|
that is a winery, but there may be makers that are not wineries.
|
|
</p>
|
|
|
|
<h3><a name="simpleCardinality" id="simpleCardinality">3.4.2. Cardinality</a></h3>
|
|
|
|
<p>
|
|
<a id="owl_cardinality" name="owl_cardinality"></a>
|
|
<a id="term_cardinality" name="term_cardinality"></a>
|
|
We have already seen examples of cardinality constraints. To date,
|
|
they have been assertions about minimum cardinality. Even more
|
|
straight-forward is <tt>owl:cardinality</tt>, which permits the
|
|
specification of <em>exactly</em> the number of elements in a relation.
|
|
For example, we specify <tt>Vintage</tt> to be a class with
|
|
exactly one <tt>VintageYear</tt>.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="Vintage">
|
|
<rdfs:subClassOf>
|
|
<owl:Restriction>
|
|
<owl:onProperty rdf:resource="#hasVintageYear"/>
|
|
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
|
|
</owl:Restriction>
|
|
</rdfs:subClassOf>
|
|
</owl:Class>
|
|
</pre>
|
|
|
|
<p>
|
|
We specified <tt>hasVintageYear</tt> to be a functional property, which
|
|
is the same as saying that every Vintage has at most one VintageYear.
|
|
This application of that property to <tt>Vintage</tt> using the
|
|
cardinality restriction asserts
|
|
something stronger, that <em>every</em> <tt>Vintage</tt> has
|
|
<em>exactly</em> one <tt>VintageYear</tt>.
|
|
</p>
|
|
<!--
|
|
<p>
|
|
As another example, the following asserts that a <tt>Meal</tt> has at least
|
|
two <tt>course</tt>s.
|
|
</p>
|
|
<pre>
|
|
<owl:Class rdf:ID="Meal">
|
|
<rdfs:subClassOf rdf:resource="#ConsumableThing" />
|
|
<rdfs:subClassOf>
|
|
<owl:Restriction>
|
|
<owl:onProperty rdf:resource="#course" />
|
|
<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
|
|
</owl:Restriction>
|
|
</rdfs:subClassOf>
|
|
...
|
|
</owl:Class>
|
|
</pre>
|
|
-->
|
|
<p>
|
|
<a id="owl_minCardinality" name="owl_minCardinality"></a>
|
|
<a id="owl_maxCardinality" name="owl_maxCardinality"></a>
|
|
Cardinality expressions with values limited to 0 or 1 are part of OWL Lite.
|
|
This permits the user to indicate 'at least one', 'no more than one',
|
|
and 'exactly one'.
|
|
Positive integer values other than 0 and 1 are permitted in OWL DL.
|
|
<tt>owl:maxCardinality</tt> can be used to specify an <em>upper</em> bound.
|
|
<tt>owl:minCardinality</tt> can be used to specify a <em>lower</em> bound.
|
|
In combination, the two can be used to limit the property's cardinality to
|
|
a numeric interval.
|
|
</p>
|
|
|
|
<!--
|
|
<p>
|
|
MinCardinality defaults to 0.
|
|
There is no default value for cardinality or maxCardinality.
|
|
</p>
|
|
-->
|
|
|
|
<h3><a id="hasValue" name="hasValue">3.4.3. hasValue</a> <a href="#OWL_DL_tag">[OWL DL]</a></h3>
|
|
|
|
<p>
|
|
<a id="owl_hasValue" name="owl_hasValue"></a>
|
|
<tt>hasValue</tt> allows us to specify classes based on the
|
|
existence of <em>particular</em> property values. Hence,
|
|
an individual will be a member of such a class whenever at least <em>one</em>
|
|
of its property values is equal to the hasValue resource.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="Burgundy">
|
|
...
|
|
<rdfs:subClassOf>
|
|
<owl:Restriction>
|
|
<owl:onProperty rdf:resource="#hasSugar" />
|
|
<owl:hasValue rdf:resource="#Dry" />
|
|
</owl:Restriction>
|
|
</rdfs:subClassOf>
|
|
</owl:Class>
|
|
</pre>
|
|
|
|
<p>
|
|
Here we declare that all <tt>Burgundy</tt> wines are dry. That is, their
|
|
<tt>hasSugar</tt> property must have at least one value that is equal
|
|
to <tt>Dry</tt>.
|
|
</p>
|
|
|
|
<p>
|
|
As for <tt>allValuesFrom</tt> and
|
|
<tt>someValuesFrom</tt>, this is a local restriction. It holds for
|
|
<tt>hasSugar</tt> as applied to <tt>Burgundy</tt>.
|
|
</p>
|
|
|
|
<h1><a name="OntologyMapping">4. Ontology Mapping </a></h1>
|
|
|
|
<p>
|
|
In order for ontologies to have the maximum impact, they need to be
|
|
widely shared. In order to minimize the intellectual effort involved
|
|
in developing an ontology they need to be re-used. In the best of all
|
|
possible worlds they need to be composed. For example, you might adopt
|
|
a date ontology from one source and a physical location ontology from
|
|
another and then extend the notion of location to include the time
|
|
period during which it holds.
|
|
</p>
|
|
<p>
|
|
It is important to realize that much of the effort of developing an
|
|
ontology is devoted to hooking together classes and properties in
|
|
ways that maximize implications. We want simple assertions about
|
|
class membership to
|
|
have broad and useful implications. This is the hardest part of
|
|
ontology development. If you can find an existing ontology that has
|
|
already undergone extensive use and refinement, it makes sense to
|
|
adopt it.
|
|
</p>
|
|
<p>
|
|
It will be challenging to merge a collection of ontologies. Tool
|
|
support will almost certainly be required to maintain consistency.
|
|
</p>
|
|
|
|
<h2><a name="equivalentClass1" id="equivalentClass1">
|
|
4.1. Equivalence between Classes and Properties<br />
|
|
<tt>equivalentClass</tt>, <tt>equivalentProperty</tt></a></h2>
|
|
|
|
<p>To tie together a set of component ontologies as part of a
|
|
third it is frequently useful to be able to indicate that a particular
|
|
class or property in one ontology is equivalent to a class or property
|
|
in a second
|
|
ontology. This capability must be used with care.
|
|
If the combined ontologies are contradictory (all A's
|
|
are B's vs. all A's are not B's) there will be no extension (no
|
|
individuals and relations) that satisfies the resulting combination.
|
|
</p>
|
|
|
|
|
|
<p>
|
|
<a id="owl_equivalentClass" name="owl_equivalentClass"></a>
|
|
<a id="owl_sameClassAs" name="owl_sameClassAs"></a>
|
|
In the food ontology we want to link wine features in the descriptions
|
|
of dining courses back to the wine ontology. One way to do this is by
|
|
defining a class in the food ontology and then
|
|
declaring it equivalent to an existing wine class in the wine ontology.
|
|
</p>
|
|
<pre>
|
|
<owl:Class rdf:ID="Wine">
|
|
<owl:equivalentClass rdf:resource="&vin;Wine"/>
|
|
</owl:Class>
|
|
</pre>
|
|
<p>
|
|
The property <tt>owl:equivalentClass</tt> is used to indicate that two classes have
|
|
precisely the same instances. Note that in OWL DL, classes simply denote sets
|
|
of individuals, and are not individuals themselves. In OWL Full, however,
|
|
we can use <a href="#owl_sameAs"><tt>owl:sameAs</tt></a>
|
|
between two classes to indicate that
|
|
they are identical in every way.
|
|
</p>
|
|
|
|
<p>
|
|
Of course the example above is somewhat contrived, since we can always
|
|
use <tt>&vin;Wine</tt> anywhere we would use <tt>#Wine</tt> and get
|
|
the same effect without redefinition. A more likely use would be in a
|
|
case were we depend on two independently developed ontologies, and
|
|
note that they use the URI's <tt>O1:foo</tt> and <tt>O2:bar</tt> to
|
|
reference the same class. <tt>owl:equivalentClass</tt> could be used to
|
|
collapse these together so that the entailments from the two
|
|
ontologies are combined.
|
|
</p>
|
|
|
|
<p>
|
|
We have already seen that class expressions can be the targets
|
|
of <tt>rdfs:subClassOf</tt> constructors. They can also be the target of
|
|
<tt>owl:equivalentClass</tt>. Again, this avoids the need to
|
|
contrive names for every class expression and provides a powerful
|
|
definitional capability based on satisfaction of a property.
|
|
</p>
|
|
<pre>
|
|
<owl:Class rdf:ID="TexasThings">
|
|
<owl:equivalentClass>
|
|
<owl:Restriction>
|
|
<owl:onProperty rdf:resource="#locatedIn" />
|
|
<owl:allValuesFrom rdf:resource="#TexasRegion" />
|
|
</owl:Restriction>
|
|
</owl:equivalentClass>
|
|
</owl:Class> <span class="red"> ¬ </span>
|
|
</pre>
|
|
<p>
|
|
|
|
<tt>TexasThings</tt> are <em>exactly</em> those things located in the
|
|
Texas region. The difference between using <tt>owl:equivalentClass</tt> here
|
|
and using <tt>rdfs:subClassOf</tt> is the difference between a necessary
|
|
condition and a necessary and sufficient condition. With
|
|
<tt>subClassOf</tt>, things that are located in Texas are not
|
|
necessarily <tt>TexasThings</tt>. But, using <tt>owl:equivalentClass</tt>, if
|
|
something is located in Texas, then it must be in the class of
|
|
<tt>TexasThings</tt>.
|
|
</p>
|
|
<table class="propositions">
|
|
<tr><th>Relation</th><th>Implications</th></tr>
|
|
<tr><td>subClassOf</td><td>TexasThings(x) implies locatedIn(x,y) and TexasRegion(y)</td></tr>
|
|
<tr><td>equivalentClass </td><td>TexasThings(x) implies
|
|
locatedIn(x,y) and TexasRegion(y)<br />locatedIn(x,y) and
|
|
TexasRegion(y) implies TexasThings(x)</td></tr>
|
|
</table>
|
|
|
|
<p>
|
|
<a id="owl_equivalentProperty" name="owl_equivalentProperty"></a>
|
|
<a id="owl_samePropertyAs" name="owl_samePropertyAs"></a>
|
|
To tie together properties in a similar fashion, we use
|
|
<tt>owl:equivalentProperty</tt>.
|
|
</p>
|
|
|
|
<h2>
|
|
<a id="owl_sameAs" name="owl_sameAs"></a>
|
|
<a id="sameAs" name="sameAs">
|
|
4.2. Identity between Individuals<br />
|
|
<tt>sameAs</tt></a></h2>
|
|
|
|
<p>This mechanism is similar to that for classes, but declares two
|
|
individuals to be identical. An example would be:
|
|
</p>
|
|
<pre>
|
|
<Wine rdf:ID="MikesFavoriteWine">
|
|
<owl:sameAs rdf:resource="#StGenevieveTexasWhite" />
|
|
</Wine> <span class="red"> ¬ </span>
|
|
</pre>
|
|
<p>
|
|
This example does not have great utility. About all we learn from this is
|
|
that Mike likes an inexpensive local wine. A more typical use of
|
|
<tt>sameAs</tt> would be to equate individuals defined in
|
|
different documents to one another, as part of unifying two ontologies.
|
|
</p>
|
|
|
|
<p>
|
|
This brings up an important point. OWL does not have a
|
|
<a id="term_uniqueName" name="term_uniqueName"></a><em>unique
|
|
name</em> assumption. Just because two names are different does not
|
|
mean they refer to different individuals.
|
|
</p>
|
|
|
|
<p>
|
|
In the example above, we <em>asserted</em> identity between two distinct
|
|
names. But it is just as possible for this sort of identity to be
|
|
inferred.
|
|
Remember the implications that can be derived from a functional
|
|
property. Given that <tt>hasMaker</tt> is functional, the following
|
|
is not necessarily a conflict.
|
|
</p>
|
|
<pre>
|
|
<owl:Thing rdf:about="#BancroftChardonnay">
|
|
<hasMaker rdf:resource="#Bancroft" />
|
|
<hasMaker rdf:resource="#Beringer" />
|
|
</owl:Thing> <span class="red"> ¬ </span>
|
|
</pre>
|
|
<p>
|
|
Unless this conflicts with other information in our ontology, it simply means
|
|
that <tt>Bancroft</tt> = <tt>Beringer</tt>.
|
|
</p>
|
|
|
|
<p>
|
|
Note that using <tt>sameAs</tt> to equate two classes
|
|
is <b>not</b> the same as equating them with <tt>equivalentClass</tt>; instead, it causes the
|
|
the classes to be interpreted as individuals, and is therefore sufficient
|
|
to categorize an ontology as OWL Full.
|
|
In OWL Full <tt>sameAs</tt> may be used to equate
|
|
anything: a class and an individual, a property and a class, etc., and causes both
|
|
arguments to be intepreted as individuals.
|
|
</p>
|
|
|
|
<h2><a name="differentFrom">4.3. Different Individuals<br />
|
|
<tt>differentFrom</tt>, <tt>AllDifferent</tt></a></h2>
|
|
|
|
<p>
|
|
<a id="owl_differentFrom" name="owl_differentFrom"></a>
|
|
This mechanism provides the opposite effect from sameAs.
|
|
</p>
|
|
<pre>
|
|
<WineSugar rdf:ID="Dry" />
|
|
|
|
<WineSugar rdf:ID="Sweet">
|
|
<owl:differentFrom rdf:resource="#Dry"/>
|
|
</WineSugar>
|
|
|
|
<WineSugar rdf:ID="OffDry">
|
|
<owl:differentFrom rdf:resource="#Dry"/>
|
|
<owl:differentFrom rdf:resource="#Sweet"/>
|
|
</WineSugar>
|
|
</pre>
|
|
|
|
<p>
|
|
This is one way to assert that these three values are mutually distinct.
|
|
There will be cases where it is important to ensure such distinct
|
|
identities. Without these assertions we could describe a wine that was
|
|
both <tt>Dry</tt> and <tt>Sweet</tt>. We have
|
|
stated that the <tt>hasSugar</tt> property applied to a wine has no more than
|
|
one value. If we erred, and asserted that a wine was both <tt>Dry</tt> and
|
|
<tt>Sweet</tt>, without the <tt>differentFrom</tt> elements above,
|
|
this would imply that <tt>Dry</tt> and <tt>Sweet</tt> are identical.
|
|
With the elements above, we would instead get a contradiction.
|
|
</p>
|
|
|
|
<p>
|
|
<a id="owl_AllDifferent" name="owl_AllDifferent"></a>
|
|
<a id="owl_distinctMembers" name="owl_distinctMembers"></a>
|
|
A more convenient mechanism exists to define a set of mutually
|
|
distinct individuals. The following asserts that <tt>Red</tt>,
|
|
<tt>White</tt>, and <tt>Rose</tt> are pairwise distinct.
|
|
</p>
|
|
<pre>
|
|
<owl:AllDifferent>
|
|
<owl:distinctMembers rdf:parseType="Collection">
|
|
<vin:WineColor rdf:about="#Red" />
|
|
<vin:WineColor rdf:about="#White" />
|
|
<vin:WineColor rdf:about="#Rose" />
|
|
</owl:distinctMembers>
|
|
</owl:AllDifferent>
|
|
</pre>
|
|
<p>Note that <tt>owl:distinctMembers</tt> can only be used
|
|
in combination with <tt>owl:AllDifferent</tt>
|
|
</p>
|
|
<p>
|
|
In the wine ontology we provide an <tt>owl:AllDifferent</tt> assertion
|
|
for all of the <tt>WineDescriptor</tt>s. We also state that
|
|
the <tt>Winery</tt>s are all different. If we wanted to add a new
|
|
winery in some other ontology and assert that it was disjoint from all
|
|
of those that have already been defined, we would need to cut and
|
|
paste the original <tt>owl:AllDifferent</tt> assertion and add the new
|
|
maker to the list. There is not a simpler way to extend an
|
|
<tt>owl:AllDifferent</tt> collection in OWL DL. In OWL Full, using
|
|
RDF triples and the rdf:List constructs, other approaches are possible.
|
|
</p>
|
|
|
|
<hr />
|
|
|
|
<h1><a name="ComplexClasses">5. Complex Classes</a>
|
|
<a href="#OWL_DL_tag">[OWL DL]</a></h1>
|
|
|
|
<p>
|
|
OWL provides additional constructors with which to form classes. These
|
|
constructors can be used to create so-called <em>class
|
|
expressions</em>. OWL supports the basic set operations, namely
|
|
union, intersection and complement. These are named
|
|
<tt>owl:unionOf</tt>, <tt>owl:intersectionOf</tt>, and <tt>owl:complementOf</tt>,
|
|
respectively. Additionally, classes can be
|
|
<a id="term_enumerated" name="term_enumerated"></a><em>enumerated</em>.
|
|
Class extensions can be stated explicitly by means of the
|
|
<tt>oneOf</tt> constructor.
|
|
And it is possible to assert that class extensions must be disjoint.
|
|
</p>
|
|
|
|
<p>
|
|
Note that Class expressions can be nested without requiring the creation
|
|
of names for every intermediate class.
|
|
This allows the use of set operations to build up complex classes
|
|
from anonymous classes or classes with value restrictions.
|
|
</p>
|
|
|
|
|
|
<h2><a name="SetOperators" id="SetOperators">5.1. Set Operators</a><br />
|
|
<tt>intersectionOf, unionOf, complementOf</tt>
|
|
</h2>
|
|
|
|
<p>
|
|
Remember that OWL class extensions are sets consisting of the individuals
|
|
that are members of the class. OWL provides the means to
|
|
manipulate class extensions using basic set operators.
|
|
</p>
|
|
|
|
<h3><a id="owl_intersectionOf" name="owl_intersectionOf">5.1.1. Intersection</a>
|
|
<a href="#OWL_DL_tag">[some uses OWL DL]</a></h3>
|
|
|
|
<p>
|
|
|
|
The following examples demonstrate the use of the
|
|
<a id="term_intersection" name="term_intersection"></a><em>intersectionOf</em> construct.
|
|
</p>
|
|
<pre>
|
|
<owl:Class rdf:ID="WhiteWine">
|
|
<owl:intersectionOf rdf:parseType="Collection">
|
|
<owl:Class rdf:about="#Wine" />
|
|
<owl:Restriction>
|
|
<owl:onProperty rdf:resource="#hasColor" />
|
|
<owl:hasValue rdf:resource="#White" />
|
|
</owl:Restriction>
|
|
</owl:intersectionOf>
|
|
</owl:Class>
|
|
</pre>
|
|
<p>
|
|
Classes constructed using the set operations are more like
|
|
definitions than anything we have seen to date.
|
|
The members of the class are completely specified by
|
|
the set operation.
|
|
The construction above states that <tt>WhiteWine</tt> is <em>exactly</em> the
|
|
intersection of the class <tt>Wine</tt> and the set of things that are
|
|
white in color. This means that if something is white and a wine,
|
|
then it is an instance of <tt>WhiteWine</tt>. Without such a definition
|
|
we can know that white wines are wines and white, but not vice-versa.
|
|
This is an important tool for categorizing individuals.
|
|
(Note that 'rdf:parseType="Collection"' is a required syntactic element.)
|
|
|
|
</p>
|
|
<pre>
|
|
<owl:Class rdf:about="#Burgundy">
|
|
<owl:intersectionOf rdf:parseType="Collection">
|
|
<owl:Class rdf:about="#Wine" />
|
|
<owl:Restriction>
|
|
<owl:onProperty rdf:resource="#locatedIn" />
|
|
<owl:hasValue rdf:resource="#BourgogneRegion" />
|
|
</owl:Restriction>
|
|
</owl:intersectionOf>
|
|
</owl:Class>
|
|
</pre>
|
|
|
|
<p>
|
|
Here we define <tt>Burgundy</tt> to include exactly those wines that have
|
|
at least one <tt>locatedIn</tt> relation to the Bourgogne Region.
|
|
We could have declared a new class
|
|
<tt>ThingsFromBourgogneRegion</tt> and used it as a class in the
|
|
<tt>owl:intersectionOf</tt> construct. Since we do not have any other
|
|
use for <tt>ThingsFromBourgogneRegion</tt>, the declaration above is
|
|
shorter, clearer and doesn't require the creation of a contrived name.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="WhiteBurgundy">
|
|
<owl:intersectionOf rdf:parseType="Collection">
|
|
<owl:Class rdf:about="#Burgundy" />
|
|
<owl:Class rdf:about="#WhiteWine" />
|
|
</owl:intersectionOf>
|
|
</owl:Class>
|
|
</pre>
|
|
<p>
|
|
Finally, the class <tt>WhiteBurgundy</tt> is exactly the intersection of
|
|
white wines and Burgundies. Burgundies in turn are grown in the
|
|
French region of Bourgogne and are dry wines. Accordingly all
|
|
individual wines that meet these criteria are part of the class
|
|
extension of <tt>WhiteBurgundy</tt>.
|
|
</p>
|
|
|
|
<h3><a id="owl_unionOf" name="owl_unionOf">5.1.2. Union</a> <a href="#OWL_DL_tag">[OWL DL]</a></h3>
|
|
|
|
<p>
|
|
|
|
The following example demonstrates the use of the
|
|
<a id="term_union" name="term_union"></a><em>unionOf</em> construct. It is used exactly like the
|
|
<em>intersectionOf</em> construct:
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="Fruit">
|
|
<owl:unionOf rdf:parseType="Collection">
|
|
<owl:Class rdf:about="#SweetFruit" />
|
|
<owl:Class rdf:about="#NonSweetFruit" />
|
|
</owl:unionOf>
|
|
</owl:Class>
|
|
</pre>
|
|
|
|
<p>
|
|
The class <tt>Fruit</tt> includes <em>both</em>
|
|
the extension of <tt>SweetFruit</tt> and the extension of
|
|
<tt>NonSweetFruit</tt>.
|
|
</p>
|
|
|
|
<p>
|
|
Note how completely different this union type construct is from the following.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="Fruit">
|
|
<rdfs:subClassOf rdf:resource="#SweetFruit" />
|
|
<rdfs:subClassOf rdf:resource="#NonSweetFruit" />
|
|
</owl:Class> <span class="red"> ¬ </span>
|
|
</pre>
|
|
|
|
<p>
|
|
This says that the instances of <tt>Fruit</tt> are a subset of the
|
|
<em>intersection</em> of sweet and non-sweet fruit, which we would
|
|
expect to be the empty set.
|
|
</p>
|
|
|
|
<h3><a id="owl_complementOf" name="owl_complementOf">
|
|
5.1.3. Complement</a> <a href="#OWL_DL_tag">[OWL DL]</a></h3>
|
|
|
|
<p>
|
|
The <a id="term_complement" name="term_complement"></a><em>complementOf</em> construct selects all individuals from
|
|
the domain of discourse that do not belong to a certain
|
|
class. Usually this refers to a very large set of individuals:
|
|
</p>
|
|
<pre>
|
|
<owl:Class rdf:ID="ConsumableThing" />
|
|
|
|
<owl:Class rdf:ID="NonConsumableThing">
|
|
<owl:complementOf rdf:resource="#ConsumableThing" />
|
|
</owl:Class>
|
|
</pre>
|
|
|
|
<p>
|
|
The class of <tt>NonConsumableThing</tt> includes as its members
|
|
all individuals that do not belong to the extension
|
|
of <tt>ConsumableThing</tt>. This set includes all
|
|
<tt>Wine</tt>s, <tt>Region</tt>s, etc. It is literally the set
|
|
difference between <tt>owl:Thing</tt> and <tt>ConsumableThing</tt>.
|
|
Therefore, a typical usage pattern for
|
|
<em>complementOf</em> is in combination with other set
|
|
operators:
|
|
</p>
|
|
<pre>
|
|
<owl:Class rdf:ID="NonFrenchWine">
|
|
<owl:intersectionOf rdf:parseType="Collection">
|
|
<owl:Class rdf:about="#Wine"/>
|
|
<owl:Class>
|
|
<owl:complementOf>
|
|
<owl:Restriction>
|
|
<owl:onProperty rdf:resource="#locatedIn" />
|
|
<owl:hasValue rdf:resource="#FrenchRegion" />
|
|
</owl:Restriction>
|
|
</owl:complementOf>
|
|
</owl:Class>
|
|
</owl:intersectionOf>
|
|
</owl:Class> <span class="red"> ¬ </span>
|
|
</pre>
|
|
|
|
<p>
|
|
<!-- MORE ????
|
|
From Guide comments:
|
|
|
|
The example at the end is very complex because it uses the
|
|
TransitiveProperty feature of locatedIn for warranting that whatever
|
|
is declared to be in, say, Bourgogne, will also be locatedIn
|
|
FrenchRegion. I would add a couple of sentences to explain it.
|
|
-->
|
|
|
|
This defines the class <tt>NonFrenchWine</tt> to be the
|
|
intersection of <tt>Wine</tt> with the set of all
|
|
things <em>not</em> located in <tt>France</tt>.
|
|
</p>
|
|
|
|
<h2><a name="EnumeratedClasses">5.2. Enumerated Classes</a><br />
|
|
<tt>oneOf</tt> <a href="#OWL_DL_tag">[OWL DL]</a></h2>
|
|
|
|
<p>
|
|
OWL provides the means to specify a class via a direct enumeration of its
|
|
members. This is done using the <em>oneOf</em> constructor. Notably,
|
|
this definition completely specifies the class extension, so that no other
|
|
individuals can be declared to belong to the class.
|
|
</p>
|
|
|
|
<p>
|
|
<a id="owl_oneOf" name="owl_oneOf"></a>
|
|
The following defines a class <tt>WineColor</tt> whose
|
|
members are the individuals <tt>White</tt>, <tt>Rose</tt>, and
|
|
<tt>Red</tt>.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="WineColor">
|
|
<rdfs:subClassOf rdf:resource="#WineDescriptor"/>
|
|
<owl:oneOf rdf:parseType="Collection">
|
|
<owl:Thing rdf:about="#White"/>
|
|
<owl:Thing rdf:about="#Rose"/>
|
|
<owl:Thing rdf:about="#Red"/>
|
|
</owl:oneOf>
|
|
</owl:Class>
|
|
</pre>
|
|
|
|
<p>
|
|
The first thing to understand here is that no other individuals can be
|
|
a valid <tt>WineColor</tt> since the class has been defined by
|
|
enumeration.
|
|
</p>
|
|
|
|
<p>
|
|
Each element of the <tt>oneOf</tt> construct must be a validly declared
|
|
individual. An individual has to belong to some class. In the above
|
|
example, each individual was referenced by name. We used
|
|
<tt>owl:Thing</tt> as a simple cliché to introduce the reference.
|
|
Alternatively, we could have referenced the elements of the set
|
|
according to their specific type, <tt>WineColor</tt>, by:
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="WineColor">
|
|
<rdfs:subClassOf rdf:resource="#WineDescriptor"/>
|
|
<owl:oneOf rdf:parseType="Collection">
|
|
<WineColor rdf:about="#White" />
|
|
<WineColor rdf:about="#Rose" />
|
|
<WineColor rdf:about="#Red" />
|
|
</owl:oneOf>
|
|
</owl:Class>
|
|
</pre>
|
|
|
|
<p>
|
|
Other, more complex descriptions of individuals are also valid
|
|
elements of the <em>oneOf</em> construct, for example:
|
|
</p>
|
|
|
|
<pre>
|
|
<WineColor rdf:about="#White">
|
|
<rdfs:label>White</rdfs:label>
|
|
</WineColor> <span class="red"> ¬ </span>
|
|
</pre>
|
|
|
|
<h2><a id="DisjointClasses" name="DisjointClasses">5.3. Disjoint Classes</a> <br />
|
|
<tt>disjointWith</tt> <a href="#OWL_DL_tag">[OWL DL]</a></h2>
|
|
|
|
<p>
|
|
<a id="owl_disjointWith" name="owl_disjointWith"></a>
|
|
The disjointness of a set of classes can be expressed using the
|
|
<tt>owl:disjointWith</tt> constructor. It guarantees that an
|
|
individual that is a member of one class cannot simultaneously be an
|
|
instance of a specified other class.
|
|
</p>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="Pasta">
|
|
<rdfs:subClassOf rdf:resource="#EdibleThing"/>
|
|
<owl:disjointWith rdf:resource="#Meat"/>
|
|
<owl:disjointWith rdf:resource="#Fowl"/>
|
|
<owl:disjointWith rdf:resource="#Seafood"/>
|
|
<owl:disjointWith rdf:resource="#Dessert"/>
|
|
<owl:disjointWith rdf:resource="#Fruit"/>
|
|
</owl:Class>
|
|
</pre>
|
|
|
|
<p>
|
|
The <tt>Pasta</tt> example demonstrates multiple disjoint classes.
|
|
Note that this only asserts that <tt>Pasta</tt> is disjoint from all
|
|
of these other classes. It does not assert, for example, that
|
|
<tt>Meat</tt> and <tt>Fruit</tt> are disjoint. In order to assert
|
|
that a set of classes is mutually disjoint, there must be an
|
|
<tt>owl:disjointWith</tt> assertion for every pair.
|
|
</p>
|
|
|
|
<p>
|
|
A common requirement is to define
|
|
a class as the union of a set of mutually disjoint subclasses.
|
|
</p>
|
|
<pre>
|
|
<owl:Class rdf:ID="SweetFruit">
|
|
<rdfs:subClassOf rdf:resource="#EdibleThing" />
|
|
</owl:Class>
|
|
|
|
<owl:Class rdf:ID="NonSweetFruit">
|
|
<rdfs:subClassOf rdf:resource="#EdibleThing" />
|
|
<owl:disjointWith rdf:resource="#SweetFruit" />
|
|
</owl:Class>
|
|
|
|
<owl:Class rdf:ID="Fruit">
|
|
<owl:unionOf rdf:parseType="Collection">
|
|
<owl:Class rdf:about="#SweetFruit" />
|
|
<owl:Class rdf:about="#NonSweetFruit" />
|
|
</owl:unionOf>
|
|
</owl:Class>
|
|
</pre>
|
|
|
|
<p>
|
|
Here we define <tt>Fruit</tt> to be exactly the union of
|
|
<tt>SweetFruit</tt> and <tt>NonSweetFruit</tt>. And we know that
|
|
these subclasses exactly partition <tt>Fruit</tt> into two distinct subclasses
|
|
because they are disjoint.
|
|
As the number of mutually disjoint classes
|
|
grows, the number of disjointness assertions grows proportionally to
|
|
n<sup>2</sup>. However, in the use cases we have seen, n is typically
|
|
small.
|
|
</p>
|
|
|
|
<hr />
|
|
|
|
<h1><a name="OntologyVersioning" id="OntologyVersioning"></a>
|
|
<a name="term_version" id="term_version"></a>
|
|
6. Ontology Versioning</h1>
|
|
|
|
<p>
|
|
<a id="owl_priorVersion" name="owl_priorVersion"></a>
|
|
Ontologies are like software, they will be maintained and thus will change
|
|
over time.
|
|
Within an <tt>owl:Ontology</tt> element
|
|
(discussed <a href="#OntologyHeaders">above</a>), it is possible to link to a previous
|
|
version of the ontology being defined. The <tt>owl:priorVersion</tt> property
|
|
is intended to provide this link, and can be used to track the
|
|
version history of an ontology.
|
|
</p>
|
|
<pre>
|
|
<owl:Ontology rdf:about="">
|
|
...
|
|
<owl:priorVersion rdf:resource="http://www.w3.org/TR/2003/WD-owl-guide-20030331/wine"/>
|
|
...
|
|
</owl:Ontology>
|
|
</pre>
|
|
<p>
|
|
The indicated ontology is a previous version of the one being defined.
|
|
</p>
|
|
|
|
<p>
|
|
<a id="owl_backwardCompatibleWith" name="owl_backwardCompatibleWith"></a>
|
|
<a id="owl_incompatibleWith" name="owl_incompatibleWith"></a>
|
|
Ontology versions may not be compatible with each other. For example, a
|
|
prior version of an ontology may contain statements that contradict the current
|
|
version. Within an <tt>owl:Ontology</tt> element,
|
|
we use the tags <tt>owl:backwardCompatibleWith</tt>
|
|
and <tt>owl:incompatibleWith</tt> to indicate compatibility or the
|
|
lack thereof with previous ontology versions.
|
|
If <tt>owl:backwardCompatibleWith</tt> is not declared, then
|
|
compatibility should not be assumed.
|
|
<a id="owl_versionInfo" name="owl_versionInfo"></a>
|
|
In addition, <tt>owl:versionInfo</tt>
|
|
provides a hook suitable for use by versioning systems. As opposed to the previous three tags,
|
|
the object of <tt>owl:versionInfo</tt> is a literal and the tag can be used
|
|
to annotate classes and properties in addition to ontologies.
|
|
</p>
|
|
<p>
|
|
<a id="owl_DeprecatedClass" name="owl_DeprecatedClass"></a>
|
|
<a id="owl_DeprecatedProperty" name="owl_DeprecatedProperty"></a>
|
|
For many purposes, doing version tracking at the granularity of
|
|
an entire ontology is not enough. Maintainers may wish to keep
|
|
version information for classes, properties, and individuals - and
|
|
even that may not be sufficient. The incremental nature of class expressions
|
|
in OWL implies that one ontology may add restrictions to a (named) class defined
|
|
in another ontology, and
|
|
these additional restrictions themselves may require version information.
|
|
</p>
|
|
<p>
|
|
OWL Full provides the expressive power to make any sort of assertion about a class,
|
|
i.e. that it is an instance of another class, or that it (and not its instances) has
|
|
a property and a value for that property. This framework can be used
|
|
to build an ontology of classes and properties for tracking version information.
|
|
The OWL namespace includes two pre-defined classes that can be used for this purpose:
|
|
<tt>owl:DeprecatedClass</tt>
|
|
and <tt>owl:DeprecatedProperty</tt>.
|
|
They are intended to indicate that the class or property will likely be changing in an
|
|
incompatible manner in a forthcoming release:
|
|
</p>
|
|
<pre>
|
|
...
|
|
<owl:DeprecatedClass rdf:ID="&vin;JugWine" />
|
|
<owl:DeprecatedProperty rdf:ID="&vin;hasSeeds" />
|
|
... <span class="red"> ¬ </span>
|
|
</pre>
|
|
<p>
|
|
It is important to note that <tt>owl:DeprecatedClass</tt>
|
|
and <tt>owl:DeprecatedProperty</tt>
|
|
have no additional semantics and it is up to tool
|
|
developers and OWL users to ensure they are used as intended.
|
|
</p>
|
|
|
|
<!--
|
|
<li>They should provide a useful starting point for defining a more
|
|
extensive ontology of versioning properties and classes.</li>
|
|
|
|
<li>Using these classes in an ontology makes it an OWL Full ontology.
|
|
However, users who need versioning and who wish their ontologies to
|
|
remain in OWL DL or OWL Lite can do so by separating these versioning
|
|
statements into another ontology that imports the one for which
|
|
versioning information is needed.</li>
|
|
</ul>
|
|
-->
|
|
|
|
<hr />
|
|
|
|
|
|
<h1><a name="Usage" id="Usage">7. Usage Examples</a></h1>
|
|
|
|
<p>
|
|
Once an initial domain ontology is available, a
|
|
large number of applications can be developed that exploit the
|
|
ontology. In this section, we describe some
|
|
sample uses in the domain of wines.
|
|
|
|
</p>
|
|
|
|
<h2><a id="WinePortal" name="WinePortal">7.1. Wine Portal</a></h2>
|
|
|
|
<p>
|
|
A number of sites exist today that call themselves wine portals.
|
|
Google for example, provides 152,000 matches for the query "wine
|
|
portal". One of the top matches, a site called
|
|
<a href="http://www.Wine-Portal.com">"Wine-Portal.com"</a>,
|
|
provides access to a number of sites. Many sites
|
|
claiming to be wine portals are mostly informational sites. For
|
|
example, wine-portal.com's first featured site, called 'cork cuisine'
|
|
(<a href="http://www.corkcuisine.com">www.corkcuisine.com/</a>),
|
|
provides information about matching
|
|
wines and foods, wines as gifts, etc. Another site billed as "the
|
|
Internet Wine Portal" (<a href="http://www.cyberbacchus.com/">
|
|
www.cyberbacchus.com/</a>) provides a nice
|
|
organization of a substantial amount of wine information on
|
|
numerous topics.
|
|
</p>
|
|
|
|
<p>
|
|
Perusing any of the topic areas, one finds a collection of pages
|
|
containing information and sometimes services related to the topic.
|
|
For example, 'accessories and gifts' contains information about what to
|
|
look for when buying particular wine items and also contains a
|
|
significant number of online retailers. Another top level area called
|
|
'shopping' has a subarea called 'wine shopping' from which a user can find
|
|
online (or 'street shopping') stores (categorized by country).
|
|
These two sites are just two of the many examples
|
|
today and are representative of the general notion of a wine portal providing
|
|
a collection of information and services connected to a particular topic
|
|
area.
|
|
</p>
|
|
<p>
|
|
When looking at these sites in some detail, it is not clear how much
|
|
they depend on ontologies today. For example, viewing the source
|
|
for the html does not reveal evidence of ontological usage. However,
|
|
it is clear that the sites could exploit ontologies had some wine ontologies
|
|
been available.
|
|
</p>
|
|
<p>
|
|
One simple use of ontologies in portal sites is for organization and
|
|
browsing. The listing of categories above could be generated from
|
|
the top few levels of wine related classes. Queries could exploit
|
|
wine ontologies to <i>retrieve</i> wine relevant information.
|
|
If one did a search for a term contained in the ontology, the query could
|
|
be expanded with subclass information in order to find more relevant answers.
|
|
|
|
Portals could be made to automatically update themselves with (candidate) information
|
|
in topic areas. With very powerful reasoning
|
|
capabilities they could even identify likely wine sales sites and
|
|
negotiate to include them as part of the portal.
|
|
|
|
</p>
|
|
|
|
|
|
<h2><a id="WineAgent" name="WineAgent">7.2. Wine Agent</a></h2>
|
|
|
|
<p>
|
|
We have started a <a href="http://www.ksl.stanford.edu/people/dlm/webont/wineAgent/">
|
|
wine agent</a> for expository purposes. In our initial design,
|
|
the wine agent's goal is to recommend wines to accompany meal courses.
|
|
This application exploits the ontology used as the basis of this guide.
|
|
This wine ontology is available in the DAML ontology library and is entitled
|
|
<a href="http://www.daml.org/ontologies/76">wines.</a>
|
|
</p>
|
|
|
|
<p>A personalized wine agent can provide a number of services for a human.
|
|
<br />The agent may be used to recommend wines given a set of constraints
|
|
(such as a meal being served), the agent may find information about
|
|
a particular wine or a particular class of wines, it may look for appropriate
|
|
accessories for a wine (such as a particular kind of glass suited for that
|
|
wine varietal, etc.).
|
|
</p>
|
|
|
|
<p>Below, we describe an example in a simple prototype system that is being
|
|
written as a student project.
|
|
</p>
|
|
|
|
<p>Consider the following scenario:<br /><br />
|
|
Someone is planning a dinner party and at least one of the guests is
|
|
wine knowledgeable. The host would like to serve wine that is well
|
|
matched to the course(s) on the menu. The host would also like to
|
|
appear knowledgeable about the wines served at the event. The host
|
|
would also like to have appropriate accessories at the dinner. The host
|
|
may have decided to serve a special tomato based pasta sauce with fresh
|
|
pasta as the main course.
|
|
</p>
|
|
|
|
<p>In order to serve wines appropriate to the meal, the host needs information
|
|
concerning wine and food pairings. In order to appear knowledgeable
|
|
about wines, the host would benefit from having access to wine information
|
|
relevant to the event. In order to have appropriate wine accessories,
|
|
the host would need to have information about what accessories are relevant
|
|
to the situation (and are within the host's price range).
|
|
</p>
|
|
|
|
<p>
|
|
With a background wine ontology, given a description of a meal, a wine
|
|
agent can suggest the type of wine to serve with the meal. The wine
|
|
agent may suggest a zinfandel as the varietal of choice for the meal.
|
|
Additionally, given a background ontology, the wine agent may suggest a
|
|
particular zinfandel, possibly Marietta Zinfandel. Given the information
|
|
that the wine should be a zinfandel, a wine agent may look for a place
|
|
to acquire either a selection of zinfandels or it may look for a particular
|
|
zinfandel wine, such as Marietta. Given a background ontology containing
|
|
appropriate sources for wine purchases (possibly filtered by the location
|
|
of the host and the location of the wine seller), the wine agent could
|
|
go to a site such as <a href="http://www.wine.com/">wine.com</a> and do
|
|
a search for zinfandels returning a <a href="http://www.wine.com/search/ea_results.asp?ct=1577&query=zinfandel">listing</a>
|
|
of zinfandels for sale on that site. The wine agent could attempt
|
|
to find <a href="http://www.b-21.com/marietta/">Marietta</a> <a href="http://www.mariettacellars.com/welcome.html">Zinfandel</a>
|
|
either from the winery itself or from other resellers. It could,
|
|
for example, find (by a search on Google or a structured search of selected
|
|
Web sites) that winelibrary.com has a sale on Marietta Zinfandel 1999 vintage
|
|
for a discounted price of $13.99. The wine agent could
|
|
use additional filtering information such as price ranges provided either
|
|
by the consumer or as suggestions based on varietal.
|
|
</p>
|
|
|
|
<p>
|
|
The wine agent may now attempt to provide information concerning
|
|
zinfandel in general or Marietta Zinfandel in particular. It could
|
|
use a background ontology of wine sites to find information about
|
|
particular wines. For example, the winery <a href="http://www.mariettacellars.com/welcome.html">description</a> of
|
|
their most recent Zinfandel may be of use.
|
|
Additionally reviews from respected sources such as the <a
|
|
href="http://www.winespectator.com/Wine/Home">Wine Spectator</a> may
|
|
be of use. If no review of Marietta Zinfandel is available on a
|
|
favorite wine review site, it may be useful to look for related
|
|
information such as reviews on zinfandels from the same region, in
|
|
this case zinfandels from Sonoma County, California.
|
|
</p>
|
|
|
|
<p>
|
|
General background information may also be of use. The host may
|
|
also want to do some reading and may be interested in books on wine in
|
|
general or zinfandels in particular. For example, the host may be
|
|
interested in the books that Amazon.com has for <a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&field-keywords=zinfandel&search-type=ss&bq=1/103-2905386-5649420">sale</a>
|
|
on zinfandel. The host may also be interested in information
|
|
concerning wines from the same region, and thus may be interested in Sonoma
|
|
zinfandels. A wine agent may have typical background information
|
|
available that is related to its main knowledge areas. For example,
|
|
this wine agent is concerned with matching foods and wines, so it may have
|
|
both free and purchasable information on this topic such as the Wine Spectator's
|
|
article on <a href="http://www.winespectator.com/Wine/Wine_Basics/Wine_Basics_Template/0,1199,17,00.html">matching
|
|
food and wine</a>.
|
|
</p>
|
|
|
|
<p>
|
|
The dinner host may also want to acquire appropriate wine accessories
|
|
prior to the event. Wine is served in wine glasses and different
|
|
wine varietals are best served in different kinds of glasses. For
|
|
example, if the host has chosen a meal course for which a zinfandel
|
|
is appropriate, the host may want to know that <a href="http://www.riedelcrystal.com/index.htm">Riedel</a>
|
|
is a well-known manufacturer of wine glassware. The host may also
|
|
want to be linked to the Wine Enthusiast (a well respected supplier of
|
|
wine merchandise) and be told that the Wine Enthusiast has <a href="http://www.wineenthusiast.com/shopping/prod_detail/main.asp?cat=GW&catID=2&sl=0&productID=4099&uid=8E539ACF-42AF-4EE4-BB3E-5BB42C28A8BC">Riedel's
|
|
Vinum Zinfandel glass</a> for sale as a set of 4 for $63.95 (with a discount
|
|
to $59.95 if you buy two sets of 4 glasses). The host may also
|
|
be interested to know that Amazon.com has <a href="http://www.amazon.com/exec/obidos/tg/detail/-/B00006E9SS/qid=1033070213/sr=8-2/ref=sr_8_2/103-2905386-5649420?v=glance&s=home-garden&n=507846">Reidel's
|
|
Sommelier Zinfandel single stem glass</a> available for $49.99 (and claims
|
|
a list price of $65.00). Amazon also has the same Vinum
|
|
glass for sale in sets of 6 (instead of 4 on the wine enthusiast) for $79.99
|
|
(and claims a list price of $119.40). A wine agent could provide
|
|
a comparison listing of glassware that is matched to the meal (i.e., is
|
|
appropriate to be used to serve zinfandel) and then is compared by price
|
|
or other criteria chosen from a list of properties in the ontology.
|
|
</p>
|
|
|
|
<p>
|
|
The dinner host may want to consider other wine accessories. From
|
|
the ontology, we know that corkscrews are wine accessories. The background
|
|
ontology may encode subclasses of corkscrews or such information could
|
|
be found from relevant wine sites as well. The
|
|
Wine Enthusiast has a set of <a href="http://www.wineenthusiast.com/content/gateway/gateway.asp?cat=CS&uid=8E539ACF-42AF-4EE4-BB3E-5BB42C28A8BC">corkscrews</a>
|
|
they <a href="http://www.wineenthusiast.com/templates/recommend.asp?cat=EE&uid=8E539ACF-42AF-4EE4-BB3E-5BB42C28A8BC">recommend</a>
|
|
(with descriptions of the types and price ranges). They also distinguish
|
|
corkscrews by type (level, waiter, stationary, twist, and pump) and the
|
|
dinner host may want to get information about those styles.
|
|
</p>
|
|
|
|
<p>
|
|
The wine agent may be taken to many levels of sophistication depending
|
|
upon background ontology knowledge of the domain and information and services
|
|
sites. In this example, we only exploited information
|
|
concerning wines, varietal type, food and wine combinations, some wine
|
|
accessories and their related properties. We could of course expand
|
|
this to include more information and more constraints by the customer.
|
|
</p>
|
|
|
|
<p>An evolving example of this wine agent is <a href="http://www.ksl.stanford.edu/people/dlm/webont/wineAgent/">available.</a>
|
|
</p>
|
|
|
|
<hr />
|
|
|
|
<h1><a id="Acknowledgements" name="Acknowledgements"></a>
|
|
Acknowledgements
|
|
</h1>
|
|
|
|
<p>
|
|
This document is the result of extensive discussions within the
|
|
<a href="http://www.w3.org/2001/sw/WebOnt/">Web Ontology Working Group
|
|
</a>as a whole. The members of this group working group included:
|
|
Yasser al Safadi, Jean-François Baget, James Barnette,
|
|
Sean Bechhofer, Jonathan Borden, Frederik Brysse, Stephen Buswell,
|
|
Jeremy Carroll, Dan Connolly, Peter Crowther, Jonathan Dale, Jos De Roo,
|
|
David De Roure, Mike Dean, Larry Eshelman,
|
|
Jérôme Euzenat, Dieter Fensel, Tim Finin, Nicholas Gibbins, Sandro
|
|
Hawke Pat Hayes,
|
|
Jeff Heflin, Ziv Hellman, James Hendler, Bernard Horan, Masahiro Hori,
|
|
Ian Horrocks, Francesco Iannuzzelli, Mario Jeckle, Ruediger Klein, Natasha Kravtsova, Ora
|
|
Lassila, Alexander Maedche, Massimo Marchiori, Deborah L. McGuinness,
|
|
Libby Miller, Enrico Motta, Leo Obrst, Laurent Olivry , Peter
|
|
Patel-Schneider, Martin Pike, Marwan Sabbouh, Guus Schreiber,
|
|
Shimizu Noboru, Michael Sintek, Michael Smith, Ned Smith, John Stanton, Lynn
|
|
Andrea Stein, Herman ter Horst, Lynne R. Thompson, David Trastour,
|
|
Frank van Harmelen, Bernard Vatant, Raphael Volz, Evan Wallace, Christopher Welty,
|
|
Charles White and John Yanosy.
|
|
</p>
|
|
|
|
<p>
|
|
Some critical early text on complex restrictions was written by
|
|
<a href="http://www.aifb.uni-karlsruhe.de/WBS/rvo/">Raphael Volz</a>,
|
|
Forschungszentrum Informatik (FZI).
|
|
Appendix B was contributed by Guus Schreiber, University of Amsterdam,
|
|
<a href="mailto:schreiber@swi.psy.uva.nl">schreiber@swi.psy.uva.nl</a>.
|
|
Substantial insight was provided by the
|
|
<a href="http://www.w3.org/TR/daml+oil-walkthru/"><em>DAML+OIL Walkthru</em></a>.
|
|
Jeremy Carroll, Jerome Euzenat, Jeff Heflin, Kevin Page and
|
|
Peter F. Patel-Schneider provided extensive reviews.
|
|
At the WG Face to Face, 8 October 2002, Stephen Buswell,
|
|
Ruediger Klein, Enrico Motta, and Evan Wallace provided a detailed review of the
|
|
ontology resulting in substantial changes.
|
|
At the WG Face to Face, 10 January 2003, Jonathan Dale, Bernard Horan,
|
|
Guus Schreiber, and Jeff Heflin provided detailed reviews of the
|
|
Guide resulting in changes.
|
|
</p>
|
|
|
|
<!--
|
|
<h1><a id="Notes" name="Notes">Notes</a></h1>
|
|
|
|
<dl>
|
|
<dt><a id="Note-1" name="Note-1"></a>Note 1</dt>
|
|
<dd>Text.</dd>
|
|
|
|
</dl>
|
|
|
|
<hr />
|
|
-->
|
|
|
|
<hr />
|
|
|
|
<h1><a id="Glossary" name="Glossary"></a>
|
|
<a id="OWLGlossary" name="OWLGlossary">OWL Glossary</a></h1>
|
|
|
|
<dl>
|
|
|
|
<dt>Attribute</dt><dd>as in XML</dd>
|
|
<dt>Class Definition</dt><dd>informal term for an owl:Class element</dd>
|
|
<dt>Class Description</dt><dd>describes an OWL class, either by a class name or
|
|
by specifying a class extension of an unnamed anonymous class
|
|
</dd>
|
|
<dt>Class name</dt><dd>informal term for an owl:Class rdf:ID attribute value.</dd>
|
|
<dt>Class</dt><dd>as in RDF</dd>
|
|
<dt>Component</dt><dd>for parts of a definition e.g. the arguments to intersection-of in a class definition</dd>
|
|
<dt>Concept</dt><dd>informal term for the abstractions "in the world" that ontologies describe</dd>
|
|
<dt>Constraint</dt><dd>informal term for discussing the effect of a restriction</dd>
|
|
<dt>Data-valued Property</dt><dd>alternative term for DataType Property</dd>
|
|
<dt>Datatype Property</dt><dd>an OWL property that relates individuals to data values</dd>
|
|
<dt>Datatype</dt><dd>an RDFS datatype, almost always one of the built-in non-list XML Schema datatypes </dd>
|
|
<dt>Element</dt><dd>(1) as in XML</dd><dd>(2) an element of a set</dd>
|
|
<dt>Entity</dt><dd>as in XML</dd>
|
|
<dt>Imports Closure</dt><dd>the information in an ontology document, plus the information in the imports closure of ontology documents that are imported by the document</dd>
|
|
<dt>Individual-valued Property</dt><dd>alternative term for Object Property </dd>
|
|
<dt>Individual</dt><dd>an instance of an OWL class, i.e., a resource that belongs to the class extension of an OWL class</dd>
|
|
<dt>Instance Of</dt><dd>the relation between an individual and a class</dd>
|
|
<dt>Instance</dt><dd>a member of the class extension of an OWL class</dd>
|
|
<dt>Name</dt><dd>as in XML Namespaces</dd>
|
|
<dt>Named Class</dt><dd>an OWL class with an associated identifier</dd>
|
|
<dt>Node</dt><dd>as in RDF Graphs</dd>
|
|
<dt>OWL Class</dt><dd>an RDFS class that belongs to the class extension of owl:Class</dd>
|
|
<dt>Object Property</dt><dd>an OWL property that relates individuals to other individuals</dd>
|
|
<dt>Object</dt><dd>(1) the object of an RDF triple</dd> <dd>(2) an alternative term for individual (used for historical reasons)</dd>
|
|
<dt>Ontology Document</dt><dd>a Web document that contains an ontology, generally indicated by the presence of an owl:Ontology element in the document</dd>
|
|
<dt>Ontology</dt><dd>(1) collection of information, generally including information about classes and properties</dd><dd>(2) the information contained in an ontology document </dd>
|
|
<dt>Property Definition</dt><dd>informal term for an
|
|
owl:ObjectProperty element and or owl:DatatypeProperty element </dd>
|
|
<dt>Resource</dt><dd>an element of the RDF domain of discourse</dd>
|
|
<dt>Restriction, global</dt><dd>reserved for discussions of the <tt>domain</tt> and <tt>range</tt> of properties</dd>
|
|
<dt>Restriction, local</dt><dd>[see above]</dd>
|
|
<dt>Restriction</dt><dd>usually a piece of a class expression, a statement that expresses a constraint, local by default</dd>
|
|
<dt>Set</dt><dd>a mathematical set</dd>
|
|
<dt>Statement</dt><dd>as in RDF Graphs</dd>
|
|
<dt>Type</dt><dd>as in RDF (rdf:type)</dd>
|
|
<dt>URI reference</dt><dd>as in RDF </dd>
|
|
<dt>Unnamed Class</dt><dd>an OWL class without an associated identifier, normally components of restrictions.</dd>
|
|
<dt>Vocabulary</dt><dd>a set of URI references</dd>
|
|
|
|
</dl>
|
|
|
|
<br /><br />
|
|
|
|
<hr />
|
|
|
|
<h1><a id="TermIndexAndCrossReference" name="TermIndexAndCrossReference">
|
|
Term Index and Cross Reference</a></h1>
|
|
|
|
<h2><a id="TermIndex" name="TermIndex">Term Index</a></h2>
|
|
|
|
<table width="50%">
|
|
<tr><th>Term</th><th>Section</th></tr>
|
|
|
|
<tr><td class="index">anonymous class</td>
|
|
<td class="index"><a href="#term_anonymousClass">3.2.1. </a></td></tr>
|
|
<tr><td class="index">class</td>
|
|
<td class="index"><a href="#term_class">3.1.3. </a></td></tr>
|
|
<tr><td class="index">cardinality</td>
|
|
<td class="index"><a href="#term_cardinality">3.4.2. </a></td></tr>
|
|
<tr><td class="index">complement</td>
|
|
<td class="index"><a href="#term_complement">5.1.3. </a></td></tr>
|
|
<tr><td class="index">datatype</td>
|
|
<td class="index"><a href="#term_datatype">3.2.1. </a></td></tr>
|
|
<tr><td class="index">datatype property</td>
|
|
<td class="index"><a href="#term_datatypeproperties">3.2.1. </a></td></tr>
|
|
<tr><td class="index">domain</td>
|
|
<td class="index"><a href="#term_domain">3.2.1. </a></td></tr>
|
|
<tr><td class="index">entailed</td>
|
|
<td class="index"><a href="#term_entailed">1. </a></td></tr>
|
|
<tr><td class="index">enumerated</td>
|
|
<td class="index"><a href="#term_enumerated">5. </a></td></tr>
|
|
<tr><td class="index">extension</td>
|
|
<td class="index"><a href="#term_extension">3.1. </a></td></tr>
|
|
<tr><td class="index">instance of</td>
|
|
<td class="index"><a href="#term_instance">3.1.3. </a></td></tr>
|
|
<tr><td class="index">intersectionOf</td>
|
|
<td class="index"><a href="#term_intersection">5.1.1. </a></td></tr>
|
|
<tr><td class="index">imports</td>
|
|
<td class="index"><a href="#term_import">2.2. </a></td></tr>
|
|
<tr><td class="index">individual</td>
|
|
<td class="index"><a href="#term_individual">3.1.3. </a></td></tr>
|
|
<tr><td class="index">instance</td>
|
|
<td class="index"><a href="#term_instanceOf">3.1.3. </a></td></tr>
|
|
<tr><td class="index">monotonic</td>
|
|
<td class="index"><a href="#term_monotonic">2. </a></td></tr>
|
|
<tr><td class="index">object properties</td>
|
|
<td class="index"><a href="#term_objectproperties">3.2.1. </a></td></tr>
|
|
<tr><td class="index">ontology</td>
|
|
<td class="index"><a href="#term_ontology">1. </a></td></tr>
|
|
<tr><td class="index">open world</td>
|
|
<td class="index"><a href="#term_openworld">2. </a></td></tr>
|
|
<tr><td class="index">OWL DL</td>
|
|
<td class="index"><a href="#term_OWLDL">1.1. </a></td></tr>
|
|
<tr><td class="index">OWL Full</td>
|
|
<td class="index"><a href="#term_OWLFull">1.1. </a></td></tr>
|
|
<tr><td class="index">OWL Lite</td>
|
|
<td class="index"><a href="#term_OWLLite">1.1. </a></td></tr>
|
|
<tr><td class="index">property</td>
|
|
<td class="index"><a href="#term_Properties">3.2.1. </a></td></tr>
|
|
<tr><td class="index">range</td>
|
|
<td class="index"><a href="#term_range">3.2.1. </a></td></tr>
|
|
|
|
<tr><td class="index">restriction class</td>
|
|
<td class="index"><a href="#term_restriction_class">3.4.1. </a></td></tr>
|
|
|
|
<tr><td class="index">union</td>
|
|
<td class="index"><a href="#term_union">5.1.2. </a></td></tr>
|
|
<tr><td class="index">unique names</td>
|
|
<td class="index"><a href="#term_uniqueName">4.2. </a></td></tr>
|
|
|
|
</table>
|
|
<br /><br />
|
|
|
|
<h2><a id="CrossReference" name="CrossReference">
|
|
Guide, Reference and Semantics Cross Reference</a>
|
|
</h2>
|
|
|
|
<table>
|
|
<tr><th>OWL Guide</th><th>OWL Reference</th><th>OWL Semantics</th></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_AllDifferent">owl:AllDifferent / 4.3. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#AllDifferent-def">owl:AllDifferent</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/rdfs.html#owl_AllDifferent_rdf">owl:AllDifferent</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_allValuesFrom">owl:allValuesFrom / 3.4.1. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#allValuesFrom-def">owl:allValuesFrom</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_allValuesFrom_semantics">owl:allValuesFrom</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_backwardCompatibleWith">owl:backwardCompatibleWith / 6. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#backwardCompatibleWith-def">owl:backwardCompatibleWith</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/mapping.html#owl_backwardCompatibleWith_mapping">owl:backwardCompatibleWith</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_cardinality">owl:cardinality / 3.4.2. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#cardinality-def">owl:cardinality</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_cardinality_semantics">owl:cardinality</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_Class">owl:Class / 3.1.1. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#Class-def">owl:Class</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_Class_semantics">owl:Class</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_complementOf">owl:complementOf / 5.1.3. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#complementOf-def">owl:complementOf</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_complementOf_semantics">owl:complementOf</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_DatatypeProperty">owl:DatatypeProperty / 3.2.2. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#DatatypeProperty-def">owl:DatatypeProperty</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_DatatypeProperty_semantics">owl:DatatypeProperty</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_DeprecatedClass">owl:DeprecatedClass / 6. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#DeprecatedClass-def">owl:DeprecatedClass</a></td><td class="index">
|
|
</td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_DeprecatedProperty">owl:DeprecatedProperty / 6. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#DeprecatedProperty-def">owl:DeprecatedProperty</a></td><td class="index">
|
|
</td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_differentFrom">owl:differentFrom / 4.3. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#differentFrom-def">owl:differentFrom</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_differentFrom_semantics">owl:differentFrom</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_disjointWith">owl:disjointWith / 5.3. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#disjointWith-def">owl:disjointWith</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_disjointWith_semantics">owl:disjointWith</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_distinctMembers">owl:distinctMembers / 4.3. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#distinctMembers-def">owl:distinctMembers</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/rdfs.html#owl_distinctMembers_rdf">owl:distinctMembers</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_equivalentClass">owl:equivalentClass / 4.1. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#equivalentClass-def">owl:equivalentClass</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_equivalentClass_semantics">owl:equivalentClass</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_equivalentProperty">owl:equivalentProperty / 4.1. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#equivalentProperty-def">owl:equivalentProperty</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_equivalentProperty_semantics">owl:equivalentProperty</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_FunctionalProperty">owl:FunctionalProperty / 3.3. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#FunctionalProperty-def">owl:FunctionalProperty</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_FunctionalProperty_semantics">owl:FunctionalProperty</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_hasValue">owl:hasValue / 3.4.3. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#hasValue-def">owl:hasValue</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_hasValue_semantics">owl:hasValue</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_imports">owl:imports / 2.2. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#imports-def">owl:imports</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_imports_semantics">owl:imports</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_incompatibleWith">owl:incompatibleWith / 6. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#incompatibleWith-def">owl:incompatibleWith</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/mapping.html#owl_incompatibleWith_mapping">owl:incompatibleWith</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_intersectionOf">owl:intersectionOf / 5.1.1. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#intersectionOf-def">owl:intersectionOf</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_intersectionOf_semantics">owl:intersectionOf</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_InverseFunctionalProperty">owl:InverseFunctionalProperty / 3.3. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#InverseFunctionalProperty-def">owl:InverseFunctionalProperty</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_InverseFunctionalProperty_semantics">owl:InverseFunctionalProperty</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_inverseOf">owl:inverseOf / 3.3. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#inverseOf-def">owl:inverseOf</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_inverseOf_semantics">owl:inverseOf</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_maxCardinality">owl:maxCardinality / 3.4.2. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#maxCardinality-def">owl:maxCardinality</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_maxCardinality_semantics">owl:maxCardinality</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_minCardinality">owl:minCardinality / 3.4.2. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#minCardinality-def">owl:minCardinality</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_minCardinality_semantics">owl:minCardinality</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_Nothing">owl:Nothing / 3.1.1. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#Nothing-def">owl:Nothing</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_Nothing_semantics">owl:Nothing</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_ObjectProperty">owl:ObjectProperty / 3.2.1. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#ObjectProperty-def">owl:ObjectProperty</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_ObjectProperty_semantics">owl:ObjectProperty</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_oneOf">owl:oneOf / 5.2. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#oneOf-def">owl:oneOf</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_oneOf_semantics">owl:oneOf</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_onProperty">owl:onProperty / 3.4. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#onProperty-def">owl:onProperty</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_onProperty_semantics">owl:onProperty</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_Ontology">owl:Ontology / 2.2. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#Ontology-def">owl:Ontology</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_Ontology_semantics">owl:Ontology</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_priorVersion">owl:priorVersion / 6. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#priorVersion-def">owl:priorVersion</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/mapping.html#owl_priorVersion_mapping">owl:priorVersion</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_Restriction">owl:Restriction / 3.4. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#Restriction-def">owl:Restriction</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_Restriction_semantics">owl:Restriction</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_sameAs">owl:sameAs / 4.2. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#sameAs-def">owl:sameAs</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_sameAs_semantics">owl:sameAs</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_someValuesFrom">owl:someValuesFrom / 3.4.1. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#someValuesFrom-def">owl:someValuesFrom</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_someValuesFrom_semantics">owl:someValuesFrom</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_SymmetricProperty">owl:SymmetricProperty / 3.3. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#SymmetricProperty-def">owl:SymmetricProperty</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_SymmetricProperty_semantics">owl:SymmetricProperty</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_Thing">owl:Thing / 3.1.1. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#Thing-def">owl:Thing</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_Thing_semantics">owl:Thing</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_TransitiveProperty">owl:TransitiveProperty / 3.3. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#TransitiveProperty-def">owl:TransitiveProperty</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_TransitiveProperty_semantics">owl:TransitiveProperty</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_unionOf">owl:unionOf / 5.1.2. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#unionOf-def">owl:unionOf</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#owl_unionOf_semantics">owl:unionOf</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#owl_versionInfo">owl:versionInfo / 6. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#versionInfo-def">owl:versionInfo</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/mapping.html#owl_versionInfo_mapping">owl:versionInfo</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
rdf:List</td><td class="index">
|
|
rdf:List</td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/rdfs.html#rdf_List_rdf">rdf:List</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
rdf:nil</td><td class="index">
|
|
rdf:nil</td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/rdfs.html#rdf_nil_rdf">rdf:nil</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#rdf_type">rdf:type</a></td><td class="index">
|
|
rdf:type</td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#rdf_type_semantics">rdf:type</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#rdfs_comment">rdfs:comment / 2.2. </a></td><td class="index">
|
|
rdfs:comment</td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/mapping.html#rdfs_comment_mapping">rdfs:comment</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#rdfs_Datatype">rdfs:Datatype / 3.2.2. </a></td><td class="index">
|
|
rdfs:Datatype</td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/rdfs.html#rdfs_Datatype_rdf">rdfs:Datatype</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#rdfs_domain">rdfs:domain / 3.2.1. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#domain-def">rdfs:domain</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#rdfs_domain_semantics">rdfs:domain</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#rdfs_label">rdfs:label / 3.1.1. </a></td><td class="index">
|
|
rdfs:label</td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/mapping.html#rdfs_label_mapping">rdfs:label</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#rdfs_Literal">rdfs:Literal / 3.3. </a></td><td class="index">
|
|
rdfs:Literal</td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/rdfs.html#rdfs_Literal_rdf">rdfs:Literal</a></td></tr>
|
|
|
|
<!--
|
|
<tr><td class="index">
|
|
rdf:Property</td><td class="index">
|
|
rdf:Property</td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/rdfs.html#owl_Property_rdf">rdf:Property</a></td></tr>
|
|
-->
|
|
<tr><td class="index">
|
|
<a href="#rdfs_range">rdfs:range / 3.2.1. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#range-def">rdfs:range</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#rdfs_range_semantics">rdfs:range</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#rdfs_subClassOf">rdfs:subClassOf / 3.1.1. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#subClassOf-def">rdfs:subClassOf</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#rdfs_subClassOf_semantics">rdfs:subClassOf</a></td></tr>
|
|
|
|
<tr><td class="index">
|
|
<a href="#rdfs_subPropertyOf">rdfs:subPropertyOf / 3.2.1. </a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/#subPropertyOf-def">rdfs:subPropertyOf</a></td><td class="index">
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/direct.html#rdfs_subPropertyOf_semantics">rdfs:subPropertyOf</a></td></tr>
|
|
|
|
</table>
|
|
|
|
<hr />
|
|
|
|
<h1><a name="References">References</a></h1>
|
|
|
|
<h2><a name="RelatedOWL">Related OWL</a></h2>
|
|
|
|
<dl>
|
|
<dt><a name="Requirements">Requirements</a></dt>
|
|
<dd>
|
|
<a href="http://www.w3.org/TR/2003/CR-webont-req-20030818/">
|
|
<cite>OWL Web Ontology Language Use Cases and Requirements</cite>
|
|
</a>.
|
|
Jeff Heflin, ed.
|
|
W3C Candidate Recommendation, 18 August 2003.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a name="FeatureList">Overview</a></dt>
|
|
<dd>
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-features-20030818/">
|
|
<cite>OWL Web Ontology Language Overview</cite>
|
|
</a>.
|
|
Deborah L. McGuinness and Frank van Harmelen, eds.
|
|
W3C Candidate Recommendation, 18 August 2003.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a name="Reference">Reference</a></dt>
|
|
<dd>
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-ref-20030818/">
|
|
<cite>OWL Web Ontology Language Reference</cite>
|
|
</a>.
|
|
Mike Dean and Guus Schreiber, eds.
|
|
W3C Candidate Recommendation, 18 August 2003.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a name="FormalModel" id="FormalModel">Formal Model</a></dt>
|
|
<dd>
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-semantics-20030818/">
|
|
<cite>OWL Web Ontology Language Semantics and Abstract
|
|
Syntax</cite>
|
|
</a>,
|
|
Peter F. Patel-Schneider, Partick Hayes, and Ian Horrocks, eds.
|
|
W3C Candidate Recommendation, 18 August 2003.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a name="TestCases" id="TestCases">Test Cases</a></dt>
|
|
<dd>
|
|
<a href="http://www.w3.org/TR/2003/CR-owl-test-20030818/">
|
|
<cite>OWL Web Ontology Language Test Cases</cite>
|
|
</a>,
|
|
Jeremy J. Carroll and Jos De Roo, eds.
|
|
W3C Candidate Recommendation, 18 August 2003.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
</dl>
|
|
<br />
|
|
|
|
<h2><a name="RelatedStandards">Related W3C Standards</a></h2>
|
|
|
|
<dl>
|
|
|
|
<dt><a id="RDF1" name="RDF1">RDF</a></dt>
|
|
<dd> <a href="http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/">
|
|
<cite>Resource Description Framework (RDF) Model and Syntax
|
|
Specification.</cite></a>
|
|
World Wide Web Consortium Recommendation, 1999. Lassila, Swick [ed].
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dd> <a id="RDFSemantics" name="RDFSemantics"></a>
|
|
<a href="http://www.w3.org/TR/rdf-mt/">
|
|
<cite>RDF Semantics</cite>
|
|
</a> W3C Working Draft 23 January 2003. Patrick Hayes, ed.
|
|
<br /><br /></dd>
|
|
|
|
<dd> <a id="RDFSyntax" name="RDFSyntax"></a>
|
|
<a href="http://www.w3.org/TR/rdf-syntax-grammar/">
|
|
<cite>RDF/XML Syntax Specification (Revised)</cite>
|
|
</a> W3C Working Draft 23 January 2003. Dave Beckett, ed.
|
|
<br /><br /></dd>
|
|
|
|
|
|
<dd>
|
|
<a href="http://www.w3.org/RDF/">RDF: Resource Description Framework</a>.
|
|
Background at W3C.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a id="RDFS" name="RDFS">RDFS</a> </dt>
|
|
<dd> <a href="http://www.w3.org/TR/rdf-schema/">
|
|
<cite>RDF Vocabulary Description Language 1.0: RDF Schema</cite>
|
|
</a> W3C Working Draft 23 January 2003. Dan Brickley, R.V. Guha, eds.
|
|
<br /><br /></dd>
|
|
|
|
<dt><a id="XML1" name="XML1">XML</a> </dt>
|
|
<dd> <a href="http://www.w3.org/TR/1998/REC-xml-19980210">
|
|
<cite>Extensible Markup Language (XML) 1.0</cite>.
|
|
</a>
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dd>
|
|
<a href="http://www.webreview.com/2000/08_04/webauthors/08_04_00_4.shtml">
|
|
<cite> XML Tutorial 1: Well-Formed XML Documents</cite></a>.
|
|
Bonnie SooHoo Aug 4, 2000 in webreview.com.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dd> <a href="http://www.w3.org/XML/">Extensible Markup Language
|
|
(XML)</a>. More background at W3C.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a id="XMLSCHEMA" name="XMLSCHEMA">XML Schema</a></dt>
|
|
<dd> <a href="http://www.w3.org/XML/Schema">W3C XML Schema</a> <br /><br />
|
|
</dd>
|
|
|
|
<dt><a id="URI1" name="URI1">URI</a></dt>
|
|
<dd><a href="http://www.ietf.org/rfc/rfc2396.txt">
|
|
<cite>Uniform Resource Identifiers (URI): Generic Syntax.</cite>.
|
|
</a> IETF Draft Standard August 1998 (RFC 2396) T. Berners-Lee, R. Fielding, L. Masinter
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dd>
|
|
<a name="URI" id="URI"></a>
|
|
<a href="http://www.w3.org/Addressing/"> Web Naming and Addressing Overview (URIs, URLs, ...)</a>.
|
|
More background at W3C.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a id="XMLNS" name="XMLNS">XML Namespaces</a></dt>
|
|
<dd>
|
|
<a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/">
|
|
<cite>Namespaces in XML</cite></a>. W3C Recommendation Jan 1999.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dd>
|
|
<a href="http://www.xml.com/xml/pub/1999/01/namespaces.html"> XML
|
|
Namespaces by Example</a>. Tim Bray Jan. 19, 1999 in XML.com.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dd>
|
|
<a href="http://www.xml.com/pub/2000/03/08/namespaces/index.html">
|
|
<cite> Namespace Myths Exploded</cite></a>. Ronald Bourret. March 8, 2000 in XML.com.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a id="XMLBase" name="XMLBase">XML Base</a></dt>
|
|
<dd> <a href="http://www.w3.org/TR/xmlbase/">XML Base</a>. W3C Recommendation <br /> <br />
|
|
</dd>
|
|
|
|
</dl>
|
|
<br />
|
|
|
|
|
|
<h2><a name="SampleOntology" id="SampleOntology">Sample Ontologies and
|
|
Applications</a></h2>
|
|
|
|
<dl>
|
|
|
|
<dt><a id="wine1" name="wine1">Daml.org Wine Ontology</a></dt>
|
|
<dd>
|
|
<a href="http://www.daml.org/ontologies/76">http://www.daml.org/ontologies/76</a>
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a id="wine4" name="wine4">Wine Ontology / CLASSIC Tutorial</a></dt>
|
|
<dd>
|
|
<a href="http://www.bell-labs.com/project/classic/papers/ClassTut/ClassTut.html">
|
|
<cite>Classic Knowledge Representation System Tutorial</cite>
|
|
</a>. Deborah L. McGuinness , Peter
|
|
F. Patel-Schneider , Richmond H. Thomason, Merryll K. Abrahams, Lori Alperin Resnick ,
|
|
Violetta Cavalli-Sforza, and Cristina Conati.
|
|
AT&T Bell Laboratories and University of Pittsburgh, 1994.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a id="wine2" name="wine2">Wine Ontology Tutorial</a></dt>
|
|
<dd>
|
|
<a href="http://www.ksl.stanford.edu/people/dlm/papers/ontology-tutorial-noy-mcguinness-abstract.html">
|
|
<cite>Ontology Development 101: A Guide to Creating Your First Ontology</cite>.
|
|
</a> Natalya Fridman Noy and Deborah
|
|
L. McGuinness. Stanford Knowledge Systems Laboratory Technical
|
|
Report KSL-01-05 and Stanford Medical Informatics Technical Report
|
|
SMI-2001-0880, March 2001.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a id="wine3" name="wine3">Wine Ontology in CLASSIC</a></dt>
|
|
<dd>
|
|
<a href="http://www.ksl.stanford.edu/people/dlm/papers/living-with-classic-abstract.html">
|
|
<cite> Living with CLASSIC: When and How to Use a KL-ONE-Like Language</cite>
|
|
</a>. Ronald J. Brachman, Deborah L. McGuinness , Peter
|
|
F. Patel-Schneider , Lori Alperin Resnick , and Alex
|
|
Borgida. in John Sowa, ed.,
|
|
<em>Principles of Semantic Networks: Explorations in the representation of knowledge</em>,
|
|
Morgan-Kaufmann: San Mateo, California, 1991, pages 401--456.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
|
|
<dt><a id="IntegratingApplications" name="IntegratingApplications">Integrating Applications</a></dt>
|
|
<dd>
|
|
<a href="http://www.w3.org/2002/07/swint">
|
|
<cite> Integrating Applications on the Semantic Web</cite>
|
|
</a>. James Hendler, Tim Berners-Lee, and Eric Miller.
|
|
<em>Journal of the Institute of
|
|
Electrical Engineers of Japan</em>, Vol 122(10), October, 2002, p. 676-680
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a id="VerticalNet" name="VerticalNet">VerticalNet</a></dt>
|
|
<dd>
|
|
|
|
<a href="http://www.ksl.stanford.edu/people/dlm/papers/ontologyBuilderVerticalNet-abstract.html">
|
|
<cite>Industrial Strength Ontology Management</cite> </a>. Aseem Das, Wei Wu, and
|
|
Deborah L. McGuinness. Stanford Knowledge Systems Laboratory Technical
|
|
Report KSL-01-09 2001. In the <em>Proceedings of the International
|
|
Semantic Web Working Symposium</em>. Stanford, CA, July 2001
|
|
</dd>
|
|
</dl>
|
|
|
|
<br />
|
|
|
|
|
|
<h2><a name="RelatedKR">Related KR Language Research</a></h2>
|
|
<dl>
|
|
<dt><a name="DAMLPlusOIL" id="DAMLPlusOIL">DAML+OIL</a></dt>
|
|
<dd>
|
|
<a name="DAMLPlusOIL-submission" id="DAMLPlusOIL-submission"/>
|
|
<a href="http://www.w3.org/Submission/2001/12/">DAML+OIL W3C
|
|
Submission</a>. Includes reference description, both model theoretic
|
|
and axiomatic semantics, annotated walkthrough and examples.
|
|
<br /><br />
|
|
</dd>
|
|
<dd>
|
|
<a name="DAMLPlusOIL-walkthrough" id="DAMLPlusOIL-walkthrough"/>
|
|
<a href="http://www.W3.org/TR/daml+oil-walkthru/">
|
|
<cite>Annotated DAML+OIL Ontology Markup</cite></a>.
|
|
Dan Connolly, Frank van Harmelen, Ian Horrocks, Deborah McGuinness,
|
|
Peter F. Patel-Schneider, Lynn Andrea Stein. December 2001.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a id="damlRef" name="damlRef">DAML</a></dt>
|
|
<dd>
|
|
<a href="http://www.daml.org">Daml Home Page</a>
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a id="DAML-ONT" name="DAML-ONT"></a>DAML-ONT</dt>
|
|
<dd>
|
|
<a href="http://www.daml.org/2000/10/daml-ont.html"> DAML-ONT initial release</a>
|
|
</dd>
|
|
<dd><a id="DAML-ONT-KIF">DAML-ONT</a>
|
|
<a href="http://www.daml.org/2000/10/DAML-Ont-kif-axioms-001107.html">
|
|
Partial DAML-ONT axiomatization</a> in
|
|
<a href="http://logic.stanford.edu/kif/kif.html">KIF</a>
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a id="OIL" name="OIL">OIL</a></dt>
|
|
<dd>
|
|
<a href="http://oil.semanticweb.org/">OIL Home Page</a>
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a name="SHOE" id="SHOE">SHOE</a></dt>
|
|
<dd> <a
|
|
href="http://www.cs.umd.edu/projects/plus/SHOE/">Simple
|
|
HTML Ontology Extensions (SHOE) home page</a>. University of Maryland.
|
|
<br /><br />
|
|
</dd>
|
|
<dt><a name="XOL" id="XOL">XOL</a></dt>
|
|
<dd>
|
|
<a href="http://www.ai.sri.com/pubs/full.php?id=676">XOL: An XML-Based
|
|
Ontology Exchange Language</a>.
|
|
Karp, Peter D., Chaudhri, Vinay K. and Thomere, Jerome F.
|
|
Technical Report 559. AI Center, SRI
|
|
International, 333 Ravenswood Ave., Menlo Park, CA 94025, Jul 1999.
|
|
<br /><br />
|
|
</dd>
|
|
<dt><a name="OML-CKML" id="OML-CKML"> OML/CKML</a></dt>
|
|
<dd><a href="http://sern.ucalgary.ca/ksi/kaw/kaw99/papers/Kent1/CKML.pdf">
|
|
The Conceptual Knowledge Framework: OML/CKML</a>.
|
|
Kent, Robert. KAW'99, Twelfth Workshop on Knowledge Acquisition,
|
|
Modeling and Management, Voyager Inn,
|
|
Banff, Alberta, Canada, October 16-21, 1999.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a name="OKBC" id="OKBC"> OKBC</a></dt>
|
|
|
|
<dd>OKBC: A programmatic foundation for knowledge base
|
|
interoperability, V. K. Chaudhri, A. Farquhar, R. Fikes, P. D. Karp,
|
|
and J. P. Rice. In <em>Proceedings of the 15th National Conference on
|
|
Artificial Intelligence (AAAI-98)</em>, pages 600-607. AAAI Press,1998.
|
|
<br /><br /></dd>
|
|
|
|
<dt><a name="MCF" id="MCF"> MCF</a></dt>
|
|
|
|
<dd><a href="http://www.w3.org/TR/NOTE-MCF-XML/">
|
|
Meta Content Framework Using XML</a>.
|
|
Guha, R.V. and Bray, Tim. Netscape Communications, 6 June 1997.<br/><br/>
|
|
</dd>
|
|
|
|
<dt><a name="DescriptionLogics" id="DescriptionLogics">Description Logics</a></dt>
|
|
<dd> <a id="dl1" name="dl1"></a>
|
|
<a href="http://titles.cambridge.org/catalogue.asp?isbn=0521781760">
|
|
<cite>The Description Logic Handbook: Theory, Implementation and
|
|
Application</cite>.</a> Franz Baader, Diego Calvanese, Deborah
|
|
L. McGuinness, Daniele Nardi, and Peter F. Patel-Schneider, editors.
|
|
Cambridge University Press, 2002. <br /> <br />
|
|
</dd>
|
|
|
|
<dd><a id="dl2" name="dl2"></a>
|
|
<a href="http://dl.kr.org/">Description Logic Web Page</a>
|
|
|
|
<br /> <br />
|
|
</dd>
|
|
|
|
<dt><a name="KR" id="KR">KR</a></dt>
|
|
<dd>
|
|
<a href="http://kr.org/">KR Home Page</a>
|
|
|
|
<br /> <br />
|
|
</dd>
|
|
|
|
</dl>
|
|
<br />
|
|
|
|
|
|
|
|
<h2><a name="RelatedOntology">Related Ontology Research</a></h2>
|
|
|
|
<dl>
|
|
<dt><a id="whatisontology" name="whatisontology">What is Ontology?</a></dt>
|
|
<dd><a href="http://www.cs.vassar.edu/faculty/welty/papers/fois-intro.pdf">Ontology: Towards a new synthesis</a>. Barry Smith and Chris Welty. In, <i>Proceedings of
|
|
the Second International Conference on Formal Ontology in Information Systems</i>
|
|
<a href="http://www.fois.org/">(FOIS-02)</a>. <br /> <br /> </dd>
|
|
|
|
<dt><a id="ontoclean" name="ontoclean">OntoClean Methodology and Ontologies</a></dt>
|
|
<dd><a href="http://ontology.ip.rm.cnr.it/Ontologies.html">Ontologies and Ontological Engineering</a> <br /> <br /> </dd>
|
|
|
|
|
|
<dt><a name="PartWhole" id="PartWhole">Part Whole Relations</a></dt>
|
|
<dd><a href="http://ontology.ip.rm.cnr.it/Papers/Parts.pdf">Part-Whole Relations in Object-Centered Systems: an Overview.</a>
|
|
Artale, A., Franconi, E., Guarino, N., and Pazzi, L. In
|
|
<i>Data and Knowledge Engineering</i>, 20(3): 347-383. <br />
|
|
</dd>
|
|
|
|
<dd>Winston, Chaffin & Herrmann. A Taxonomy of Part-Whole
|
|
Relations. <em>Cognitive Science</em>, 11:417-444, 1987.
|
|
<br /> <br />
|
|
</dd>
|
|
|
|
|
|
<dt><a id="Ontoknowledge" name="Ontoknowledge">Ontoknowledge</a></dt>
|
|
<dd>
|
|
<a href="http://www.ontoknowledge.org/">Ontoknowledge Home Page</a>
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a name="Ontobroker" id="Ontobroker">Ontobroker</a></dt>
|
|
<dd><a href="http://ontobroker.aifb.uni-karlsruhe.de/index_ob.html">The
|
|
Ontobroker home page</a>. Institute AIFB, University of Karlsruhe.
|
|
<br /><br />
|
|
</dd>
|
|
|
|
<dt><a name="KAON" id="KAON">KAON</a></dt>
|
|
<dd>
|
|
<a href="http://kaon.semanticweb.org">
|
|
The Karlsruhe Ontology and Semantic Web Tool Suite
|
|
</a>.
|
|
<br />
|
|
<br />
|
|
</dd>
|
|
|
|
|
|
</dl>
|
|
<br />
|
|
|
|
<h2><a name="General" id="General">General</a></h2>
|
|
|
|
<dl>
|
|
|
|
<dt>Dublin Core</dt>
|
|
|
|
<dd><a name="DublinCore" id="DublinCore"/>
|
|
<a href="http://dublincore.org/">Dublin Core
|
|
Metadata</a>
|
|
<br /> <br />
|
|
</dd>
|
|
<dd>
|
|
<a href="http://dublincore.org/documents/2001/11/28/dcmes-xml/">
|
|
<cite>Expressing Dublin Core in RDF/XML</cite>.
|
|
</a>
|
|
<br /> <br />
|
|
</dd>
|
|
|
|
<dt><a name="ControlledVocabulary">Controlled Vocabularies</a></dt>
|
|
|
|
<dd>
|
|
<a href="http://www.digital-web.com/tutorials/tutorial_2002-08.shtml">
|
|
<cite>
|
|
Mind your phraseology! Using controlled vocabularies to improve
|
|
findability.</cite>
|
|
</a>
|
|
<a href="http://www.digital-web.com">DigitalWeb Magazine</a>,
|
|
Christina Wodtke
|
|
</dd>
|
|
</dl>
|
|
<br />
|
|
|
|
<hr />
|
|
|
|
<h1><a id="AppendixA" name="AppendixA">Appendix A</a>: XML + RDF Basics</h1>
|
|
|
|
<div class="description">
|
|
This appendix provides links to introductions to the standards that
|
|
OWL depends on.</div>
|
|
|
|
<p>
|
|
To fully understand the OWL syntax and semantics you should be
|
|
familiar with the basics of the related W3C and IETF standards listed
|
|
below. A minimal guide to XML and RDF is provided by the first two
|
|
links below.
|
|
</p>
|
|
|
|
<ul>
|
|
<li><a href="http://kaon.semanticweb.org/Members/rvo/WebOnt_Guide/owlbasics/">
|
|
Fundamentals Overview</a></li>
|
|
<li><a href="http://www.daml.org/2001/03/daml+oil-walkthru.html#xml-guide">
|
|
Appendix</a> to the <a href="#DAMLPlusOIL-walkthrough">
|
|
<em>DAML+OIL Walkthru</em></a><br /><br /></li>
|
|
|
|
<li><a href="http://www.ietf.org/rfc/rfc2396.txt">URI - Uniform Resource Identifier</a> </li>
|
|
<li><a href="http://www.w3.org/XML/">XML - eXtensible Markup Language</a></li>
|
|
<li><a href="http://www.w3.org/TR/REC-xml-names/">XML Namespaces</a> </li>
|
|
<li><a href="http://www.w3.org/XML/Schema">XML Schema</a></li>
|
|
<li><a href="http://www.w3.org/TR/REC-rdf-syntax/">RDF - Resource Description Framework</a> </li>
|
|
<li><a href="http://www.w3.org/TR/rdf-schema/">RDF Schema</a> </li>
|
|
</ul>
|
|
|
|
<hr />
|
|
|
|
<h1><a id="AppendixB" name="AppendixB">Appendix B</a>: History</h1>
|
|
|
|
<p>
|
|
<a href="#RDF1">The Resource Description Framework (RDF)</a> was the
|
|
first language specified by the W3C for representing semantic
|
|
information about arbitrary resources. <a href="#RDFS">RDF Schema
|
|
(RDFS)</a> is a W3C candidate recommendation for an extension to RDF
|
|
to describe RDF vocabularies. RDFS can be used to create ontologies,
|
|
but it is purposefully lightweight, with less expressive power than
|
|
OWL.
|
|
</p>
|
|
|
|
<p>
|
|
Like OWL, RDFS includes classes and properties, as well as range and
|
|
domain constraints on properties. It provides inheritance hierarchies
|
|
for both classes and properties. Upon its release users began
|
|
requesting additional features, including data types, enumerations and
|
|
the ability to define properties more rigorously.
|
|
</p>
|
|
|
|
<p>
|
|
Other efforts in the research community were already examining exactly
|
|
these sorts of features. For those who wish to delve more deeply into
|
|
this background, a partial list of projects and languages includes:
|
|
</p>
|
|
|
|
<ul>
|
|
<li><a href="#damlRef">DAML - DARPA Agent Markup Language</a></li>
|
|
<li><a href="#DAML-ONT">DAML-ONT</a> </li>
|
|
<li><a href="#MCF">MCF - Meta Content Framework</a>.</li>
|
|
<li><a href="#Ontobroker">Ontobroker</a></li>
|
|
<li><a href="#Ontoknowledge">On-To-Knowledge</a></li>
|
|
<li><a href="#OIL">OIL - Ontology Inference Layer</a></li>
|
|
<li><a href="#SHOE">SHOE - Simple HTML Ontology Extensions</a></li>
|
|
<li><a href="#XOL">XOL</a></li>
|
|
</ul>
|
|
|
|
<p>
|
|
Instead of continuing with separate ontology languages for the
|
|
Semantic Web, a group of researchers, including many of the main
|
|
participants in both the OIL and DAML-ONT efforts, got together in the
|
|
<a href="http://www.daml.org/committee/">Joint US/EU ad hoc Agent
|
|
Markup Language Committee</a> to create a new Web ontology language.
|
|
This language <a href="#DAMLPlusOIL">DAML+OIL</a> built on both OIL and
|
|
DAML-ONT, was <a href="#DAMLPlusOIL-submission">submitted</a> to the
|
|
W3C as a proposed basis for OWL, and was subsequently selected as the
|
|
starting point for OWL.
|
|
</p>
|
|
|
|
<p>
|
|
In addition to ontology languages, various taxonomies and existing
|
|
ontologies are already in use commercially. In
|
|
e-Commerce sites they facilitate machine-based
|
|
communication between buyer and seller, enable vertical integration of
|
|
markets and allow descriptions to be reused in different marketplaces.
|
|
Examples of sites that are actually making commercial use ontologies
|
|
include:
|
|
</p>
|
|
|
|
<ul>
|
|
<li><a href="#VerticalNet">VerticalNet</a>
|
|
Vertical Net currently hosts 59 industry-specific e-marketplaces
|
|
that span diverse industries such as manufacturing,
|
|
communications, energy, and healthcare.</li>
|
|
</ul>
|
|
|
|
<p>
|
|
Various medical or drug-related ontologies have been developed to help
|
|
manage the overwhelming mass of current medical and biochemical research data
|
|
that can be difficult to tie together into a cohesive whole.
|
|
One major resource is the <a href="http://www.geneontology.org/">Gene
|
|
Ontology Consortium</a> which is defining ontologies for
|
|
</p>
|
|
|
|
<ul>
|
|
<li>Molecular Function,</li>
|
|
<li>Biological Process, and</li>
|
|
<li>Cellular Components.</li>
|
|
</ul>
|
|
|
|
<p>
|
|
That site also has pointers to ontologies for
|
|
</p>
|
|
|
|
<ul>
|
|
<li> sequence attributes, </li>
|
|
<li> gene product attributes, </li>
|
|
<li> chemical substances,</li>
|
|
<li> pathways, </li>
|
|
<li> anatomies, </li>
|
|
<li> pathology, </li>
|
|
<li> physical characteristics, </li>
|
|
<li> experiment attributes, </li>
|
|
<li> classification, and </li>
|
|
<li> pathology. </li>
|
|
</ul>
|
|
|
|
<p> There exist large taxonomies in use today that would be ripe for
|
|
extension into the OWL space. For example, the North American
|
|
Industry Classification System (NAICS) defines a hierarchy of over
|
|
1900 items that identify industry types.
|
|
NAICS is also tied to the International Standard Industrial
|
|
Classification System (ISIC, Revision 3), developed and maintained by
|
|
the United Nations.
|
|
</p>
|
|
|
|
<hr />
|
|
|
|
<h1><a id="AppendixC" name="AppendixC">Appendix C: An Alternative Region Ontology</a></h1>
|
|
|
|
<p>
|
|
This example was developed by Guus Schrieber
|
|
[<a href="http://lists.w3.org/Archives/Public/www-webont-wg/2002Aug/0196.html">
|
|
W3C WG Archive</a>] and presents a more elaborate wine region ontology.
|
|
</p>
|
|
<p>
|
|
For wine the "production area" is an important feature. There is
|
|
enormous variation between wine types with respect to the grain size of the
|
|
production area, ranging from a complete country to a particular vineyard.
|
|
One could distinguish four types of production areas:
|
|
</p>
|
|
<ol>
|
|
<li>country: e.g., France, Italy</li>
|
|
<li>region: e.g., Bordeaux, Medoc, Tuscany, </li>
|
|
<li>town: e.g., Margaux, Montalcino, Montepulciano</li>
|
|
<li>vineyard, e.g., Chateau Margaux, Avignonesi</li>
|
|
</ol>
|
|
|
|
<p>
|
|
In addition, we need to model part-of relationships between the
|
|
various sorts of production areas:
|
|
</p>
|
|
<ul>
|
|
<li>regions are part of countries: Tuscany lies in Italy</li>
|
|
<li>regions may have subregions: the Medoc region is a subpart of the
|
|
Bordeaux region</li>
|
|
<li>towns are located in regions: Montalcino is located in Tuscany</li>
|
|
<li>vineyards are located in towns: Chateau Margaux is a vineyard in
|
|
Margaux, Avignonesi in Montepulciano </li>
|
|
</ul>
|
|
|
|
<p>
|
|
We would like to be able to derive from our wine KB that a wine from
|
|
Chateau Margaux is a French wine and that Avignonesi is a Tuscan
|
|
wine.
|
|
</p>
|
|
|
|
<p>
|
|
<b>MODELING DECISION</b>: at this point we decided to drop the "town"
|
|
subclass and treat towns as regions. This simplifies the model and is
|
|
consistent with the fact that a "town" as a wine production area
|
|
typically stands for an area surrounding the town, which can be larger
|
|
or smaller than the actual town area. For example, the production
|
|
area "Montalcino" is in fact a subregion of Tuscany surrounding the
|
|
village of Montalcino.
|
|
</p>
|
|
<p>
|
|
This leads to the following model:
|
|
</p>
|
|
<h4><a id="AppendixCClasses" name="AppendixCClasses">Classes:</a></h4>
|
|
|
|
<pre>
|
|
<owl:Class rdf:ID="&vin;ProductionArea"/ >
|
|
<owl:Class rdf:ID="&vin;Country">
|
|
<rdfs:subClassOf rdf:resource="&vin;ProductionArea"/>
|
|
</owl:Class>
|
|
<owl:Class rdf:ID="&vin;Region">
|
|
<rdfs:subClassOf rdf:resource="&vin;ProductionArea"/>
|
|
</owl:Class>
|
|
<owl:Class rdf:ID="&vin;Vineyard">
|
|
<rdfs:subClassOf rdf:resource="&vin;ProductionArea"/>
|
|
</owl:Class>
|
|
|
|
</pre>
|
|
|
|
<h5>Triples</h5>
|
|
|
|
<pre>
|
|
vin:ProductionArea rdf:type rdfs:Class.
|
|
vin:Country rdfs:subClassOf vin:ProductionArea.
|
|
vin:Region rdfs:subClassOf vin:ProductionArea.
|
|
vin:Vineyard rdfs:subClassOf vin:ProductionArea.
|
|
</pre>
|
|
|
|
<h4><a id="AppendixCProperties" name="AppendixCProperties">Properties:</a>
|
|
</h4>
|
|
|
|
<pre>
|
|
<owl:ObjectProperty rdf:ID="&vin;hasSubArea">
|
|
<rdf:type rdf:resource="&owl;TransitiveProperty" />
|
|
</owl:ObjectProperty>
|
|
|
|
<owl:ObjectProperty rdf:ID="&vin;subAreaOf">
|
|
<owl:inverseOf rdf:resource="&vin;hasSubArea"/>
|
|
</owl:ObjectProperty>
|
|
|
|
<owl:ObjectProperty rdf:ID="&vin;hasRegion">
|
|
<rdfs:subPropertyOf rdf:resource="&vin;hasSubArea"/>
|
|
<owl:domain rdf:resource="&vin;Region"/>
|
|
</owl:ObjectProperty>
|
|
|
|
<owl:ObjectProperty rdf:ID="&vin;regionOf">
|
|
<rdf:type rdf:resource="&owl;FunctionalProperty" />
|
|
<owl:inverseOf rdf:resource="&vin;hasRegion"/>
|
|
<owl:range rdf:resource="&vin;Region"/>
|
|
</owl:ObjectProperty>
|
|
|
|
<owl:ObjectProperty rdf:ID="&vin;hasSubRegion">
|
|
<rdfs:subPropertyOf rdf:resource="&vin;hasSubArea"/>
|
|
<owl:range rdf:resource="&vin;Region"/>
|
|
</owl:ObjectProperty>
|
|
|
|
<owl:ObjectProperty rdf:ID="&vin;subRegionOf">
|
|
<owl:inverseOf rdf:resource="&vin;hasSubRegion"/>
|
|
<owl:range rdf:resource="&vin;Region"/>
|
|
<rdf:type rdf:resource="&owl;FunctionalProperty" />
|
|
</owl:ObjectProperty>
|
|
|
|
<owl:ObjectProperty rdf:ID="&vin;hasVineyard">
|
|
<rdfs:subPropertyOf rdf:resource="&vin;hasSubArea"/>
|
|
<owl:range rdf:resource="&vin;Vineyard"/>
|
|
</owl:ObjectProperty>
|
|
|
|
<owl:ObjectProperty rdf:ID="&vin;vineyardRegion">
|
|
<owl:inverseOf rdf:resource="&vin;hasVineyard"/>
|
|
<owl:range rdf:resource="&vin;Region"/>
|
|
<rdf:type rdf:resource="&owl;FunctionalProperty" />
|
|
</owl:ObjectProperty>
|
|
</pre>
|
|
|
|
<h5>Triples</h5>
|
|
|
|
<pre>
|
|
vin:hasSubArea rdf:type rdf:Property.
|
|
vin:hasSubArea rdf:type owl:TransitiveProperty.
|
|
vin:subAreaOf owl:inverseOf vin:hasSubArea.
|
|
|
|
vin:hasRegion rdfs:subPropertyOf vin:hasSubArea.
|
|
vin:hasRegion owl:range vin:Region.
|
|
vin:regionOf owl:inverseOf vin:hasRegion.
|
|
vin:regionOf owl:range vin:Country.
|
|
vin:regionOf rdf:type owl:FunctionalProperty
|
|
|
|
vin:hasSubRegion rdfs:subPropertyOf vin:hasSubArea.
|
|
vin:hasSubRegion owl:range vin:Region.
|
|
vin:subRegionOf owl:inverseOf vin:hasSubRegion.
|
|
vin:subRegionOf owl:range vin:Region.
|
|
vin:subRegionOf rdf:type owl:FunctionalProperty
|
|
|
|
vin:hasVineyard rdfs:subPropertyOf vin:hasSubArea.
|
|
vin:hasVineyard owl:range vin:Vineyard.
|
|
vin:vineyardRegion owl:inverseOf vin:hasVineyard..
|
|
vin:vineyardRegion owl:range vin:Region.
|
|
vin:vineyardRegion rdf:type owl:FunctionalProperty
|
|
</pre>
|
|
|
|
<p>
|
|
<b>ONTOLOGICAL NOTE</b>: the part-whole relationship described here is
|
|
well-known in the formal-ontology literature. The typology of
|
|
part-whole relations by <a href="#PartWhole">Winston et al.</a> characterizes this as a
|
|
"place-area" relation. Various authors have criticized and amended this
|
|
typology. If the formal-ontology community would at some point be
|
|
able to make a part-whole typology available in OWL, the properties in
|
|
this wine ontology could be linked to it.
|
|
</p>
|
|
|
|
<p>
|
|
<a name="UMLSyntaxExample" id="UMLSyntaxExample"><b>UML NOTE</b></a>:
|
|
Below is a UML class diagram for this example. The modeling decisions
|
|
for this diagram will be discussed in the forthcoming document on the
|
|
UML presentation syntax. For the moment, note the use of the UML
|
|
"composition" construct (the darkened diamond), which caries some of
|
|
the semantics of the place-area relation.
|
|
</p>
|
|
|
|
<p>
|
|
<img src="owl-production-area.jpg"
|
|
alt="Owl Production Area UML Diagram" />
|
|
</p>
|
|
|
|
<hr />
|
|
|
|
<h1><a id="AppendixD" name="AppendixD">Appendix D: Change Log Since Last Call Release</a></h1>
|
|
|
|
<ul>
|
|
<li>Replaced several references to the "wine ontology" with "wine and food ontology".</li>
|
|
<li>Added food.owl to entity and namespace definitions.</li>
|
|
<li>Fixed occurrence of 'hasClass' in food.owl.</li>
|
|
<li>Added example of <tt>owl:ObjectProperty</tt> <tt>course</tt> from food.owl. </li>
|
|
<li>Added the <tt>owl:ObjectProperty</tt> <tt>madeFromFruit</tt>
|
|
and the class <tt>juice</tt> to food.owl.</li>
|
|
<li>Added xml:base to namespace declaration.</li>
|
|
<li>Added text re utility of using entities in namespace declarations.</li>
|
|
<li>Added text qualifying 'typical' nature of header example re w3.org.</li>
|
|
<li>Wine.owl: Eliminated duplicate restriction on wine.</li>
|
|
<li>Food.owl: Changed base range of hasDrink to PotableLiquid.</li>
|
|
<li>Changed "sameIndividualAs always be used, as it is more
|
|
informative and reduces the likeliehood of mistakes" to
|
|
"sameIndividualAs be used, as it more clearly states the
|
|
user's intention."</li>
|
|
<li>Added text re required support for <tt>xsd:integer</tt>
|
|
and <tt>xsd:string</tt> datatypes.</li>
|
|
<li>Fixed <tt>owl:versionInfo</tt> in cross reference to indicate
|
|
section 6., not 5.1.2.</li>
|
|
<li>Rewrote the second sentence of 3.4.1, which used "instance" 3
|
|
times to clarify.</li>
|
|
<li>Deleted Class Expression from Glossary. Adding Class Description.</li>
|
|
<li>Wine and food.owl: Added xml:base.</li>
|
|
<li>Deleted OWL Property from Glossary.</li>
|
|
<li>In 1.1 Added text re migrating from RDF to OWL DL or OWL Lite.</li>
|
|
<li>In 1.1 Added more words re the computational properties of Lite
|
|
and DL. </li>
|
|
<li>In 1. Added Roadmap xref.</li>
|
|
<li>Deleted owl:sameIndividualAs and some associated text.</li>
|
|
<li>In 2.3 added pointer to security and preference solutions. </li>
|
|
<li>Modifed ontologies. Changed extension from ".owl"
|
|
to ".rdf" (since we did not register the owl MIME type). </li>
|
|
<li>Changed Guide reference "owl.owl" to "owl" in imports discussion. </li>
|
|
<li>Modifed ontologies. Removed extensions in imports. </li>
|
|
<li>Modifed food ontologies. Added owl:imports of wine.rdf to
|
|
food.rdf so that wine properties in food were typed properly. </li>
|
|
<li>Modifed ontologies. Replaced owl:sameIndividualAs
|
|
with owl:sameAs. </li>
|
|
<li>Changed Guide to correspond to ontology modificatons.</li>
|
|
<li>RDF references updated.</li>
|
|
<li>Modifed ontologies. Changed doctype to rdf:RDF.</li>
|
|
</ul>
|
|
|
|
</body>
|
|
</html>
|