Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web...

90
Tutorial Grundlagen des Semantic Web Robert Tolksdorf, Elena Paslaru Bontas AG Netzbasierte Informationssysteme http://nbi.inf.fu-berlin.de/lehre/0506/P_SW/

Transcript of Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web...

Page 1: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Tutorial Grundlagen des Semantic WebRobert Tolksdorf, Elena Paslaru Bontas

AG Netzbasierte Informationssystemehttp://nbi.inf.fu-berlin.de/lehre/0506/P_SW/

Page 2: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

TerminkalenderTermin Thema Beschreibung

02.11 Semantic Web Sprachen I

RDF, RDFS Syntax und Semantik mit Beispielen

09.11

16.11 RDF(S)-Werkzeuge

Programmierwerkzeuge: Jena APIAnfragesprachen: SPARQL, RDQLValidatoren, Editoren, RDF-Datenbanken

23.11 Semantic Web Sprachen II

OWL, SWRL Syntax und Semantik mit Beispielen

30.11 OWL/SWRL-Werkzeuge

OWL-Werkzeuge:Programmierwerkzeuge: Jena APIReasoning in OWL: Pellet, RACERAnfragesprachen: OWL-QL, RQLValidatoren, Editoren, Datenbanken

SWRL-Werkzeuge:Reasoning in SWRLEditoren

Page 3: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Semantic Web Sprachen I

RDF und RDFS

Page 4: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge
Page 5: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Übersicht

Grundlagen: XML/XML-SchemaRDF: Syntax, Semantik, DatenmodellErweiterung des RDF mit RDFSRDFS: Syntax und SemantikBeispiele

Page 6: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

XML und XML Schema

Page 7: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Grundlagen

PrinzipTrennung zwischen Struktur und Darstellung

NamensräumeVerwendung mehrerer XML Schemata in einem Dokument ohne Namenskonflikte

XML DTD und XML Schemakorrekte Dokumentstrukturen

Ersetzung des HTML durchDomänenspezifische Auszeichungssprachen (definiert in XML) z.B. MathMLAbbildung von diesen Sprachen zu HTML (XSL)

Page 8: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Warum ist XML nicht ausreichend?

Trennung zwischen Struktur und InhaltNotwendig weil Domänenwissen unterschiedlich strukturiert werden kannNotwendig um externe Dokumentstrukturen zu verstehen

Explizite InhaltsdarstellungNotwendig um Wissen maschinen-lesbar darzustellen

Page 9: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Beispiel Aussage: die Webseite „nbi.inf.fu-berlin.de“ wurde erstellt von Robert Tolksdorf.

Metainfo nbi.inf.fu-berlin.de hat den Autor

Info

<Autor><uri> nbi.inf.fu-berlin.de </uri><name>Robert Tolksdorf</name>

</Autor>

<Document uri=“nbi.inf.fu-berlin.de”<Autor>Robert Tolksdorf</Autor>

</Document>1 2

<Document uri=“nbi.inf.fu-berlin.de” Creator=“Robert Tolksdorf”/>3

Page 10: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF

Page 11: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF

RDF (Resource Description Framework)Sprache zur Darstellung inhaltlicherMetadaten Wie jede Sprache hat RDF

Syntax (verschiedene XML Serialisierungsmöglichkeiten)Semantik (RDF Datenmodell)

Wie jede Web-Sprache hat RDF einen Namespace

Page 12: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

DatenmodellGerichteter Graph: Knoten (Ressourcen), Kanten (Properties)

Ressourcen (RDF Resource)Alles worüber man Aussagen machen kannIdentifiziert durch URIs (qualified URIs = URI + fragment identifier)Aussagen sind auch Ressourcen

Eigenschaften/Beziehungen (RDF Property)Verbinden Ressourcen miteinander oder Ressourcen zu Werten (RDF Literal)

Aussagen (RDF Statement)(Subjekt, Prädikat, Objekt)“Resource has Property with Value”

Page 13: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

BeispielAussage: die Webseite „nbi.inf.fu-berlin.de“ wurde erstellt von Robert Tolksdorf

Metainfonbi.inf.fu-berlin.de hat den Autor

Info

