Sie sind auf Seite 1von 53

C.N.A.M.

CONSERVATOIRE NATIONAL DES ARTS ET METIERS


Association Régional Cnam Alsace

Hochschule Darmstadt
- Fachbereich Informatik -
Ingénierie et Intégration Informatique –
Systèmes d‘Information III-SI

Reasoning Tools für das Semantic Web


Zulassungsarbeit zum Diplôme d’Ingénieur (Master’s Degree)
im CNAM-Studiengang

Examen Probatoire

vorgelegt von
Christian Hesse
Sommersemester 2010

REFERENT: Prof. Dr. Bernhard Humm

JURY
Vorsitz: I. COMYN-WATTIAU (CNAM, Paris)
Cédric KLEINPETER, Jean-Pierre IGOT
Urs ANDELFINGER, Johannes ARZ, Bernhard HUMM,
Inge SCHESTAG, Alois SCHÜTTE, Hans-Peter WIEDLING
Erklärung
Ich versichere hiermit, dass ich die vorliegende Arbeit selbständig verfasst und keine
anderen als die im Literaturverzeichnis angegebenen Quellen benutzt habe.
Alle Stellen, die wörtlich oder sinngemäß aus veröffentlichten oder noch nicht veröffentlichten
Quellen entnommen sind, sind als solche kenntlich gemacht.
Die Zeichnungen oder Abbildungen in dieser Arbeit sind von mir selbst erstellt worden oder mit
einem entsprechenden Quellennachweis versehen.
Diese Arbeit ist in gleicher oder ähnlicher Form noch bei keiner anderen Prüfungsbehörde
eingereicht worden.

Darmstadt, den 28.04.2010

________________________

Christian Hesse
THEMA: REASONING TOOLS FÜR DAS SEMANTIC WEB
Für Tim Berners-Lee, den Vater des World Wide Web, ist das Semantic Web der nächste,
entscheidende Schritt des WWW hin zu einer weltumspannenden Informationsplattform. Nicht
mehr menschenlesbare Webseiten stehen im Fokus, sondern semantische Information, die von
elektronischen Agenten ausgewertet werden können. Entsprechend konsequent wurde vom
World Wide Web Consotium (W3C) mit RDF, RDFS und OWL die Standardisierung von
Sprachen für das Semantic Web vorangetrieben.
Die Semantic Web Technologien erlauben, Wissen zu repräsentieren und Schussfolgerungen
aus dem repräsentierten Wissen zu ziehen. Schlussfolgern (Reasoning) erlaubt die Ableitung
von neuem Wissen aus bekanntem nach Regeln der Logik. Im Gebiet der Künstlichen
Intelligenz (KI), in das sich die Semantic Web Technologien einordnen lassen, wurden in den
letzten 50 Jahren fundamentale Reasoning Konzepte entwickelt. Das regelbasierte Schließen
(Rule-Based Reasoning) nimmt hier eine besondere Stellung ein.
In dieser Arbeit sollen Reasoning-Konzepte mit einem Fokus auf Rule-Based Reasoning
vorgestellt werden. Darauf aufbauende Sprachen sollen dargestellt werden. Der Fokus hier soll
auf Sprachen liegen, die mit den Semantic Web Technologien kompatibel sind. Schlussendlich
sollen Werkzeuge (Tools) vorgestellt werden, welche diese Sprachen unterstützen. Der Fokus
hierbei soll auf Open Source Werkzeugen liegen oder auf kommerziellen Werkzeugen, für die
auch kostenlose Versionen verfügbar sind.

SUJET: OUTILS DE REASONING POUR LE WEB SEMANTIQUE


Pour Tim Berners-Lee, l’inventeur du World Wide Web, le Web sémantique est le prochain pas
déterminant vers une plate-forme mondiale d’informations. Ce ne sont plus des pages Web
lisibles par tous qui font l’objet de notre attention, mais des informations sémantiques qui
peuvent être évaluées par des agents électroniques. La standardisation de langages a été menée
par le World Wide Web Consortium avec RDF,RDFS et OWL.
Les techniques du Web sémantique permettent de représenter du savoir et de tirer les
conclusions de ce savoir représenté. Le Reasoning permet la déduction d’un nouveau savoir à
partir d’un savoir existant selon les règles de la logique. Dans le domaine de l’intelligence
artificielle, dans lequel le Web sémantique a sa place, des concepts fondamentaux de Reasoning
ont été développés au cours des 50 dernières années. Le Rule-Based-Reasoning joue ici un rôle
primordial.
Il s’agira dans ce travail de présenter les concepts de Reasoning en mettant l’accent sur le
Rules-Based Reasoning. Les langages basés sur ces concepts devront être exposés. Il faudra se
pencher tout particulièrement sur des langages compatibles avec le Web sémantique. En fait il
faudra présenter les outils (tools) qui soutiennent ces langages. Il faudra prendre
particulièrement en considération les outils open source ou les outils commerciaux pour
lesquels il existe aussi des versions gratuites.

START-LITERATUR UND LINKS / LITTERATURE ET LIENS


[w3c] World Wide Web Committee: Semantic Web: http://www.w3.org/2001/sw/
[SW] Semantic Web.org: http://semanticweb.org
[Nil98] Nilsson, Nils (1998), Artificial Intelligence: A New Synthesis, Morgan
Kaufmann Publishers, ISBN 978-1-55860-467-4
[RN03] Russell, Stuart J. & Norvig, Peter (2003), Artificial Intelligence: A Modern
Approach (2nd ed.), Upper Saddle River, NJ: Prentice Hall, ISBN
0-13-790395-2, <http://aima.cs.berkeley.edu/>
Abstract

Today the World Wide Web contains almost every information we can imagine.
Every second this huge repository of data is growing. Since the Web had been
enforced to be more interactive and usable (introduction of Web 2.0), the rate of
adding information to it has increased rapidly. This information is usable for users
of the web, but not interpretable by a machine. The focus of the semantic web is
to represent this data in a way that is also processable by machines. To achieve
these, the W3C has published recommendations like RDF, RDFS and OWL. But
these technologies allow not only storing information in a machine processable
format, it´s also possible to add additional data and descriptions about an informa-
tion (knowledge). These knowledge representations can also be used to generate
new knowledge, which is not explicit mentioned in the representation (reasoning).
The purpose of this paper is to expose the differences between these standards
and reasoning technologies, but also to present some popular reasoners and tri-
ple stores (RDF databases) with their advantages and disadvantages. At the end
of the draft there is a chapter which focuses on the usage of semantic technolo-
gies today and in the next generation of the Web (Web 3.0). The supplement of
this document contains information about the tools mentioned in the text, which
enable the reader to get a first overview about them.

1
Zusammenfassung

Heutzutage enthält das World Wide Web fast jede nur vorstellbare Information.
Jede Sekunde wächst der riesige Informationsspeicher. Seitdem das Web benut-
zerfreundlicher und interaktiver geworden ist (Einführung von Web 2.0 Technolo-
gien), steigt die Geschwindigkeit in welcher neue Informationen ergänzt werden
rapide an. Diese Informationen sind für die Benutzer des Web nützlich, jedoch
von Maschinen nicht interpretierbar. Der Ansatz des Semantic Web ist nun, diese
Informationen in einer auch von Maschinen auswertbaren Form zu repräsentie-
ren. Um dies zu erreichen wurden vom W3C eine Reihe von Empfehlungen wie
z.B. RDF, RDFS und OWL veröffentlicht. Diese Technologien ermöglichen es je-
doch nicht nur die Informationen in einer von Maschinen interpretierbaren Form
abzulegen, sondern schaffen auch eine Möglichkeit diese weiter zu beschreiben
und zusätzliche Informationen anzufügen (Wissen). Die so entstehende Wissens-
repräsentation eignet sich ebenfalls, um neues Wissen, welches nicht explizit vor-
handenes ist, von bereits existierendem abzuleiten (Reasoning / Schlussfolgern).
Inhalt dieser Arbeit ist es, gängige Standards und Reasoning Verfahren, aber
auch die Vorzüge und Nachteile verschiedener Reasoner und Triple Stores (RDF
Datenbanken) vorzustellen. Das letzte Kapitel der Ausarbeitung beschäftigt sich
mit der aktuellen Verwendung und dem Einsatz von semantischen Technologien
in der nächsten Generation des Web (Web 3.0). Der Anhang dieses Dokumentes
enthält Informationen über die im Text erwähnten Werkzeuge, welche dem Leser
einen schnellen Überblick über diese verschaffen.

2
Inhaltsverzeichnis

1 Einführung 7
1.1 Semantic Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Ontologie(n) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Basistechnologien im Semantic Web . . . . . . . . . . . . . . . . . 10
1.3.1 RDF - resource description framework . . . . . . . . . . . . 11
1.3.2 RDF/XML - Serialisierung von RDF in XML . . . . . . . . . 12
1.3.3 RDF/N3 - Serialisierung von RDF in Notation 3 . . . . . . . 12
1.3.4 RDF Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.5 OWL - Web Ontology Language . . . . . . . . . . . . . . . 13
1.3.5.1 OWL Full . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.5.2 OWL DL . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.5.3 OWL Lite . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.6 OWL2 - Web Ontology Language Version 2 . . . . . . . . . 15
1.3.6.1 OWL2 EL . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.6.2 OWL2 QL . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.6.3 OWL2 RL . . . . . . . . . . . . . . . . . . . . . . . 16
1.4 Proof and Trust im Semantic Web . . . . . . . . . . . . . . . . . . . 16

2 Reasoning: Methoden zur Inferenz 18


2.1 Open World (OWA) und Closed World (CWA) Assumption . . . . . 18
2.2 Komplexitätsklassen . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Abox und Tbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4 Inferenzverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.1 Deduktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.2 Induktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.3 Analogieschluss . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.4 Abduktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3
Inhaltsverzeichnis

2.5 Monotones und Nicht-Monotones Schließen . . . . . . . . . . . . . 21


2.6 CBR und RBR als Grundlage von Expertensystemen . . . . . . . . 22
2.6.1 CBR - case based reasoning . . . . . . . . . . . . . . . . . 22
2.6.2 RBR - rule based reasoning . . . . . . . . . . . . . . . . . . 22
2.6.3 CBR/RBR - hybrid reasoning . . . . . . . . . . . . . . . . . 23

3 Regel- und Anfragesprachen 24


3.1 Was sind Regeln? . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2 Regelsprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.1 Regeltausch . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.2 Datalog / Prolog . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.3 SWRL - Semantic Web Rule Language . . . . . . . . . . . 26
3.3 Anfragesprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.1 SPARQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.2 Oracle OWL Prime . . . . . . . . . . . . . . . . . . . . . . . 26

4 Tools: Reasonern für das Semantic Web 28


4.1 Pellet - Tableau based . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2 Jena 2 Inference - Tableau based . . . . . . . . . . . . . . . . . . . 29
4.3 Kaon 2 - Resolutionsverfahren . . . . . . . . . . . . . . . . . . . . 29
4.4 RacerPro - Tableau based reasoning . . . . . . . . . . . . . . . . . 29
4.5 FaCT ++ - Tableau based reasoning . . . . . . . . . . . . . . . . . 30
4.6 Prolog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.7 Vergleich der vorgestellten Reasoner . . . . . . . . . . . . . . . . . 31

5 Tools: Triple Stores als Persistenz 33


5.1 AllegroGraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 Ontobroker 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.3 Oracle 11g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.4 Virtuoso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.5 Jena SDB (non native) / TDB (native) . . . . . . . . . . . . . . . . 36
5.6 Vergleich der vorgestellten Triple Stores . . . . . . . . . . . . . . . 37

6 Ausblick: Reasoning im Semantic Web 39

4
Inhaltsverzeichnis

7 Anhang 41
7.1 Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.1.1 Triple Stores im Vergleich . . . . . . . . . . . . . . . . . . . 41
7.1.2 Reasoner im Vergleich . . . . . . . . . . . . . . . . . . . . . 42
7.1.3 Triple Store Benchmark . . . . . . . . . . . . . . . . . . . . 42
7.1.4 Komplexitätsklassen von OWL2 . . . . . . . . . . . . . . . . 43
7.1.5 Verwendete Software . . . . . . . . . . . . . . . . . . . . . 43
7.2 Abbildungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.2.1 Abbildung A: Schichtmodell der W3C Technologie . . . . . 44
7.2.2 Abbildung B: Die Struktur von OWL 2 . . . . . . . . . . . . 45
7.2.3 Abbildung C: Vergleich Triple Stores im Benchmark . . . . 45
7.3 Beispiel Ontologien . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.3.1 Ontologie A . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Literaturverzeichnis 47

5
Abbildungsverzeichnis

1.1 Beispiel: RDF Graph . . . . . . . . . . . . . . . . . . . . . . . . . . 12


1.2 Web Ontology Language - Die Hierarchie der Entitäten [25] . . . . 14
1.3 Web Ontology Language 2 - Die Hierarchie der Entitäten [26] . . . 15

5.1 Architektur AllegroGraph Quelle: Franz Inc. [10] . . . . . . . . . . . 34


5.2 Architektur Ontobroker Quelle: ontoprise GmbH [12] . . . . . . . . 35
5.3 Architektur Virtuoso Universal Server[16] . . . . . . . . . . . . . . 36

7.1 Das Schichtmodell der W3C Technologie[23] . . . . . . . . . . . . 44


7.2 Die Struktur von OWL2[28] . . . . . . . . . . . . . . . . . . . . . . 45
7.3 Vergleich Triple Stores[1] . . . . . . . . . . . . . . . . . . . . . . . 45

