Web Ontology Language
aus Wikipedia, der freien Enzyklopädie
Die Web Ontology Language (kurz OWL) ist eine Spezifikation des W3C, um Ontologien anhand einer formalen Beschreibungssprache erstellen, publizieren und verteilen zu können. Es geht darum, Terme einer Domäne und deren Beziehungen formal so zu beschreiben, dass auch Software (z.B. Agenten) die Bedeutung verarbeiten ("verstehen") kann (können). OWL ist somit ein wesentlicher Bestandteil der Semantic Web-Initiative von Tim Berners-Lee. OWL basiert technisch auf der RDF-Syntax und historisch auf DAML+OIL, und geht dabei über die Ausdrucksmächtigkeit von RDF-Schema weit hinaus. Zusätzlich zu RDF und RDF-Schema werden weitere Sprachkonstrukte eingeführt, die es erlauben, Ausdrücke ähnlich der Prädikatenlogik zu formulieren.
Inhaltsverzeichnis |
[Bearbeiten] Abkürzung
Das Akronym für Web Ontology Language hätte eigentlich WOL, nicht OWL sein müssen. In Anspielung auf die literarische Figur der Eule aus Milnes Pu der Bär, die als einziges Tier im Wald ihren Namen schreiben kann - allerdings mit einem Buchstabendreher im englischen Original WOL statt OWL - wurde dieser Buchstabendreher umgekehrt für die OWL übernommen.
[Bearbeiten] Sprachebenen: Lite, DL und Full
OWL kommt in drei verschiedenen Versionen daher. Dazu wurden die Sprachebenen OWL Lite, OWL DL und OWL Full definiert. Für den Einsatz von OWL Lite/DL wurden Einschränkungen definiert, welche die Entwicklung von Tools erleichtern bzw. vollständige Inferenz ermöglichen sollen.
[Bearbeiten] OWL Lite
Die "Light-Version" wurde mit dem Ziel geschaffen, eine einfach zu implementierende Untermenge der Sprache zu schaffen. Sie dient vor allem zum Erschaffen einfacher Taxonomien und leicht axiomatisierter Ontologien. Dabei sind verschiedene Sprachkonstrukte aus OWL DL nicht vorhanden.
[Bearbeiten] OWL DL
Dies ist die Ebene, deren Semantik noch am ehesten an DAML+OIL heranreicht. DL steht für die Beschreibungslogik (description logic) , welche zu einer entscheidbaren Untermenge der Prädikatenlogik erster Stufe äquivalent ist. Um die Abbildbarkeit auf diese Logik zu gewährleisten, wurden diverse Einschränkungen für den Einsatz von RDFS-Konstrukten eingefügt, zum Beispiel darf eine Klasse nicht Instanz einer anderen Klasse sein.
[Bearbeiten] OWL Full
OWL Full besteht aus den selben Sprachkonstrukten wie OWL DL, verzichtet aber auf die dort vorhandenen Einschränkungen. Dadurch sind die Ontologien unentscheidbar, können dafür aber prädikatenlogische Ausdrücke höheren Grades ermöglichen.
[Bearbeiten] Sprachkonstrukte
Die Spezifikation erweitert die Bedeutung von RDF und RDF-Schema um weitere Konstrukte, um die Ausdrucksmächtigkeit zu steigern (oder teilweise auch einzuschränken, um Entscheidbarkeit zu erreichen).
OWL unterscheidet Klassen, Eigenschaften (properties) und Instanzen. Klassen stehen für Konzepte. Sie können Eigenschaften besitzen. Instanzen sind Individuen einer oder mehrerer Klassen.
[Bearbeiten] Klassen betreffend
- <owl:class>
- <owl:oneOf>
- <owl:unionOf>
- <owl:intersectionOf>
- ...
[Bearbeiten] Properties betreffend
- <owl:Restriction>
- <owl:allValuesFrom>
- <owl:someValuesFrom>
- ...
[Bearbeiten] Instanzen betreffend
[Bearbeiten] Beispiel
Das Beispiel beschreibt die Konzepte <Person>, <Gender> und <Woman>. Eine Frau ist definiert als eine <Person> mit dem Wert <female> im Property <gender>, das der Klasse <Gender> angehören muss. Die Instanz <STilgner> ist somit als <Person> beschrieben eine Frau (<Woman>). Mittels Inferenz kann diese Zugehörigkeit ermittelt werden.
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns="http://localhost:8080/OWLBuergerInformation.owl#" xml:base="http://localhost:8080/OWLBuergerInformation.owl"> <owl:Ontology rdf:about=""/> <owl:Class rdf:ID="Gender"/> <owl:Class rdf:ID="Person"/> <owl:Class rdf:ID="Woman"> <rdfs:subClassOf rdf:resource="#Person"/> <owl:equivalentClass> <owl:Restriction> <owl:onProperty rdf:resource="#gender"/> <owl:hasValue rdf:resource="#female" rdf:type="#Gender"/> </owl:Restriction> </owl:equivalentClass> </owl:Class> <owl:ObjectProperty rdf:ID="gender" rdf:type="http://www.w3.org/2002/07/owl#FunctionalProperty"> <rdfs:range rdf:resource="#Gender"/> <rdfs:domain rdf:resource="#Person"/> </owl:ObjectProperty> <owl:DatatypeProperty rdf:ID="name" rdf:type="http://www.w3.org/2002/07/owl#FunctionalProperty"> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> <rdfs:domain rdf:resource="#Person"/> </owl:DatatypeProperty> <owl:DatatypeProperty rdf:ID="firstname" rdf:type="http://www.w3.org/2002/07/owl#FunctionalProperty"> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> <rdfs:domain rdf:resource="#Person"/> </owl:DatatypeProperty> <Person rdf:ID="STilgner" firstname="Susanne" name="Tilgner"> <Gender rdf:resource="#female"/> </Person> </rdf:RDF>
[Bearbeiten] Tools
Da die OWL-Spezifikation relativ neu ist, existieren zur Zeit wenige Tools. Die Zahl steigt aber ständig. Viele sind auch frei verfügbar (Open Source).
[Bearbeiten] allgemeine Werkzeuge
- Jena Framework von HP Labs HP Labs Semantic Web Research
- Eclipse Plugin mit Editor, Validator, ... SWeDE Eclipse Plugin
- Semantic Works 2007 von Altova Altova
- Protégé OWL 3.2 (beta) von der Stanford University [1]
- SWOOP ehemals von mindswap entwickelt, jetzt bei Google Code
[Bearbeiten] Validierung
- OWL-Ontologie-Validator (Klassifiziert in OWL Lite, OWL DL und OWL Full) OWL Validator
[Bearbeiten] Inferenz
- RACER OWL Reasoner
- FaCT
- FaCT++ OpenSource OWL Reasoner
- Pellet OpenSource OWL Reasoner
- KAON2 OWL Reasoner mit Stärken bei großen Instanzmengen
[Bearbeiten] Sonstige
- Protégé Ontologie-Editor mit OWL-Plugin
- KAON2 OWL Tools
- DERI Ontology Management Environment (DOME)