"nbi.inf.fu-berlin.de" Subjekt (Ressource)hat den Autor Prädikat (Ressource)

Robert Tolksdorf Objekt (Wert oder Ressource)

Page 14: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Beispiel (2)

nbi.inf.fu-berlin.de www.robert-tolksdorf.de/Robert

25

"RT"Name

Alter

Semantic WebGeeignet für

eBusiness

Gesagtvon

Autor

RDF RessourcenRDF Literal

Page 15: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF Blank NodesAnonyme Ressourcen (haben keine URI)Platzhalter für komplexe ObjekteRessourcen von unbekannten Typ

Aussage: die Webseite „nbi.inf.fu-berlin.de“ wurde erstellt von jemanden/etwas mit dem Namen „RT“ und der Email-Adresse „rt@inf“

nbi.inf.fu-berlin.de x:_1

rt@inf

"RT"Name

Email

Autor

Blank Node

Page 16: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF Containers

Mengenobjekte (geordnet, ungeordnet, mit Duplikaten, ohne Duplikaten, offen)

Ermöglichen Aussagen über mehrere Ressourcen Platzhalter für komplexe Mengenobjekte (vs. Blank Node)

Page 17: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Container-Typen

3 Typen von ContainernBag ungeordnete Liste rdf:BagSequence geordnete Liste rdf:SeqAlternative eindeutiger Wert rdf:Alt

Containers sind auch RDF RessourcenSemantik: offene Mengen

unbekannt ob weitere Elemente zu der Mengegehören

Page 18: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

BeispielAussage: die Webseite „nbi.inf.fu-berlin.de“ wurde erstellt von Robert Tolksdorf und Elena Paslaru und …

nbi.inf.fu-berlin.de

Autor-Container-URI

Autor

rdf:Bag

Elena Paslaru URI

www.robert-tolksdorf.de/Robert

rdf:type rdf:_1

rdf:_2

rdf:_3

Page 19: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Alternative Modellierung

nbi.inf.fu-berlin.de

Elena Paslaru URI

www.robert-tolksdorf.de/Robert

Autor

Autor

Autor

Page 20: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Nutzung von RDF Containern

BagMitglieder einer Gruppe, Dateien in einem Verzeichnis

SeqBuch/Artikelautoren, Punkte in einer Tagesordnung

Altdocument home and mirrors, mailing-list moderators

Page 21: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF Collections

Ähnlich zu Containern, aber geschlossen:Alle Elemente einer Menge sind spezifiziert

Zugriff auf einzelne Mengenelementerekursivfirst (erstes Element)rest (restliche Elemente)nil (leere Menge)

Page 22: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Beispiel Aussage: Das Projekt „Semantic Web“ wird veranstaltet von Robert Tolksdorf und Elena Paslaru.

SWProjekt-URI

_x:1

Veranstalter

www.robert-tolksdorf.de/Robert

Elena Paslaru URI_x:2

rdf:nil

rdf:first

rdf:rest

Blank Node

Blank Node

rdf:first

rdf:rest

Page 23: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Reifizierte Aussagen

Aussagen über Aussagen

Spezieller Konstrukt (RDF Statement)

Identifiziert explizit das Subjekt, Prädikat, Objekt einer AussageHat URI

Page 24: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

BeispielAussage: Robert Tolksdorf hat folgendes gesagt: „Semantic Web ist geeignet für eBussiness“.

www.robert-tolksdorf.de/Robert

25

"RT"Name

Alter

Semantic WebGeeignet für

eBusiness

GesagtvonRDF Statement

RDF Subject

Page 25: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF about

aboutdirekte Angabe des URI

aboutEachURI eines ContainerProperty auf alle Elemente angewendet

aboutEachPrefixURI PräfixProperty auf alle Ressourcen mit dem Präfix angewendet

Page 26: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF ID

Fragment identifier (eindeutig im Dokument)Abkürzung der vollständigen URI einer RessourceVollständiger Name zusammengesetzt aus:

Base URI (xml:base = …)#

Beispiel Wert von rdf:ID

http://www.example.com/products#item123

rdf:IDxml:base

Page 27: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF Datatypespezifiziert den Datentyp eines LiteralsXML-Schema Datentypen unterstütztSpezieller Typ von RDF Literal

