RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der...

27
RDF-Schema Seminar: „Semantic Web“ André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003

Transcript of RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der...

Page 1: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

RDF-Schema

Seminar: „Semantic Web“

André Rosin,Humboldt-Universität zu Berlin,

Fakultät der Informatik,Wintersemester 2002/2003

Page 2: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Inhalt

I. Einleitung Was ist RDF-Schema? Schema Definition Language

I. Einleitung

II. Das Klassenkonzept

Vererbung

Constraints

RDF-Schema objektorientiert?

I. Einleitung

II. Das Klassenkonzept

III. Syntax von RDF-Schema

Kern-Klassen und –Properties

Container-Klassen und –Properties

Utility-Klassen und -Properties

I. Einleitung

II. Das Klassenkonzept

III. Syntax von RDF-Schema

IV. Beispielanwendung

I. Einleitung

II. Das Klassenkonzept

III. Syntax von RDF-Schema

IV. Beispielanwendung

V. Ausblick

Vergleich mit anderen Metamodellen

Page 3: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

I. Einleitung

Was ist RDF-Schema?

RDF bietet keine Möglichkeit:• Eigenschaften und• Beziehungen zwischen Eigenschaften

und Ressourcen zu beschreiben.Ressourcenbeschreibungen benötigen

die Fähigkeit bestimmte Dinge über Ressourcen zu sagen

Page 4: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

RDF-Schema kein Schema?

• RDF-Schema definiert einen Mechanismus, um die eigentlichen Schemata zu entwerfen:

Die Vocabulary Defintion Language ist eine Reihe von Klassen und Eigenschaften zur Beschreibung anderer Klassen und Eigenschaften

• Die RDF-Schema-Spezifikation ist unter:http://www.w3.org/TR/rdf-schema/

zu finden und working draft des W3C.

Page 5: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

RDF-Schema Spezifikation

• Ein Schema legt für jede Eigenschaft fest: welche Werte erlaubt sind welche Ressource sie besitzen darf welche Beziehung sie zu anderen

Eigenschaften hat

• RDF-Schema definiert die Semantik von Aussagen mittels RDF-Syntax

Page 6: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

II. Das Klassenkonzept

Einzug objektorientierter Paradigmen

• Klassensystem vergleichbar zu OO-Programmiersprachen wie Java und C++

• Instanziierung von Klassen, Typisierung• Vererbung, Mehrfachvererbung,

Spezialisierung• Aber: Klassen von Objekten sind auch ohne

spezielle Eigenschaften identifizierbar

Page 7: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

III. Syntax von RDF-Schema

• Kernvokabular der Vocabulary Description Language wird mit „rdfs“ bezeichnet und ist definiert im Namensraum:http://www.w3.org/2000/01/rdf-schema#

Definition der Kernklassen:

rdfs:Resource - Alle in RDF beschriebenen Dinge sind Instanz dieser Klasse

rdfs:Literal und rdfs:XMLLiteral - Klasse aller (XML-)Literale, z.B. Strings und Integers

Page 8: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Kernklassen

rdfs:Class - Konzept der Klassen, jede Klasse hat rdf:type Eigenschaft mit dem Wert rdfs:Class, Unterklasse von rdfs:Resource,

Anwendung mit:

<rdfs:Class rdf:ID=“Klasse“> … </rdfs:Class >

rdfs:DataType - Klasse aller Ressourcen, die RDF-Datentypen sind

Page 9: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Kernklassen (cont.)

rdfs:Property - Konzept der Eigenschaften analog zu rdfs:Class, Anwendung mit:

<rdfs:Property rdf:ID=“Property“> … </rdfs:Property>

rdf:type - Eigenschaft besagt, dass Ressource Instanz einer Klasse ist, Anwendung mit:

<rdf:type resource=“http://www.w3.org/ … 2000/01/rdf-schema#Class“/>

Page 10: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Kernproperties

rdfs:subClassOf - Unterklassenrelation ermöglicht Vererbungsmechanismus und Modularisierung von Schemata, Anwendung:

<rdfs:subClassOf rdf:resource=“#Basisklasse“/>

rdfs:subPropertyOf - Spezialisierung von Eigenschaften analog zu rdfs:subClassOf

<rdfs:subPropertyOf rdf:resource=“#Basisproperty“/>

Page 11: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Kernproperties (cont.)

rdfs:range - legt den Wertebereich einer Property fest und ermöglicht so Constraints

rdfs:domain - legt den Definitionsbereich einer Eigenschaft fest – auf welche Klassen kann eine Eigenschaft angewandt werden?

Jede Eigenschaft hat höchstens eine rdfs:range und rdfs:domain-Eigenschaft!

Page 12: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Beispiel (aus Spezifikation)

<rdf:Property rdf:about="http://www.w3. org/2000/01/rdf-schema#subPropertyOf">

<rdfs:isDefinedBy rdf:resource="http://www.w3.org/ 2000/01/rdf-schema#"/> <rdfs:range rdf:resource="http:// www.w3.org/1999/02/22-rdf-syntax- ns#Property"/> <rdfs:domain rdf:resource="http:// www.w3.org/1999/02/22-rdf-syntax- ns#Property"/> </rdf:Property>

Page 13: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

rdfs:range und rdfs:domain

Page 14: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Kernproperties (cont.)

rdfs:label - Eigenschaft definiert die menschlesbare Version des Namens einer Ressource

