Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame1 Persistente Speicherung von RDF-Daten in einer relationalen.

Ähnliche Präsentationen


Präsentation zum Thema: "Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame1 Persistente Speicherung von RDF-Daten in einer relationalen."—  Präsentation transkript:

1 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame1 Persistente Speicherung von RDF-Daten in einer relationalen Datenbank Ruslan Hrushchak, Pavel Selesnjov

2 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame2 RDF Storage Outline Problematik bei der persistenten Speicherung von RDF-Daten RDF und das relationale Datenmodell Datenbank-Schemata zum Speichern von RDF-Daten Technologien zum persistenten Speichern von RDF-Daten __________________________________________________ Installation Architektur API Backends Webinterface

3 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame3 Problemstellung Das Anfragen und persistente Speichern von RDF-Daten, die in einer Serialisierung (Beispielweise RDF/XML) vorliegen, ist nur für kleinere Datenmenge ausreichend. Größere Datenbestände im RDF-Format verlangen nach effizienten Methoden zur ihrer dauerhaften Speicherung. Datenbanken bedeuten mögliche Lösung des Problems. Problematik

4 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame4 RDF und das relationale Datenmodell RDF- Datenmodell Ein Statement beschreibt eine Ressource besteht aus der Ressource, einer Property und einem Property-Wert Ein RDF-Graph baut sich aus einem oder mehreren dieser Statements auf. Bob Dylan USA Columbia

5 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame5 RDF und das relationale Datenmodell RDB- Datenmodell Eine relationale Datenbank besteht aus Tabellen, welche wiederum aus Spalten und Zeilen bestehen. Die Zeilen repräsentieren die einzelnen Datensätze (eng: records). Jeder Datensatz verfügt über eine Anzahl von Feldern (Spalten), die über Werte verfügen können. Die Information, die ein Datensatz enthält, wird nur von den Inhalten seiner Felder definiert. idartistcountrycompanypriceyear Bob DylanUSAColumbia

6 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame6 RDF und das relationale Datenmodell RDF – RDB – Abbildung Das RDF-Datenmodell ist eng mit dem Modell der rationalen Datenbanken verbunden. Die Abbildung RDF-Datenmodell auf RDB-Modell ist realisierbar. Sie kann folgendermaßen durchgeführt werden: Ein Datensatz in der relationalen Datenbank entspricht einem Knoten in RDF-Graphen Die Spalten (Felder) des Datensatzes entsprechen den Properties (Prädikaten) des Knoten in RDF-Graphen Die Werte in den einzelnen Feldern des Datensatzes können auf die Werte der einzelnen Prädikate abgebildet werden Prinzipiell ist es möglich, die Modelle aufeinander abzubilden. Sollen jetzt aber komplexe RDF-Modelle mit all ihren strukturellen Möglichkeiten in einer relationalen Datenbank abgespeichert werden, tauchen Probleme auf.

7 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame7 RDF und das relationale Datenmodell RDB – RDF – Abbildung (Probleme) Literale in RDF müssen keinen Typ besitzen. Die Länge von Literalen und URIs in RDFist sind nicht beschränkt. Relationale Datenbanken sind stark typisiert. Die Speicherung einer sehr langen Zeichenkette erfordert die Verwendung eines BLOBs (binary large objects) in der Datenbank. Folge: Einbußen in der Performance des Datenbankmanagementsystems Größerer Platzbedarf aufgrund zusätzlicher explizit zu pflegenden Informationen zum RDF-Datentyp.

8 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame8 Datenbank-Schemata zum Speichern von RDF-Daten Ähnlichkeiten: Die RDF-Graphen werden in Form von Subjekt Prädikat Objekt- Tripeln abgespeichert. Differenzen: Speicherung von mehreren Modellen (bzw. eines einzelnen Modells) innerhalb einer Tabelle. Schemata können anwendungsunterschiedlich bzw. domänenunterschiedlich gestaltet sein.

9 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame9 Datenbank-Schemata zum Speichern von RDF-Daten 1. Tripel in einer einzigen Tabelle Die erste und einfachste Möglichkeit zur Speicherung eines RDF-Graphen in einer relationalen Datenbank [Melnik] Pro RDF-Graph wird dafür eine Tabelle mit der folgenden Struktur angelegt: SpaltennameSpaltentyp Resource (Subjekt)Varchar Property (Prädikat)Varchar Value (Objekt)Blob HintChar Resource und property speichern die jeweiligen URI-Referenzen für die Ressource bzw. die Property. Value enthält den Wert des Objektes in dem Statement. Dabei kann es sich entweder um ein Literal oder eine Ressource handeln. Worum es sich handelt, wird durch das Flag hint angegeben.