6
1 Einführung

Diese Ausarbeitung beschäftigt sich mit Reasoning im Kontext des Semantik


Web. In diesem Kapitel werden zunächst jeweils kurz die Themen Semantic Web,
Ontologie(n) und Formate des Semantic Web vorgestellt. Da die Spezifikation
des Semantic Web jedoch einen sehr großen Umfang an unterstützten Forma-
ten und Sprachen abdeckt, wird sich diese Arbeit konkret auf die zum Zeitpunkt
der Erstellung gängigsten Technologien beschränken. Im weiteren Verlauf wer-
den verschiedene Inferenz-Konzepte vorgestellt und erläutert. Anschließend wer-
den Sprachen vorgestellt, welche diese Ansätze implementieren. Der Fokus wird
hier auf Sprachen liegen, die mit den Technologien des Semantic Web kompati-
bel sind. Am Ende der Arbeit steht ein Vergleich einiger Software Tools (Reasoner
und Triple Stores), welche die zuvor vorgestellten Sprachen unterstützen.

1.1 Semantic Web


Fast jeder Nutzer des Internet musste sich schon einmal der Frage „Was würden
Sie ohne Computer / Internet tun? Wären Sie noch in der Lage sich die benö-
tigten Informationen zu beschaffen?“ stellen. Oft wird die simple Frage mit der
simplen Antwort „Na, klar - das ist kein Problem!“ beantwortet. Zwei Tage später
ist das Internet ausgefallen und Sie erinnern sich an die Frage. Voller Tatendrang
machen Sie sich gleich auf die Suche nach dem Telefonbuch, um die fehlende In-
formation per Telefon erfragen zu können. Doch wo ist es bloß? Unter Umständen
existiert kein Telefonbuch in gebundener Form mehr, denn die Informationen sind
inzwischen online zugänglich - leider nur solange die Infrastruktur hält was sie
verspricht. Schnell wird Ihnen dann wohl bewusst, wie wichtig das Internet nicht
nur für Sie, sondern für die gesamte moderne Gesellschaft ist und welchen enor-
men Stellenwert es für die persönliche Erledigung der täglichen Arbeit hat. Kaum
eine andere Innovation konnte sich einer so rasanten Marktverbreitung erfreu-
en wie das Internet. Doch die Anforderungen an das Netz wachsen. Reicht uns
7
1 Einführung

die Tatsache das eine Information im Internet vorhanden und recherchierbar ist
zur Befriedigung unseres Anspruchs an moderne Informationsgewinnung wirklich
noch aus, oder wollen wir uns dieser Information einfacher bedienen können? Die
aktuelle Erwartung des Internetnutzers ist geprägt von seinen bisherigen Erfah-
rungen. So ist es für Ihn selbstverständlich, dass eine Suche notwendig ist, um
die Informationen im Internet für sich nutzbar zu machen. Was wäre jedoch wenn
die Suchmaschine dem Nutzer immer die Antwort auf seine Frage geliefert hätte?
Wäre er dann immer noch bereit dazu Zeit in die eigene Recherche zu stecken?
Doch was ist notwendig um eine derart komplexe Aufgabe zu realisieren? Welche
Voraussetzungen müsste das Internet erfüllen, damit Suchmaschinen derartige
Herausforderungen bewältigen könnten? Um diese Frage ausreichend beantwor-
ten zu können, ist es notwendig einige der auftretenden Probleme darzustellen.
Grundlegend ursächlich ist die fehlende Semantik bzw. die unklare Struktur der
im Internet verfügbaren Informationen. Jeder Betreiber einer Internetseite kann
seine Daten individuell, jedoch aber unter Beachtung von gewissen Syntaxen,
präsentieren. Die nützlichen Informationen sind nun also für die gewünschte Ziel-
gruppe zugänglich, jedoch in einer nicht direkt vom Computer oder dem Agenten1
interpretierbaren Form. Obgleich für uns als Betrachter einer Informationsquelle
die Aussagen „Herr Müllers neuer PKW ist blau“ und „Der neue Wagen von Karl
Müller ist sehr schön.“ einen gleichen Teilinhalt in sich tragen (nämlich: Karl Müller
besitzt ein neues Auto), so ist dieser Umstand für einen Agenten noch lange nicht
gegeben. Als Fazit hieraus ergibt sich die Notwendigkeit diese Informationen in ei-
nem, wie auch immer dieser aussehen könnte, geeigneten Informationsspeicher
bereitzustellen. In seinem Leserbrief „What the Semantic Web Won’t Do“ grenzt
Tim Bernes-Lee, der „Erfinder“ des World Wide Web dieses vom Semantic Web
wie folgt ab:

The World Wide Web contains documents intended for human con-
sumption, and those intended for machine processing. The Semantic
Web will enhance the latter. The Semantic Web will not understand hu-
man language. The Semantic Web is about machine languages: well-
defined, mathematical, boring, but processable. Data, not poetry.[27]

1
Computerprogramm, welches häufig autonome, proaktive, reaktive und soziale Aspekte besizt
und Lernfähigkeit implementiert
8
1 Einführung

Das Semantic Web kann also als eine technische Plattform angesehen werden,
die für den Benutzer aus dem Hintergrund heraus agiert, jedoch einen enormen
Mehrwert mit sich bringt. Die sich aus den Möglichkeiten ergebenden Einsatzge-
biete wachsen ständig. Es gibt zahlreiche Forschungsprojekte, die sich mit der
Nutzung von semantischen Technologien in den verschiedensten Disziplinen be-
schäftigen. An der Hochschule Darmstadt beispielsweise startete im Sommerse-
mester 2010 das Projekt „KINO“. Ziel des Projektes ist es, auf Basis von seman-
tisch integrierten Informationen, Werkzeuge zum effizienten logischen Schlussfol-
gern zu entwickeln.

1.2 Ontologie(n)
Um die Informationen im Semantic Web verwalten zu können, bedarf es einem
geeigneten Format. Wie bereits festgestellt wurde, ist es wichtig Informationen
semantisch einheitlich zu speichern, jedoch in einer Form, die es erlaubt Zusam-
menhänge ableiten zu können. Das Ableiten von neuen Informationen aus bereits
bekannten wird auch als Schließen, Inferenz oder Reasoning bezeichnet. Um al-
so Reasoning betreiben zu können, muss den Daten noch ein Wissen über Zu-
sammenhänge hinzugefügt werden. Zu diesem Zweck bedient sich die Informatik
hier der so genannten Ontologie. Eine Ontologie beschreibt eine knowledge do-
main2 mit Hilfe einer standardisierten Terminologie. Hinzu kommen Beziehungen
und Ableitungsregeln der dort definierten Begriffe. Als Basis für das gemeinsame
Vokabular dient in der Regel eine so genannte Taxonomie. Sie enthält Klassen,
Relationen, Funktionen und Axiome. Eine Ontologie in der Informatik ist auf einen
Wissensbereich beschränkt. Diese Notwendigkeit ergibt sich aus der Tatsache,
dass verschiedene Wissensbereiche ein unterschiedliches Fachvokabular bedin-
gen. Somit ist die Vorstellung einer gemeinsamen Ontologie (welche sämtliches
Wissen enthält) eher als unrealistisch zu betrachten. In seinem Bericht „Ontolo-
gie(n)“ schlägt Prof. Dr. Wolfgang Hesse wie folgt die Verwendung des Plurals
„Ontologien“ vor:

Da es viele Wissensbereiche - mit einer jeweils eigenen oder sogar


mehreren konkurrierenden Terminologien - gibt, macht hier (im Ge-
gensatz zur Philosophie) auch der Gebrauch des Plurals („Ontologi-
en“) Sinn.[8]
2
Wissensbereich: Gesamtheit des Wissens innerhalb eines Fachbereichs
9
1 Einführung

Die Informatik verwendet Ontologien zurzeit in folgenden Bereichen:

• Kommunikation von Wissen,


• Repräsentation sowie Wiederverwendung von Wissen,
• Automatisches Schließen von Wissen.

Doch welche konkreten Vorteile ergeben sich nun aus der Verwendung von On-
tologien im Semantic Web? Hier kann unter anderem die Steigerung der Inter-
operabilität genannt werden: Kommuniziert zum Beispiel eine Suchmaschine mit
einem WebService ohne Zugang zu einer gemeinsamen Ontologie, so muss eine
gemeinsame Interpretationsvorschrift für die Daten existieren. Steht jedoch eine
gemeinsam nutzbare Ontologie zur Verfügung, kann die Interpretationsvorschrift
entfallen, da die Daten für beide Seiten eindeutig sind. Einen weiteren Vorteil stellt
die Möglichkeit der direkten Inferenz auf Basis des in der Ontologie enthaltenen
Wissens dar.

1.3 Basistechnologien im Semantic Web


1996 startete die Entwicklung von XML3 . XML basiert genau wie HTML auf der
bereits 1986 standardisierten Sprache SGML4 und stellt eine vereinfachte und
auf das Internet zugeschnittene Ausgabe von der sehr mächtigen SGML dar.
XML ist eine beliebig erweiterbare Auszeichnungssprache für hierarchisch struk-
turierte Dokumente und wurde vom W3C5 erstmals am 10.02.1998 spezifiziert.
Mit XML ist der plattform- und implementationsunabhängige Austausch von Da-
ten möglich. Der hohe Freiheitsgrad von XML (zum Beispiel die Definition von
beliebigen eigenen Tags) macht das Format universell einsetzbar. Dies ist jedoch
auch der Grund, warum ein XML Dokument zwar ohne eine direkte Interpretati-
onsvorschrift gelesen, aber nicht verarbeitet werden kann. Ohne das notwendige
Hintergrundwissen über den Aufbau eines XML Dokumentes, ist eine maschi-
nelle Auswertung nicht möglich. Hier schaffen Technologien, wie unter anderem
XML Namensräume, XML Schema und DTD6 Abhilfe. Sie normieren Begriffe, de-
finieren Datentypen und den Aufbau eines Dokumentes. Diese flexible Kopplung
von Daten (XML) zu einer Interpretationsvorschrift (z.B. XHTML) hat maßgeb-

3
eXtensible Markup Language
4
Standard Generalized Markup Language
5
World Wide Web Consortium
6
Dokumententyp-Deklaration - formale Definition der Dokumentenstruktur
10
1 Einführung

lich zu der rasanten Verbreitung des Standards beigetragen. Trotz der Effizienz
von XML, DTD und XML Schema sind diese alleinstehend im Kontext des Se-
mantic Web als nicht ausreichend effektiv anzusehen. Das Semantic Web ist auf
komplexe Wissensrepräsentationen angewiesen, welche sich mit den bisherigen
Standards nicht in der benötigten Form abbilden lassen. Hierzu wurden vom W3C
zusätzliche Standards wie zum Beispiel RDF, RDFS und OWL spezifiziert.

1.3.1 RDF - resource description framework


Da die von mir bisher in dieser Arbeit vorgestellten Technologien nicht als für
eine Wissensrepräsentation geeignet angesehen werden können, sind zusätzli-
che Technologien notwendig. Dazu wurde das Resource Description Framework
(RDF) entwickelt. Es wurde 1997 erstmals in einer Empfehlung des W3C[19] ver-
öffentlicht. Das RDF Format bietet nun die Möglichkeit, Statements in Form von
Subjekt, Prädikat, Objekt zu definieren. Das Subjekt stellt hierbei die Ressource
dar. Das Prädikat ist ein Merkmal dieser und meist Ausdruck einer Beziehung zwi-
schen Subjekt und Objekt. Das Objekt tritt als Objekt der Beziehung bzw. als Wert
des Prädikates auf. Als Beispiel könnte eine Aussage wie „Karl Müller studiert an
der h_da“ angesehen werden. In diesem Fall wäre das Subjekt „Karl Müller“, das
Prädikat „studiert an“ und das Objekt „h_da“. Aussagen in dieser Form werden
auch als RDF Tripel bezeichnet. Mit der Eigenschaft rdf:type ist es möglich dem
Objekt „h_da“ den Typ „Hochschule“ zuzuweisen. Soweit lassen sich nun also
Daten mit der dazugehörenden Semantik darstellen. Durch die Möglichkeit die
so definierten Informationen miteinander zu verknüpfen, entsteht ein gerichteter
Graph. So könnten weitere in RDF formulierte Aussagen „h_da ist in Darmstadt“
und „Karl Müller wohnt in Frankfurt“ sein. Hierdurch würde sich aus den Aussagen
ein RDF Graph ergeben (siehe Abbildung 1.1). Die Verknüpfung der Aussagen
basiert auf der sogenannten Reifikation7 . RDF stellt somit eine allgemeine Spra-
che zur Repräsentation von Wissen im Netz dar.

7
Reifikation: Objekt eines RDF Tripel kann wiederum ein Triple sein (Aussagen über Aussagen)

11
1 Einführung

Abbildung 1.1: Beispiel: RDF Graph

1.3.2 RDF/XML - Serialisierung von RDF in XML