Beispiel (RDF/XML Syntax)

<name rdf:datatype="&xsd;string>RT</name>

Page 28: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF Syntax

DatenmodellGraphenstruktur: Knoten (Ressourcen, Werte), Kanten (Properties)

Verschiedene syntaktische FormateRDF/XML SyntaxN3…

Page 29: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Beispiel XML/RDF

<rdf:RDF><rdf:Descriptionabout="http://nbi.inf.fu-berlin.de">

<Autorrdf:resource=“http://robert.tolksdorf.de/Robert” />

</rdf:Description></rdf:RDF>

nbi.inf.fu-berlin.de www.robert-tolksdorf.de/RobertAutor

Dokument-Header

Page 30: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Alternative<rdf:RDF>

<rdf:Description about="http://nbi.inf.fu-berlin.de"><Autor>

<NBIMitarbeiterrdf:resource=“http://robert.tolksdorf.de/Robert”/></Autor>

</rdf:Description></rdf:RDF>

nbi.inf.fu-berlin.de www.robert-tolksdorf.de/RobertAutor

NBIMitarbeiter

rdf:type_

Page 31: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Das gleiche in N3

nbi.inf.fu-berlin.de ns:Autorwww.robert-tolksdorf.de/Robert

www.robert-tolksdorf.de/Robertrdf:type ns:NBIMitarbeiter

nbi.inf.fu-berlin.de www.robert-tolksdorf.de/RobertAutor

NBIMitarbeiter

rdf:type_

Page 32: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Warum ist RDF nicht ausreichend?

RDF Sprache für die Darstellung von Aussagen im Webdefiniert ein Datenmodel:

Ressourcen minimal typisiertSemantik der Ressourcen minimal spezifiziert

NotwendigErweiterung von RDF für die Beschreibung von semantisch komplexere Vokabularien

Page 33: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDFS

Page 34: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Wichtige Konstrukte

KlassenRoot-Class rdfs:ResourceMetaClass rdfs:ClassLiterals rdfs:Literal

Propertiesrdfs:subclassOfrdfs:domain, rdfs:rangerdf:typerdfs:label, rdfs:comment

Page 35: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Beispielrdfs:Resource

xyz:MotorVehicle rdfs:Class

s s t

t

xyz:Truck

s

t

xyz:PassengerVehicle

s = rdfs:subClassOf t = rdf:type

xyz:Van s

s

xyz:MiniVan s

s

t t

t

Page 36: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Bemerkungen

RDFS unterscheidet nicht zwischenKlassen und PropertiesObject und DatatypePropertiesKlassen und Instanzen

RDFS ordnet RDF-Konstrukte weitere Typen zurdfs:Class, rdfs:Property etc.

Beispiele rdf:Statement ist vom Typ rdfs:ClassDie Property rdf:type ist eine Subklasse der Klasserdfs:Property

Page 37: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

rdf:type

spezifiziert TypzugehörigkeitWert ist immer eine Ressource, die einen Typen definiert

Vordefinierte Typen (z. B. RDF Statements)Nutzerdefinierte Typen (z. B. NBIMitarbeiter)

Nicht mit rdfs:subClassOf zu verwechseln…

Page 38: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

rdfs:subClassOfspezifiziert Spezialisierung und Generalisierung zwischen KlassenNicht mit rdf:type zu verwechseln…

rdfs:Resource

xyz:MotorVehicle rdfs:Class

s s t

t

xyz:Truck

s

t

xyz:PassengerVehicle

s = rdfs:subClassOf t = rdf:type

xyz:Van s

s

xyz:MiniVan s

s

t t

t

Page 39: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

rdfs:Class

<rdfs:Class id=“MiniVan1”><rdfs:label>MiniVan</rdfs:label><rdfs:subClassOfrdf:resource=„xyz:Van“/>

<rdfs:subClassOfrdf:resource=„xyz:PassengerVehicle“/>

</rdfs:Class>

Page 40: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Wichtige Klassen

rdfs:Resource (alle Ressourcen)rdfs:Literal (alle Strings)rdfs:Class (alle Klassen)

ist eine rdfs:Resource, da RDFS in RDF definiert ist