10 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame10 Datenbank-Schemata zum Speichern von RDF-Daten 2. Tripel-Schema über mehrere Tabellen Speicherung von mehreren RDF-Graphen unter Verwendung einiger weniger Tabellen Die einzelnen Modelle werden durch Statements in der normalen Subjekt Prädikat Objekt- Form gespeichert A. Tabelle für Statements SpaltennameSpaltentyp SubjectInteger-Referenz PredicateInteger-Referenz ObjectInteger-Referenz objectIsLiteralSmall-Integer modelInteger-Referenz Der Integer-Wert bei Subject und Predicate gibt eine Ressourcen-ID an, das heißt er referenziert einen Eintrag in der Ressourcen-Tabelle. Bei einem Objekt steht der Integer- Wert entweder für eine Ressource oder ein Literal. Worum es sich handelt, wird in dem Feld objectIsLiteral angegeben. Das Feld model ordnet das Statement einem Modell zu, in dem es die ID eines RDF-Modells aus der Modell- Tabelle enthält.

11 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame11 Datenbank-Schemata zum Speichern von RDF-Daten B. Tabelle für Literale Id: identifiziert das Literal eindeutig, damit es später in ein Statement als Referenz eingefügt werden kann Language: gibt die Sprache an, in welcher der String in dem Literal-Objekt geschrieben wurde. Literal: das eigentliche Literal als Binary Large Object (BLOB) SpaltennameSpaltentyp IdInteger LanguageVarchar literalBlob

12 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame12 Datenbank-Schemata zum Speichern von RDF-Daten C. Tabelle für Ressourcen enthält normale Ressourcen sowie auch die Teilmenge der Ressourcen – die Properties Id: identifiziert die Ressource zur späteren Einbindung in ein Statement Namespace-Feld: referenziert mit der Integer-Referenz auf einen in der Namespace-Tabelle gespeicherten Namensraum Beispiel: Localname-Feld: gibt den lokalen Namen der Ressource an Beispiel: title SpaltennameSpaltentyp idInteger namespaceInteger-Referenz localnameVarchar

13 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame13 Datenbank-Schemata zum Speichern von RDF-Daten D. Tabelle für Namenräume speichert die in der Ressourcentabelle verwendeten Namensräume anhand ihrer URI ab und identifiziert sie durch die id SpaltennameSpaltentyp idInteger UriVarchar E. Tabelle für Modelle Die id identifiziert das Modell, damit später die einzelnen Statements eindeutig einem Modell zugeordnet werden können. Name enthält den Namen des Modells und kann später beispielsweise genutzt werden, um das Modell in das Verwaltungssystem zu laden. SpaltennameSpaltentyp idInteger nameVarchar

14 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame14 Datenbank-Schemata zum Speichern von RDF-Daten Tripel-Schema über mehrere Tabellen Vorteile: Das Schema ist vollständig normalisiert. Gewährleistung, dass die gesuchte Informationen auch gefunden werden. Trennung von Statements und Ressourcen bzw. Literale. Effektivere Speicherung von Daten. (Jedes Literal und jede URI werden nur einmal abgespeichert, unabhängig von der Anzahl der Aussagen, in denen sie enthalten sind.) Nachteile: Der Suchaufwand ist immer noch zu hoch. (Für die Materialisierung eines einzelnen Statements wird ein Drei- Wege-Join benötigt.) °Mögliche Aushilfe: Literale und Ressourcen einer Aussage bis zu einer bestimmten Länge direkt in Statementstabelle speichern. (Für kleinere Aussagen funktioniert die Abfrage dann ohne Join.)

15 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame15 Datenbank-Schemata zum Speichern von RDF-Daten 3. Modelle in separaten Tabellen Die Statements der Modelle werden nicht alle in einer einzigen Tabelle gespeichert, sondern für jedes Modell wird eine eigene Tabelle erzeugt, in der die Statements angelegt werden. Jedes Modell bekommt eine eigene Tabelle, die als Name einen vom System erzeugten eindeutigen Identifikator erhält. Die URI-Referenz des Subjekts und des Prädikates werden im Tripel- Format gespeichert. Das Objekt wird als URI-Referenz gespeichert – falls es sich um eine Ressource handelt – oder als ein Literal. Literale, die eine bestimmte Größe (z.B. 256 Bytes) überschreiten, werden nicht direkt in der Modell-Tabelle gespeichert, sondern werden in einer zusätzlichen Literal-Tabelle abgelegt und von der Modell-Tabelle aus referenziert. Alle anderen Literale werden in der Modell-Tabelle direkt gespeichert.

