Tutorial Grundlagen des Semantic Web

Ähnliche Dokumente
RDF RESOURCE DESCRIPTION FRAMEWORK. Referentin: Claudia Langer

RDF Containers. Häufig möchte man eine Gruppe von Dingen beschreiben. Hierfür stellt RDF ein Container-Vokabular zur Verfügung.

Daten verknüpfen mit RDF. Lars Bröcker, Fraunhofer IAIS

Grundlagen Semantic Web

Semantic Web Grundlagen

Semantic Markup für die Dokumentenklassifizierung. Seminarvortrag von Mirko Pracht

Datenbanken und Semantic Web

Seminarphase PG 402 Thema: Semantic Web Autor: Phillip Look

RDF & OWL. Praktikum Softwaretechnologie für die Ressourcenlinguistik. Johannes Hellrich & Erik Fäßler SS FSU Jena

RDF und SPARQL. Kursfolien. Karin Haenelt

Ein XML Dokument zeichnet sich im Wesentlichen durch seine baumartige Struktur aus:

OWL Web Ontology Language

RDF. Resource Description Framework. RDF - Konzepte - Tripel. RDF - Konzepte - Graph. Information Retrieval - Semantic Technologies

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF

XML-Technologien Tutorium 6

Agenda. Datenauszeichnung mit RDF. Rahmen für semantische Technologien. XML als Basis-Technologie. Wiederholungsübung XML

Semantic Web Technologies 1

Kapitel WT:VIII (Fortsetzung)

Semantic Web Grundlagen

Vorlesung Semantic Web. Vorlesung im Wintersemester 2011/2012 Dr. Heiko Paulheim Fachgebiet Knowledge Engineering

Semantic Web: RDF und N-Tripel

Semantic-Web-Sprachen XML, RDF (und RDFS), OWL

Vorlesung Semantic Web. Vorlesung im Wintersemester 2012/2013 Dr. Heiko Paulheim Fachgebiet Knowledge Engineering

Vorlesung Semantic Web. Vorlesung im Wintersemester 2012/2013 Dr. Heiko Paulheim Fachgebiet Knowledge Engineering

RDF RDF Instanzen Basiskonzepte und Bausteine Syntaxoptionen Reifikationen Kollektionen RDF-Schema: Definition eigener Vokabularien Erweiterungen Seit

Vorlesung Computerphilologie. Ontologien und Ontologie-Sprachen

GRDDL, Microformats, RDF/A

Ontologien und Ontologiesprachen

HS: Information Retrieval PD Dr. K. Haenelt WS 2003/04. Referent: Youssef Sammari. Semantic Web

Transformation einer relationalen Datenbank nach RDF am Beispiel von Reef Check-Daten. Seminararbeit Konrad Johannes Reiche

Semantic Web Technologies I Lehrveranstaltung im WS09/10

Ressourcen-Beschreibung im Semantic Web

Tutorial Grundlagen des Semantic Web

Technologien des Semantic Web und ihre Anwendungen

Verknüpfte Daten abfragen mit SPARQL. Thomas Tikwinski, W3C.DE/AT

Topic Maps. Wissensmanagement in Bildungseinrichtungen. Seminar Web Engineering Lars Heuer,

Persistentes Speichern von RDF-Daten

Projektgruppe. Knowledge Representation Persistence and Reasoning

Ontologiesprachen. 1.Was ist eine Ontologie 2.Aufbau einer Ontologie 3.RDF 4.RDFSchema 5.DAML+OIL / OWL 6.Frame-Logic

Semantic Web Grundlagen

Konzeption und Implementierung eines SPARQL Endpoints für eine kontext-adaptive Webanwendung

Semantic Web. Ein Vortrag von Holger Szillat. Betreut von Jochen Hipp

RDF und ihre Anwendung (RSS)

Evaluation verschiedener Triple-Stores zum Speichern von Metadaten im Kontext des Forschungsdatenmanagements


Gregor Raschke 2008 HIBERNATE. Eine Einführung

Semantic Web I. Arbeitsgruppe. Vorlesung Netzbasierte Informationssysteme. Prof. Dr. Adrian Paschke

Web Ontology Language (OWL)

Einführung in das Forschungsinformationssystem VIVO Hands-On-Lab auf dem 6. Deutschen Bibliothekartag

Repräsentationssprachen für Ontologien

Übersetzung des Dublin Core Metadata Initiative Abstract Model (DCAM)

Universität Leipzig Softwaretechnik-Praktikum. Recherchebericht. DTP-16: LD Hypstrr - Datadriven Template Publication. 7.