rdfs:Property (alle Properties)rdf:Statement (alle reifiziertenAussagen)

Page 41: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

rdfs:Property

<rdfs:Property id=“Autor”><rdfs:domain rdf:resource=“#Person”/><rdfs:range rdf:resource=“#Webseite”/>

<rdfs:Property>

Webseite PersonAutor

Page 42: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Wichtige Properties

rdfs:subClassOfVerbindet Unterklassen zu Klassen

rdfs:subPropertyOfVerbindet Unterproperty zu Property

rdfs:labelVerbindet Ressource zu Name

rdfs:commentVerbindet Ressource zu Kommentar

Page 43: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Erweitertes Beispiel <?xml version="1.0"?> <rdf:RDF 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>Person Class</rdfs:comment> <rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-

ns#Resource"/></rdfs:Class> <rdfs:Class rdf:ID="Student"><rdfs:comment>Student Class</rdfs:comment>

<rdfs:subClassOf rdf:resource="#Person"/></rdfs:Class><rdfs:Class rdf:ID="Teacher">

<rdfs:comment>Teacher Class</rdfs:comment><rdfs:subClassOf rdf:resource="#Person"/>

</rdfs:Class> <rdfs:Class rdf:ID="Course"> <rdfs:comment>Course Class</rdfs:comment><rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-

ns#Resource"/> </rdfs:Class> <rdf:Property rdf:ID="teacher"><rdfs:comment>Teacher of a course</rdfs:comment><rdfs:domain rdf:resource="#Course"/>

<rdfs:range rdf:resource="#Teacher"/> </rdf:Property><rdf:Property rdf:ID="name"><rdfs:comment>Name of a Person or Course</rdfs:comment><rdfs:domain rdf:resource="#Person"/><rdfs:domain rdf:resource="#Course"/>

<rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Literal"/></rdf:Property> </rdf:RDF>

Page 44: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF(S) und das Semantic Web

InstanceData

Ontologie-sprache

RDFS RDF

Daten sind formalisiert in einer OntologiespracheRDFS ist eine OntologiespracheAlle anderen Ontologiesprachen

erweitern RDFSAlle Sprachen nutzen das RDF Datenmodell

Page 45: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Zusammenfassung

XML und XML-SchemaRDF

Vorteile gegenüber XMLDatenmodellRDF/XML und N3 Syntax

RDFSVorteile gegenüber RDFDatenmodellWichtige Klassen und Properties

Erweitertes Beispiel

Page 46: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Literatur

Resource Description Framework (RDF) http://www.w3.org/RDF/(gesehen am 21.10.2005) RDF Vocabulary DescriptionLanguage 1.0: RDF Schema (W3C Recommendation 10 February 2004), http://www.w3.org/TR/rdf-schema/(gesehen am 21.10.2005)

Page 47: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Tutorial Grundlagen des Semantic WebRobert Tolksdorf, Elena Paslaru Bontas

AG Netzbasierte Informationssystemehttp://nbi.inf.fu-berlin.de/lehre/0506/P_SW/

Page 48: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

TerminkalenderTermin Thema Beschreibung

02.11 Semantic Web Sprachen I

RDF, RDFS Syntax und Semantik mit Beispielen

09.11 Anwendungen des Semantic Web

Präsentation Projekt Reisewissen

16.11 RDF(S)-Werkzeuge Programmierwerkzeuge: Jena APIAnfragesprachen: SPARQL, RDQLValidatoren, Editoren, RDF-Datenbanken

23.11 Semantic Web Sprachen II

OWL, SWRL Syntax und Semantik mit Beispielen

30.11 OWL/SWRL-Werkzeuge

OWL-Werkzeuge:Programmierwerkzeuge: Jena APIReasoning in OWL: Pellet, RACERAnfragesprachen: OWL-QL, RQLValidatoren, Editoren, Datenbanken

SWRL-Werkzeuge:Reasoning in SWRLEditoren

Page 49: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Semantic Web Werkzeuge I

RDF und RDFS

Page 50: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge
Page 51: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Übersicht Werkzeuge

Editoren, Validatoren, ParserAutomatische Generierung von RDF DatenRDF SpeicherungRDF(S) AnfragesprachenAPIs

