OWL


Unterpunkte dieser Seite

Links
Das SemanticWeb
Der W3C Process
Primer
Reasoner für OWL 1.1

Links

http://www.w3.org/TR/owl-guide/
Gute Definition einer Ontologie
WonderWeb Project
ESW Wiki, Semantic Web Tools
OWL Implementierungen

Das SemanticWeb

Tim Berners-Lee ist der Erfinder von HTML und der Begründer des WWW. Er schrieb ein Buch Weaving the Web (deutsch: Der Web-Report, 1999). In diesem Buch beschreibt er, wie man das Potential des Internet vollkommen ausreizen könnte. Dieser Report hat Forschungsaktivitäten ausgelöst. Eine Initiative ist die DAML Initiative, die von der DARPA finanziert wurde. OWL ist beispielsweise ein "OWL is a revision of the DAML+OIL web ontology language incorporating lessons learned from the design and application of DAML+OIL." (Quelle). DAML+OIL basiert auf RDF und RDFS und wurde im Jahre 2000 standardisiert und ist im Jahre 2001 in einer neuen Version erschienen.

Eine weitere Entwicklung war laut dieser Quelle (WonderWeb Project) die Erweiterung bereits existierender Web Standards (XML und RDF) um die Schemaaspekte (XML-Schema, RDF-Schema (= RDFS)), die für die Knowledge Representation (KR) für das Semantic Web nötig waren. RDF wurde im Jahre 1999 standardisiert, der RDFS Standard wurde im Jahre 1999 verabschiedet.

Die Ausdrucksmächtigkeit dieser Schema-Erweiterungen war aber nicht umfassend genug. Ontologiesprachen, wie sie normalerweise in der KR Disziplin verwendet werden, bieten eine weitaus größere Ausdrucksmächtigkeit. Allerdings gab es keinen Standard und keine allgemein anerkannte technisch praktikable Umsetzung für das WWW. Das WonderWeb Project war ein EU IST Projekt, das durch Future and Emerging Technologies (FET) gesponsort wurde. Es began im Januar 2002 und endete im Dezember 2004).

WonderWeb Ontology Infrastructure for the Semantic Web http://wonderweb.semanticweb.org WonderWeb has run from January 2002 to December 2004. Four academic partners (the University of Manchester, the Vrije Universiteit Amsterdam, the Laboratory for Applied Ontology, National Research Council, Italy and the University of Karlsruhe) have participated and were advised by a board of about 20 industrial partners. The project was funded by the European Union IST programme (Information Society Technologies) under contract number 2001- 33052. The aim of the project was to develop the infrastructure required for the large-scale deployment of ontologies as the foundation for the Semantic Web. For this purpose, WonderWeb was split in four work packages (WP) with each providing research on a different dimension: WP1 (language dimension) The development of OWL [2] — the standard ontology web language — as well as proposals for rule extensions maintaining backwards compatibility. WP2 (runtime infrastructure dimension) the development of a comprehensive technical infrastructure and tool support that will be required by real world applications in the Semantic Web [5, 6, 8]. WP3 (ontology content dimension) The development of a set of foundational ontologies covering a range of application domains. Each provides a carefully crafted taxonomic backbone with a sound high level structure that can be used as the basis for the development of more detailed domain ontologies [7]. WP4 (build and modification infrastructure dimension) The development of a framework of techniques and methodologies that provide an engineering approach to the building and use of ontologies. This included research on ontology change management as well as on the logical foundations of distributed ontologies [9]. Quelle: Three Dimensions of Knowledge Representation in WonderWeb