Semantic Web Technologies 1

KRITERIEN FÜR DIE ZERTIFIZIERUNG VON METADATENPROFILEN

Semantic Web Technologies 1

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

rdf2wp - Publikation von Daten als RDF mittels WordPress-Blogs

Aufgabe 1 (RDF(S) Syntax und Semantik)

Idee des Semantic Web

Langzeitarchivierungsaspekte. im Dokumentenlebenszyklus

Transkript:

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

Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I 09.11 16.11 RDF(S)- Werkzeuge 23.11 Semantic Web Sprachen II 30.11 OWL/SWRL- Werkzeuge RDF, RDFS Syntax und Semantik mit Beispielen Programmierwerkzeuge: Jena API Anfragesprachen: SPARQL, RDQL Validatoren, Editoren, RDF-Datenbanken OWL, SWRL Syntax und Semantik mit Beispielen OWL-Werkzeuge: Programmierwerkzeuge: Jena API Reasoning in OWL: Pellet, RACER Anfragesprachen: OWL-QL, RQL Validatoren, Editoren, Datenbanken SWRL-Werkzeuge: Reasoning in SWRL Editoren

Semantic Web Sprachen I RDF und RDFS

Übersicht Grundlagen: XML/XML-Schema RDF: Syntax, Semantik, Datenmodell Erweiterung des RDF mit RDFS RDFS: Syntax und Semantik Beispiele

XML und XML Schema

Grundlagen Prinzip Trennung zwischen Struktur und Darstellung Namensräume Verwendung mehrerer XML Schemata in einem Dokument ohne Namenskonflikte XML DTD und XML Schema korrekte Dokumentstrukturen Ersetzung des HTML durch Domänenspezifische Auszeichungssprachen (definiert in XML) z.b. MathML Abbildung von diesen Sprachen zu HTML (XSL)

Warum ist XML nicht ausreichend? Trennung zwischen Struktur und Inhalt Notwendig weil Domänenwissen unterschiedlich strukturiert werden kann Notwendig um externe Dokumentstrukturen zu verstehen Explizite Inhaltsdarstellung Notwendig um Wissen maschinen-lesbar darzustellen

Beispiel Aussage: die Webseite nbi.inf.fu-berlin.de wurde erstellt von Robert Tolksdorf. nbi.inf.fu-berlin.de Info hat den Autor Metainfo <Autor> <uri> nbi.inf.fu-berlin.de </uri> <name>robert Tolksdorf</name> </Autor> 1 2 <Document uri= nbi.inf.fu-berlin.de <Autor>Robert Tolksdorf</Autor> </Document> <Document uri= nbi.inf.fu-berlin.de Creator= Robert Tolksdorf /> 3

RDF

RDF RDF (Resource Description Framework) Sprache zur Darstellung inhaltlicher Metadaten Wie jede Sprache hat RDF Syntax (verschiedene XML Serialisierungsmöglichkeiten) Semantik (RDF Datenmodell) Wie jede Web-Sprache hat RDF einen Namespace

Datenmodell Gerichteter Graph: Knoten (Ressourcen), Kanten (Properties) Ressourcen (RDF Resource) Alles worüber man Aussagen machen kann Identifiziert 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

Beispiel Aussage: die Webseite nbi.inf.fu-berlin.de wurde erstellt von Robert Tolksdorf nbi.inf.fu-berlin.de Info hat den Autor Metainfo "nbi.inf.fu-berlin.de" hat den Autor Robert Tolksdorf Subjekt (Ressource) Prädikat (Ressource) Objekt (Wert oder Ressource)

Beispiel (2) nbi.inf.fu-berlin.de Autor RDF Ressourcen www.robert-tolksdorf.de/robert Gesagt von Semantic Web Geeignet für Name Alter ebusiness "RT" 25 RDF Literal

RDF Blank Nodes Anonyme Ressourcen (haben keine URI) Platzhalter für komplexe Objekte Ressourcen von unbekannten Typ nbi.inf.fu-berlin.de Autor x:_1 Name "RT" Blank Node Email rt@inf Aussage: die Webseite nbi.inf.fu-berlin.de wurde erstellt von jemanden/etwas mit dem Namen RT und der Email-Adresse rt@inf

RDF Containers Mengenobjekte (geordnet, ungeordnet, mit Duplikaten, ohne Duplikaten, offen) Ermöglichen Aussagen über mehrere Ressourcen Platzhalter für komplexe Mengenobjekte (vs. Blank Node)