Page 52: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF EditorenIsaViz

IsaViz (Xerox)RDF/XML, N3, N-triple …Graphen-basiertJava-basierthttp://www.w3.org/2001/11/IsaViz/

Page 53: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge
Page 54: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF EditorenProtégé-2000

Protégé-2000 (Stanford University)RDF/XMLGUIJava-basiertUnterstützt auch OWLhttp://protege.stanford.edu/overview/

Page 55: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge
Page 56: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF EditorenSemanticWorks

SemanticWorks (Altova)RDF/XML, N3GUI und VisualisierungUnterstützt auch OWLKommerziell (free trial verfügbar)http://www.altova.com/products_semanticworks.html

Page 57: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge
Page 58: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF Validator

W3C RDF(S) Validation Servicehttp://www.w3.org/RDF/Validator/

Page 59: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge
Page 60: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF Parser

Jena2 (Java)Raptor RDF Parser Toolkit (C Bibliothek)RAP (PHP)Drive RDF API for C# (.NET)SWI-Prolog

Page 61: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

PiggyBank

“Piggy Bank is an extension to the FirefoxWeb browser that turns it into a Semantic Web browser, letting you make use of existing information on the Web in more useful and flexible ways”

(Webseite http://simile.mit.edu/piggy-bank/, gesehen November 2005)

Page 62: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

PiggyBank (II)

Screen ScrapersSoftware zur Extrahierung von Informationen von Web-SeitenImplementierts als XSL templates oderin Javascript

Screen Scrapers Bibliothek

Page 63: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge
Page 64: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge
Page 65: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF SpeicherungSesame

Sesame (2.0) (Aduna & Co)Repository für RDF(S)-DatenQuery-Engine (SeRQL, SPARQL, RQL)Inference-Engine (OWLIM)Sesame API (Java)Client/Server Architekturhttp://www.openrdf.org/doc/sesame/users/userguide.html#chapter-introduction

Page 66: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF SpeicherungRDFStore

RDFStoreRepository für RDF(S)-DatenParser (RDF/XML, N3)Query-Engine (RDQL)API (PHP)http://rdfstore.sourceforge.net/

Page 67: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF SpeicherungProtégé-2000

Protégé-2000 (Stanford University)Repository für RDF(S)-DatenQuery-Engine (RDQL,SPARQL)Protégé API (Java)http://protege.stanford.edu/overview/

Page 68: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF SpeicherungJena2

Jena 2 (HP)Repository für RDF(S)-DatenQuery-Engine (RDQL, SPARQL, RQL)API (Java)http://jena.sourceforge.net/

Page 69: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF(S) Anfragesprachen

RDF-XML Syntax basierendin Anlehnung an XQuery: RDF-Query und RQueryBeispiel: Suche alle Elemente die den /Autor/Name “RT” haben

S-P-O Triple-basierendRDQL, Triple, SPARQLBeispiel: Suche alle Aussagen wo das Subjekt"…" und das Objekt "…" ist

Page 70: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF(S) Anfragesprachen (II)

RDFS basierendRQL, SeRQLBeispiel: Finde Ressourcen der Klasse“Autor"

Page 71: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDQL

SQL-ähnliche Syntax (SELECT, FROM, WHERE, USING)

SELECT Variablen der ErgebnismengeFROM RDF-Quelle(n) lokal/URLWHERE Tripel Muster die erfüllt werden müssenAND zusätzlicher Filter für VariablenwerteUSING Namensraumangaben

Ergebnis: Variablen-Feld (Array)Implementiert u.a. in

Jena, RDFStore, RAP - RDF API for PHP

Page 72: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDQL Beispiel

SELECT ?resource WHERE (?resource ex:alter ?age) AND ?age >= 24

USING ex FOR <http://example.org/thisexample.rdf#>

Page 73: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

SPARQL

Work in progress bei der W3C (21 July last working draft)Ähnlich zu RDQLErweiterungen für

Gleichzeitige Bearbeitung mehrererRDF-GraphenNamed GraphsOperatoren

Page 74: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

SPARQL Implementierungen

Protégé-2000SesameJena (ARQ)

Page 75: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

SPARQL Beispiel

Page 76: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

SeRQL

Sesame Ressource Query LanguageFormale Interpretation des RDF Graphen (semantisch)SQL-ähnliche Syntax (SELECT, FROM, WHERE, USING NAMESPACE)

SELECT (DISTINCT) Variablen der Ergebnismenge (X, $C, @P,*)FROM Liste von Pfad AusdrückenWHERE Bedingungen für Variablen, Vergleiche etc.USING NAMESPACE

Kombinierte Anfragen über UNION, INTERSECT, MINUS

Ergebnis: RDF-XML Syntax

Page 77: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

SeRQL Beispiel

SELECT Datum, Title, Name, EmailFROM {Student} DC:date {Datum};DC:title {Title};vCard:FN {Name};vCard:EMAIL {} rdf:value {Email}WHERE Datum like "2004-11-*"USING NAMESPACEvCard = <http://www.w3.org/2001/vcard-rdf/3.0#>,

DC = <http://purl.org/dc/elements/1.1/>

Page 78: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF(S) APIs

Jena2SesameRAP

Page 79: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Jena2

Jena Semantic Web FrameworkEntwicklung und Management von Semantic Web Daten (RDF, RDFS, OWL)

Erstellung, Speicherung und Verwaltung von RDF Graphen (genannt RDF Modelle)Persistente SpeicherungReasoning (über DIG Schnittstelle)Anfragesprachen und –engines: RDQL,SPARQL

De facto die populärste API für Semantic Web

Page 80: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Das wichtigste für RDF

com.hp.hpl.jena.rdf.model:Wichtigste Klassen und Methoden fürden Umgang mit RDF Daten

com.hp.hpl.jena.tutorialBeispiele

Page 81: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

com.hp.hpl.jena.rdf.modelRDF Modelle// some definitions static String personURI = "http://somewhere/JohnSmith";

static String fullName = "John Smith"; //create an empty Model Model model = ModelFactory.createDefaultModel();

//create the resource Resource johnSmith = model.createResource(personURI);

// add the property johnSmith.addProperty(VCARD.FN, fullName);

Page 82: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Class Model Factory

Modelltypen:DefaultModel: RDFRDFS ModelOWL ModelInfModel

Model-SpezifikationenBeschreiben die Eigenschaften eines Modells

http://jena.sourceforge.net/how-to/model-factory.html

Page 83: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

com.hp.hpl.jena.rdf.modelAnfragenResIterator iter = model.listSubjectsWithProperty(VCARD.FN);

while (iter.hasNext()) { Resource r = iter.nextResource(); ... }

Page 84: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Einlesen von RDF Daten

//create an empty model Model model = ModelFactory.createDefaultModel(); //use the FileManager to find the input fileInputStream in = FileManager.get().open(

inputFileName ); if (in == null) { throw new IllegalArgumentException( "File: " +

inputFileName + " not found"); } //read the RDF/XML file model.read(in, ""); //write it to standard out model.write(System.out);

Page 85: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Speichern von RDF Daten

//now write the model in XML form to a file model.write(System.out);

Page 86: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Modell-Management

unionmodel1.read(new InputStreamReader(in1), "");

model2.read(new InputStreamReader(in2), "");

model = model1.union(model2); differenceintersection

Page 87: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDF Statements

Model StmtIterator iter = model.listStatements();

while (iter.hasNext()) { Statement stmt = iter.nextStatement(); Resource subject = stmt.getSubject(); Property predicate =

stmt.getPredicate(); RDFNode object = stmt.getObject();

…}

Page 88: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

RDFS Modelle

InfModel/OntModelZusätzliche Methoden für die Manipulation von Klassen und Properties (domain, range)

WICHTIG: Inferenzeigenschaften

Page 89: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Zusammenfassung

Editoren, Validatoren, ParserAutomatische Generierung von RDF DatenRDF SpeicherungRDF(S) AnfragesprachenAPIs

Page 90: Tutorial Grundlagen des Semantic Web · Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I RDF, RDFS Syntax und Semantik mit Beispielen 09.11 16.11 RDF(S)- Werkzeuge

Literatur

W3C Seiten zu RDF und RDFS (vorallem Tools)Seiten der einzelnen Tools