Da das in RDF repräsentierte Wissen einer Persistenz bedarf, wurde vom W3C
mit RDF/XML[21] ein Standard für die Abbildung in XML geschaffen. Das Beispiel
zeigt die serialisierte Darstellung des zuvor erzeugten RDF Graphen.
1 <?xml v e r s i o n = " 1 . 0 " ?>
2 < r d f :RDF
3 xmlns : r d f = " h t t p : / / www. w3 . org /1999/02/22 − r d f−syntax−ns# "
4 xmlns : ex1= " h t t p : / / h−da . de / concepts # " >
5 < r d f : D e s c r i p t i o n r d f : about= " h t t p : / / h−da . de / e n t i t y / K a r l _ M u e l l e r " >
6 < r d f : t y p e r d f : r e s o u r c e = " h t t p : / / h−da . de / concepts / Person " / >
7 <ex1 : S t u d i e r t A n r d f : r e s o u r c e = " h t t p : / / h−da . de / e n t i t y / h_da " / >
8 </ r d f : D e s c r i p t i o n >
9 < r d f : D e s c r i p t i o n r d f : about= " h t t p : / / h−da . de / e n t i t y / h_da " >
10 < r d f : t y p e r d f : r e s o u r c e = " h t t p : / / h−da . de / concepts / Hochschule " / >
11 </ r d f : D e s c r i p t i o n >
12 </ r d f : RDF>

1.3.3 RDF/N3 - Serialisierung von RDF in Notation 3


Ebenso wie RDF/XML, stellt Notation 3 eine Serialisierung von RDF Graphen
dar. Die Spezifikation wurde von Tim Berners-Lee verfasst und 1998 vom W3C
veröffentlicht.[3]. Notation 3 basiert nicht auf XML und stellt eine für Menschen
lesbarere Abbildung von RDF dar.
1 @prefix ex1 : < h t t p : / / h−da . de / concepts #> .
2 @prefix r d f : < h t t p : / / www. w3 . org /1999/02/22 − r d f−syntax−ns#> .
3 < h t t p : / / h−da . de / e n t i t y / K a r l _ M u e l l e r > r d f : t y p e < h t t p : / / h−da . de / concepts / Person > ;
4 ex1 : S t u d i e r t A n < h t t p : / / h−da . de / e n t i t y / h_da> .
5 < h t t p : / / h−da . de / e n t i t y / h_da> r d f : t y p e < h t t p : / / h−da . de / concepts / Hochschule > .

1.3.4 RDF Schema


Mit RDF ist es nun möglich Aussagen über Objekte zu treffen und diese mit-
einander in Relation zu setzen. Doch fehlen Konstrukte um Eigenschaften von
Objekten genauer beschreiben zu können. Hier schafft der 2004 vom W3C veröf-
fentlichte Standard RDF Schema (RDFS) Abhilfe[20]. Mit Hilfe dieses Standards
ist es möglich, die zuvor in RDF verknüpften Ressourcen näher zu bestimmen.

12
1 Einführung

RDFS ermöglicht es eine benutzerdefinierte Terminologie zu definieren, daher


wird die Sprache auch oft als eine erste, wenn auch einfache, Ontologiesprache
angesehen. Wichtige Konstrukte von RDFS sind:
Klassen:

• rdfs:Resource: Klasse aller Ressourcen.


• rdfs:Class: Klasse aller Ressourcen die Klassen sind.
• rdfs:Literal: Klasse aller literarischen Werte wie z.B. String und Integer
• rdfs:Property: Klasse der Eigenschaften
• rdfs:Statement: Klasse der Reifikationen

Eigenschaften:

• rdfs:subClassOf: Unterklasse von (Transitivität)


• rdfs:subPropertyOf: Untereigenschaft von (Transitivität)
• rdfs:domain: Legt fest für welche Klassen eine Eigenschaft sinnvoll ist.
• rdfs:range: Datentyp des Objektes

Mit Hilfe der neuen Elemente ist es möglich das vorherige Beispiel zu erweitern.
Die Ressource Hochschule kann nun mit rdf:subClassOf Bildungseinrichtungen
zum Beispiel als ein Bildungseinrichtung definiert werden.

1.3.5 OWL - Web Ontology Language


Die Web Ontology Language basiert im Wesentlichen auf DAML+OIL. Sie er-
gänzt RDFS um noch fehlende Features, die benötigt werden um vollwertige On-
tologien abzubilden. Hierzu zählt unter anderem die Möglichkeit der Bildung von
Subklassen über Schnittmengen (z.B. Klasse Europa mit allen Ländern im Konti-
nent Europa). Für die Konstruktion neuer Klassen stehen unter anderem folgende
Möglichkeiten zur Verfügung: Aufzählung der Instanzen, Schnittmengen verschie-
dener Klassen, Vereinigung mehrerer Klassen, Kardinalitäten oder Komplemen-
täroperationen. Da die Web Ontology Language sehr komplexe Möglichkeiten zur
Wissensrepräsentation integriert, definierte das W3C die Sprache in 3 Stufen um
die Handhabung zu vereinfachen. Die Abbildung 1.2 stellt die Hierarchie der En-
titäten in OWL dar.

13
1 Einführung

Abbildung 1.2: Web Ontology Language - Die Hierarchie der Entitäten [25]

1.3.5.1 OWL Full


OWL Full stellt die maximale Ausbaustufe von OWL dar und es existieren somit
keine Einschränkungen. Aufgrund dieser Tatsache ist die Sprache sehr komplex
und gilt als nicht entscheidbar. In OWL Full ist das Konstrukt owl:Class als äqui-
valent zu rdfs:Class, sowie owl:Thing als äquivalent zu rdfs:resource anzusehen.
Eine Instanz einer Klasse kann wiederum eine Klasse sein.

1.3.5.2 OWL DL
OWL DL8 hat zum Ziel die maximale im Reasoning noch entscheidbare Menge an
Konstrukten zu erlauben. Hierzu trennt die Sprache DL strikt zwischen Klassen
(owl:Class) und Instanzen (owl:Thing). Damit ist es nicht mehr möglich, dass eine
Instanz einer Klasse wiederum eine Klasse ist. Auf die Benutzung von RDFS
Konstrukten sollte hier verzichtet werden (good practice). Die Komplexität von
OWL DL liegt in NEXPTIME.

1.3.5.3 OWL Lite


OWL Lite verfügt über alle Restriktionen von OWL DL. Zusätzlich sind jedoch
zur Konstruktion von Klassen nur der Durchschnitt und Eigenschaftseinschrän-
kungen zulässig. Hierdurch soll die Sprache einfacher zu implementieren, aber
dennoch leistungsstark im Reasoning sein. Die Komplexität von OWL Lite liegt in
EXPTIME.

8
Description Logic
14
1 Einführung

1.3.6 OWL2 - Web Ontology Language Version 2


Bereits 2004 wurde die Web Ontology Language in ihrer ersten Version vom W3C
eingeführt. Im Laufe der Zeit wurde jedoch klar, dass die Implementierung der
Sprache keinesfalls so leicht ist wie dies ursprünglich angestrebt war. So ist zum
Beispiel OWL-Lite von der Komplexität beinahe so mächtig wie OWL DL. Ein
Indikator für die geringe Praxistauglichkeit der Sprache ist die langsame Verbrei-
tung am Markt[7]. OWL 2 verfolgt den Ansatz einer einfacheren und praxisnähe-
ren Implementierung der Web Ontology Language. Um dieses Ziel zu erreichen,
wurden in OWL 2 drei Sprachprofile eingeführt. Diese können je nach Komple-
xität der zu realisierenden Anwendung verwendet werden. Unabhängig von der
Vereinfachung der Implementierung wird die Syntax (z.B. um disjoint union von
Klassen) und die Ausdrucksfähigkeit (Schlüssel, Verkettung von Eigenschaften,
...) im Vergleich zur Web Ontology Language der ersten Version erweitert. Die
Abbildung 1.3 stellt die Hierarchie der Entitäten in OWL 2 dar. Ein weiteres wich-
tiges Merkmal der neuen Sprache ist die Möglichkeit zur Interaktion mit relationa-
len Datenbanksystemen, welche die Verarbeitungszeit von großen Datenmengen
enorm beschleunigt, bzw. diese erst wirklich möglich macht. Eine Übersicht über
die Komplexitätsklassen in OWL 2 bzw. OWL DL finden Sie im Anhang 7.1.4
(Komplexitätsklassen von OWL2).

Abbildung 1.3: Web Ontology Language 2 - Die Hierarchie der Entitäten [26]

15
1 Einführung

1.3.6.1 OWL2 EL
Das Profil EL richtet seinen Fokus auf Ontologien, welche eine große Menge von
Eigenschaften und Klassen beinhalten. Es basiert auf der Beschreibungslogik
EL + +. Die Taxonomie entspricht der Komplexitätsklasse PTIME.

1.3.6.2 OWL2 QL
Im Profil QL fokussiert die Web Ontology Language 2 Anwendungen, welche
mit einer großen Menge von Instanzen arbeiten. Hierfür unterstützt das Profil
die Einbindung von relationalen Datenbanken. Seine Taxonomie entspricht der
Komplexitätsklasse NLogSpace.

1.3.6.3 OWL2 RL
Mit RL schafft die OWL 2 ein Profil, welches auf die Verwendung mit regelbasierte
Systeme zugeschnitten ist. Die Implementierung ist verhältnismäßig einfach, da
zur Definition von Regeln OWL Axiome dienen. Die Taxonomie des Profils verfügt
über eine Komplexität von PTIME.

1.4 Proof and Trust im Semantic Web


Das Semantic Web trägt eine große Menge von Wissen in sich. Je größer der
Bestand an Fakten jedoch wird, desto wahrscheinlicher ist das Auftreten wieder-
sprüchlicher Informationen in der Wissensrepräsentation. Um mit diesem Um-
stand umgehen zu können, sieht das Semantic Web die auf der Logikschicht
aufbauenden Strategien Proof9 und Trust10 vor. Trotz ihrer Notwendigkeit sind
diese Konzepte in den letzen Jahren zwar weiterentwickelt worden, jedoch noch
weit von einer Standardisierung entfernt. Die Beweis-Schicht (proof layer) hat die
Aufgabe das World Wide Web bzw. die Ontologie zu durchsuchen, um die Wahr-
heit einer Aussage zu beweisen oder zu wiederlegen. Bei der Vertrauens-Schicht
(trust layer) handelt es sich um Informationen, welche für eine Vertrauensstellung
zwischen Agenten und Aussagen benötigt werden. Sie hat nicht die Aufgabe feh-
lerhafte Aussagen in einer Ontologie zu unterbinden, sondern vielmehr gibt sie

9
Strategien zum Beweis oder Wiederlegen von Aussagen
10
Strategien zur Schaffung einer Vertrauensstellung

16
1 Einführung

dem Agenten die Möglichkeit die Glaubwürdigkeit einer Aussage anhand eines
Herausgebers einzustufen.[15]

17
2 Reasoning: Methoden zur
Inferenz

Die Verknüpfung der im Web enthaltenen Fakten mit den dazugehörigen Bedeu-
tungen stellt die Grundlage des Semantic Web dar. Was nun noch fehlt sind Tech-
niken, um dieses Wissen intelligent bewerten und interpretieren zu können. Hier
kommen nun Verfahren der Inferenz, also Reasoningtechnologien, zum Einsatz.
Das Reasoning1 ist jedoch keine Erfindung des Semantic Web, sondern ein Be-
reich der künstlichen Intelligenz. Der folgende Teil der Arbeit beschäftigt sich mit
den Grundlagen, Methoden und Anwendungen des Reasonings.

2.1 Open World (OWA) und Closed World (CWA) As-


sumption
Für die Komplexität und Entscheidbarkeit eines Algorithmus, ist die Betrachtung
der Ontologie entscheidend. Während die Closed World Assumption (CWA) nur
auf Basis des in der Ontologie bekannten Wissens agiert, geht die Open World
Assumption (OWA) immer von einer unvollständigen Ontologie und somit nicht
bekanntem Wissen aus. Existiert zum Beispiel in einer Ontologie keine Informati-
on „Autos können schwimmen“ so würde die Fragen „Können Autos schwimmen“
von einem CWA basierten Reasoner mit „Nein“ beantwortet, da er in der Onto-
logie keinen Hinweis auf schwimmende Autos finden kann. Ein OWA basierter
Reasoner würde die gleiche Frage jedoch mit „es konnte kein Hinweis darauf ge-
funden werden, aber es ist durchaus möglich“ beantworten, was die Komplexität
erhöht und die Abfragen unentscheidbar macht. Häufig ist man im praktischen
Einsatz von Reasoningtechnologien gezwungen von der CWA auszugehen, um
die Entscheidbarkeit beizubehalten. Ein Beispiel wäre die Frage nach dem gün-

1
Reasoning: Schließen, Schlüsse ziehen
18
2 Reasoning: Methoden zur Inferenz

stigsten Preis für ein bestimmtes Produkt. Diese ist in der CWA entscheidbar, in
einer OWA jedoch niemals. Es kann nie ausgeschlossen werden das das Produkt
noch irgendwo günstiger verfügbar ist, was jedoch für den praktischen Einsatz
(z.B. in einem Preisvergleichs-Portal) nicht akzeptabel ist.

2.2 Komplexitätsklassen
Die Analyse von Algorithmen und die O() Notation ermöglicht es, über die Effi-
zienz eines bestimmten Algorithmus zu sprechen. Die Komplexitätsanalyse ana-
lysiert Probleme (nicht Algorithmen) und ordnet diesen Komplexitätsklassen zu.
Unterschieden werden u.a.:

• P : Klasse aller in Polynomialzeit lösbarer Probleme (deterministische)


