Semantisches Web Peter Brezany Institut fr Softwarewissenschaft Universitt
Semantisches Web Peter Brezany Institut für Softwarewissenschaft Universität Wien Tel. : 01/4277 38825 E-mail : brezany@par. univie. ac. at Sprechstunde: Mittwoch 13 -14 P. Brezany Institut für Softwarewissenschaft - Universität Wien
Einführung • In der letzten Dekade – neues Forschungsgebiet, bekannt als Semantic Web. • Dieser Begriff wurde von Tim Berners-Lee, den Erfinder des Web, eingeführt. • Motivation: – Momentan existieren mehrere Billionen Dokumenten im WWW, die von mehr als 300 Millionen benutzt werden, und Millionen Seiten in Firmen. Intranets (ein Beispiel ist auf den folgenden Folie – Internet-Suche: Jaguar = Jaguar? oder Tomaten = Paradeiser!). – Es wird immer schwieriger, die vom Anwendern verlangte Information zu finden, organisieren, zugreifen und warten. . Semantic Web bietet vorteilhafteren Zugriff auf die Information an; dieser Zugriff ist basiert auf der Ausnutzung von meta-daten, die mit Maschinen bearbeitet werden können. P. Brezany Institut für Softwarewissenschaft - Universität Wien 2
„jaguar“ = „jaguar“? P. Brezany Institut für Softwarewissenschaft - Universität Wien 3
tomate = paradeiser! (und mehr) P. Brezany Institut für Softwarewissenschaft - Universität Wien 4
Einführung • Man kann sich Semantic Web (SWeb) als eine Erweiterung des existierenden Web vorzustellen, wo zusätzlich Dokumente mit Meta-Information annotiert sind. • Die Meta-Information definiert, worüber die Information (Dokumente) sind – in einer Form, die durch Maschinen bearbeitet werden kann. • Die explizite Repräsentation der Information, begleitet mit Domänen-Theorien (d. h. Ontologien), wird ein Web ermöglichen, das eine qulitativ neue Dienstebene anbieten wird. • Neue SWeb Sprachen (RDF, XML, DAML+OIL usw. ) bringen mächtige AI Techniken in die Berührung mit der Web Infrastruktur. • SWeb wird ein unglaublich großes Netz von knowledge zusammenweben und es um maschinelle Bearbeitbarkeit. P. Brezany Institut für Softwarewissenschaft - Universität Wien 5
Ontologien • Ontologien strukturieren Informationen und beschreiben dessen Gegenstände und Beziehungen formal, damit sie für Menschen und auch für Computer verständlich sind. • Sie ermöglichen ein shared und common Verständnis einer Domäne, das zwischen Leuten und Anwendungssystemen kommuniziert werden kann. P. Brezany Institut für Softwarewissenschaft - Universität Wien 6
Sprachen für Semantisches Web In den letzten Jahren, mehrere markup Sprachen wurden mit dem Ziel entwickelt, das Semantische Web zu realisieren. In XML fehlt Semantik; z. B, ein Computer-Programm ist nich fähig zu identifizieren, dass <SALARY> Daten sich auf dieselbe Information wie <WAGE> Daten beziehen. Der RDF wurde als ein Standard für Metadaten entwickelt, um eine formale Semantik ins Web anzuschließen. RDFS (RDF Schema) – ein OO Typ. System – kann als eine minimale Sprache für Ontologie. Modellierung betrachtet werden. DAML+OIL überwindet mehrere Ausdruckunzulänglichkeiten von RDFS. OWL ist von DAML+OIL abgeleitet und baut auf RDF. XHTML P. Brezany OWL (Web Ontology Language – Draft 12 November 2002) DAML+OIL (Ontology Description Language) RDFS (Resource Description Framework Schema) RDF (Resource Description Framework) XML (Extensible Markup Language) Institut für Softwarewissenschaft - Universität Wien 7
RDF P. Brezany Institut für Softwarewissenschaft - Universität Wien 8
RDF - Resource Description Framework Das Resource Description Framework (RDF) ist eine Anwedung von XML. Es dient der Beschreibung von Informationen einer Webressource (z. B. einer Webseite oder auch einer ganzen Site). RDF erlaubt die Codierung, den Austausch und die Wiederverwendung von strukturierten Metadaten (Daten über Daten). Langfristig soll RDF und auf dem RDF basierte verschiedene Anwendungen und Ressourcen zu einem webbasierten semantischen Netz (semantic Web) verbinden. Hierdurch soll der Informationsaustausch zwischen Menschen und Anwendungen, aber insbesondere auch zwischen Anwendungen verbessert werden. In Konkurrenz zur W 3 C Empfehlung RDF gibt es noch die ISOstandardisierten Topic Maps, die ähnliches leisten sollen. P. Brezany Institut für Softwarewissenschaft - Universität Wien 9
Metadaten • Metadaten – Daten über Daten (Beispiel: Katalogisierung in herkömmlichen Biblotheken) • Die Strukturierte Beschreibung und Verwaltung von Metadaten is für eine effiziente Nutzung von verteilten Datenquellen von großer Bedeutung. • Für HTML-Dokumente gibt es sogenannte Meta-Tags, die im Header des Dokuments stehen und von zahlreichen Suchdiensten verarbeitet werden. Das folgende Beispiel zeigt, wie mit einem Meta-Tag der Titel eines Dokuments angegeben werden kann. <META NAME="Title" CONTENT=“Vorlesung Metadaten unserer Gruppe“ LANG=de)> Nicht so einfach bei Dokumenten, die nicht im HTMLFormat sind. P. Brezany Institut für Softwarewissenschaft - Universität Wien 10
Anforderungen an ein Metadatenformat • Zur Steigerung der Effizienz sollten Metadaten maschinell verarbeitbar aber trotzdem vom Menschen lesbar sein, d. h. in Textform vorliegen. • Die Daten sollten für den Austausch über Computernetze, insbesondere das Internet geeignet sein und durch verschiedene Applikationen genutzt werden können. • Die Unabhängigkeit von einer bestimmten Anwendungsdomäne sollte ebenso gegeben sein. • Skalierbarkeit im Hinblick auf die Verarbeitungsgeschwindigkeit und Erweiterungsfähigkeit. • Das W 3 C hat versucht mit dem RDF (Resource Description Framework) diesen Forderungen Rechnung zu tragen. • Die in RDF ausgedrückte Representation von Metadaten kann ohne Semantikverlust zwischen Anwendungen ausgetauscht werden. P. Brezany Institut für Softwarewissenschaft - Universität Wien 11
Ziele des RDF soll für den Einsatz in unterschiedlichen Anwendungen probate Mittel zur Verfügung stellen, angefangen bei der Verbesserung von Suchmaschinen in Bezug auf die Qualität der Suchergebnisse, über den Einsatz bei der Katalogisierung von Datenquellen zur Beschreibung von Inhalten und Beziehungen zu anderen Dokumenten bis hin zur Klassifizierung und Bewertung von Werken im Internet. Darüberhinaus sollen intelligente Software Agenten beim „knowledge sharing“ und dem Austausch von Informationen unterstützt sowie die Dokumentation der Rechte an Web-Inhalten erleichtert werden. Schließlich soll der Einsatz von digitalen Signaturen zusammen mit RDF die Sicherheit im Internet für electronic commerce und ähnliche sicherheits- relevante Anwendungen fördern. P. Brezany Institut für Softwarewissenschaft - Universität Wien 12
Was ist RDF? • RDF ist eine deklarative Sprache zur Beschreibung von elektronischen Ressourcen -- Dingen, die mit einem URI (Uniform Resource Identifier) referenzierbar sind. • RDF kennt keinen speziellen vordefinierten Wortschatz zur Beschreibung von Metadaten, sondern bietet die Möglichkeit verschiedene Standards einzubinden oder gar neue Schemata zu definieren. • Der grundlegende Gedanke bei RDF ist der einer Sprache, mit der man Aussagen über Dinge trifft, die mittels gerichteter Graphen modelliert werden können. • Diese Graphen bestehen aus Knoten, zugehörigen Paaren von Attributen und Werten. • Knoten sind beispielsweise Quellen (Resources) im Internet, Attribute sind die Eigenschaften der Knoten, deren. Werte entweder atomar sind (also Text Strings oder Zahlen) oder wiederum Quellen bzw. Dokumente mit Attributen. P. Brezany Institut für Softwarewissenschaft - Universität Wien 13
Was ist RDF? (2) • RDF Modelle werden dann mittels XML (e. Xtensible Markup Language) speicherbar und austauschbar repräsentiert. • RDF bedient sich der Syntax von XML ohne dabei Annahmen über ein bestimmtes Anwendungsgebiet vorauszusetzen. P. Brezany Institut für Softwarewissenschaft - Universität Wien 14
Das grundlegende RDF Modell Eigenschaften von Ressourcen werden durch Paare von Attributen und Werten beschrieben. Eigenschaften können außerdem Beziehungen zwischen Ressourcen repräsentieren. Das grundlegende RDF Modell kennt drei verschiedene Objekttypen: Resources: Alles, was mittels RDF Ausdrücken beschrieben wird, wird als Ressource bezeichnet. Das kann ein HTML-Dokument, mehrere verknüpfte Internetseiten oder nur ein Teil einer Seite sein. Ebenso sind beispielsweise gedruckte Bücher Ressourcen. Allgemein wird in RDF jedes Werk, das mit einem URI referenziert werden kann, als Ressource bezeichnet. Properties: Als Eigenschaft einer Ressource können spezielle Charakteristika, Attribute oder Beziehungen zu anderen Ressourcen gelten. Die spezifischen Bedeutungen der Eigenschaften legen fest, welche Werte sie annehmen können. Statement: Eine Ressource zusammen mit ihren benannten Eigenschaften und den zugehörigen Werten bildet schließlich ein sogenanntes RDF Statement. Die drei Teile eines Statements werden in Anlehnung an die Grammatik mit Subjekt, Prädikat und Objekt bezeichnet. Das Objekt (der Wert der Eigenschaft) eines RDF Statements kann also eine andere Ressource, einfacher Text String, ein Literal oder ein anderer einfacher Datentyp sein. P. Brezany Institut für Softwarewissenschaft - Universität Wien 15
Das grundlegende RDF Modell (2) P. Brezany Institut für Softwarewissenschaft - Universität Wien 16
Beispiele für RDF Statements P. Brezany Institut für Softwarewissenschaft - Universität Wien 17
Beispiele für RDF Statements (2) Das vorige Beispiel unter Verwendung der XML Syntax lautet: <? xml version="1. 0"? > <rdf: RDF xmlns: rdf= "http: //w 3. org/TR/1999/PR-rdf-syntax-19990105#" xmlns: s="http: //description. org/schema/"> <rdf: Description about="http: //www. muster. de/home/index. html"> <s: Autor>Werner Muster</s: Autor> <s: Datum>1999 -11 -11</s: Datum> </rdf: Description> </rdf: RDF> Die folgende Folie bringt eine Erklärung. P. Brezany Institut für Softwarewissenschaft - Universität Wien 18
Beispiele für RDF Statements (3) Die erste Zeile bezeichnet die zu verwendende XML Version. Dann wird der XML-namespace (xmlns) referenziert, der in der RDF Syntax-definition unter der angegebenen URL beschrieben ist. Das Metadatenschema wird durch das Präfix ’s’ gekennzeichnet und der xmlns assoziiert es mit der Internetadresse der ’description organisation’ (die frei erfunden ist). ’Description about’ bezeichnet die Ressource, über die Informationen angegeben werden. Das ’s’ vor den Tags ’Autor’ und ’Date’ referenziert dann das Schema in dem die Eigenschaften Autor und Datum und ihre zulässigen Werte spezifiziert sind. P. Brezany Institut für Softwarewissenschaft - Universität Wien 19
Beispiele für RDF Statements (4) Das zweite Beispiel in Abb. 4 zeigt die Modellierung der Verwendung von Ressourcen als Werte der Eigenschaften einer ersten Ressource. P. Brezany Institut für Softwarewissenschaft - Universität Wien 20
Beispiele für RDF Statements (5) Das Beispiel 2 unter Verwendung der XML Syntax lautet: <? xml version="1. 0"? > <rdf: RDF xmlns: rdf= "http: //w 3. org/TR/1999/PR-rdf-syntax -19990105#" xmlns: s="http: //description. org/schema /"> <rdf: Description about="http: //www. muster. de/home/index. html"> <s: Autor rdf: resource="http: //www. job. de/mitarbeiter/M 12345"/> </rdf: Description> <rdf: Description about="http: //www. job. de/mitarbeiter/M 12345"/> <s: Name>Werner Muster</s: Name> <s: E-Mail>muster@mail. de</s: E-Mail> </rdf: Description> </rdf: RDF> P. Brezany Institut für Softwarewissenschaft - Universität Wien 21
Hilfskonzepte des RDF Die bisher vorgestellten Mittel scheinen wenig komfortabel zu sein, um beispielsweise ganze Sammlungen von Ressourcen eines Autors zu beschreiben. Allgemein lassen sich verschiedene Ressourcen mit der gleichen Eigenschaft ohne Hilfsmittel nur umständlich beschreiben. Gleiches gilt für eine Ressource mit einer Eigenschaft mit verschiedenen Werten. Hierzu wurde das Container Model entwickelt, das drei Typen von Containern als Sammelobjekte unterscheidet. Bag Eine ungeordnete Menge von Elementen. Wenn die Reihenfolge von Ressourcen keine Rolle spielt wird dieser Typ verwendet. Sequence Eine geordnete Menge. Dieser Typ kommt zur Anwendung, wenn eine spezielle Ordnung der Werte einer Eigenschaft ausgedrückt werden soll, beispielsweise bei der Auflistung von Publikationen eines Autor nach dem Zeitpunkt ihrer Veröffentlichung. Alternative Eine ungeordnete Menge von Alternativen. Dieser Typ drückt aus, dass es keine Role spielt welcher Wert zur weiteren Verarbeitung herangezogen wird. P. Brezany Institut für Softwarewissenschaft - Universität Wien 22
Hilfskonzepte des RDF (2) Zur Modellierung einer Sammlung wird eine zusätzliche Ressource benutzt, die dazu dient, den Container selbst (seine Instanz) zu identifizieren. Diese Ressource ist dann Instanz eines der Containerobjekttypen. Die folgenden Beispiele sollen die Anwendung von Containern verdeutlichen. Die erste Aussage, die mittels RDF/XML modelliert werden soll, lässt sich verbal mit dem Satz: „Die Studenten des Seminars Datenbanken im WWW sind Stefan, Karl, Maik, Katrin und Sonja. “ beschreiben. <rdf: RDF <rdf: Description about= "http: //www. universitaet. de/seminare/wwwdatenbanken"> <s: students> <rdf: bag> <rdf: li Stefan> <rdf: li Karl> <rdf: li Maik> <rdf: li Katrin> <rdf: li Sonja> </rdf: bag> </s: students> </rdf: Description> P. Brezany Institut für Softwarewissenschaft - Universität Wien </rdf: RDF> 23
Hilfskonzepte des RDF (3) Bag Container § § Ungeordnete Gruppe von Ressourcen oder Literalen Kann Duplikate enthalten RDF/XML: <? xml version="1. 0"? > <rdf: RDF xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#" xmlns: s="http: //example. edu/students/vocab#"> <rdf: Description rdf: about="http: //example. edu/courses/6. 001"> <s: students> <rdf: Bag> <rdf: li rdf: resource="http: //example. edu/students/Amy"/> <rdf: li rdf: resource="http: //example. edu/students/Tim"/> <rdf: li rdf: resource="http: //example. edu/students/John"/> <rdf: li rdf: resource="http: //example. edu/students/Mary"/> <rdf: li rdf: resource="http: //example. edu/students/Sue"/> </rdf: Bag> </s: students> </rdf: Description> </rdf: RDF> P. Brezany Institut für Softwarewissenschaft - Universität Wien
Hilfskonzepte des RDF (4) Alt Container § § Gruppe von Ressourcen oder Literalen Enthält unterschiedliche Elemente (Alternativen) RDF/XML: <? xml version="1. 0"? > <rdf: RDF xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#" xmlns: s="http: //example. org/packages/vocab#"> <rdf: RDF> <rdf: Description rdf: about="http: //example. org/packages/X 11"> <s: Distribution. Site> <rdf: Alt> <rdf: li rdf: resource="ftp: //ftp. example. org"/> <rdf: li rdf: resource="ftp: //ftp. example 1. org"/> <rdf: li rdf: resource="ftp: //ftp. example 2. org"/> </rdf: Alt> </s: Distribution. Site> </rdf: Description> </rdf: RDF> P. Brezany Institut für Softwarewissenschaft - Universität Wien
Hilfskonzepte des RDF (5) Collection § § ungeordnete Gruppe Vordefinierte Eigenschaften wie „list“, „first“, „rest“ und „nil“ werden verwendet RDF/XML: <? xml version="1. 0"? > <rdf: RDF xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#" xmlns: s="http: //example. edu/students/vocab#"> <rdf: Description rdf: about="http: //example. edu/courses/6. 001"> <s: students rdf: parse. Type="Collection" > <s: student rdf: resource="http: //example. edu/students/Amy"/> <s: student rdf: resource="http: //example. edu/students/Tim"/> <s: student rdf: resource="http: //example. edu/students/John"/> </s: students> </rdf: Description> </rdf: RDF> P. Brezany Institut für Softwarewissenschaft - Universität Wien
Hilfskonzepte des RDF (6) Für den Fall, dass eine Aussage über die Elemente in einem Container getroffen wird, muss eine syntaktische und semantische Feinheit etwas näher untersucht werden. Zur Referenzierung des zu beschreibenden Objekts (der Ressource) dient das about-Attribut. Auf diese Weise wird jedoch lediglich eine Aussage über das Containerobjekt getroffen, jedoch nicht über die Elemente in dem Container. Ein neues Attribut about. Each behebt dieses Problem. Im folgenden Beispiel soll dies verdeutlicht werden. P. Brezany Institut für Softwarewissenschaft - Universität Wien 27
Hilfskonzepte des RDF (7) <rdf: RDF <rdf: bag ID="pages"> <rdf: li resource="http: //www. edu. de/home. htm" <rdf: li resource="http: //www. uni. de/index. htm" </rdf: bag> <rdf: Description about. Each=#pages <s: Autor>Werner Muster</s: Autor> </rdf: Description> </rdf: RDF> Die Aussage, die hier über die beiden HTML Dokumente gemacht wird könnte genauso durch zwei eigenständige Statements getroffen werden. Man ist jedoch auf die Verwendung von Containern angewiesen, wenn die Beschreibung zwar auf alle Containerelemente als Gruppe, jedoch nicht auf jedes einzelne Element für sich zutrifft. Soll beispielsweise die nicht einstimmige Entscheidung der Mitglieder eines Rates modelliert werden, so können alle Mitglieder in ein Containerobjekt aufgenommen werden, das den Rat repräsentiert. P. Brezany Institut für Softwarewissenschaft - Universität Wien 28
RDF Schema P. Brezany Institut für Softwarewissenschaft - Universität Wien 29
Einführung zum RDF Schema (RDFS) Die eindeutige Belegung von Ausdrücken mit einer wohldefinierten Semantik ist für die maschinelle Verarbeitung von Informationen außerordentlich wichtig. Dies wird in RDF durch Referenzen auf Schemata sichergestellt, wie sie in den vorangegangenen Beispielen zu sehen waren. Diese Schema definieren die Ausdrücke, die in den Statements gebraucht werden und versehen sie mit einer eindeutigen Semantik. RDF ist dabei nicht auf ein Schema festgelegt, sondern bietet die Möglichkeit verschiedene Schemata zu entwickeln und auch gleichzeitig zu verwenden. Dies wird erreicht, indem im RDF die Mittel der XML-namespaces genutzt werden, die Verwendung eines Wortes in den Kontext eines Schemas stellen, indem die gewünschte Bedeutung festgelegt ist. Ein RDF-Schema bietet neben Semantikdefinition des Vokabulars aber noch die Möglichkeit, Restriktionen in Bezug auf die Verwendung von Eigenschaften (Properties) zu modellieren. P. Brezany Institut für Softwarewissenschaft - Universität Wien 30
Einführung zum RDF Schema (RDFS) (2) • RDFS erfüllt eine andere Rolle als XML Schema – XML Schema (und auch DTD) schreibt die Reihenfolge und Kombination von tags in einem XML Dokument. – RDFS gibt nur die Information über die Interpretierung der in einem RDF Modell gegebenen statements aber gibt keine Beschränkung auf die syntaktische Gestaltung einer RDF Definition. • RDFS ermöglicht ein bestimmtes Vokabular für RDFDaten (z. B. has. Name) zu definieren und die Art von Objekten zu spezifizieren, an diese Attribute angewendet werden können. • Der RDFS Mechanism bietet ein fundamentales Typ. System für RDF Modelle. • Dieses Typ. System benutzt bestimmte vordefinierte Begriffe, wie Class, sub. Proprerty. Of, und sub. Class. Of (emöglicht die hierarschische Organisation solcher Klassen zu spezifizieren); Beispiel: nächste Folie. P. Brezany Institut für Softwarewissenschaft - Universität Wien 31
Einführung zum RDF Schema (RDFS) (3) <rdfs: Class rdf: about=“Book“/> <rdfs: Class rdf: about=“Hard. Cover“> <rdfs: sub. Class. Of rdf: resource=“#Book“/> </rdfs: Class <Hardcover rdf: resource=“http: //www. books. org/ISBN 0062515861“/> Properties können mit ihrem domain und range definiert werden, und in einer property Hierarchie organisiert werden – durch sub. Property. Of: <rdfs: Property rdf: about=“has. Price“> <rdfs: domain rdf: resource=“#Book“/> </rdfs: Property P. Brezany Institut für Softwarewissenschaft - Universität Wien 32
Klassen und Eigenschaften RDF verfolgt eine Art Klassenkonzept, dass sich jedoch in einem wesentlichen Punkt von dem in den meisten Objektmodellierungssprachen unterscheidet. Eigenschaften werden im RDF als Kernklassen-Objekte betrachtet. Beim herkömmliche Ansatz sind Eigenschaften Attribute einer Klasse. Laut RDF Modell und Syntax Spezifikation können Ressourcen Instanzen einer oder mehrerer Klassen sein. Diese Zuordnung wird mittels einer type Eigenschaft ausgedrückt. Auch im RDF sind Klassen häufig hierarchisch organisiert, was durch eine spezielle Eigenschaft angezeigt wird. Eine Klasse Literatur kann beispielsweise die Unterklassen Roman und Gedicht haben. Eine Ressource vom Typ Roman ist dann auch vom Typ Literatur. P. Brezany Institut für Softwarewissenschaft - Universität Wien 33
Klassen und Eigenschaften (2) Daneben gibt es eine Reihe weiterer Ressourcen und Eigenschaften, mit denen Statements bezüglich Einschränkungen zur konsistenten Verwendung von Elementen des RDF modelliert werden können. Einen Überblick über alle Klassen und Ressourcen soll die folgende Abbildung 5 geben. Abgerundete Rechtecke symbolisieren Klassen, Punkte Ressourcen und ein Pfeil weist jeweils ausgehend von einer Ressource auf die sie definierende Klasse. Elemente mit dem Präfix rdf: und rdfs: sind bzw. werden in anderen Dokumenten formal definiert. In den folgenden Abschnitten sollen einige der Klassen und Eigenschaften näher erläutert werden. P. Brezany Institut für Softwarewissenschaft - Universität Wien 34
Klassen und Eigenschaften (3) P. Brezany Institut für Softwarewissenschaft - Universität Wien 35
Kern-Klassen im RDF rdfs: Resource Alles, was mittels RDF beschrieben werden kann, wird als Instanz dieser Klasse betrachtet. Diese Klasse repräsentiert die Menge der Ressourcen wie sie in der Modell- und Syntax-Spezifikation des RDF formal eingeführt werden, hat aber nichts mit dem syntaktischen Element resource zu tun, das in der RDF/XML-Syntax verwendet wird. rdf: Property Diese Klasse repräsentiert eine Untermenge von Ressourcen, die Eigenschaften sind. Die Tatsache, dass Eigenschaften auch Ressourcen sind ermöglicht ihre Beschreibung durch RDF selbst. rdfs: Class Ein Typ oder eine Kategorie, die ähnlich des Klassenkonzepts in OO-Modellierungssprachen eine Menge kennzeichnet, in der Elemente gleicher Art vertreten sind, wird von dieser Klasse abgeleitet. Wann immer ein RDFSchema eine neue Klasse definiert, hat diese die Eigenschaft rdf: type mit dem Wert rdfs: Class. Die Zugehörigkeit von Ressourcen zu einer Klasse wird ebenso mit der Eigenschaft rdf: type markiert, deren Wert die Klasse ist. 36 P. Brezany Institut für Softwarewissenschaft - Universität Wien
Kern-Eingeschaften im RDF rdf: type Diese Eigenschaft zeigt an, dass eine Ressource zu einer Klasse gehört. Handelt es sich um eine spezielle Klasse, so wird die Ressource als Instanz dieser Klasse betrachtet. rdfs: sub. Class. Of Mit dieser Eigenschaft werden hierarchische Beziehungen zwischen Klassen spezifiziert. Die oberste Klasse ist hierbei immer die Klasse rdf: Resource und nur Instanzen von rdfs: Class können die Eigenschaft rdf: sub. Class. Of haben. Die Zuordnung einer Klasse zu mehreren Oberklassen ist möglich. Außerdem handelt es sich um eine transitive Eigenschaft, was bedeutet, dass eine Klasse C, die Unterklasse von einer Klasse B ist auch Unterklasse von A ist, wenn B Unterklasse von A ist. P. Brezany Institut für Softwarewissenschaft - Universität Wien 37
Kern-Eingeschaften im RDF (2) rdfs: sub. Property. Of Spezialisierungen einer Eigenschaft werden durch dieses Attribut definiert. Auch hier handelt es sich um eine transitive Eigenschaft. D. h. , dass eine Ressource R mit der Eigenschaft E 2 mit dem Wert W auch die Eigenschaft E 1 mit dem Wert What, wenn E 2 die Eigenschaft rdfs: sub. Property. Of mit dem Wert E 1 hat. Im Gegensatz zu rdfs: sub. Class. Of können zyklische Beziehungen aufgebaut werden, die eine Äquivalenz-Beziehung zwischen Eigenschaften ausdrücken. P. Brezany Institut für Softwarewissenschaft - Universität Wien 38
Constraints Die Einschränkung der Domäne und des Wertebereichs einer Eigenschaft erfolgt in einem RDFSchema durch zwei Ressourcen die Instanzen der Klasse rdfs: Constraint. Property sind. rdfs: range Diese Eigenschaft beschränkt den Wertebereich, den eine Eigenschaft annehmen kann, auf die rdfs: rangewandt wird. Es ist hierbei maximal ein Wert zulässig. Beispielsweise könnte als Wert zu rdfs: range für die Eigenschaft geschlecht. Des. Ehemannes „männlich“ definiert werden. Als Wert einer Eigenschaft kommt also nur eine Ressource einer bestimmten Klasse in Frage. Der Wertebereich wird außerdem an Sub-Klassen vererbt. rdfs: domain Die Ressourcen, auf die eine bestimmte Eigenschaft angewendet werden darf, wird durch rdfs: domain auf Instanzen bestimmter Klassen beschränkt. Dabei können beliebig viele Klassen angegeben werden. P. Brezany Institut für Softwarewissenschaft - Universität Wien 39
Simple RDF – Example (instance of the v. Card ontology) <? xml version='1. 0' encoding='UTF-8'? > <rdf: RDF xmlns: rdf='http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#' xmlns: v. Card='http: //www. w 3. org/2001/vcard-rdf/3. 0#' > <rdf: Description rdf: about="http: //somewhere/John. Smith/"> <v. Card: FN>John Smith</v. Card: FN> <v. Card: N rdf: parse. Type="Resource"> <v. Card: Family>Smith</v. Card: Family> <v. Card: Given>John</v. Card: Given> </v. Card: N> </rdf: Description> </rdf: RDF> P. Brezany Institut für Softwarewissenschaft - Universität Wien
Graph of the data model P. Brezany Institut für Softwarewissenschaft - Universität Wien 41
Triples of the Data Model Subject Predicate Object http: //somewhere/John. Smith http: //www. w 3. org/2001/vcard-rdf/3. 0#FN John Smith genid: 001 http: //www. w 3. org/2001/vcard-rdf/3. 0#Family Smith genid: 001 http: //www. w 3. org/2001/vcard-rdf/3. 0#Given John http: //somewhere/John. Smith http: //www. w 3. org/2001/vcard-rfd/3. 0#N genid: 001 P. Brezany Institut für Softwarewissenschaft - Universität Wien 42
RDF/RDFS Anfragesprachen • 3 Abstraktionsebenen für RDF-Dokumente und RDF -Schemen: 1. syntaktische Ebene (XML/RDF Dokumente) 2. struktuelle Ebene (eine Menge von Tripeln) 3. semantische Ebene (ein oder mehrere Graphen mit teilweise vordefinierter Semantik) • Diese Dokumente können an beliebiger Ebene abgefragt werden – – P. Brezany für 1. : Anfragesprachen basiert XML Anfragesprachen für 2. und 3. : Anfragesprachen basiert auf SQL z. B. SELECT ? x FROM somesource WHERE (rdf: : type ? x Vice. President) Institut für Softwarewissenschaft - Universität Wien 43
RDQL - Query Example 1 Query: SELECT ? x WHERE (? x, <http: //www. w 3. org/2001/vcard-rdf/3. 0#FN>, "John Smith") Result: http: //somewhere/John. Smith/ Query: Example 2 SELECT ? x WHERE (“http: //www. w 3. org/2001/vcard-rdf/3. 0#FN”, ? x , "John Smith") Result: http: //www. w 3. org/2001/vcard-rdf/3. 0#FN P. Brezany Institut für Softwarewissenschaft - Universität Wien 44
RDF Schema - part 1 – ontology for v. Card <? xml version="1. 0" encoding="UTF-8" ? > <rdf: RDF xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#" xmlns: rdfs="http: //www. w 3. org/2000/01/rdf-schema#"> <rdf: Description ID="FN"> <rdf: type rdf: resource="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#Property"/> <rdfs: label>Formatted Name</rdfs: label> </rdf: Description> <rdfs: Class rdf: ID="NPROPERTIES"/> <-- ! It could be extended --- > <rdf: Description ID="N"> <rdf: type rdf: resource="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#Property"/> <rdfs: label>Name</rdfs: label> <rdfs: range rdf: resource="#NPROPERTIES"/> </rdf: Description> P. Brezany Institut für Softwarewissenschaft - Universität Wien 45
RDF Schema – part 2 <rdf: Description ID="Family"> <rdf: type rdf: resource="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#Property"/> <rdfs: label>Family Name</rdfs: label> <rdfs: sub. Class. Of rdf: resource="#NPROPERTIES"/> </rdf: Description> <rdf: Description ID="Given"> <rdf: type rdf: resource="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#Property"/> <rdfs: label>Given Name</rdfs: label> <rdfs: sub. Class. Of rdf: resource="#NPROPERTIES"/> </rdf: Description> </rdf: RDF> P. Brezany Institut für Softwarewissenschaft - Universität Wien 46
DAML+OIL DAML = DARPA Agent Markup Language (USA Projekt) OIL = Ontology Interchange Language (EU Projekt) RDFS can be regarded as a very simple ontology language. However, many types of knowledge cannot be expressed in this simple language. Just a few exammples of useful things we cannot say in RDFS are: – – P. Brezany stating that other option every book has exactly one price, but at least one author; titles of books are strings and prices of books are numbers; no bok can be both hardcover and softcover; every book is either hardcover or softcover (i. e. there is no than these two). Institut für Softwarewissenschaft - Universität Wien 47
DAML+OIL Beispiel – part 1 <? xml version="1. 0" encoding="UTF-8" ? > <rdf: RDF xmlns: daml='http: //www. daml. org/2001/03/daml+oil#' xmlns: rdf='http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#' xmlns: rdfs='http: //www. w 3. org/2000/01/rdf-schema#'> <daml: Ontology daml: version. Info='3. 0'> <daml: comment>This is an ontology for v. Cards. </daml: comment> </daml: Ontology> <rdfs: Class rdf: ID='NPROPERTIES'/> <rdfs: Class rdf: ID='VCARD'/> P. Brezany Institut für Softwarewissenschaft - Universität Wien 48
DAML+OIL – part 2 <daml: Object. Property rdf: ID='N' rdf: type='http: //www. daml. org/2001/03/daml+oil#Unique. Property'> <daml: range rdf: resource='#NPROPERTIES'/> <daml: domain rdf: resource='#VCARD'/> </daml: Object. Property> <daml: Datatype. Property rdf: ID='FN' rdf: type='http: //www. daml. org/2001/03/daml+oil#Unique. Property'> <daml: range rdf: resource='http: //www. w 3. org/2000/10/XMLSchema#string'/> <daml: domain rdf: resource='#VCARD'/> </daml: Datatype. Property> P. Brezany Institut für Softwarewissenschaft - Universität Wien 49
DAML+OIL – part 3 <daml: Datatype. Property rdf: ID='Given' rdf: type='http: //www. daml. org/2001/03/daml+oil#Unique. Property'> <daml: label>Given Name</daml: label> <daml: range rdf: resource='http: //www. w 3. org/2000/10/XMLSchema#string'/> <daml: domain rdf: resource='#NPROPERTIES'/> </daml: Datatype. Property> <daml: Datatype. Property rdf: ID='Family' rdf: type='http: //www. daml. org/2001/03/daml+oil#Unique. Property'> <daml: label>Family Name</daml: label> <daml: range rdf: resource='http: //www. w 3. org/2000/10/XMLSchema#string'/> <daml: domain rdf: resource='#NPROPERTIES'/> </daml: Datatype. Property> P. Brezany Institut für Softwarewissenschaft - Universität Wien 50
OWL has only minor changes from DAML+OIL. Even the abstract syntax can be viewed as an abstract syntax for DAML+OIL. There a number of minor differences between OWL and DAML+OIL including a number of changes to the names of the various constructs. P. Brezany Institut für Softwarewissenschaft - Universität Wien 51
Eine auf DAML Basierte RDF Anfragesprache <Query> <select rdf: resource="property 1"/> <select rdf: resource="property 2"/>. . . <from rdf: resource="class"/> </Query> The result of this query is the set of all statements with a subject of type class and a predicate of property 1 or property 2 etc. P. Brezany Institut für Softwarewissenschaft - Universität Wien 52
- Slides: 52