20041118_rdfDatabase.. - Institut für Informatik

Werbung
Institut für Informatik
Betriebliche Informationssysteme
RDF Storage / RDF Database: Sesame
Persistente Speicherung von RDF-Daten in einer relationalen Datenbank
Ruslan Hrushchak, Pavel Selesnjov
RDF Storage / RDF Database: Sesame
1
RDF Storage
Institut für Informatik
Betriebliche Informationssysteme
• 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
RDF Storage / RDF Database: Sesame
2
Problematik
Institut für Informatik
Betriebliche Informationssysteme
• 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.
RDF Storage / RDF Database: Sesame
3
RDF und das relationale Datenmodell
Institut für Informatik
Betriebliche Informationssysteme
• 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.
<rdf:Description rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
<cd:artist>Bob Dylan
</cd:artist>
<cd:country>USA
</cd:country>
<cd:company>Columbia
</cd:company>
<cd:price>10.90
</cd:price>
<cd:year>1985
</cd:year>
</rdf:Description>
</rdf:RDF>
RDF Storage / RDF Database: Sesame
4
RDF und das relationale Datenmodell
Institut für Informatik
Betriebliche Informationssysteme
• 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
RDF Storage / RDF Database: Sesame
5
RDF und das relationale Datenmodell
Institut für Informatik
Betriebliche Informationssysteme
• 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.
RDF Storage / RDF Database: Sesame
6
RDF und das relationale Datenmodell
Institut für Informatik
Betriebliche Informationssysteme
• 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.
RDF Storage / RDF Database: Sesame
7
Datenbank-Schemata zum Speichern von RDF-Daten
Institut für Informatik
Betriebliche Informationssysteme
• Datenbank-Schemata zum Speichern von RDFDaten
• Ä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.
RDF Storage / RDF Database: Sesame
8
Datenbank-Schemata zum Speichern von RDF-Daten
Institut für Informatik
Betriebliche Informationssysteme
• 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.
RDF Storage / RDF Database: Sesame
9
Datenbank-Schemata zum Speichern von RDF-Daten
Institut für Informatik
Betriebliche Informationssysteme
• 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
Spaltenname
Spaltentyp
Subject
Integer-Referenz
Predicate
Integer-Referenz
Object
Integer-Referenz
objectIsLiteral
Small-Integer
model
Integer-Referenz
RDF Storage / RDF Database: Sesame
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 IntegerWert 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 ModellTabelle enthält.
10
Datenbank-Schemata zum Speichern von RDF-Daten
Institut für Informatik
Betriebliche Informationssysteme
• 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
RDF Storage / RDF Database: Sesame
11
Datenbank-Schemata zum Speichern von RDF-Daten
Institut für Informatik
Betriebliche Informationssysteme
• 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 an
Beispiel: title
•
Spaltenname
Spaltentyp
id
Integer
namespace
Integer-Referenz
localname
Varchar
RDF Storage / RDF Database: Sesame
12
Datenbank-Schemata zum Speichern von RDF-Daten
Institut für Informatik
Betriebliche Informationssysteme
• 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
RDF Storage / RDF Database: Sesame
13
Datenbank-Schemata zum Speichern von RDF-Daten
Institut für Informatik
Betriebliche Informationssysteme
• 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 DreiWege-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.)
RDF Storage / RDF Database: Sesame
14
Datenbank-Schemata zum Speichern von RDF-Daten
Institut für Informatik
Betriebliche Informationssysteme
• 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 TripelFormat 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.
•
•
•
RDF Storage / RDF Database: Sesame
15
Datenbank-Schemata zum Speichern von RDF-Daten
Institut für Informatik
Betriebliche Informationssysteme
• 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.
•
Spaltenname
Spaltentyp
SubjectRes
Varchar
PropRes
Varchar
ObjRes
Varchar
ObjStr
TinyBlob
ObjLitera
Integer-Referenz
RDF Storage / RDF Database: Sesame
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.
16
Datenbank-Schemata zum Speichern von RDF-Daten
Institut für Informatik
Betriebliche Informationssysteme
• 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.
RDF Storage / RDF Database: Sesame
17
Technologien zum persistenten Speichern von RDF-Daten
•
•
•
Institut für Informatik
Betriebliche Informationssysteme
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
RDF Storage / RDF Database: Sesame
18
Institut für Informatik
Betriebliche Informationssysteme
RDF Database: Sesame
RDF Storage / RDF Database: Sesame
19
Übersicht
Institut für Informatik
Betriebliche Informationssysteme
Gliederung:
1.
2.
3.
4.
5.
Installation
Architektur
API
Backends
Webinterface
RDF Storage / RDF Database: Sesame
20
1. Installation
Institut für Informatik
Betriebliche Informationssysteme
• 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
RDF Storage / RDF Database: Sesame
21
1. Installation
Institut für Informatik
Betriebliche Informationssysteme
Zwei häufigste Benutzungsmöglichkeiten von Sesame:
 als Java Bibliothek
 als Server, dabei können Clients über das Web mit dem Server
kommunizieren.
RDF Storage / RDF Database: Sesame
22
1. Installation von Sesame unter Tomcat
Institut für Informatik
Betriebliche Informationssysteme
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
http://hostname/SESAME_DIR
RDF Storage / RDF Database: Sesame
23
1. Installation: MySQL Konfiguration
Institut für Informatik
Betriebliche Informationssysteme
• 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 <database>
create database <database>; oder
mysqladmin -u root -p create <database>
grant all on <database>.* to root@hostname identified by
'password';
RDF Storage / RDF Database: Sesame
24
2. Architektur
Institut für Informatik
Betriebliche Informationssysteme
•
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.
RDF Storage / RDF Database: Sesame
25
2. Architektur
Institut für Informatik
Betriebliche Informationssysteme
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)
RDF Storage / RDF Database: Sesame
26
3. API
Institut für Informatik
Betriebliche Informationssysteme
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");
RDF Storage / RDF Database: Sesame
27
3. API
Institut für Informatik
Betriebliche Informationssysteme
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);
RDF Storage / RDF Database: Sesame
28
3. API
Institut für Informatik
Betriebliche Informationssysteme
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
RDF Storage / RDF Database: Sesame
29
4. Backends
Institut für Informatik
Betriebliche Informationssysteme
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.
RDF Storage / RDF Database: Sesame
30
5. Webinterface
Institut für Informatik
Betriebliche Informationssysteme
 Leseaktionen (Export, Abfrage)
 Schreibaktionen (Hinzufügen, Entfernen)
RDF Storage / RDF Database: Sesame
31
5. Webinterface
Institut für Informatik
Betriebliche Informationssysteme
Die Konfiguration von Sesame
RDF Storage / RDF Database: Sesame
32
Referenzen
Institut für Informatik
Betriebliche Informationssysteme
• Referenzen
•
•
•
•
•
•
•
•
•
•
Brickley, Miller: RDF, SQL and the Semantic Web - a case study,
http://ilrt.org/discovery/2000/10/swsql/
S. Melnik: Storing RDF in a relational database, http://wwwdb.stanford.edu/%7Emelnik/rdf/db.html
Mapping von RDF->DB, 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.30:9090/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
RDF Storage / RDF Database: Sesame
33
Referenzen
Institut für Informatik
Betriebliche Informationssysteme
• Referenzen
•
•
•
•
Sesame RDF database,
http://www.openrdf.org/doc/users/
Comparing Formats, http://www.bitloeffel.de/DOC/2003/Formats20030416-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_r
eport/
RDF Storage / RDF Database: Sesame
34
Herunterladen