• N P : Klasse aller in Polynomialzeit lösbarer Probleme (nicht deterministi-
sche)
• P SP ACE: Klasse aller mit polynomiellem Platz lösbaren Problemen. (de-
terministisch / nicht deterministisch)
• EXP T IM E: Klasse aller in exponentieller Zeit lösbarer Probleme. (deter-
ministisch)
• N EXP T IM E: Klasse aller in exponentieller Zeit lösbarer Probleme. (nicht
deterministisch)

2.3 Abox und Tbox


Da der Schwerpunkt bei semantischen Netzen nicht auf der Beschreibung von
Zusammenhängen auf der Ebene von Individuen2 , sondern auf der von Konzep-
ten3 liegt, ist es notwendig die Wissensbasis in zwei Ebenen zu unterteilen. Diese
Anforderung wird durch eine Einteilung des Wissens in eine Abox (Behauptun-
gen) und ein Tbox (Terminologie) umgesetzt. Die Abox enthält Fakten, wie zum
Beispiel „Karl Müller ist eine Person“. Die Tbox wiederum enthält Aussagen über
die Terminologie, also zum Beispiel „Personen haben Berufe“ oder auch „Ange-
stellte sind Personen“.

2
Instanzen einer Klasse (z.B. Karl Müller als Instanz des Konzept Mensch)
3
Klassen bzw. Begriffe (z.B. Mensch, Fahrzeug, ..)

19
2 Reasoning: Methoden zur Inferenz

2.4 Inferenzverfahren
Inferenzverfahren bilden die Schlüsseltechnologie zur Implementierung moder-
ner Reasoning-Algorithmen. Je nach gegebenen Fakten, Resultaten und Geset-
zen kommen verschiedene Verfahren zum Einsatz. Im Folgenden werden drei
Inferenzverfahren, nämlich die Deduktion, Induktion und Abduktion vorgestellt.

2.4.1 Deduktion
Eine Deduktion ist die Anwendung von allgemeinen Regeln auf Fakten. Sie hat
somit den Charakter einer „Wenn -> Dann“ Schlussfolgerung und besitzt eine
gegebene Notwendigkeit. Gehen wir also zum Beispiel von der Regel „Alle Ford
Modell T sind schwarz “ und der Aussage „Tina besitzt einen Ford Modell T“ aus,
so kann ein gültiger deduktiver Schluss „Tinas Auto ist schwarz“ lauten.

2.4.2 Induktion
Die Induktion ist ein synthetisches Verfahren und versucht auf Basis von Resul-
taten und Fällen die dazugehörigen Gesetzmäßigkeiten zu bestimmen. Geset-
ze die durch Induktion bestimmt wurden müssen nicht allgemein gültig sein, da
diese nur auf den bekannten Fakten und Resultaten beruhen. Ein Beispiel: Eine
Ontologie kennt 10.000 Ford des Modell T. Diese werden in verschiedensten Aus-
sagen verwendet. Zu 9.000 dieser 10.000 Autos ist eine Farbinformation, nämlich
„schwarz“, hinterlegt. Bei den restlichen 1000 Ford T wurde kein Farbwert hin-
terlegt. Somit sind alle in der Ontologie bekannten Ford Modell T, die über eine
hinterlegte Farbeigenschaft verfügen, schwarz. Zusätzlich existiert noch die Aus-
sage „Tina Maier fährt einen Ford Modell T“. In der Ontologie ist kein Farbwert für
den Ford T von Tina hinterlegt. Durch Induktion ist es nun möglich die Farbe von
Tinas Auto herzuleiten, nämlich schwarz. Ein wichtiger Unterschied zur Deduktion
stellt die Tatsache dar, das neu in der Ontologie eingetragene Informationen den
Schluss ungültig machen können. Würde nur ein Ford Modell T mit einer Farbe
ungleich schwarz eingetragen, würde der Schluss seine Gültigkeit verlieren.

2.4.3 Analogieschluss
Das Analogieschlussverfahren ist eine Sonderform der Induktion. Auch dieses
Verfahren untersucht das Wissen einer Ontologie, jedoch im Bezug auf die Ana-

20
2 Reasoning: Methoden zur Inferenz

logie von Aussagen. Ein Beispiel: Geben sind die folgenden Fakten: „Ein Auto
kann eine Person befördern“, „Ein Auto ist ein Verkehrsmittel“ und „Ein Bus kann
eine Person befördern“. Hieraus kann nun der folgende Analogieschluss gezogen
werden: „Ein Bus ist ein Verkehrsmittel“. Selbstverständlich benötigt auch dieses
Verfahren, genau wie die Induktion, eine große Menge an Wissen in der Onto-
logie um eine ausreichende Zuverlässigkeit im Wahrheitsgehalt der Schlüsse zu
erreichen.

2.4.4 Abduktion
Auch die Abduktion ist synthetisch. Sie schließt aus einem bekannten Resul-
tat auf einen möglichen Fall und ein mögliches Gesetz. Die Abduktion ist das
Schlussverfahren mit dem höchsten Fehlerrisiko, da von einem Bekannten (näm-
lich dem Resultat) auf zwei Unbekannte geschlossen wird. Als Beispiel kann auch
hier die Aussage „Karl Müller fährt ein schwarzes Auto“ angesehen werden. Eine
mögliche abduktive Lösung wäre nun, von dem Gesetz „Alle Ford Modell T sind
schwarz“ auf „Karl Müller fährt ein Ford Modell T“ zu schließen. Ohne großen Auf-
wand ist zu erkennen, wie gering die Wahrscheinlichkeit eines wahren Schlusses
ist, dennoch ist der abduktive Schluss gültig. Bei der Abduktion sind meist meh-
rere Lösungen möglich, wobei einer der Lösungen durch Logik (Abwägung) ein
Vorrang gewährt wird.

2.5 Monotones und Nicht-Monotones Schließen


Die Unterscheidung von monotonen und nicht-monotonen Schlüssen ist beim Re-
asoning von elementarer Bedeutung. Beim monotonen Schließen hat das Hin-
zufügen von Wissen in einer Ontologie keine verminderten Einfluss auf einen
zuvor gezogenen Schluss. Somit ist es nicht möglich das ein neues Statement
eine negative Auswirkung auf einen zuvor gezogenen Schluss hat. Beim nicht-
monotonen Schließen kann neues Wissen in einer Ontologie den zuvor gezoge-
nen Schluss jedoch negativ beeinflussen. Ein solcher Schluss kann z.B. auf Ba-
sis eines induktiven Schlusses auftreten: „Alle Objekte auf dem Tisch sind blau“
-> „Alle Objekte auf dem Tisch sind aus der Kiste“ -> „Alle Objekte in der Kiste
sind blau“. Wird nun nur ein Element aus der Kiste entnommen das nicht blau
ist, würde der zuvor induktiv gefasste Schluss nicht mehr zutreffen. Eine neue

21
2 Reasoning: Methoden zur Inferenz

Information (nämlich das nicht blaue Objekt) widerlegt also den zuvor gültigen
Schluss.

2.6 CBR und RBR als Grundlage von Expertensyste-


men
2.6.1 CBR - case based reasoning
Das fallbasierte Schließen (CBR) ist ein dem Analogieschluss ähnliches Verfah-
ren, welches auf bereits gelösten Fällen aufbaut und das Ableiten von Analo-
gien nutzt um neue Fälle zu lösen. Es unterscheidet sich hauptsächlich in der
Ausrichtung, da es weniger auf abstraktem Wissen und den strukturellen Ähn-
lichkeiten aufbaut, sondern eher pragmatisch orientiert ist und die Beziehung
zwischen Episoden abbildet. Das Verfahren wird u.a. häufig in Help-Desk Syste-
men eingesetzt, wo man es zur Diagnose- und Lösungsunterstützung bei Proble-
men einsetzt. Auch sind Anwendungen im Bereich der Beratungssysteme von E-
Commerce Anwendungen vorgesehen. Die Grundlage des CBR Systems bildet
die Falldatenbank, in welcher sich die Referenzfälle befinden. Diese Referenzfälle
können jedoch auch in der Ontologie vorgehalten werden[17].

2.6.2 RBR - rule based reasoning


Das regelbasierte Schließen (RBR) basiert auf der Verkettung von Regeln, wel-
che in einer Regelbasis gespeichert sind. Eine Regel besteht aus WENN (Prä-
misse) und DANN (Konklusion). Regelbasierte Systeme können datengetrieben
(Vorwärtsverkettung) oder zielgetrieben (Rückwärtsverkettung) arbeiten. Die Vor-
wärtsverkettung (forward chaining) versucht auf Basis von Tatsachen und Regeln
eine gültige Konklusion zu finden. Die Rückwärtsverkettung (backward chaining)
versucht hingegen auf Basis von Konklusionen und Regeln die möglichen Tat-
sachen, die zum Eintritt der Konklusion geführt haben zu ermitteln. Oft ist es
notwendig Vorwärts- und Rückwärtsverkettungen zu kombinieren um komplexe
Schlussfolgerungen ziehen zu können[17].

22
2 Reasoning: Methoden zur Inferenz

2.6.3 CBR/RBR - hybrid reasoning


Ein moderner Ansatz ist die Kombination von CBR und RBR in so genannten
Hybrid-Systemen. Hierbei agieren beide Reasoner getrennt oder in einer imple-
mentationsabhängigen Verkettung. Ein Beispiel für den Einsatz einer solchen hy-
briden Technologie in der Praxis demonstriert der Vortrag von Andreas Schön-
born (T-Systems) und Peter Kleinhans (iisy AG) „Einsatz eines wissensbasierten
Diagnosesystems in der Praxis des technischen Service“[18] .

23
3 Regel- und Anfragesprachen

3.1 Was sind Regeln?


Regeln beschreiben Gesetzmäßigkeiten, Richtlinien und Normen, können aber
auch wahrscheinliche, periodische oder regelmäßige Dinge ausdrücken.
Sie lassen sich in folgende Gruppen unterteilen:[11]

• - Logische Regeln: logische Erweiterung der Wissensbasis, Open World,


deklarativ
• - Prozedurale Regeln: ausführbare Maschinenanweisung (IF x THEN y EL-
SE z), operational
• - Logikprogrammierung (z.B. Prolog): Approximation logischer Semantik mit
operationalen Aspekten, häufig Closed World
• - Ableitungsregeln eines Kalküls (z.B. Regeln zur RDF Semantik)

Bezeichnungen für „Regeln“ der Prädikatenlogik:[14]

• Klausel: Disjunktion von atomaren Aussagen oder negierten atomaren Aus-


sagen.
F rau(x) ∨ M ann(x) ← P erson(x)
• Hornklausel: Klausel mit HÖCHSTENS einem nicht negierten Atom.
← M ann(x) ∧ F rau(x)
• Definite Klausel: Klausel mit GENAU einem nicht negierten Atom
V ater(x) ← M ann(x) ∧ hatKind(x, y)
• Fakt: Klausel aus einem EINZIGEN nicht negierten Atom.
F rau(katarina)

3.2 Regelsprachen
Trotz der Ausdrucksmächtigkeit der Web Ontology Language, ist es teilweise nö-
tig diese mit Hilfe von Regelsprachen zu erweitern um generelle Gesetzmäßig-
keiten einfacher ausdrücken zu können (z.B. Erwachsene sind Personen >= 18).
24
3 Regel- und Anfragesprachen

Auch ist es mit Hilfe von Regelsprachen möglich, Regeln unter Anwendungen zu
tauschen (z.B. Geschäftsregeln). Im Folgenden werden wichtige Grundideen im
Bezug auf Regelsprachen vorgestellt.

3.2.1 Regeltausch
Um einen standardisierten Regeltausch zwischen den verschiedenen Regelspra-
chen und Inferenzsystemen zu ermöglichen, wurde 2005 vom W3C mit der Ent-
wicklung eines hierfür geeigneten Formates, dem RIF (Rule Interchange Format)
begonnen.[27] Unabhängig von den Bemühungen des W3C einen Standard zu
finden, wurde im von der EU geförderten Projekt REWERSE (Working Group
I1) bereits das Regelaustauschformat R2ML entwickelt. Die R2ML stellt ein ver-
ständliches, benutzerfreundliches und auf XML basierendes Regelformat dar.[9]

3.2.2 Datalog / Prolog


Die Sprache Prolog beschreibt logische Zusammenhänge elegant, kompakt und
deklarativ. Zusätzlich existieren noch prozedurale Komponenten, die zur Pro-
grammierung von Algorithmen zwangsläufig notwendig sind. Einer der Pioniere
der Logikprogrammierung ist Robert Kowalski, der diesen Zusammenhang ein-
mal mit der Formel „Algorithm = Logic + Control“ [5] ausdrückte. In der KI und
in der Computerlinguistik ist Prolog auch heute noch weit verbreitet. Für Pro-
log stehen zahlreiche leistungsfähige Tools wie zum Beispiel SWI-Prolog (siehe
verwendete Software im Anhang 7.1.5) zur Verfügung, mit welchen ein schnel-
ler Einstieg in die Logikprogrammierung möglich wird. Datalog ist eine logische
Regel- und Abfragesprache, welche Wissensbasen („Datalog, Programme“) aus
Horn-Klauseln ohne Funktionssymbol darstellt. Datalog unterscheidet sich in sei-
ner Syntax nur geringfügig von Prolog, verfügt jedoch nicht über den vollen Lei-
stungsumfang. Sie ist, genau wie Prolog, entscheidbar und effizient für große
Datenmengen. Die Gesamtkomplexität beträgt wie bei OWL Lite EXPTIME. So
könnte ein Beispielprogramm, welches die Möglichkeit einer Zugverbindung zwi-
schen Seligenstadt und Frankfurt evaluiert, wie folgt aussehen:
1 train_connection ( " F r a n k f u r t " , " Hanau " ) .
2 train_connection ( " Hanau " , " S e l i g e n s t a d t " ) .
3 city_connected ( X , Y) :− train_connection ( X , Y) .
4 city_connected ( X , Y) :− train_connection ( Y , X) .
5 city_connected ( X , Y) :− city_connected ( Y , Z ) , city_connected ( Z , X) .
6 ?− city_connected ( " S e l i g e n s t a d t " , " F r a n k f u r t " ) .

