RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der...
-
Upload
emerick-gess -
Category
Documents
-
view
112 -
download
6
Transcript of RDF-Schema Seminar: Semantic Web André Rosin, Humboldt-Universität zu Berlin, Fakultät der...
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
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
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.
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
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
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
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
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“/>
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“/>
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!
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>
rdfs:range und rdfs:domain
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>
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
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
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”/>
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
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}
Hierarchien
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>
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>
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>
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>…
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
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
Ende
Danke für die Aufmerksamkeit!
Gibt es noch Fragen?