Container-Typen 3 Typen von Containern Bag ungeordnete Liste rdf:bag Sequence geordnete Liste rdf:seq Alternative eindeutiger Wert rdf:alt Containers sind auch RDF Ressourcen Semantik: offene Mengen unbekannt ob weitere Elemente zu der Menge gehören

Beispiel Aussage: die Webseite nbi.inf.fu-berlin.de wurde erstellt von Robert Tolksdorf und Elena Paslaru und nbi.inf.fu-berlin.de rdf:bag Autor rdf:type rdf:_1 www.robert-tolksdorf.de/robert Autor-Container-URI rdf:_2 Elena Paslaru URI rdf:_3

Alternative Modellierung nbi.inf.fu-berlin.de Autor Autor www.robert-tolksdorf.de/robert Autor Elena Paslaru URI

Nutzung von RDF Containern Bag Mitglieder einer Gruppe, Dateien in einem Verzeichnis Seq Buch/Artikelautoren, Punkte in einer Tagesordnung Alt document home and mirrors, mailing-list moderators

RDF Collections Ähnlich zu Containern, aber geschlossen: Alle Elemente einer Menge sind spezifiziert Zugriff auf einzelne Mengenelemente rekursiv first (erstes Element) rest (restliche Elemente) nil (leere Menge)

Beispiel Aussage: Das Projekt Semantic Web wird veranstaltet von Robert Tolksdorf und Elena Paslaru. SWProjekt-URI www.robert-tolksdorf.de/robert Veranstalter rdf:first Blank Node _x:1 rdf:rest _x:2 rdf:first Elena Paslaru URI Blank Node rdf:rest rdf:nil

Reifizierte Aussagen Aussagen über Aussagen Spezieller Konstrukt (RDF Statement) Identifiziert explizit das Subjekt, Prädikat, Objekt einer Aussage Hat URI

Beispiel Aussage: Robert Tolksdorf hat folgendes gesagt: Semantic Web ist geeignet für ebussiness. RDF Statement www.robert-tolksdorf.de/robert Gesagt von Name Alter "RT" 25 RDF Subject Semantic Web Geeignet für ebusiness

RDF about about direkte Angabe des URI abouteach URI eines Container Property auf alle Elemente angewendet abouteachprefix URI Präfix Property auf alle Ressourcen mit dem Präfix angewendet

RDF ID Fragment identifier (eindeutig im Dokument) Abkürzung der vollständigen URI einer Ressource Vollständiger Name zusammengesetzt aus: # Base URI (xml:base = ) Beispiel Wert von rdf:id http://www.example.com/products#item123 rdf:id xml:base

RDF Datatype spezifiziert den Datentyp eines Literals XML-Schema Datentypen unterstützt Spezieller Typ von RDF Literal Beispiel (RDF/XML Syntax) <name rdf:datatype="&xsd;string>rt</name>

RDF Syntax Datenmodell Graphenstruktur: Knoten (Ressourcen, Werte), Kanten (Properties) Verschiedene syntaktische Formate RDF/XML Syntax N3

Beispiel XML/RDF Dokument-Header <rdf:rdf> <rdf:description about="http://nbi.inf.fu-berlin.de"> <Autor rdf:resource= http://robert.tolksdorf.de /Robert /> </rdf:description> </rdf:rdf> nbi.inf.fu-berlin.de Autor www.robert-tolksdorf.de/robert

Alternative <rdf:rdf> <rdf:description about="http://nbi.inf.fu-berlin.de"> <Autor> <NBIMitarbeiter rdf:resource= http://robert.tolksdorf.de/robert /> </Autor> </rdf:description> </rdf:rdf> nbi.inf.fu-berlin.de Autor www.robert-tolksdorf.de/robert rdf:type_ NBIMitarbeiter

Das gleiche in N3 nbi.inf.fu-berlin.de ns:autor www.robert-tolksdorf.de/robert www.robert-tolksdorf.de/robert rdf:type ns:nbimitarbeiter nbi.inf.fu-berlin.de Autor www.robert-tolksdorf.de/robert rdf:type_ NBIMitarbeiter

Warum ist RDF nicht ausreichend? RDF Sprache für die Darstellung von Aussagen im Web definiert ein Datenmodel: Ressourcen minimal typisiert Semantik der Ressourcen minimal spezifiziert Notwendig Erweiterung von RDF für die Beschreibung von semantisch komplexere Vokabularien

RDFS

Wichtige Konstrukte Klassen Root-Class rdfs:resource MetaClass rdfs:class Literals rdfs:literal Properties rdfs:subclassof rdfs:domain, rdfs:range rdf:type rdfs:label, rdfs:comment

