Persistente Speicherung von RDF-Daten in einer relationalen Datenbank - PowerPoint PPT Presentation

Loading...

PPT – Persistente Speicherung von RDF-Daten in einer relationalen Datenbank PowerPoint presentation | free to download - id: 823985-YTBkM



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

Persistente Speicherung von RDF-Daten in einer relationalen Datenbank

Description:

RDF Storage / RDF Database: Sesame Persistente Speicherung von RDF-Daten in einer relationalen Datenbank Ruslan Hrushchak, Pavel Selesnjov RDF Storage Outline ... – PowerPoint PPT presentation

Number of Views:6
Avg rating:3.0/5.0
Slides: 35
Provided by: jola152
Learn more at: http://www.informatik.uni-leipzig.de
Category:

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: Persistente Speicherung von RDF-Daten in einer relationalen Datenbank


1
RDF Storage / RDF Database Sesame
  • Persistente Speicherung von RDF-Daten in einer
    relationalen Datenbank
  • Ruslan Hrushchak, Pavel Selesnjov

2
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
Problematik
  • 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.

4
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.

ltrdfDescription rdfabout"http//www.recshop.fak
e/cd/Empire Burlesque"gt ltcdartistgtBob
Dylan lt/cdartistgt ltcdcountrygtUSA lt/cdcountr
ygt ltcdcompanygtColumbia lt/cdcompanygt
ltcdpricegt10.90 lt/cdpricegt ltcdyeargt1985 lt/cd
yeargt lt/rdfDescriptiongt lt/rdfRDFgt
5
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.

id artist country company price year
http//www.... Bob Dylan USA Columbia 10.90 1985
6
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
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
Datenbank-Schemata zum Speichern von RDF-Daten
  • Datenbank-Schemata zum Speichern von RDF-Daten
  • ÄhnlichkeitenDie RDF-Graphen werden in Form von
    Subjekt Prädikat Objekt-Tripeln abgespeichert.
  • DifferenzenSpeicherung von mehreren Modellen
    (bzw. eines einzelnen Modells) innerhalb einer
    Tabelle.
  • Schemata können anwendungsunterschiedlich bzw.
    domänenunterschiedlich gestaltet sein.

9
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

Spaltenname Spaltentyp
Resource (Subjekt) Varchar
Property (Prädikat) Varchar
Value (Objekt) Blob
Hint Char
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
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

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.
Spaltenname Spaltentyp
Subject Integer-Referenz
Predicate Integer-Referenz
Object Integer-Referenz
objectIsLiteral Small-Integer
model Integer-Referenz
11
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)

Spaltenname Spaltentyp
Id Integer
Language Varchar
literal Blob
12
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 http//purl.org/dc/elements/1.1/
  • Localname-Feld gibt den lokalen Namen der
    Ressource anBeispiel title

Spaltenname Spaltentyp
id Integer
namespace Integer-Referenz
localname Varchar
13
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

Spaltenname Spaltentyp
id Integer
Uri Varchar
  • 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.

Spaltenname Spaltentyp
id Integer
name Varchar
14
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
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
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.

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.
Spaltenname Spaltentyp
SubjectRes Varchar
PropRes Varchar
ObjRes Varchar
ObjStr TinyBlob
ObjLitera Integer-Referenz
17
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
Technologien zum persistenten Speichern von
RDF-Daten
  • 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.

System DB-Datenmodell Anfragesprache
Jena2 Triplets RDQL
RDFStore Triplets RDQL
Sesame Graph RDQL
ICS-RDF Suite Graph RQL
KAON Graph RQL
TRIPLE Triplets ähnlich F-Logic
19
RDF Database Sesame
20
Übersicht
  • Gliederung
  • Installation
  • Architektur
  • API
  • Backends
  • Webinterface

21
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
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
1. Installation von Sesame unter Tomcat
  • Notwendigkeit von Java-Servlet-Container für die
    Installation
  • Erstellung vom Verzeichnis sesame im Verzeichnis
    TOMCAT_DIR/webapps/
  • Entpackung von sesame.war (vorhanden in
    Sesame-dir/lib)
  • in neuem Verzeichnis sesame
  • Einfügung vom JDBC-Treiber ins Verzeichnis
    TOMCAT_DIR/webapps/sesame/WEB-INF/lib/
  • Umbenennung von der Config-Datei
    system.conf.example (im Verzeichnis
    TOMCAT_DIR/webapps/sesame/WEB-INF) auf
    system.conf
  • Letzter Schritt - Starten von Sesame unter
  • http//hostname/SESAME_DIR

24
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 ltdatabasegt
  • create database ltdatabasegt oder
  • mysqladmin -u root -p create ltdatabasegt
  • grant all on ltdatabasegt. to root_at_hostname
    identified by 'password'

25
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
  • 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
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
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(sesameServ
    erURL)
  • service.login("foo", "bar")
  • SesameRepository myRepository
    service.getRepository("foobar-rep")

28
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
3. API
  • RIO -RDF I/OSesam
  • 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
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
5. Webinterface
  • Leseaktionen (Export, Abfrage)
  • Schreibaktionen (Hinzufügen, Entfernen)

32
5. Webinterface
  • Die Konfiguration von Sesame

33
Referenzen
  • Referenzen
  • Brickley, Miller RDF, SQL and the Semantic Web -
    a case study, http//ilrt.org/discovery/2000/10/sw
    sql/
  • S. Melnik Storing RDF in a relational database,
    http//www-db.stanford.edu/7Emelnik/rdf/db.html
  • Mapping von RDF-gtDB, http//www.w3.org/2002/05/24-
    RDF-SQL/
  • HP Research, "Jena 2 - A Semantic Web Framework",
    http//www.hpl.hp.com/semweb/jena.htm
  • RDFStore, Perl API for RDF Storage,
    http//rdfstore.sourceforge.net/
  • Sesame, http//www.openrdf.org/
  • ICS-RDF Suite "High-level Scalable Tools for the
    Semantic Web", http//139.91.183.309090/RDF/
  • KAON, "Open-Source Ontology Management
    Infrastructure", http//kaon.semanticweb.org/
  • 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
Referenzen
  • Referenzen
  • Sesame RDF database,
  • http//www.openrdf.org/doc/users/
  • Comparing Formats, http//www.bitloeffel.de/DOC/20
    03/Formats-20030416-de.html
  • IsaViz A Visual Authoring Tool for RDF,
  • http//www.w3.org/2001/11/IsaViz/
  • Mapping Semantic Web Data with RDBMSes,
  • http//www.w3.org/2001/sw/Europe/reports/scalable
    _rdbms_mapping_report/
About PowerShow.com