25
3 Regel- und Anfragesprachen

3.2.3 SWRL - Semantic Web Rule Language


Die SWRL stellt eine Empfehlung des W3C für eine Kombination von OWL (DL/-
Lite) mit der RuleML (Rule Markup Language) dar.[22]. Ein Feature der Spra-
che sind Built-Ins, welche sich in verschiedene Kategorien Vergleich, Mathematik,
Wahrheitswerte, Zeichenketten, Zeiten, Ressourcenbezeichner (URI) und Listen
einteilen lassen. Die Semantic Web Rule Language wird von vielen gängigen Tri-
ple Stores und Reasonern unterstützt. Das zuvor in Prolog formulierte Beispiel
würde, auf Basis im Anhang befindlichen Ontolgie A, in SWRL wie folgt formu-
liert:
1 hasConnection ( ? x , ?y ) → hasConnection ( ? y , ?x )
2 hasConnection ( ? x , ?y ) ∧ hasConnection ( ? y , ?z ) → hasConnection ( ? x , ?z )

3.3 Anfragesprachen
3.3.1 SPARQL
Die Protokoll- und Anfragesprache SPARQL wurde am 15.01.2008 vom W3C als
Empfehlung freigegeben.[24] Trotz großer Unterschiede erinnert die Sprache rein
optisch und in Teilen ihrer Syntax an SQL. Es gibt vier unterschiedliche Formen:
SELECT: Liefert direkt Variablen oder deren Bindungen zurück.
CONSTRUCT: Konstruiert, mit Hilfe des bei der Anfrage verwendeten Graph
Template, durch Ersetzen von Variablen einen neuen Graphen.
ASK: Liefert ein boolsches Ergebnis zurück, ob eine Anfrage ein Ergebnis liefern
würde.
DESCRIBE: Liefert einen einzigen RDF Graphen zurück, welcher die gefunde-
nen Ressourcen beschreibt.
Die Sprache wird von den meisten gängigen Semantic Web Tools unterstützt und
verfügt über eine einfache Syntax. Beispiel einer SELECT Anfrage:
1 PREFIX ex1 : < h t t p : / / h_da . de / ex1 . owl#>
2 SELECT ? class
3 WHERE {
4 ? class r d f : type ex1 : C i t y .
5 ? class ex1 : hasConnection ex1 : S e l i g e n s t a d t
6}

3.3.2 Oracle OWL Prime


Bereits im Jahr 2005 führte Oracle in der Version 10gR2 die Unterstützung von
RDF in seinem Datenbanksystem ein, mit welcher es möglich war Abfragen

26
3 Regel- und Anfragesprachen

auf RDF Graphen und sogar RDFS Schlussfolgerungen mit benutzerdefinier-


ten Regeln auszuführen. In der aktuellen Version (11g) ging Oracle noch einen
Schritt weiter und kreierte mit OWL Prime eine Anfragesprache, die ein Subset
von OWL-DL unterstützt. Die Sprache ist für große Datenmengen ausgelegt
(Unterstützung von mehr als 100 Millionen Tripeln) und wurde als eine Daten-
bankapplikation implementiert. Hieraus resultiert wohl hauptsächlich die gute
Performance bei großen Datenmengen. OWL Prime unterstützt folgende Kon-
strukte:

• rdfs:subClassOf, subPropertyOf, domain, range


• owl:TransitiveProperty, SymmetricProperty, FunctionalProperty, Inverse-
FunctionalProperty
• owl:inverseOf, sameAs, differentFrom
• owl:disjointWith, complementOf
• owl:hasValue, allValuesFrom, someValuesFrom
• owl:equivalentClass, equivalentProperty

27
4 Tools: Reasonern für das
Semantic Web

Die einheitliche Wissensrepräsentation im Semantic Web wird durch Technolo-


gien wie RDF, RDFS und OWL standardisiert und schafft somit die Möglichkeit
für den Einsatz von so genannten Reasonern. Diese arbeiten nach verschiede-
nen Verfahren (siehe Kapitel 2) und verfolgen das Ziel, neues Wissen (welches
nicht explizit vorhanden ist), aus der Ontologie abzuleiten. In den letzten Jahren
wurden viele Reasoner für das Semantic Web entwickelt. Die meisten moder-
nen Reasoner basieren auf Tableau Algorithmen, welche schon 1991 erstmals
von Schmidt-Schauß und Smolka im Kontext der Inferenzverfahren eingesetzt
wurden[6]. Im Rahmen dieser Arbeit werde ich mich auf die nun folgende Aus-
wahl an Reasonern beschränken.

4.1 Pellet - Tableau based


Pellet ist ein OWL-DL Reasoner für JAVA, der in seiner aktuellen Version bereits
OWL2-DL unterstützt. Er integriert neben bewährten Reasoningverfahren auch
einige sehr innovative neue Algorithmen wie zum Beispiel „Incremental Reaso-
ning“1 .Ein Feature ist die integrierte Konsistenzprüfung, welche sicherstellt dass
eine Ontologie keine widersprüchlichen Fakten enthält. Die Nutzung der Kompo-
nente in kostenlosen Open Source Projekten ist gestattet. Für die Verwendung in
kommerziellen oder nicht Open Source Projekten wird eine Lizenz benötigt. Das
Reasoning erfolgt mittels eines Tableauverfahrens, welches auf Basis von Regeln
arbeitet und SWRL unterstützt.

1
Incremental Reasoning: Updates der Wissensbasis werden direkt verarbeitet, Wiederverwen-
dung von Informationen

28
4 Tools: Reasonern für das Semantic Web

4.2 Jena 2 Inference - Tableau based


Jena ist ein Semantic Web Framework, welches Interfaces zur Einbindung ver-
schiedener externer Reasoner zur Verfügung stellt. Im Jena Framework sind be-
reits ein einfacher RDFS und OWL-Lite Reasoner integriert, welche jedoch in kei-
nem Fall als vollwertige Reasoner angesehen werden können. Jena entstand aus
dem Hewlett-Packard Semantic Web Research Programm und wurde als Open
Source Software auf SourceForge veröffentlicht. Auf der Projektseite ist eine re-
gelmäßige Weiterentwicklung der Software erkennbar. Die im Framework inte-
grierte Reasoning Funktionalität ermöglicht einen einfachen Einstieg in Semantic
Web Technologien und schließt eine spätere Erweiterbarkeit des Projektes durch
Integration externer Reasoner nicht aus.

4.3 Kaon 2 - Resolutionsverfahren


Kaon 2 geht aus dem Kaon (Karlsruhe Ontology) Projekt des FZI2 und des AIFB3
hervor. Der Reasoner ist jedoch eine vollständige Neuentwicklung des zuvor auf
RDFS basierten Systems Kaon und bietet daher keine Kompatibilität mit diesem.
Kaon 2 ist, im Gegensatz zu Kaon, nicht als Open Source Software verfügbar
und wird von der Firma ontoprise GmbH als integrierter Bestandteil des Produk-
tes OntoBroker vertrieben. Für die Nutzung der Software im nicht kommerziellen
Bildungsbereich steht jedoch eine kostenlose Version des Kaon 2 Standalone
Reasoners zur Verfügung. Das letzte Release von Kaon 2 wurde jedoch 2008
veröffentlicht. Die kommerzielle Implementation OntoBroker hingegen wird konti-
nuierlich weiterentwickelt und um neue Standards erweitert. Im Gegensatz zu den
Tableau-basierten Reasonern arbeitet Kaon 2 nach einem Resolutionsverfahren.
Hierbei wird mittels Algorithmen die SHIQ(D) Wissensbasis in ein Datalog Pro-
gramm reduziert. Nach Angaben des Herstellers können so enorme Geschwin-
digkeitsvorteile gegenüber „herkömmlichen“ Reasonern erreicht werden.

4.4 RacerPro - Tableau based reasoning


RacerPro (Racer = Renamed ABox and Concept Expression Reasoner) ist ein
kommerzielles Produkt der Firma Racer Systems GmbH & Co KG, es existiert je-

2
FZI: Forschungszentrum für Informatik, Karlsruhe
3
AIFB: Institut für Angewandte Informatik und Formale Beschreibungsverfahren, Karlsruhe
29
4 Tools: Reasonern für das Semantic Web

doch eine kostenlos zugängliche Version für Studenten und Mitarbeiter von Hoch-
schulen. Der Reasoner arbeitet nach dem Tableau-Verfahren und stellt neben
dem DIG4 Interface noch Interfaces für Java und Lisp zur Verfügung. Er unter-
stützt für Regeln den SWRL Standard und das eigene Format nRQL. Ebenfalls
implementiert er die Anfragesprachen SPARQL und OWL-QL. Die Racer eigene
Sprache nRQL unterstützt die Verwendung von Regeln in einer „Makro ähnlichen
Form“. Diese bedeutet, dass einer Regel ein Name zugewiesen werden kann.
Somit ist die Verwendung einer Regel zur Definition einer neuen Regel möglich
(Referenzierung).

4.5 FaCT ++ - Tableau based reasoning


FaCT ++ ist ein Open Source Definition Logic Reasoner welcher als eine Platt-
form zum Experiment mit neuen Tableau Algorithmen und Optimierungstechno-
logien entwickelt wurde. Er nutzt eine neuartige „ToDo List“ Architektur um per-
formanter mit komplexen Reasoning Aufgaben, wie z.B. OWL Ontologien, um-
gehen zu können. Wenn eine Wissensbasis in den Reasoner geladen wird, so
wird diese in einer Vorverarbeitung in eine interne Repräsentation gewandelt. In
diesem Schritt werden auch zahlreiche Optimierungen vorgenommen (Reduzie-
rung in SNF5 , Auflösung vollständig zirkularer Beziehungen). Anschließend wird
die Repräsentation mit Hilfe eines „classifiers“ weiter optimiert (Reihenfolge, Re-
duzierung etc.). Fact++ bietet unter anderem ein DIG Server und ein Plugin für
Protégé an[6].

4.6 Prolog
Prolog wurde Anfang der 70er Jahre vom französischen Informatiker Alain Col-
merauer entwickelt und stellt die wichtigste logische Programmiersprache dar.
Die Sprache existierte in den Anfängen in unterschiedlichen Implementierungen
und wurde 1995 in der ISO Norm ISO/IEC 13211-1 standardisiert. Die Grundla-
ge eines Prolog Programmes bildet die Datenbasis, welche Fakten und Regeln
enthält. Das eigentliche Programm ist eine geordnete Liste, die Horn Klausen
enthält. Prolog basiert auf der Closed World Assumption. Sie kann auch im Kon-

4
standardisiertes XML Interface zu Description Logic Systemen
5
SNF: simplified normal form (vereinfachte Normalform)
30
4 Tools: Reasonern für das Semantic Web

text des Semantic Web für Reasoning Aufgaben verwendet werden. Hierzu gibt
es Implementierungen wie die Semantic Web Library für SWI-Prolog oder den in
AllegroGraph integrierten Prolog Interpreter AllegroProlog.

4.7 Vergleich der vorgestellten Reasoner


Mit der Popularität der semantischen Dienste wächst auch die Anzahl der Imple-
mentierungen an Reasonern. Alle guten DL Reasoner integrieren Strategien für
„Consistency checking“6 , „Concept satisfiability“7 , „Classification“8 und „Realiza-
tion“9 , daher werde ich im Folgenden nur noch auf die Besonderheiten der ein-
zelnen Reasoner eingehen. Beginnen möchte ich mit Pellet, einem Open Source
Reasoner, der unter Einhaltung der AGPL und in nicht kommerziellen Applikatio-
nen, kostenlos eingesetzt werden kann. Er verfügt über zahlreiche Schnittstellen
(unter anderem: Kommandozeile, API, Jena, DIG) und nimmt SPARQL Anfragen
entgegen. Ebenfalls sind Features zum Reparieren und Analysieren von Ontolo-
gien integriert. Pellet bietet ebenfalls eine Unterstützung für SWRL und ist über
eine integrierte Schnittstelle einfach mit dem Jena Framework zu verbinden. Trotz
des in Jena bereits integrierten OWL Reasoners, werden häufig externe Reaso-
ner wie Pellet integriert. Dies liegt hauptsächlich daran, das für viele Reasoning
Aufgaben die Jena 2 Inference Engine einen zu geringen Funktionsumfang ab-
deckt. So ist diese nur mit den Konstrukten von OWL-Lite ausgestattet und eignet
sich eher zum Einstieg in die Thematik Reasoning. Ein weiterer, durch Einsatz
von innovativen Technologien, sehr performanter Reasoner ist Fact++. Er arbei-
tet mit einer „ToDo List“ Architektur und wandelt Ontologien beim Import in eine
vom Reasoner performant interpretierbare interne Repräsentation. Für die exter-
ne Kommunikation steht ein DIG Server und ein Plugin für Protégé bereit. Die
Firma Racer Systems bietet den kommerziellen Reasoner „Racer Pro“ an, der je-
doch für akademische Zwecke in einer zeit limitierten Version zur Verfügung steht,
an. Neben seiner guten Performance bietet der Reasoner eine Möglichkeit der
Referenzierung von Regeln (d.h. die Wiederverwendung einer definierten Regel
zur Definition einer neuen Regel) an. Die bisher vorgestellten Reasoner arbeiten
alle auf Basis von Tableauverfahren. Einen anderen Ansatz verfolgt Kaon 2, ein