Beispiel s = rdfs:subclassof t = rdf:type t rdfs:class t s t xyz:van rdfs:resource t s t xyz:motorvehicle t s s s xyz:truck s xyz:pas sengervehicle xyz:minivan s

Bemerkungen RDFS unterscheidet nicht zwischen Klassen und Properties Object und DatatypeProperties Klassen und Instanzen RDFS ordnet RDF-Konstrukte weitere Typen zu rdfs:class, rdfs:property etc. Beispiele rdf:statement ist vom Typ rdfs:class Die Property rdf:type ist eine Subklasse der Klasse rdfs:property

rdf:type spezifiziert Typzugehörigkeit Wert 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

rdfs:subclassof spezifiziert Spezialisierung und Generalisierung zwischen Klassen Nicht mit rdf:type zu verwechseln s = rdfs:subclassof t = rdf:type t s rdfs:class t s t xyz:van t t s xyz:minivan rdfs:resource t xyz:passengervehicle s xyz:motorvehicle s s s xyz:truck

rdfs:class <rdfs:class id= MiniVan1 > <rdfs:label>minivan</rdfs:label> <rdfs:subclassof rdf:resource= xyz:van /> <rdfs:subclassof rdf:resource= xyz:passengervehicle / > </rdfs:class>

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 reifizierten Aussagen)

rdfs:property <rdfs:property id= Autor > <rdfs:domain rdf:resource= #Person /> <rdfs:range rdf:resource= #Webseite /> <rdfs:property> Webseite Autor Person

Wichtige Properties rdfs:subclassof Verbindet Unterklassen zu Klassen rdfs:subpropertyof Verbindet Unterproperty zu Property rdfs:label Verbindet Ressource zu Name rdfs:comment Verbindet Ressource zu Kommentar

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-syntaxns#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-syntaxns#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(S) und das Semantic Web RDFS RDF Ontologiesprache Instance Data Daten sind formalisiert in einer Ontologiesprache RDFS ist eine Ontologiesprache Alle anderen Ontologiesprachen erweitern RDFS Alle Sprachen nutzen das RDF Datenmodell

Zusammenfassung XML und XML-Schema RDF RDFS Vorteile gegenüber XML Datenmodell RDF/XML und N3 Syntax Vorteile gegenüber RDF Datenmodell Wichtige Klassen und Properties Erweitertes Beispiel

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

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

Terminkalender Termin Thema Beschreibung 02.11 Semantic Web Sprachen I 09.11 Anwendungen des Semantic Web 16.11 RDF(S)-Werkzeuge 23.11 Semantic Web Sprachen II 30.11 OWL/SWRL- Werkzeuge RDF, RDFS Syntax und Semantik mit Beispielen Präsentation Projekt Reisewissen Programmierwerkzeuge: Jena API Anfragesprachen: SPARQL, RDQL Validatoren, Editoren, RDF-Datenbanken OWL, SWRL Syntax und Semantik mit Beispielen OWL-Werkzeuge: Programmierwerkzeuge: Jena API Reasoning in OWL: Pellet, RACER Anfragesprachen: OWL-QL, RQL Validatoren, Editoren, Datenbanken SWRL-Werkzeuge: Reasoning in SWRL Editoren

Semantic Web Werkzeuge I RDF und RDFS

Übersicht Werkzeuge Editoren, Validatoren, Parser Automatische Generierung von RDF Daten RDF Speicherung RDF(S) Anfragesprachen APIs

RDF Editoren IsaViz IsaViz (Xerox) RDF/XML, N3, N-triple Graphen-basiert Java-basiert http://www.w3.org/2001/11/isaviz/

RDF Editoren Protégé-2000 Protégé-2000 (Stanford University) RDF/XML GUI Java-basiert Unterstützt auch OWL http://protege.stanford.edu/overview/

RDF Editoren SemanticWorks SemanticWorks (Altova) RDF/XML, N3 GUI und Visualisierung Unterstützt auch OWL Kommerziell (free trial verfügbar) http://www.altova.com/products_seman ticworks.html

RDF Validator W3C RDF(S) Validation Service http://www.w3.org/rdf/validator/

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

PiggyBank Piggy Bank is an extension to the Firefox Web 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/piggybank/, gesehen November 2005)

PiggyBank (II) Screen Scrapers Software zur Extrahierung von Informationen von Web-Seiten Implementierts als XSL templates oder in Javascript Screen Scrapers Bibliothek

