Die Möglichkeiten bei RDFS, RDF-Vokabularien zu definieren, sind bezüglich
deren Ausdrucksstärke eingeschränkt. Das war eine bewußte Entscheidung
beim Design von RDFS. Die Sprache sollte einfach und verständlich
sein. Die OWL hingegen ist eine Sprache zur Beschreibung von Ontologien
und somit ausdrucksstärker als RDFS. Durch die OWL können, wie
bei RDFS, RDF-Wissensbasen eingebunden werden. Die Sprache ist eine
Erweiterung von RDFS mit einer größeren Anzahl an Funktionalitäten, um
Klassenhierarchien und Eigenschaftsbeschränkungen zu definieren.
Dazu zählen Relationen zwischen Klassen, Kardinalität (zum Beispiel
„exakt eins”), Gleichheit, ausgeprägtere Möglichkeiten der Typisierung von
Eigenschaften und Eigenschaftscharakteristika (zum Beispiel Symmetrie).
Um Kompromisse zwischen Ausdrucksstärke und effizientem Schließens
zu ermöglichen, wurde OWL in drei Sprachen untergliedert. Diese drei
Sprachen weisen unterschiedliche Charakteristika auf:
1. OWL-Lite ist eine eingeschränkte Form der OWL. Sie ist dafür optimiert,
leicht verständlich und einfach implementierbar zu sein. Bei
OWL-Lite werden disjunkte Ausdrücke ausgeschlossen. Kardinalitätsbeschränkungen
werden zwar unterstützt, jedoch sind nur die Werte
0 und 1 erlaubt. Der Nachteil des ’schlichten’ Designs von OWL-Lite
sind Einschränkungen in der Ausdrucksstärke.
2. Die OWL-DL enthält alle Spracheigenschaften von OWL-Full, die jedoch
teilweise in ihrer Verwendung eingeschränkt sind. OWL-DL ist
für Benutzer ausgerichtet, die maximale Ausdrucksstärke benötigen
und gleichzeitig auf Berechenbarkeit (alle Schlüsse sind garantiert berechenbar)
und Entscheidbarkeit (alle Berechnungen terminieren in
endlicher Zeit) angewiesen sind.
3. OWL-Full unterstützt alle Sprachmerkmale der OWL und erlaubt
eine willkürliche Kombination dieser Merkmale mit RDF und RDFS.
Das heißt jedoch: Die Flexibilität hat ihren Preis, der auf Kosten der
Entscheidbarkeit von Schlüssen geht.
Der Ausdruck „DL“ in OWL-DL steht für Beschreibungslogiken. Diese
bilden die formale Grundlage für OWL. Beschreibungslogiken sind einer
Familie von Sprachen zugehörig, die zur Wissensrepräsentation benutzt
werden können. Ihr Ursprung liegt in auf Frames basierten Systemen zur
Wissensrepräsentation. Der Begriff wurde ursprünglich von Marvin Minsky
eingeführt.
Ein Frame ist eine Struktur zur Repräsentation eines Konzepts oder einer
Situation. Frames können mit unterschiedlichen Arten von Information belegt
werden. Hierzu zählen zum Beispiel Informationen zur Definition, Beschreibung
und Benutzung des Frames. Die Beschreibungslogiken sind wichtige
Abkömmlinge framebasierter Repräsentationsformalismen, die den deklarativen
Anteil von Frames unter Benutzung einer logikbasierten Semantik
übernommen haben. Da sie auf Teilen der Prädikatenlogik erster Ordnung
basieren und entscheidbar sind, können über sie Schlussfolgerungen getroffen
werden (das heißt aus bereits präsentem Wissen kann Neues gewonnen
werden). In Beschreibungslogiken ist es möglich, eine Konzepthierarchie
aus atomaren Konzepten und Attributen zu erstellen. Die Attribute werden
dabei für gewöhnlich Rollen genannt. Die beabsichtige Bedeutung von
atomaren Konzepten kann durch andere Konzepte und Rollenrestriktionen
festgelegt werden.
Ein einfaches Beispiel hierfür:
Frau = Person und weibliches Wesen
Elternteil = Person mit einem Kind
Großmutter = Frau mit einem Kind, die Elternteil ist.
Eine der wichtigsten Aufgaben des Schlussfolgerns in diesem Zusammenhang
ist die Frage, ob alle Instanzen eines Konzepts notwendigerweise auch
Instanzen des anderen Konzepts sind. Eine Antwort auf diese Frage soll
unter Berücksichtigung aller Definitionen gefunden werden. So wird zum
Beispiel die „Großmutter“ als „Elternteil“ klassifiziert, weil jede „Großmutter“
per Definition gleichzeitig auch „Elternteil“ ist. Ähnlich zur Aufgabe
der Klassifizierung ist die Aufgabe der Überprüfung von Instanzen. Hierbei
wird die Antwort auf die Frage ermittelt, ob ein gegebenes Objekt eine Instanz
des vorher spezifizierten Konzepts ist. Beschreibungslogiken haben,
wie ersichtlich wird, auch Ähnlichkeiten zu objektorientierten Konzepten in
Programmiersprachen.