6
Prüfung der Ontologie auf widersprüchliche Fakten.
7
Jede Klasse muss in min. einer Interpretation eine nicht leere Menge ergeben.
8
Berechnen der kompletten Klassenhierarchie.
9
Bestimmen der direkten Typen eines Individuum anhand der Klassenhierarchie
31
4 Tools: Reasonern für das Semantic Web

aus dem Reasoner Kaon hervorgegangener Reasoner, welcher nach dem Re-
solutionsverfahren arbeitet. Das Verfahren reduziert hierbei die Wissensbasis in
ein Datalog Programm, welches gut und schnell verarbeitet werden kann. Jeder
Reasoner hat spezifische Vor- und Nachteile, welche projekt- bzw. ontologiespe-
zifisch abzuwägen sind. Wichtige Kriterien für die Auswahl eines Reasoners soll-
ten jedoch immer dessen Lizenzierung, die zugrundeliegende Ontologie (Kom-
plexität, Größe) und die an diese Ontologie gerichteten Anfragen (Art, Menge,
Komplexität) sein. Eine weitere Möglichkeit des Reasonings ist die Verwendung
von Prolog, einer bewährten Logiksprache. Prolog bietet zwar keine direkte Un-
terstützung für semantische Technologien, jedoch gibt es zahlreiche Semantic
Web Tools, welche Prolog in Anfragen unterstützen oder sonstige Schnittstellen
für Prolog zu Ontologien schaffen. Viele dieser Implementierungen (z.B. Allegro-
Graph) arbeiten sehr performant und sind ideal für den Einsatz mit großen Wis-
sensrepräsentationen.

32
5 Tools: Triple Stores als Persistenz

Um mit größeren Datenmengen arbeiten zu können und um Ontologien bzw. Re-


asoning in der Praxis nutzbar zu machen, bedarf es geeigneten Speichermög-
lichkeiten. Diese Anforderung wird mit Hilfe von Triple Stores umgesetzt. Grund-
legend lassen sich Triple Stores in native und nicht native Systeme unterteilen.
Während native Triple Stores die Daten in einer speziellen Triple basierten Da-
tenbank ablegen, arbeiten letztere mit einem normalen externen relationalen Da-
tenbanksystem (meist MySQL, MSSQL oder Oracle) zur Speicherung der Daten.
Eine dritte Gruppe an Triple Stores bilden die nicht persistenten „in memory“ sto-
res, welche die Triple nur im Arbeitsspeicher halten und beim Benden des Stores
endgültig verwerfen. Diese Gruppe wird in dieser Arbeit jedoch nicht betrachtet.

5.1 AllegroGraph
AllegroGraph ist ein kommerzieller (freie Version für max. 50 Millionen Triple ver-
fügbar), nativer Triple Store, der gerade bei große Datenmengen noch sehr per-
formant arbeitet. Er verfügt über ein Java Interface, welches eine Unterstützung
für SPARQL, RDFS++ und Prolog Reasoning implementiert. Zusätzlich sind un-
ter anderem noch ein Social Network Analyser sowie AGWebView (Access Triple
Data via Webbrowser) und Gruff (Grapher based Triple Store Browser) im Liefer-
umfang enthalten. Auch stellt AllegroGraph Schnittstellen zu C#, Lisp und Python,
sowie ein Interface zum Jena Framework zur Verfügung. Er integriert den Rea-
soner RacerPro der Firma Racer GmbH & Co KG und wird somit um weitere
Features wie SWRL und ein DIG Interface bereichert. Zur einfachen Verwaltung
kann der TopBraid Composer genutzt werden, der ab Version 3.2 das Allegro-
Graph Plugin direkt integriert hat.

33
5 Tools: Triple Stores als Persistenz

Abbildung 5.1: Architektur AllegroGraph Quelle: Franz Inc. [10]

5.2 Ontobroker 5.0


Die von der Firma Ontoprise GmbH entwickelte kommerzielle Middleware On-
tobroker ist ein deduktives Datenbanksystem mit einer Unterstützung für Rule
Based Reasoning. Neben einem Java Interface existieren unter anderem Schnitt-
stellen für .NET, PHP und WebServices. Das System unterstützt sowohl RDFS
als auch OWL-DL. Als Reasoner integriert Ontobroker eine Variante des Kaon 2
Reasoners, der auf einem Resolutionsverfahren basiert. Die Wissensrepräsen-
tation kann sowohl persistent abgelegt, als auch im Speicher gehalten werden.
Als Anfragesprachen unterstützt die Software SQL, SPARQL und F-Logic. Für
den Datenimport stehen Konverter für die folgenden Formate zur Verfügung: F-
Logic, OXML, RDF, OWL, N-Triples, N3. Ontobroker ist nur kompatibel zu den
Teilen von OWL Ontologien, die in Horn Klauseln abgebildet werden können. Zu-
sätzlich verfügt die Software über Schnittstellen mit welchen Fakten aus externen
SQL Datenbanken importiert werden können. Zurzeit steht keine frei zugängliche
Testversion des Produktes im Internet zur Verfügung.

5.3 Oracle 11g


Das kommerzielle Datenbanksystem Oracle 11g bietet eine native Unterstützung
für RDF/RDFS/OWL. Eine kostenlose Express Edition in der aktuellen Version
wird frühestens Ende 2010 verfügbar sein, solange stehen nur die Express Ver-
sion 10gR2 (nur RDF und RDFS++ Reasoning) oder die kommerzielle Versionen
von 11g zur Verfügung. Mit der aktuellen Release führt Oracle seine neue An-
fragesprache OWL Prime ein, die ein Subset von OWL DL abdeckt. Oracle 11g

34
5 Tools: Triple Stores als Persistenz

Abbildung 5.2: Architektur Ontobroker Quelle: ontoprise GmbH [12]

eignet sich für sehr große Projekte und zeichnet sich durch seine hohe Perfor-
mance und die Kompatibilität zu SQL aus. Hierdurch lassen sich der Triple Store
für die Ontologie(n) und relationale Datenbanken in einer Infrastruktur integrieren
und gemeinsam nutzen.

5.4 Virtuoso
Virtuoso Universal Server ist ein kommerzieller Hybrid-Datenbankserver, der ein
RDBMS (relational), einen Triple Store (RDF Graph) und ein Dokumenten Ma-
nagement System (Volltext) integriert. Zusätzlich ist der Server in einer Open
Source Edition erhältlich, welche über einige funktionale Einschränkungen ver-
fügt (siehe Anhang). Die Komponenten Virtual Database Engine (VDE), Unified
Storage Engine (USE) und Virtual Application Server (VAS) bilden zusammen
die Server Applikation. Die Virtual Database Engine beinhaltet alle Schnittstel-
len welche den Austausch von Daten über zahlreiche Formate (ODBC, JDBC,
XML, RDF und WebServices) ermöglicht. Die Komponente Unified Storage Engi-
ne erlaubt es XML, RDF sowie SQL und Freitext-Daten zu speichern und abzuru-
fen. Ebenfalls bietet die Komponente Möglichkeiten zur Interaktion mit Web Data
Sources (Googlebase, Amazon, eBay, ...) und Data Spaces (Webblogs, Wikis, ...)
an. Eine weitere Komponente des Systems ist der Virtual Application Server, wel-
cher Schnittstellen zu Java, Microsoft .NET und C/C++ anbietet. Für den Zugriff
auf den Virtuoso Universal Server werden unter anderem die Protokolle ODBC,
JDBC, SPARQL, HTTP / WebDAV und SOAP unterstützt. Virtuoso verfügt über

35
5 Tools: Triple Stores als Persistenz

einen internen RDFS / OWL Reasoner, der jedoch nur Teile der Spezifikation ab-
deckt. Auch ist ein Reasoning nur auf den nativ als RDF gespeicherten Tripeln
möglich. Aus relationalen Datenquellen erzeugte RDF Views werden für das Re-
asoning nicht berücksichtigt.

Abbildung 5.3: Architektur Virtuoso Universal Server[16]

5.5 Jena SDB (non native) / TDB (native)


Die Komponenten SDB und TDB sind ein Bestandteil des Jena Frameworks und
stellen beide jeweils einen persistenten Triple Store bereit. Die nicht nativ arbei-
tende SDB nutzt als Speicher für den Triple Store ein relationales Datenbanksy-
stem, wobei hier unter anderem die folgenden Systeme unterstützt werden:

• Microsoft SQL Server (auch Express Edition)


• Oracle 10gR2 (auch Express Edition)
• IBM DB2 (auch Express Edition)
• PostgreSQL V8
• MySQL (>= 5.0.22)

Trotz der auf der Homepage des Projektes erwähnten guten Skalierbarkeit von
Jena SDB, kann sich die Datenbank bei größeren Datenbeständen nicht mit nati-
36
5 Tools: Triple Stores als Persistenz

ven Triple Store Systemen messen[1]. Jedoch entstehen durch die Nutzung eines
externen Datenbanksystems auch Vorteile, da die dort bereits implementierten
und bewährten Technologien (Balancing, Security, Backup, Clustering, etc.) im-
plizit zur Verfügung stehen.
Die native TDB arbeitet hingegen auch bei großen Datenbeständen noch sehr
performant und ist nicht auf externe Datenbanken angewiesen. Der Triple Store
ist vollständig in Java implementiert, nicht transaktionsorientiert und läuft nur auf
Einzelsystemen (kein Clustering, etc.).

5.6 Vergleich der vorgestellten Triple Stores


Jedes der vorgestellten Triple Store Systeme hat seine spezifischen Vorteile, aber
auch Einschränkungen. Bei der Auswahl eines geeigneten Triple Stores für ein
Projekt sind meist neben den funktionalen und nicht funktionalen Anforderun-
gen auch die Lizenzierungsmodelle entscheidend. Die Mehrzahl aller aktuell ver-
fügbaren Semantic Web Implementationen sind nach wie vor Forschungs- und
Entwicklungsprojekte, die wiederum meist mit einem sehr eingeschränkten finan-
ziellen Rahmen durchgeführt werden. Hier bieten sich unter Anderem die frei
zugänglichen Triple Stores Jena SDB / TDB und Virtuoso an. Jena bietet neben
den zahlreichen Schnittstellen zu vielen gängigen Reasonern auch noch Schnitt-
stellen zu externen Triple Stores, wie AllegroGraph und Virtuoso, an. Somit kann
eine Implementierung später einfacher auf leistungsfähigere Triple Stores aus-
gelagert werden. Virtuoso ist in einer kommerziellen Version als Universal Ser-
ver und in einer freien Version als Open Source Edition verfügbar. In dem von
der Freien Universität Berlin veröffentlichtem „Berlin SPARQL Benchmark“ (sie-
he Tabelle 7.1.3) sind klare Performance Vorteile von Virtuoso gegenüber Jena
SDB / TDB erkennbar. Auch bietet sich Virtuoso in Applikationen an, bei denen
auf eine SQL Schnittstelle nicht verzichtet werden kann oder diese von Vorteil
ist. Virtuoso verfügt über einen performanten Reasoner, der allerdings nicht al-
le Reasoning-Features abdeckt. Durch die Anbindbarkeit von Virtuoso an Jena
sind jedoch auch komplexere Reasoning Vorgänge möglich. Der Datenbankser-
ver Oracle 11g, der im Moment leider in keiner Express Edition zur Verfügung
steht, bietet ebenfalls eine Kombination von SQL und RDF Storage. Hierbei un-
terstützt diese eigens von Oracle kreierte Sprache OWL Prime, welche ein sehr
ausdrucksstarkes Subset von OWL abdeckt. In einem von der RWTH Aachen

37
5 Tools: Triple Stores als Persistenz

durchgeführten Benchmark (siehe Abbildung 7.3) zur Ausführungszeit von ver-


schiedenen Anfragen, sind jedoch keine generellen Vorsprünge von Oracle´s
11g zu Produkten wie z.B. Jena oder AllegroGraph erkennbar. Von Oracle wur-
den ebenfalls Untersuchungen zur Performance gegenüber anderen Triple Store
Systemen in Kombination mit Reasonern durchgeführt und veröffentlicht. Diese
Benchmarks stellen hier klare Vorteile der Datenbank heraus, beziehen sich je-
doch auf extrem große Datenbestände (über 1 Billion Triple) in Kombination mit
komplexen Anfragen[4]. Ein reiner Triple Store mit besonderen Features ist die
kommerzielle Software AllegroGraph, die jedoch in einer auf 50 Millionen Triple
limitierten freien Version verfügbar ist. Neben Schnittstellen zu C#, Java und Lisp
bietet dieser noch die Möglichkeit der Ausführung von Prolog aus Java. Über den
integrierten RacerPro Reasoner lassen sich auch SWRL Regeln ausführen. In
dem Benchmark der RWTH Aachen werden die Geschwindigkeitsvorteile durch
die direkte Ausführung des Reasonings in der Datenbank deutlich (siehe Abbil-
dung 7.3). Auch sind die im Lieferumfang von AllegroGraph enthaltenen Tools wie
der Webviewer AGWebView und der Ontologie Browser Gruff sehr nützliche Tools
bei der Implementierung. Ein weiterer Triple Store, welcher einen auf Kaon 2 ba-
sierenden Reasoner integriert, ist die kommerzielle Middleware Ontobroker. Die
Software verfügt über Möglichkeiten externe SQL Datenbanken als Datenquellen
einzubinden und unterstützt ebenfalls die im Semantic Web gängigen Standards.
Zur Zeit wird die Software nicht in einer frei zugänglichen Testversion angeboten.
Es ist somit abhängig vom Anwendungsfall, welcher Triple Store die sinnvollste
Lösung für die Realisierung eines Projektes darstellt. Für einen ersten Überblick
über die Details zu den Triple Store Systemen kann die Tabelle 7.1.1 im Anhang
herangezogen werden.

