|
|
 |
WEB ONTOLOGY LANGUAGE
Status: W3C Working Draft vom 31 März 2003
Version: 1.0
Homepage: http://www.w3.org/2001/sw/WebOnt/
Verfasser: W3C
Die WEB ONTOLOGY LANGUAGE (OWL) unterstützt Anwendungen, Webinhalte maschinenlesbar
und -interpretierbar aufzubereiten und stellt somit eine zusätzliche Ebene
zur Interpretation von inhaltsrelevanten Daten dar.
OWL ist aus DAML+OIL
entstanden und befindet sich derzeit als überarbeiteter Entwurf des W3C
noch in Entwicklung. Anhand der zusätzlichen Informationen (OWL-Aussagen)
kann eine Wissensbasis (Knowledge Base - "KB") mit Hilfe eines schlussfolgernden
Systems angelegt werden. OWL-Aussagen sind Fakten bzw. abgeleitete Fakten, welche
- auch wenn sie inhaltlich konträr sind - nur hinzugefügt und nicht
entfernt werden können. Wenn Aussagen über diese Metadaten getroffen
werden, ist von einer Ontologie die Rede.
OWL baut auf dem Resource
Description Framework [RDF/XML] auf und stellt eine Sprache zur Verfügung,
die es ermöglicht, Web Ontologien zu definieren. OWL bietet eine hierarchische
Beschreibung von Klassen, welche mit Beschreibungen von Attributen und Assoziationen
dieser Klassen einhergeht. Attribute und Assoziationen werden zusammenfassend
als Eigenschaften einer Klasse bezeichnet.
Eine OWL Ontologie kann die folgenden Elemente enthalten:
- taxonomische Beziehungen zwischen Klassen
- Datentypen-Eigenschaften (Beschreibungen der Attribute von Klassen-Elementen)
- Objekt-Eigenschaften (Beschreibungen der Beziehungen zwischen Klassen-Elementen)
und zu einem geringerem Grad:
- Instanzen von Klassen
- Instanzen von Eigenschaften
OWL besteht in Wirklichkeit aus einer Menge von drei
zunehmend ausdrucksmächtiger werdenden Sprachen:
- OWL Lite wurde mit dem Zweck definiert eine einfache Sprache zu erzeugen, welche hauptsächlich die Bedürfnisse des Nutzers nach einer Klassifikationshierarchie und einfachen Beschränkungseigenschatten befriedigt
- OWL DL beinhaltet den vollständigen OWL Wortschatz, welcher unter einer Anzahl einfacher Beschränkungen interpretiert wird
- OWL Full beinhaltet den vollständigen OWL Wortschatz, welcher umfassender interpretiert wird als in OWL DL, mit der Freiheit die RDF bietet
Ein ausführliches Beispiel mit dem Thema Wein findet sich unter: http://www.w3.org/2002/07/owl
| Ontologie-Kopf |
Im Ontologie-Kopf stehen viele zusätzlicher Tags zur Verfügung, mit denen kritische Aufgaben wie
das Version-Controlling, Einschließen anderer Ontologien und Kommentieren handgehabt werden können.
<rdf:RDF xmlns ="http://www.beispiel.org/wein#" xmlns:vin = "http://www.beispiel.org/wein# " xmlns:speisen= "http://www.beispiel.org/speisen# " 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#" xmlns:dte ="http://www.beispiel.org/wein-dt#"> <owl:Ontology rdf:about="http://www.beispiel.org/wein"> <rdfs:comment>Eine OWL-Beispiel-Ontologie</rdfs:comment> <owl:versionInfo>$Id: standard_owl.inc.html,v 1.1 2003/09/07 22:20:02 rempe2 Exp $</owl:versionInfo> <owl:imports rdf:resource="http://www.w3.org/TR/2002/WD-owl-guide-20021104/food.owl"/> </owl:Ontology> </rdf:RDF>
|
Basis-Definitionen
Hauptsächlich wird die Nutzung von Ontologien von der Fähigkeit abhängen, über
Individuen zu Schlussfolgern. Spezielle Eigenschaften von Individuen können
immer festlegt werden, erst das klassenbasierte Schließen von Ontologien jedoch
eröffnet eine Vielzahl an Möglichkeiten. Eine Menge von Individuen, die
Elemente einer Klasse sind, wird auch als die Extension (Umfang, Ausdehnung)
einer Klasse bezeichnet.
| Definieren von einfachen hierarchischen Klassen: class,
subClassOf |
Jedes Individuum in der OWL-Welt ist ein Element von owl:Thing. Deshalb ist jede nutzerdefinierte
Klasse implizit eine Unterklasse von owl:Thing. Domänen-spezifische Wurzelklassen werden durch
einfaches Deklarieren einer benannten Klasse definiert.
<owl:Class rdf:ID="Weinkellerei"/> <owl:Class rdf:ID="Gebiet"/> <owl:Class rdf:ID="VerzehrbarerGegenstand"/>
Das grundlegende taxanomische Konstrukt für Klassen ist subclassOf. Es ist transitiv. Wenn
X subclassOf Y und Y subclassOf Z, dann ist X subclassOf Z.
<owl:Class rdf:ID="TrinkbareFluessigkeit"> <rdfs:subClassOf rdf:resource="#VerzehrbarerGegenstand"/> ... </owl:Class>
<owl:Class rdf:ID="Wein"> <rdfs:subClassOf rdf:resource="#TrinkbareFluessigkeit"/> <rdfs:label xml:lang="en">wine</rdfs:label> <rdfs:label xml:lang="de">Wein</rdfs:label> <rdfs:label xml:lang="fr">vin</rdfs:label> ... </owl:Class>
|
| Definieren von Individuen |
Ein Individuum wird minimal eingeführt, indem es als Mitglied einer Klasse deklariert wird.
<Gebiet rdf:ID="ZentralesKuestengebiet"/>
ist identisch zu:
<owl:Thing rdf:ID="ZentralesKuestengebiet"/> <owl:Thing rdf:about="#ZentralesKuestengebiet"> <rdf:type rdf:resource="#Gebiet"/> </owl:Thing>
|
| Definieren von Eigenschaften |
Über Eigenschaften können allgemeine Fakten über die Anzahl der Elemente von Klassen und
spezielle Fakten über Individuen ausgedrückt werden.
Objekteigenschaften (ObjectProperty)Datentypeigenschaften (DatatypeProperty)UntereigenschaftVon (subPropertyOf)Domäne (Definitionsbereich, domain)Wertebereich (range)
Eine Eigenschaft ist eine binäre Relation. Es werden zwei Arten von Eigenschaften unterschieden:
Datentypeigenschaften (Beziehungen zwischen Elementen von Klassen und XML Datentypen)Objekteigenschaften (Beziehungen zwischen Elementen zweier Klassen)
<owl:ObjectProperty rdf:ID="hergestelltAusTrauben"> <rdfs:domain rdf:resource="#Wein"/> <rdfs:range rdf:resource="#Weintraube"/> </owl:ObjectProperty>
Eigenschaften und Klassen können in einer Hierarchie verwaltet (arrangiert) werden.
<owl:ObjectProperty rdf:ID="WeinBeschreiber"/> <owl: ObjectProperty rdf:ID="FarbeDesWeines"> <rdfs: subPropertyOf rdf:resource="#WeinBeschreiber"/> ... </owl: ObjectProperty>
<owl:ObjectProperty rdf:ID="besitztWeinBeschreiber"> <rdfs:domain rdf:resource="#Wein"/> <rdfs:range rdf:resource="#WeinBeschreiber"/> </owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="färbung"> <rdfs:subPropertyOf rdf:resource="#besitztWeinBeschreiber"/> <rdfs:range rdf:resource="#FarbeDesWeines"/> </owl:ObjectProperty>
WeinBeschreiber Eigenschaften verbinden Weine mit ihren Farben und Komponenten ihres Geschmacks,
einschließlich Süße, physische Beschaffenheit und Aroma. färbung ist eine Untereigenschaft von
der besitztWeinBeschreiber Eigenschaft, welche den Wertebereich noch weiter auf FarbeDesWeines
beschränkt hat.
|
| Eigenschaften von Individuen |
Zuerst werden die Individuen von Gebiet und Weinkellerei erzeugt. Als nächstes wird der erste
Wein, einen Cabernet Sauvignon, definiert.
<GebietKalifornien rdf:ID="GebietSantaCruzMountains"/> <Weinkellerei rdf:ID="WeinbergSantaCruzMountain"/> <CabernetSauvignon rdf:ID="WeinbergSantaCruzMountainCabernetSauvignon"> <lokalisiertIn rdf:resource="#GebietSantaCruzMountains"/> <besitztHersteller rdf:resource="#WeinbergSantaCruzMountain"/> </CabernetSauvignon>
Datentypeigenschaften können Individuen in einer ähnlichen Art hinzugefügt werden:
<Weinjahr rdf:ID="Year1998"> <jahreswert rdf:datatype="&dte;Weinjahr">1998</jahreswert> </Weinjahr>
|
Eigenschaftsmerkmale
Es ist möglich, so genannte Eigenschafts-Merkmale zu definieren, welche
ein mächtiges Mittel für erweitertes Schlussfolgern über Eigenschaften
darstellen.
| TransitiveProperty: P(x,y)
^ P(y,z) -> P(x,z) |
Die Eigenschaft lokalisiertIn ist transitiv:
<owl: TransitiveProperty rdf:ID="lokalisiertIn"> <rdfs:domain rdf:resource="&owl;Thing"/> <rdfs:range rdf:resource="#Gebiet"/> </owl: TransitiveProperty > <Gebiet rdf:ID="GebietSantaCruzMountains"> <lokalisiertIn rdf:resource="#GebietKalifornien"/> </Gebiet> <Gebiet rdf:ID="GebietKalifornien"> <lokalisiertIn rdf:resource="#USGebiet"/> </Gebiet>
|
Eigenschaften-Beschränkungen
Zusätzlich zu den beschriebenen Eigenschaftsmerkmalen ist es möglich,
weitere Beschränkungen des Wertebereichs von Eigenschaften in speziellen
Kontexten und auf verschiedene Arten vorzunehmen.
| allValuesFrom, someValuesFrom |
Die bisherigen Mechanismen waren global, das heißt sie hatten Einfluss auf alle Instanzen der
Eigenschaften. Die nächsten beiden allValuesFrom und someValuesFrom, gelten lokal in ihren
umschließenden Klassendefinitionen.
<owl:Class rdf:ID="Wein"> <rdfs:subClassOf rdf:resource="&speisen;TrinkbareFluessigkeit"/> ... <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#besitztHersteller"/> <owl:allValuesFrom rdf:resource="#Weinkellerei"/> </owl:Restriction> </rdfs:subClassOf> ... </owl:Class>
Der Hersteller eines Weines muss eine Weinkellerei (Weinkellerei) sein. Die allValuesFrom Einschrän-
kung gilt nur in der besitztHersteller Eigenschaft dieser Wein-Klasse. Hersteller von Käse sind
nicht von dieser lokalen Einschränkung betroffen. owl:someValuesFrom ist ähnlich, aber weniger
restriktiv (einschränkend). Ersetzen wir im Beispiel owl:allValuesFrom mit owl:someValuesFrom, würde
das bedeuten, dass mindestens eine der besitztHersteller Eigenschaften eines Weines auf ein Indivi-
duum vom Typ Weinkellerei zeigen müsste. Der Unterschied zwischen den beiden Formulierungen liegt in
der Unterscheidung von All- und Existenz-Quantor.
|
Abbildung von Ontologien
Damit Ontologien ihre größte Wirkung entfalten können, müssen
sie weit verbreitet (verteilt) werden. Um den Aufwand im Entwickeln von Ontologien
zu minimieren, werden diese wieder verwendet. Der größte Aufwand
im Entwickeln von Ontologien liegt im Zusammenschließen von Klassen und
Eigenschaften in der Art, dass sie die Möglichkeiten zum Schlussfolgern
maximieren. Die Unterstützung von Tools wird gewiss erforderlich sein,
um die Konsistenz einer KB zu wahren.
| sameClassAs, samePropertyAs |
Will jemand eine Menge von Ontologien als Komponente einer dritten Ontologie aneinander binden, ist
es meist nützlich auszudrücken zu können, dass einzelne Klassen oder Eigenschaften der einen
Ontologie äquivalent zu Klassen und Eigenschaften einer anderen Ontologie sind. Diese Fähigkeit
muss mit Sorgfalt benutzt werden. Falls kombinierte Ontologien widersprüchlich sind, gibt es keine
Extensionen, welche den Bedingungen der resultierenden Kombinationen genügen.
<owl:Class rdf:ID="TexasThings"> <owl:sameClassAs> <owl:Restriction> <owl:onProperty rdf:resource="#lokalisiertIn" /> <owl:allValuesFrom rdf:resource="#TexasRegion" /> </owl:Restriction> </owl:sameClassAs> </owl:Class>
TexasThings sind exakt die Dinge, die im Gebiet Texas zu finden sind. Dieser Unterschied zwischen
dem Benutzen des sameClassAs und subClassOf Konstrukts liegt in der Unterscheidung zwischen einer
notwendigen Bedingung und einer notwendigen und ausreichenden Bedingung. Bei subClassOf sind Dinge,
die in Texas liegen nicht notwendigerweise auch TexasThings.
Allerdings durch Benutzen von sameClassAs wären alle Dinge die in Texas liegen auch Instanzen
(Teil) der Klasse TexasThings.
|
| sameIndividualAs/differentIndividualFrom |
sameIndividualAs: Dieser Mechanismus ähnelt dem für Klassen, bezeichnet aber zwei Individuen als
identisch. Zum Beispiel:
<Wein rdf:ID="MikesFavoriteWine"> <owl:sameIndividualAs rdf:resource="#StGenevieveTexasWhite"/> </Wein>
OWL erfordert somit keinen eindeutigen Namen für ein Individuum, d.h. dass zwei verschiedene Namen
das gleiche Individuum (Synonyme) beschreiben (referenzieren) können.
differentIndividualFrom: Dieser Mechanismus bietet den gegenteiligen Effekt von sameIndivdualAs.
|
Komplexe Klassen [OWL DL]
Da OWL-Klassenerweiterungen Mengen sind, bietet OWL das Mittel, Klassenerweiterungen
durch die Basis-Mengen-Operatoren zu beeinflussen.
| Durchschnitt/Vereinigung/Komplement |
Durchschnitt: Das folgende Beispiel demonstriert die Anwendung des intersectionOf Konstrukts.
<owl:Class rdf:ID="Weisswein"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Wein" /> <owl:Restriction> <owl:onProperty rdf:resource="#färbung" /> <owl:hasValue rdf:resource="#Weiss" /> </owl:Restriction> </owl:intersectionOf> </owl:Class>
Vereinigung: Das unionOf Konstrukt wird genauso wie das intersectionOf Konstrukt verwendet.
Komplement: Das complementOf Konstrukt wählt alle Individuen einer Domäne aus, die nicht zu einer
bestimmten Klasse gehören. Gewöhnlich bezieht sich dies auf eine sehr große Menge von Individuen.
|
Mit Material aus "Web
Ontology Language (OWL) bzw. DAML+OIL" von Martin
Kost
| |