rdfs:comment - Eigenschaft enthält die menschlesbare Beschreibung einer Ressource, Anwendung:

<rdfs:comment> Kommentar… </rdfs:comment>

Page 15: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Containerklassen

Containervokabular wird optional von RDF zur Verfügung gestellt.

rdfs:Container - Superklasse für RDF-Container

rdfs:ContainerMembershipProperty - Unterklasse von rdfs:Property, hat als Instanzen rdfs:member und _1, _2, ..., _n

rdf:List - Klasse der RDF-Listen, wird mit rdf:first, rdf:rest und rdf:nil benutzt

Page 16: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Container (cont.)

rdf:Bag - Klasse ungeordneter Listen rdf:Seq - Klasse sequentieller Listen rdf:Alt - Klasse alternativer Listen

Containerproperties: rdfs:member – Element eines

Containers rdf:first, rdf:rest, rdf:nil – erstes Element

einer Liste, Restliste und leere Liste

Page 17: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Statik von RDF-Schema

• Schemata sind statisch, Änderungen ziehen in der Regel Anpassungen vieler Dokumente nach sich

• Sind Änderungen erforderlich, wird ein neues Schema erforderlich, welches das alte erweitert, dies geschieht mit:

<rdf:Description rdf:ID=”XY” rdfs:subClassOf= ”http://example.org/oldschema_XY”/>

Page 18: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Utitityklassen und -properties

Utilityklassen und –properties modellieren RDF-Statements.

rdf:Statement - Klasse repräsentiert Statements über Eigenschaften von Ressourcen und ist einzige Utilityklasse

rdfs:seeAlso und rdfs:isDefinedBy – spezifizieren jeweils eine Ressource, die zusätzliche RDF-Informationen über ein Subjekt bereitstellt, rdfs:seeAlso ist allgemeiner als rdfs:isDefinedBy

Page 19: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Utilityproperties

rdf:value – identifiziert den Wert einer Ressource

rdf:subject – Eigenschaft repräsentiert das Subjekt eines Statements

rdf:object – Eigenschaft repräsentiert das Objekt eines Statements

rdf:predicate – Eigenschaft repräsentiert das Prädikat eines Statements

Statement = {subject, object, predicate}

Page 20: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Hierarchien

Page 21: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

IV. Beispiel #1

<rdf:RDF xml:lang=“de“ xmlns:rdf= “http://www.w3.org/1999/02/22-rdf-syntax-ns#“ xmlns:rdfs=“http://www.w3.org/2000/01/rdf-

schema#“>

<rdfs:Class rdf:ID=“Person“> <rdfs:comment> Die Klasse aller Personen. </rdfs:comment> <rdfs:subClassOf rdf:resource=

“http://www.classtypes.org/useful_classes#Animal“/> </rdfs:Class>

Page 22: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Beispiel #1 (cont.) <rdf:Property ID=“Geburtsdatum“> <rdfs:range rdf:resource= “http://www.w3.org/2000/01/rdf-

schema#Literal“/> <rdfs:domain rdf:resource=“#Person“/> </rdf:Property>

<rdf:Property ID=“Alter“> <rdfs:subPropertyOf

rdf:resource=“#Geburtsdatum“> <rdfs:range rdf:resource=

“http://www.datatypes.org/useful_types#Integer“/> <rdfs:domain rdf:resource=“#Person“/> </rdf:Property>

Page 23: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Beispiel #1 (cont.)

<rdf:Property ID=“statusPerson“> <rdfs:range rdf:resource=“#Status“/>

<rdfs:domain rdf:resource=“#Person“/> </rdf:Property>

<rdfs:Class rdf:ID=“Status“/> <Status rdf:ID=“Student“/> <Status rdf:ID=“Leiter“/> <Status rdf:ID=“Assistent“/>

</rdf:RDF>

Page 24: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Beispiel #2 (Auszug)…

<rdf:Description ID=“Fahrzeug“><rdf:type resource=“http://www.w3.org/2000/01/...

… rdf-schema#Class“/> <rdfs:subClassOf rdf:resource=

“http://www.w3.org/2000/01/rdf-schema#Resource“/>

</rdf:Description>

<rdf:Description ID=“Personenkraftwagen“><rdf:type resource=“http://www.w3.org/2000/01/...

rdf-schema#Class“/> <rdfs:subClassOf rdf:resource=“#Fahrzeug“/>

</rdf:Description>…

Page 25: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

V. Ausblick

Vorteile von RDF-Schema:• RDF-Schema ist ein mächtiges Mittel des

Semantic Web um strukturierte Informationen über Webseiten zu liefern

• RDF-Schema stellt zur Verfügung: Einschränkung von Eigenschaften Aggregation durch Container Emulation von Schnittstellen, Methoden Kardinalitäten von Klassen und mehr

Page 26: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Ausblick (cont.)

Nachteile von RDF-Schema:• Keine strikte Trennung der

Abstraktionsschichten• Problematische Rekursion zwischen

rdfs:Class und rdfs:Resource• Keine logischen Operatoren möglichRDF-Schema wird unübersichtlich ->

Verwendung konkurrierender Metamodelle wie UML oder Topic Maps sollte in Betracht gezogen werden

Page 27: RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der Informatik, Wintersemester 2002/2003.

Ende

Danke für die Aufmerksamkeit!

Gibt es noch Fragen?