16 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame16 Datenbank-Schemata zum Speichern von RDF-Daten 3. Modelle in separaten Tabellen Die ersten drei Felder speichern die URI-Referenzen des Tripels ab. ObjStr speichert ein Literal, falls es sich bei dem Objekt um keine Ressource – handelt. ObjLiteral beinhaltet die Referenz auf die Literal-Tabelle, falls das Literal zu groß ist und in der Literal-Tabelle gespeichert wird. SpaltennameSpaltentyp SubjectResVarchar PropResVarchar ObjResVarchar ObjStrTinyBlob ObjLiteraInteger-Referenz Informationen über alle vorhanden RDF-Modelle sind in der zusätzlicher Metadaten-Tabelle anwesend. Sie enthalten beispielsweise die Informationen darüber, wie der Identifikator einer Modell-Tabelle lautet und unter welchem Namen das Modell geladen werden kann.

17 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame17 Datenbank-Schemata zum Speichern von RDF-Daten Zusammenfassung Die Speicherung von RDF in relationalen Datenbanken ist ohne Verluste möglich. Die Suche nach vorgegebenen Attributen ist sehr zeitaufwendig. Weitere Strategien beim Design der Datenbankschema: für häufig genutzte Attribute spezielle Tabellen anzulegen die RDF Daten im Filesystem zu speichern und nur für ausgewählte Attribute Tabellen in einem Datenbankschema anzulegen Das Schema an die konkreten Anwendungen bzw. Domänen anzupassen.

18 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame18 Technologien zum persistenten Speichern von RDF-Daten Benötigt wird eine Schnittstelle, die es einem ermöglicht, RDF Daten zu erstellen, zu verarbeiten und persistent abspeichern zu können. Es befinden sich einige Technologien auf dem Markt, die diese Funktionen für den Umgang mit RDF-Modellen anbieten. Sie unterscheiden sich unter anderem in der Art und Weise der internen Speicherung der Daten und der unterstützten Anfragesprache. SystemDB-DatenmodellAnfragesprache Jena2TripletsRDQL RDFStoreTripletsRDQL SesameGraphRDQL ICS-RDF SuiteGraphRQL KAONGraphRQL TRIPLETripletsähnlich F-Logic

19 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame19 RDF Database: Sesame

20 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame20 Übersicht Gliederung: 1.Installation 2.Architektur 3.API 4.Backends 5.Webinterface

21 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame21 1. Installation Entwicklung von holländischen Firma Aduna Sesame ist ein System (Open Source RDF Datenbank), welches das persistente Speichern, die Archivierung und Abfrage von RDF und RDFS-Daten ermöglicht Das Zentralkonzept des Systems ist Repository

22 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame22 1. Installation Zwei häufigste Benutzungsmöglichkeiten von Sesame: als Java Bibliothek als Server, dabei können Clients über das Web mit dem Server kommunizieren.

23 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame23 1. Installation von Sesame unter Tomcat Notwendigkeit von Java-Servlet-Container für die Installation 1.Erstellung vom Verzeichnis sesame im Verzeichnis [TOMCAT_DIR]/webapps/ 2.Entpackung von sesame.war (vorhanden in [Sesame-dir]/lib) in neuem Verzeichnis sesame 3.Einfügung vom JDBC-Treiber ins Verzeichnis [TOMCAT_DIR]/webapps/sesame/WEB-INF/lib/ 4.Umbenennung von der Config-Datei system.conf.example (im Verzeichnis [TOMCAT_DIR]/webapps/sesame/WEB-INF) auf system.conf 5.Letzter Schritt - Starten von Sesame unter

24 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame24 1. Installation: MySQL Konfiguration Sesame ist unabhängig von dem benutzten System und kann neben unterschiedlichsten relationalen Datenbanken auch beispielsweise objektorientierte DMBS (Datenbank Management Systeme) für seine Zwecke nutzen Es werden momentan PostgreSQL, MySQL, MS SQL Server und Oracle 9i unterstützt Erstellung von neuem Benutzerkonto am MySQL Server. mysql -u root -p create database ; oder mysqladmin -u root -p create grant all on.* to identified by 'password';