38
6 Ausblick: Reasoning im Semantic
Web

Diese Arbeit hat sich bisher mit der technischen und theoretischen Seite des Se-
mantic Web beschäftigt. Nun möchte ich noch auf die praktischen Aspekte und
zukünftigen Chancen, die das Semantic Web bringt, eingehen. Im Rahmen mei-
ner Recherchen, die zur Erstellung dieser Arbeit notwendig waren, wurde ich häu-
fig mit einer sehr weit verbreiteten falschen Erwartungshaltung konfrontiert. Viele
Nutzer stellen sich unter dem Begriff „Semantic Web“ eine neue Generation des
Internets vor, die mit einer Art Innovationssprung vergleichbar ist. So vermuten
viele vollständig neue Bedienkonzepte und Oberflächen hinter dem Begriff. Auch
wird teilweise die Einführung des Semantic Web zu einem bestimmten Termin er-
wartet. Die Realität unterscheidet sich jedoch stark von diesen Erwartungen. So
sind schon heute zahlreiche semantische Implementationen im Web verfügbar -
und die Anzahl der populären Anwendungen wächst. So startete Google 2009
den Dienst „Squared“ und Microsoft beginnt mit der Entwicklung der „Microsoft
Semantic Engine“. Doch warum nimmt niemand von den semantischen Techno-
logien Kenntnis? Der Grund hierfür ist einfach, denn semantische Technologien
bleiben im Hintergrund verborgen - für den Benutzer nicht als „Semantic Web“
erkennbar. Auch wird Semantic Web häufig als das Web 3.0 bezeichnet oder gar
mit dem Web 2.0 verwechselt. Während Letzteres das Ziel der gesteigerten In-
teraktion, Anpassungsfähigkeit und Integration von sozialen Aspekten verfolgt, so
bereitet das Semantic Web die Informationen in einer Art auf, die es uns ermög-
licht das Wissen zu interpretieren und sogar auf nicht vorhandenes Wissen zu
schließen. Doch wo kommt nun das Web 3.0 ins Spiel? Aufgrund vieler verbreite-
ter Definitionen des Jargonausdruckes, ist es schwer eine definierte Antwort auf
diese Frage zu finden. Die am weitesten verbreitete Definition stellt das Web 3.0
als eine Kombination aus dem Semantic Web und dem Web 2.0 zu einem „Social

39
6 Ausblick: Reasoning im Semantic Web

Semantic Web“ dar. Häufig wird daher in der letzen Zeit von der Literatur eher die-
se Begrifflichkeit genutzt, da diese einer eindeutigen Definition zuzuordnen ist. Im
Web 3.0 wird sich das Internet also von einem an Informationen ausgerichteten
Netzwerk in ein am Wissen ausgerichtetes Netzwerk wandeln müssen. Zusätz-
lich werden in die Applikationen Reasoning-Strategien integriert die aus dem nun
vorhanden Wissen neues, nicht explizit vorhandenes Wissen gewinnen. Diese
Strategien kombiniert mit denen des Web 2.0 bilden also das Social Semantic
Web bzw. das Web 3.0. Nichts ist so kurzlebig wie eine Version oder Spezifi-
kation im Internet - zumindest scheint dies so, wenn man die Flut an Versionen
und Spezifikationen rund um das Semantic Web betrachtet. So wird schon jetzt
über eine Vision des Web 4.0 diskutiert. Unter anderem geht man davon aus
das hier Agenten das Netz selbstständig durchsuchen und von diesem Wissen
lernen - ähnlich wie es ein Mensch, der das Internet durchsucht um sich neues
Wissen über ein Themengebiet anzueignen. Zum anderen soll jedoch auch die
vollständige Integration des Internets in unser Leben Realität werden. Nils Müller
prägt hierfür in seinem visionären Vortrag zur Entwicklung des Web den Begriff
des Outernet.[13] Wo die Reise des Webs auch hingeht, auf den Einsatz von
Reasoning und komplexen Wissensrepräsentationen kann nicht verzichtet wer-
den. Auch wenn die semantischen Dienste noch an ihrem Anfang stehen und
noch ein enormer Entwicklungsaufwand betrieben werden muss, um diese wirk-
lich skalierbar und praxistauglich abbilden zu können, so ist schon heute eines
klar: Das Web der Zukunft wird semantische Dienste immer stärker integrieren
und die Benutzer werden hiervon profitieren - auch wenn viele Anwender die Ih-
nen entstehenden Vorteile nicht als „Semantic Web“ wahrnehmen werden.

40
7 Anhang

7.1 Tabellen
7.1.1 Triple Stores im Vergleich
AllegroGraph Oracle 11g Jena SDB Virtuoso Ontobroker
Server Edition Open Source Edition
Version 3.3 Release 2 2.6.2 6.1.1 5.0
License free edition available (Li- free developer license free of charge GPL - free commercial
mit: 50.000 Triples) available
Source closed closed open open closed
Supported Operating Systems Windows, Linux, Ma- Windows, Linux, Solaris, all java compatible sy- Windows, Linux, Ma- Suse Linux 10.x, Win-
cOS, Solaris, FreeBSD AIX, HP-UX stems cOS, Solaris, AIX, dows 2003, Windows
HP-UX, Digital Un-
ix/OSF1
RDFS / OWL Reasoner Supported from Ja- OWLPrime supports YES, provided by Jena 2 Partial RDFS and OWL-DL
va Applications: RDF, RDF, RDFS++ (RDFS Inference Engine is supported, but on-
RDFS++ (RDFS plus plus some OWL con- ly terms that can be
some OWL con- structs: owl:sameAs, converted into horn logic
structs: owl:sameAs, owl:InverseFunctionalPro-
owl:inverseOf, perty) and OWL Prime,a
owl:TransitiveProperty, very expressiv subset
and owl:hasValue) of OWL DL constructs.
If more semantics are
requiered, Oracle offers
two ways:
1. Adding user definde
rules
2. Integrate external
Reasoners through Jena
interface
SWRL Yes (via integrated Ra- NO NO, but converters from NO YES
cerPro Reasoner) SWRL to jena are availa-
ble
Prolog Supported from Java Ap- NO NO NO NO
plications
SPARQL Supported from Java Ap- NO YES YES YES
plications
OWL Prime NO YES NO NO NO
SQL NO YES YES YES YES

41
7 Anhang

7.1.2 Reasoner im Vergleich


Pellet Jena 2 Inference Kaon 2 Racer Pro Fact++
Version 2.1.0 2.6.2 29.06.2008 2.0 (preview) 1.3.0
License Usage in non- free of charge free of charge for acade- free of charge, but time GNU GPL
commercial open source mic usage limited version for aca-
apps is free (AGPL). demic usage
Usage in closed or com-
mercial apps requieres
license
Open Source YES YES NO NO YES
Supported Operating Systems all java compatible sy- all java compatible sy- all java compatible sy- Windows 32bit, Linux Windows, MacOS, Linux
stems stems stems 32bit, Mac OS X 32bit
x86 CPU
F-Logic NO NO YES NO NO
RDF(XML) YES YES YES YES YES
N3 NO YES NO NO NO
N-Triple YES YES NO NO NO
RDFS YES YES YES YES YES
OWL OWL-DL + inverse func- OWL-Lite OWL-DL OWL-DL OWL-DL
tional datatype proper-
ties from OWL-Full
OWL2 OWL2-DL NO NO announced OWL2
SWRL Supported in direct ta- NO YES YES NO
bleau algorithm
SPARQL Supports SELECT, YES YES YES -
CONSTRUCT, and ASK
(No support for DES-
CRIBE, OPTIONAL OR
FILTER)
nRQL NO NO NO YES NO
Plugins - - - YES (supported langua- -
ge lisp)
DIG (OWLlink) Interface YES NO (supported in older YES YES YES
Versions < 2.6.0)
Interfaces Command Line Tool, Jena (integrated), RMI Server, Interface Java API, Lisp API DIG, C++
API, Manchester OWL- Protégé (integrated), Engine for SPARQL
API (interface), Jena provides the interfaces
(interface), Protégé to integrated external
(integrated) reasoners into Jena

7.1.3 Triple Store Benchmark


Die folgende Tabelle zeigt ein Ergebnis aus dem von der Freien Universität Berlin durchgeführten Benchmark „Berlin SPARQL Benchmark“. Für diese Arbeit
relevant sind die Ergebnisse von Jena TDB, Jena SDB, Virtuoso TS (Triple Store), Virtuoso RV (RDF View von relationalen Datenbanken) sowie die zwei SQL
Datenbanken MySQL und Virtuoso SQL. (Sesame ist ein in dieser Arbeit nicht untersuchter Triple Store, D2R Server ist ein Mapper von RDBMS über SQL nach
RDF). Der unten dargestellte Ausschnitt aus dem Benchmark simuliert ein „real world“ Szenario. Hierbei arbeiteten mehrere Clients gleichzeitig gegen einen
SPARQL Endpoint. Die dargestellten Werte sind die Anzahl der von allen Clients zusammengestellten und vom SPARQL Endpoint beantworteten Anfragen.
Tabelle A: Datenbasis 1 Million Triple[2]
Number of Clients 1 2 4 8 64
Sesame 18,094 19,057 16,46 18,295 16,517
Jena TDB 4,45 6,752 9,429 8,453 8,664
Jena SDB 10,421 17,28 23,433 24,959 23,478
Virtuoso TS 12,36 21,356 32,513 29,448 29,483
Virtuoso RV 17,424 28,985 34,836 32,668 33,339
D2R Server 2,828 3,861 3,14 2,96 2,938
MySQL 235,066 318,071 472,502 442,282 454,563
Virtuoso SQL 192,013 199,205 274,796 357,316 306,172
Tabelle B: Datenbasis 25 Millionen Triple[2]
Number of Clients 1 2 4 8 64
Sesame 1,343 1,485 1,204 1,3 1,271
Jena TDB 353 513 694 536 555
Jena SDB 968 1,346 1,021 883 927
Virtuoso TS 4,123 7,61 9,491 5,901 5,4
Virtuoso RV 12,972 22,552 30,387 28,261 28,748
D2R Server 140 187 160 146 143
MySQL 18,578 31,093 39,647 40,599 40,47
Virtuoso SQL 69,585 85,146 135,097 173,665 148,813

42
7 Anhang

7.1.4 Komplexitätsklassen von OWL2


Language Reasoning Problems Taxonomic Complexity Data Complexity Query Complexity Combined Complexity

OWL 2 RDF-Based Semantics Ontology Consisten- Undecidable Undecidable Undecidable Undecidable


cy, Class Expression
Satisfiability, Class Ex-
pression Subsumption,
Instance Checking,
Conjunctive Query
Answering

OWL 2 Direct Semantics Ontology Consisten- 2NEXPTIME-complete Decidable, but complexi- Not Applicable 2NEXPTIME-complete
cy, Class Expression (NEXPTIME if pro- ty open (NP-Hard) (NEXPTIME if pro-
Satisfiability, Class Ex- perty hierarchies are perty hierarchies are
pression Subsumption, bounded) bounded)
Instance Checking
Conjunctive Query Ans- Decidability open Decidability open Decidability open Decidability open
wering

OWL 2 EL Ontology Consisten- PTIME-complete PTIME-complete Not Applicable PTIME-complete


cy, Class Expression
Satisfiability, Class Ex-
pression Subsumption,
Instance Checking
Conjunctive Query Ans- PTIME-complete PTIME-complete NP-complete PSPACE-complete
wering

OWL 2 QL Ontology Consisten- NLogSpace-complete In AC0 Not Applicable NLogSpace-complete


cy, Class Expression
Satisfiability, Class Ex-
pression Subsumption,
Instance Checking,
Conjunctive Query Ans- NLogSpace-complete In AC0 NP-complete NP-complete
wering

OWL 2 RL Ontology Consisten- PTIME-complete PTIME-complete Not Applicable PTIME-complete


cy, Class Expression
Satisfiability, Class Ex-
pression Subsumption,
Instance Checking
Conjunctive Query Ans- PTIME-complete PTIME-complete NP-complete NP-complete
wering