RDF Speicherung Sesame Sesame (2.0) (Aduna & Co) Repository für RDF(S)-Daten Query-Engine (SeRQL, SPARQL, RQL) Inference-Engine (OWLIM) Sesame API (Java) Client/Server Architektur http://www.openrdf.org/doc/sesame/users/use rguide.html#chapter-introduction

RDF Speicherung RDFStore RDFStore Repository für RDF(S)-Daten Parser (RDF/XML, N3) Query-Engine (RDQL) API (PHP) http://rdfstore.sourceforge.net/

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

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

RDF(S) Anfragesprachen RDF-XML Syntax basierend in Anlehnung an XQuery: RDF-Query und RQuery Beispiel: Suche alle Elemente die den /Autor/Name RT haben S-P-O Triple-basierend RDQL, Triple, SPARQL Beispiel: Suche alle Aussagen wo das Subjekt " " und das Objekt " " ist

RDF(S) Anfragesprachen (II) RDFS basierend RQL, SeRQL Beispiel: Finde Ressourcen der Klasse Autor"

RDQL SQL-ähnliche Syntax (SELECT, FROM, WHERE, USING) SELECT Variablen der Ergebnismenge FROM RDF-Quelle(n) lokal/url WHERE Tripel Muster die erfüllt werden müssen AND zusätzlicher Filter für Variablenwerte USING Namensraumangaben Ergebnis: Variablen-Feld (Array) Implementiert u.a. in Jena, RDFStore, RAP - RDF API for PHP

RDQL Beispiel SELECT?resource WHERE (?resource ex:alter?age) AND?age >= 24 USING ex FOR <http://example.org/thisexample.rdf#>

SPARQL Work in progress bei der W3C (21 July last working draft) Ähnlich zu RDQL Erweiterungen für Gleichzeitige Bearbeitung mehrerer RDF-Graphen Named Graphs Operatoren

SPARQL Implementierungen Protégé-2000 Sesame Jena (ARQ)

SPARQL Beispiel

SeRQL Sesame Ressource Query Language Formale 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ücken WHERE Bedingungen für Variablen, Vergleiche etc. USING NAMESPACE Kombinierte Anfragen über UNION, INTERSECT, MINUS Ergebnis: RDF-XML Syntax

SeRQL Beispiel SELECT Datum, Title, Name, Email FROM {Student} DC:date {Datum}; DC:title {Title}; vcard:fn {Name}; vcard:email {} rdf:value {Email} WHERE Datum like "2004-11-*" USING NAMESPACE vcard = <http://www.w3.org/2001/vcardrdf/3.0#>, DC = <http://purl.org/dc/elements/1.1/>

RDF(S) APIs Jena2 Sesame RAP

Jena2 Jena Semantic Web Framework Entwicklung und Management von Semantic Web Daten (RDF, RDFS, OWL) Erstellung, Speicherung und Verwaltung von RDF Graphen (genannt RDF Modelle) Persistente Speicherung Reasoning (über DIG Schnittstelle) Anfragesprachen und engines: RDQL,SPARQL De facto die populärste API für Semantic Web

Das wichtigste für RDF com.hp.hpl.jena.rdf.model: Wichtigste Klassen und Methoden für den Umgang mit RDF Daten com.hp.hpl.jena.tutorial Beispiele

com.hp.hpl.jena.rdf.model RDF 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);

Class Model Factory Modelltypen: DefaultModel: RDF RDFS Model OWL Model InfModel Model-Spezifikationen Beschreiben die Eigenschaften eines Modells http://jena.sourceforge.net/howto/model-factory.html

com.hp.hpl.jena.rdf.model Anfragen ResIterator iter = model.listsubjectswithproperty( VCARD.FN); while (iter.hasnext()) { Resource r = iter.nextresource();... }

Einlesen von RDF Daten //create an empty model Model model = ModelFactory.createDefaultModel(); //use the FileManager to find the input file InputStream 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);

Speichern von RDF Daten //now write the model in XML form to a file model.write(system.out);

Modell-Management union model1.read(new InputStreamReader(in1), ""); model2.read(new InputStreamReader(in2), ""); model = model1.union(model2); difference intersection

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(); }

RDFS Modelle InfModel/OntModel Zusätzliche Methoden für die Manipulation von Klassen und Properties (domain, range) WICHTIG: Inferenzeigenschaften

Zusammenfassung Editoren, Validatoren, Parser Automatische Generierung von RDF Daten RDF Speicherung RDF(S) Anfragesprachen APIs

Literatur W3C Seiten zu RDF und RDFS (vor allem Tools) Seiten der einzelnen Tools