Es gab vier Europäische Universitäten, die an dem Projekt teilgenommen haben (the University of Manchester, the Vrije Universiteit Amsterdam, the Laboratory for Applied Ontology, National Research Council, Italy and the University of Karlsruhe). An der Universität Karlsruhe wurde beispielsweiße an der Standardisierung von OWL in Zusammenarbeit mit dem W3C gearbeitet (Quelle: Three Dimensions of Knowledge Representation in WonderWeb). An der University of Oxford befasste man sich mit der Entwicklung einer Infrastruktur, die für die Verwendung von Ontologien im großen Stil tauglich ist. Dazu wurde an einer Standard Ontology Sprache und an konkreten Softwarewerkzeugen gearbeitet. Aus dem WonderWeb Projekt in Oxford entstand die WonderWeb API. Die WonderWeb API war eine Implementierung für OWL 1.0

OWL wurde im Jahre 2004 standardisiert von der W3C. Die Beziehung von OWL zu anderen Technologien ist durch diese Quelle gut aufgelistet: Zum Zeitpunkt, zu dem dieses Dokument verfasst wurde (29.03.2009), wird von der W3C an OWL 2 gearbeitet. Im Dokument, auf das der letzte Link verweist, wird die OWL Version von 2004 als OWL 1 bezeichnet. Offiziel gibt es also OWL 1 und OWL 2.

Während RDFS noch zu den Ontolgiesprachen gezählt wird, ist XML, XML-Schema und RDF keine Ontologiesprache.

Aus der WonderWeb API enstand die The OWL API aka. the Manchester OWL API an der Universität von Manchester für OWL 1.1. Eine Vergleichbare Entwicklung ist Jena von HP. Es handelt sich um Java APIs die mit RDF, RDFS, OWL-Lite, OWL-DL und OWL-Full umgehen können und beide Reasoner über Java-Interfaces nach dem Plug-In Prinzip einbinden können. Jena besitzt eigene Reasoner während die Manchester OWL API ohne Reasoner ausgeliefert wird. Reasoner lassen sich durch ein Interface abstrahieren, da sich eine Menge gewisser Funktionalitäten identifizieren lässt die man in gleicher Weise von jedem Reasoner erwarten kann. Die APIs erlauben das Laden und Speichern von Ontologien, was das Parsen von Ontologie-Sprachen umfasst. Sie erlauben es auch Suchanfragen zu stellen, was das Parsen der Query und das erstellen eines Anfrageplans umfasst. Die Anfragen leiten sie an die Reasoner bzw. deren Interfaces weiter. Der Reasoner führt die Query aus und gibt die Ergebnisse zurück. Die Manchester OWL Api bietet ein Observer Pattern auf die TBox eines Reasoners und auch feingranularen Zugriff auf die ABox eines Reasoners. Des weiteren bietet die API Möglichkeiten Ontologien visuell darzustellen und enthält dazu einen HTML Renderer.

Die W3C hat im Dokument Test Cases definiert, welche Konformitätskriterien eine Implementierung oder ein Dokument einhalten muss, damit sie oder es sich OWL Lite, DL oder Full document, Syntax Checker, OWL Lite , DL oder Full Consistency Checker nennen darf.

Ursprünglich war der Zugriff auf externe Reasoner über das Internet entworfen worden. Diese Dokument schreibt allerdings:
However, when communicating
with an external reasoner, for example via HTTP (in the case of DIG 1.1) or TCP,
the reasoning process frequently takes less time than the serialisation, parsing
and transport of messages involved in communication. In reasoner intensive applications
this is usually unacceptable and it is perhaps for this reason that there
has been a trend towards direct in-memory reasoner implementations. To date,
such implementations have been provided by Pellet and FaCT++.
Der Zugriff auf einen externen Reasoner dauert durch die Notwendigkeit zur Serialisierung also länger, als der Ablauf des Algorithmus, den der Reasoner auf den Daten ausführt! Daher werden heutzutage moderne In-Memory Reasoner verwendet, also lokale Programme im Hauptspeicher des PC ausgeführt. Reasoner werden über Interfaces in eine API eingebunden. Programme die die API verwenden, stellen der API einen lokalen In-Memory Reasoner zur Verfügung.

Der W3C Process