OWL 1 DL Ontology Consisten- NEXPTIME-complete Decidable, but complexi- Not Applicable NEXPTIME-complete
cy, Class Expression ty open (NP-Hard
Satisfiability, Class Ex-
pression Subsumption,
Instance Checking
Conjunctive Query Ans- Decidability open Decidability open Decidability open Decidability open
wering

7.1.5 Verwendete Software


Produkt URL
SWI Prolog http://www.swi-prolog.org/
SWI Prolog Editor http://lakk.bildung.hessen.de/netzwerk/faecher/informatik/swiprolog/swiprolog.html
Eclipse Classic http://www.eclipse.org/downloads/
OntoStudio http://www.ontoprise.de/deutsch/start/produkte/ontostudio/download-ontostudio/
AllegroGraph http://www.franz.com/downloads/clp/ag_survey
TopBraid Composer http://www.topquadrant.com/products/TB_download.html
Protégé Editor 3.4.4 http://protege.stanford.edu/download/registered.html
Protégé Editor 4.1: http://protege.stanford.edu/download/registered.html
Jess Rule Engine: http://herzberg.ca.sandia.gov/jess/
(place jess.jar in /plugins/edu.stanford.smi.protegex.owl/ directory of Protégé to enable JessTabPlugin)

43
7 Anhang

7.2 Abbildungen
7.2.1 Abbildung A: Schichtmodell der W3C Technologie

Abbildung 7.1: Das Schichtmodell der W3C Technologie[23]

44
7 Anhang

7.2.2 Abbildung B: Die Struktur von OWL 2

Abbildung 7.2: Die Struktur von OWL2[28]

7.2.3 Abbildung C: Vergleich Triple Stores im Benchmark

Abbildung 7.3: Vergleich Triple Stores[1]

45
7 Anhang

7.3 Beispiel Ontologien


7.3.1 Ontologie A
1 < h t t p : / / h−da . de / ex1 . owl > < h t t p : / / www. w3 . org / 2 0 0 2 / 0 7 / owl# i m p o r t s > < h t t p : / / s w r l . s t a n f o r d . edu / o n t o l o g i e s / 3 . 3 / s w r l a . owl > .
2 < h t t p : / / h−da . de / ex1 . owl > < h t t p : / / www. w3 . org / 2 0 0 2 / 0 7 / owl# i m p o r t s > < h t t p : / / s q w r l . s t a n f o r d . edu / o n t o l o g i e s / b u i l t −i n s / 3 . 4 /
s q w r l . owl > .
3 < h t t p : / / h−da . de / ex1 . owl > < h t t p : / / www. w3 . org /1999/02/22 − r d f−syntax−ns# type > < h t t p : / / www. w3 . org / 2 0 0 2 / 0 7 / owl# Ontology > .
4
5 < h t t p : / / h−da . de / ex1 . owl# C i t y > < h t t p : / / www. w3 . org /1999/02/22 − r d f−syntax−ns# type > < h t t p : / / www. w3 . org / 2 0 0 0 / 0 1 / r d f−schema#
Class > .
6 < h t t p : / / h−da . de / ex1 . owl#hasConnection > < h t t p : / / www. w3 . org /1999/02/22 − r d f−syntax−ns# type > < h t t p : / / www. w3 . org / 2 0 0 2 / 0 7 /
owl# O b j e c t P r o p e r t y > .
7 < h t t p : / / h−da . de / ex1 . owl#hasConnection > < h t t p : / / www. w3 . org / 2 0 0 0 / 0 1 / r d f−schema#domain> < h t t p : / / h−da . de / ex1 . owl# C i t y > .
8 < h t t p : / / h−da . de / ex1 . owl#hasName> < h t t p : / / www. w3 . org / 2 0 0 0 / 0 1 / r d f−schema#domain> < h t t p : / / h−da . de / ex1 . owl# C i t y > .
9 < h t t p : / / h−da . de / ex1 . owl#hasName> < h t t p : / / www. w3 . org /1999/02/22 − r d f−syntax−ns# type > < h t t p : / / www. w3 . org / 2 0 0 2 / 0 7 / owl#
DatatypeProperty > .
10
11 < h t t p : / / h−da . de / ex1 . owl# F r a n k f u r t > < h t t p : / / www. w3 . org /1999/02/22 − r d f−syntax−ns# type > < h t t p : / / h−da . de / ex1 . owl# C i t y > .
12 < h t t p : / / h−da . de / ex1 . owl# F r a n k f u r t > < h t t p : / / h−da . de / ex1 . owl#hasName> " F r a n k f u r t am Main " ^^ < h t t p : / / www. w3 . org / 2 0 0 1 /
XMLSchema# s t r i n g > .
13 < h t t p : / / h−da . de / ex1 . owl# F r a n k f u r t > < h t t p : / / h−da . de / ex1 . owl#hasConnection > < h t t p : / / h−da . de / ex1 . owl#Hanau> .
14
15 < h t t p : / / h−da . de / ex1 . owl# S e l i g e n s t a d t > < h t t p : / / www. w3 . org /1999/02/22 − r d f−syntax−ns# type > < h t t p : / / h−da . de / ex1 . owl# C i t y >
.
16 < h t t p : / / h−da . de / ex1 . owl# S e l i g e n s t a d t > < h t t p : / / h−da . de / ex1 . owl#hasName> " S e l i g e n s t a d t am Main " ^^ < h t t p : / / www. w3 . org
/ 2 0 0 1 /XMLSchema# s t r i n g > .
17 < h t t p : / / h−da . de / ex1 . owl# S e l i g e n s t a d t > < h t t p : / / h−da . de / ex1 . owl#hasConnection > < h t t p : / / h−da . de / ex1 . owl#Hanau> .
18
19 < h t t p : / / h−da . de / ex1 . owl#Hanau> < h t t p : / / www. w3 . org /1999/02/22 − r d f−syntax−ns# type > < h t t p : / / h−da . de / ex1 . owl# C i t y > .
20 < h t t p : / / h−da . de / ex1 . owl#Hanau> < h t t p : / / h−da . de / ex1 . owl#hasName> " Hanau " ^^ < h t t p : / / www. w3 . org / 2 0 0 1 /XMLSchema# s t r i n g > .
21 < h t t p : / / h−da . de / ex1 . owl#Hanau> < h t t p : / / h−da . de / ex1 . owl#hasConnection > < h t t p : / / h−da . de / ex1 . owl# F r a n k f u r t > .
22 < h t t p : / / h−da . de / ex1 . owl#Hanau> < h t t p : / / h−da . de / ex1 . owl#hasConnection > < h t t p : / / h−da . de / ex1 . owl# S e l i g e n s t a d t > .

46
Literaturverzeichnis

[1] Florian Stegmaier & Udo Gröbner & Mario Döller & Harald Kosch & Gero
Baese. Evaluation of Current RDF Database Solutions.
INTERNET Adresse: sunsite.informatik.rwth-aachen.de;
Pfad: /Publications/CEUR-WS/Vol-539;
Datei: paper_7.pdf ; Größe: 5.04 MB; Stand: 16.04.2010, 2010.

[2] Freie Universität Berlin. Berlin SPARQL Benchmark .


INTERNET Adresse: www4.wiwiss.fu-berlin.de;
Pfad: /bizer/BerlinSPARQLBenchmark/results;
Datei: index.html; Größe: 246,44 KB; Stand: 16.04.2010, 2010.

[3] Tim Berners-Lee. RDF/N3 Syntax Specification.


INTERNET Adresse: www.w3.org;
Pfad: /DesignIssues;
Datei: Notation3.html; Größe: 43.21 KB; Stand: 03.04.2010, 1998.

[4] Alan Zhe Wu Oracle New England Development Center. 11gR1 OWLPrime.
INTERNET Adresse: www.w3.org;
Pfad: /2007/OWL/wiki/images/c/cf ;
Datei: Zhe-f2f1.pdf ; Größe: 410.67 KB; Stand: 16.04.2010, 2010.

[5] Wolfgang Ertel. Grundkurs Künstliche Intelligenz - Eine praxisorientierte


Einführung, volume A. Vieweg+Teubner, 1 edition, 2008.

[6] Natarajan Furbach, Ulrich / Shankar. Automated Reasoning. Springer Berlin,


2006.

[7] Golem.de. IT-News: Semantisches Web - W3C verabschiedet OWL2.


INTERNET Adresse: www.golem.de;
Pfad: /0910;
Datei: 70803.html; Größe: 11.25 KB; Stand: 22.04.2010, 2009.
47
Literaturverzeichnis

[8] Prof. Dr. Wolfgang Hesse. Informatik Spektrum, Bd.25, Helft 6:, volume A.
Springer Verlag, 6 edition, 2002.

[9] REWERSE Working Group I1. R2ML – The REWERSE I1 Rule Markup
Language.
INTERNET Adresse: oxygen.informatik.tu-cottbus.de;
Pfad: /rewerse-i1/?q=R2ML;
Größe: 14.23 KB; Stand: 06.04.2010, 2007.

[10] Franz Incorporated. Architektur von AllegroGraph.


INTERNET Adresse: www.franz.com;
Pfad: /agraph/allegrograph;
Datei: ag_client-server_arch-new.jpg; Größe: 34.88 KB; Stand: 16.04.2010,
2010.

[11] Markus Krötsch. Konjunktive Anfrage- und Regelsprachen.


INTERNET Adresse: www.semantic-web-grundlagen.de;
Pfad: /w/images/a/a1;
Datei: 11-konjunktive-anfragen-regelsprachen_4up-2009.pdf ; Größe:
289.71 KB; Stand: 08.04.2010, 2009.

[12] ontoprise GmbH. Architektur von OntoBroker .


INTERNET Adresse: www.ontoprise.de;
Pfad: /fileadmin/user_upload/Flyer_EN;
Datei: Flyer_OntoBroker_en.pdf ; Größe: 865.29 KB; Stand: 26.04.2010,
2010.

[13] promedia. Interview mit Nils Müller .


INTERNET Adresse: blog.trendone.de;
Pfad: /wp-content/uploads/2010/04;
Datei: Promedia_Interview_NM_Heft4_2010.pdf ; Größe: 723.22 KB; Stand:
25.04.2010, 2010.

[14] Dr. Harald Sack. Vorlesung Semantic Web.


INTERNET Adresse: www.hpi.uni-potsdam.de;
Pfad: /fileadmin/hpi/FG_ITS/lecturenotes/Semantic_Web;
Datei: sw0809-06.pdf ; Größe: 1.26 MB; Stand: 06.04.2010, 2006.

48
Literaturverzeichnis

[15] Holger Sistig. Beweis, Vertrauen und digitale Signaturen.


INTERNET Adresse: semantisches-web.net;
Pfad: /technologien/beweise-vertrauen-digitale-signaturen;
Größe: 7.15 KB; Stand: 26.04.2010, 2010.

[16] Open Link Software. Architektur von Virtuoso Universal Server .


INTERNET Adresse: virtuoso.openlinksw.com;
Pfad: /images;
Datei: varch625.jpg; Größe: 78.99 KB; Stand: 16.04.2010, 2010.

[17] Christoph Beierle und Gabriele Kern-Isberner. Methoden wissensbasierter


Systeme. Vieweg+Teubner, 2008.

[18] Andreas Schönborn und Peter Kleinhans. Einsatz eines wissensbasierten


Diagnosesystems in der Praxis des technischen Service.
INTERNET Adresse: www.crm-expo.com;
Pfad: /www6/dokumente/vortraege;
Datei: tsystems.pdf ; Größe: 6.42 MB; Stand: 22.04.2010, 2005.

[19] W3C. Resource Description Framework (RDF) Model and Syntax.


INTERNET Adresse: www.w3c.de;
Pfad: /TR/WD-rdf-syntax-971002;
Größe: 32.25 KB; Stand: 03.04.2010, 1997.

[20] W3C. RDF Schema Syntax Specification.


INTERNET Adresse: www.w3.org;
Pfad: /TR/rdf-schema;
Größe: 79.34 KB; Stand: 07.04.2010, 2004.

[21] W3C. RDF/XML Syntax Specification.


INTERNET Adresse: www.w3.org;
Pfad: /TR/REC-rdf-syntax;
Größe: 192.86 KB; Stand: 08.04.2010, 2004.

[22] W3C. SWRL: A Semantic Web Rule Language Combining OWL and Ru-
leML.
INTERNET Adresse: www.w3.org;
Pfad: /Submission/SWRL;
Größe: 105.82 KB; Stand: 03.04.2010, 2004.
49
Literaturverzeichnis

[23] W3C. Das Schichtmodell der W3C Technologie.


INTERNET Adresse: www.w3c.de;
Pfad: /PubPraes/2005_W3C-Tag/images;
Datei: RecsFigure-Smaller.png; Größe: 100.79 KB; Stand: 03.04.2010,
2005.

[24] W3C. SPARQL Query Language for RDF .


INTERNET Adresse: www.w3.org;
Pfad: /TR/rdf-sparql-query ;
Größe: 352.7 KB; Stand: 11.04.2010, 2008.

[25] W3C. The Hierarchy of Entities in OWL.


INTERNET Adresse: www.w3.org;
Pfad: /Submission/owl11-owl_specification/images/spec;
Datei: C_entities.gif ; Größe: 6.92 KB; Stand: 24.04.2010, 2010.

[26] W3C. The Hierarchy of Entities in OWL 2.


INTERNET Adresse: www.w3.org;
Pfad: /TR/2008/WD-owl2-syntax-20081008;
Datei: C_entities.gif ; Größe: 6.92 KB; Stand: 24.04.2010, 2010.

[27] W3C. The mission of the Rule Interchange Format (RIF) Working Group.
INTERNET Adresse: www.w3.org;
Pfad: /2005/rules/wiki/RIF_Working_Group;
Größe: 6.99 KB; Stand: 06.04.2010, 2010.

[28] W3C. The Structure of OWL 2.


INTERNET Adresse: www.w3.org;
Pfad: /TR/2009/WD-owl2-overview-20090327 ;
Datei: OWL2-structure-800.png; Größe: 114.54 KB; Stand: 25.04.2010,
2010.

50

Das könnte Ihnen auch gefallen