25 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame25 2. Architektur Storage And Inference Layer (SAIL): grundlegende Methoden zum Zugriff auf die RDF-Daten Auf dem SAIL bauen drei Module auf, mit folgenden Aufgabenbereiche 1.Das Admin-Modul ist für das Einfügen neuer RDF-Daten und für das Löschen des Datenbestandes (Repositories) zuständig 2. Das Query-Modul ist für das Ausführen von Abfragen auf den Repository-Datenbestand verantwortlich 3. Das Export-Modul bietet die Möglichkeit, RDF-Daten in vier RDF-Serialisierung (N-Triples, Turtle, Notation 3, RDF/XML) zu exportieren.

26 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame26 2. Architektur Zugriff auf diese drei Module ist durch Sesame's Access APIs erreichbar Repository API high-level Zugriff auf Sesame Repository, solche wie Abfragen, Einfügen von RDF- Dateien Graph API Graph API bietet die feine Unterstützung der Behandlung von RDF-Dateien, solche wie Hinzufügen und Entfernen einzelnen Statements Kommunikationsarten HTTP (für Zugriffe über das Web) RMI (Remote Method Invocation) SOAP (Simple Object Access Protocol)

27 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame27 3. API Benutzung von Sesame API: Sesamekommunikation mit anderen Programmen (entweder remote oder local) als Bibliothek Repository API: ein Zentralpunkt für Sesame Repositories Benutzung als Verbindung zum Sesame Server Ausführen von Anfragen upload von RDF-Daten u.s.w. Beispiel: Kommunikation mit dem Server über HTTP java.net.URL sesameServerURL = new java.net.URL("http://HOSTNAME/SESAME_DIR/"); HTTPService service = Sesame.getService(sesameServerURL); service.login("foo", "bar"); SesameRepository myRepository = service.getRepository("foobar-rep");

28 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame28 3. API Graph API stellt ein RDF-Graph in der Form von Java-Objekt,erlaubt die Manipulation von RDF-Graph, wie Hinzufügen, Entfernen von Statements. Beispiel: Erstellung von einem leeren Graph Graph myGraph = new GraphImpl(); ValueFactory myFactory = myGraph.getValueFactory(); String namespace = "http://www.foo.com/bar#"; URI mySubject = myFactory.createURI(namespace, "actor1"); URI myPredicate = myFactory.createURI(namespace, "hasName"); Literal myObject = myFactory.createLiteral("Tom Hanks"); Hinzufügung einzelnen Statements myGraph.add(mySubject, myPredicate, myObject);

29 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame29 3. API RIO -RDF I/O[Sesam] Ist ein Teil von Sesame Ist aber separat erhältlich Unterstützt lesen und schreiben von RDF Sesame kann auch als plug-in in einen ontology editor (Protégé, OntoEdit, OILEd oder IsaViz) eingesetzt werden

30 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame30 4. Backends Sesame SAIL verwendet die dynamische Datenbankschema, in welcher die Tabellen für jede neue Class und die Beziehungen zwischen Subclass hingefügt sind. Ähnlich geht es mit properties.

31 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame31 5. Webinterface Leseaktionen (Export, Abfrage) Schreibaktionen (Hinzufügen, Entfernen)

32 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame32 5. Webinterface Die Konfiguration von Sesame

33 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame33 Referenzen Brickley, Miller: RDF, SQL and the Semantic Web - a case study, S. Melnik: Storing RDF in a relational database, db.stanford.edu/%7Emelnik/rdf/db.htmlhttp://www- db.stanford.edu/%7Emelnik/rdf/db.html Mapping von RDF->DB, HP Research, "Jena 2 - A Semantic Web Framework", RDFStore, Perl API for RDF Storage, Sesame, ICS-RDF Suite: "High-level Scalable Tools for the Semantic Web", KAON, "Open-Source Ontology Management Infrastructure", D. Brügge: Konzeption und Implementierung eines verteilten Agentensystems zur persistenten Speicherung und zum Austausch von RDF-Daten. Technische Universität München A. Haupt: Persistentes Speichern von RDF-Daten

34 Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame34 Referenzen Sesame RDF database, Comparing Formats, de.html IsaViz: A Visual Authoring Tool for RDF, Mapping Semantic Web Data with RDBMSes, eport/


Herunterladen ppt "Institut für Informatik Betriebliche Informationssysteme RDF Storage / RDF Database: Sesame1 Persistente Speicherung von RDF-Daten in einer relationalen."

Ähnliche Präsentationen


Google-Anzeigen