Die W3C erstellt Dokumente und prüft diese bevor sie einen Standard verabschiedet. Dazu verwendet sie einen Process, der in diesem Dokument beschrieben ist. Ein Dokument durchläuft die Stadien (= Maturity Levels):
  1. Working Draft (WD)
  2. A Working Draft is a document that W3C has published for review by the community, including W3C Members, the public, and other technical organizations.
  3. Candidate Recommendation (CR)
  4. A Candidate Recommendation is a document that W3C believes has been widely reviewed and satisfies the Working Group's technical requirements. W3C publishes a Candidate Recommendation to gather implementation experience.
  5. Proposed Recommendation (PR)
  6. A Proposed Recommendation is a mature technical report that, after wide review for technical soundness and implementability, W3C has sent to the W3C Advisory Committee for final endorsement.
  7. W3C Recommendation (REC)
  8. A W3C Recommendation is a specification or set of guidelines that, after extensive consensus-building, has received the endorsement of W3C Members and the Director. W3C recommends the wide deployment of its Recommendations. Note: W3C Recommendations are similar to the standards published by other organizations.

OWL Primer

OWL is a vocabulary extension [RDF Semantics] of RDF

classes, properties, instances of classes and relationships between classes. derive logical consequences from an ontology (entailment, reasoning) ontology is specific to a certain domain, agreed upon by the domain experts

tesauri - ?!?
taxonomies - Klassenhierarchien ohne Attribute und Instanzen von Klassen


OWL DL


open world, open world assumption
That is, descriptions of resources are not confined to a single file or scope. While class C1 may be defined originally in ontology O1, it can be extended in other ontologies. The consequences of these additional propositions about C1 are monotonic. New information cannot retract previous information. New information can be contradictory, but facts and entailments can only be added, never deleted.
closed world, closed world assumption
?!?

Eine Ontology wird repräsentiert durch N3 oder RDF/XML.

RDF/XML wird in einem .rdf Dokument notiert.

Als allererstes kann man mit DocType URIs aliasen
<!DOCTYPE rdf:RDF [
    <!ENTITY vin  "http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#" >
    <!ENTITY food "http://www.w3.org/TR/2004/REC-owl-guide-20040210/food#" > ]>
Dann folgt die Ontology

Die gesamte Ontology wird von
<rdf:RDF>
</rdf:RDF>
eingeschlossen. Im öffnenden rdf:RDF Tag werden die Namespaces angegeben.
<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/2001/XMLSchema#"> 
Als erstes in der Ontology kann ein Ontology-Header geschrieben werden. Er enthält imports und Metainformationen.
<owl:Ontology rdf:about="">
<rdfs:comment>

      Derived from the DAML Wine ontology at 
      http://ontolingua.stanford.edu/doc/chimaera/ontologies/wines.daml
      Substantially modified.
    
</rdfs:comment>
<owl:priorVersion rdf:resource="http://www.w3.org/TR/2003/PR-owl-guide-20031215/wine"/> 
<owl:imports rdf:resource="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine"/>
<rdfs:label>Wine Ontology 
</owl:Ontology>
Hinter dem Header folgen nun alle Konstrukte, die die Ontology ausmachen bis zum schließenden rdf:RDF Tag.

Klassen
<owl:Class rdf:ID="Winery"/> 
<owl:Class rdf:ID="Region"/> 
<owl:Class rdf:ID="ConsumableThing"/>
Those classes can now be refered to by using #Winery, #Region and #ConsumableThing WHITIN THIS DOCUMENT.

From outside this document they can be refered to by the full URI "http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#Region". The URI can be aliased by DOCTYPE DEFINITIONS to make everything more readable. e.g. using the DOCTYPE listet above, #Region can be reference by "&vin;region" (or "&vin;#merlot" !?!) as a attribute value or by vin:Winery as a XML Tag.

Restrictions
In einer Klasse können Restrictions angegeben werden. Die Instanzen (= Individuen) der Klasse müssen alle restrictions erfüllen. Eine Restriktion alleine beschreibt alle Objekte, die die Restriktion erfüllen. Zwei Restriktions R1 und R2 zusammengenommen beschreiben alle Objekte (= Individuen), die sowohl R1 als auch R2 erfüllen, also in der Schnittmenge aller R1 Individuen und aller R2 Individuen liegen. Man sagt eine Individuum ist aus der Schnittmenge aller restrictions ihrer Klasse.

Um herauszufinden, ob ein Individuum I Instanz einer Klasse K ist, muss man I gegen alle Restriktions von K testen. Erfüllt I alle Restriktions von K, so ist I Individuum von K.

Subclassing (Subclassing Restriction)
Subclassing wird durch eine Restriktion namens rdfs:subClassOf modeliert.
<owl:Class rdf:ID="PotableLiquid"> 
  <rdfs:subClassOf rdf:resource="#ConsumableThing" />
</owl:Class>
If X is a subclass of Y and Y is a subclass of Z, then X is a subclass of Z (transitivity).
Labels for classes
The rdfs:label 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. <owl:Class rdf:ID="Wine"> <rdfs:label xml:lang="en">wine <rdfs:label xml:lang="fr">vin </owl:Class>
Individuen
Annahme: eine Klasse Region wurde an anderer Stelle bereits definiert.
<owl:Thing rdf:ID="CentralCoastRegion" /> 

<owl:Thing rdf:about="#CentralCoastRegion"> 
   <rdf:type rdf:resource="#Region"/> 
</owl:Thing>
Eine Instantiierung eines Individuums sieht genauso aus, wie die Definition einer Klasse und ist nach dem Schema aufgebaut. Der Unterschied zur Klassendefinition ist, das Klassenname eine bereits existierende Klasse und nicht owl:Class sein muss.

In der ersten Zeile wird die standardmäßig definierte Klasse owlThing verwendet um ein Individuum mit der rdf:ID "CentralCoastRegion" zu erstellen. owlThing ist implizit die Vaterklasse jeder Erstellten Klasse. Bisher wurde also nur ausgedrückt, das "CentralCoastRegion" ein Individuum von owlThing ist, was wenig bis gar keine Information beeinhaltet.

Im zweiten Teil soll ausgedrückt werden, das "CentralCoastRegion" eine Subklasse von Region ist. (Region wurde nach Annahme bereits definiert). Im zweiten Teil wird statt rdf:ID rdf:about verwendet und CentralCoastRegion wird mit einer Route referenziert, um dem Individuum eine Information hinzuzufügen. (Könnte man nicht rdf:ID und rdf:about in einer Deklaration benutzen? Wahrscheinlich geht das wegen der RDF Subjekt-Prädikat-Objekt-Geschichte nicht ?!?) Die hinzugefügte Information ist rdf:type. rdf:type drückt aus, das das Individuum der Klasse #Region ist.

Eigentlich wurde also notiert, das Individuum CentralCoastRegion von der Klasse owlThing und von der Klasse #Region ist. In OWL gibt es also Instantiierungen von mehreren Klassen (Mehrfachvererbung ist zwischen mehreren Elternklassen und einer Subclasse aber hier gehts ja sogar um die Instantiierung von mehreren Klassen! Das geht sogar in C++ nicht. Da ist ein Individuum immer nur von einer Klasse instantiiert, die aber mehrere Vaterklassen haben kann. Hier werden dem Individuum nacheinander mehrere Vaterklassen hinzugefügt! Das Ergebnis ist aber glaub ich das gleiche).

Eine Abkürzende Schreibweise für all das ist
<Region rdf:ID="CentralCoastRegion" /> 
Da die Definition von Klassen und Individuen so ähnlich sind, muss man ganz aktiv zwischen Klassen und Individuen per Design entscheiden. Es gibt im Internet darüber viele Diskusionen und auch Kritik an OWL.

Reasoner für OWL 1.1

Implementations



zum Seitenanfang
zur Hauptseite

Letzte Änderung: 29.03.2009