Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

RDF Storage / RDF Database: Sesame

Ähnliche Präsentationen


Präsentation zum Thema: "RDF Storage / RDF Database: Sesame"—  Präsentation transkript:

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

2 Outline Problematik bei der persistenten Speicherung von RDF-Daten
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 RDF Storage / RDF Database: Sesame

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. RDF Storage / RDF Database: Sesame

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. <rdf:Description rdf:about=" 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> Ein Statement beschreibt eine Ressource und besteht – wie im letzte Seminar gezeigt wurde – aus der jeweiligen Ressource, einer Property (Eigenschaft der Ressource) und einem Property-Wert. Ein RDF-Graph baut sich aus einem oder mehreren dieser Statements auf. RDF Storage / RDF Database: Sesame

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 Bob Dylan USA Columbia 10.90 1985 Eine relationale Datenbank besteht aus Tabellen, welche wiederum aus Spalten und Zeilen bestehen. Die Zeilen repräsentieren die einzelnen Datensätze (eng: records) in der Tabelle. Jeder Datensatz verfügt über eine Anzahl von Feldern, die über Werte verfügen können. Die Information, die ein Datensatz enthält, wird nur von den Inhalten seiner Felder definiert. RDF Storage / RDF Database: Sesame

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. Die relationale Datenbanken erfreuen sich bei der persistenten Speicherung von RDF-Daten größerer Beliebtheit. Der Grund dafür ist der, dass das RDF-Datenmodell eng mit dem Modell der rationalen Datenbanken verbunden ist und das eine gut auf das andere abgebieldet werden kann. RDF Storage / RDF Database: Sesame

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. Literale in RDF müssen keinen Typ besitzen Die einzelnen Attribute eines RDF-Objekts können impliziert zahlreichen Datentypen angehören RDF Storage / RDF Database: Sesame

8 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. RDF Storage / RDF Database: Sesame

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

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 Object objectIsLiteral Small-Integer model Das Tripel-Schema verfügt über die folgende Tabellenstruktur. Bemerkung: Diese Struktur ist nur ein Beispiel, sie kann von anderen Tripel-Strukturen (Jena, Sesame) abweichen. Da kommen noch einige einige zusätzliche Felder hinzu. Da es sich bei einem Subjekt und einem Prädikat nur um eine Ressource handeln kann, gibt der Integer-Wert in den beiden Feldern eine Ressourcen-ID an, das heißt er referenziert einen Eintrag in der Ressourcen-Tabelle (siehe unten). Bei einem Objekt steht der Integer-Wert entweder für eine Ressource oder ein Literal. Um was es sich handelt, wird in dem Feld „objectIsLiteral“ angegeben. Hierbei handelt es sich um ein einfaches Flag, welches ein Objekt als Literal kennzeichnen kann. Das letzte Feld ordnet das Statement einem Modell zu, in dem es die ID eines RDF-Modells aus der Modell-Tabelle enthält. RDF Storage / RDF Database: Sesame

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 Das Tripel-Schema verfügt über die folgende Tabellenstruktur. Bemerkung: Diese Struktur ist nur ein Beispiel, sie kann von anderen Tripel-Strukturen (Jena, Sesame) abweichen. Da kommen noch einige einige zusätzliche Felder hinzu. Da es sich bei einem Subjekt und einem Prädikat nur um eine Ressource handeln kann, gibt der Integer-Wert in den beiden Feldern eine Ressourcen-ID an, das heißt er referenziert einen Eintrag in der Ressourcen-Tabelle (siehe unten). Bei einem Objekt steht der Integer-Wert entweder für eine Ressource oder ein Literal. Um was es sich handelt, wird in dem Feld „objectIsLiteral“ angegeben. Hierbei handelt es sich um ein einfaches Flag, welches ein Objekt als Literal kennzeichnen kann. Das letzte Feld ordnet das Statement einem Modell zu, in dem es die ID eines RDF-Modells aus der Modell-Tabelle enthält. RDF Storage / RDF Database: Sesame

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: Localname-Feld: gibt den lokalen Namen der Ressource an Beispiel: title Spaltenname Spaltentyp id Integer namespace Integer-Referenz localname Varchar Das Tripel-Schema verfügt über die folgende Tabellenstruktur. Bemerkung: Diese Struktur ist nur ein Beispiel, sie kann von anderen Tripel-Strukturen (Jena, Sesame) abweichen. Da kommen noch einige einige zusätzliche Felder hinzu. Da es sich bei einem Subjekt und einem Prädikat nur um eine Ressource handeln kann, gibt der Integer-Wert in den beiden Feldern eine Ressourcen-ID an, das heißt er referenziert einen Eintrag in der Ressourcen-Tabelle (siehe unten). Bei einem Objekt steht der Integer-Wert entweder für eine Ressource oder ein Literal. Um was es sich handelt, wird in dem Feld „objectIsLiteral“ angegeben. Hierbei handelt es sich um ein einfaches Flag, welches ein Objekt als Literal kennzeichnen kann. Das letzte Feld ordnet das Statement einem Modell zu, in dem es die ID eines RDF-Modells aus der Modell-Tabelle enthält. RDF Storage / RDF Database: Sesame

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. Das Tripel-Schema verfügt über die folgende Tabellenstruktur. Bemerkung: Diese Struktur ist nur ein Beispiel, sie kann von anderen Tripel-Strukturen (Jena, Sesame) abweichen. Da kommen noch einige einige zusätzliche Felder hinzu. Da es sich bei einem Subjekt und einem Prädikat nur um eine Ressource handeln kann, gibt der Integer-Wert in den beiden Feldern eine Ressourcen-ID an, das heißt er referenziert einen Eintrag in der Ressourcen-Tabelle (siehe unten). Bei einem Objekt steht der Integer-Wert entweder für eine Ressource oder ein Literal. Um was es sich handelt, wird in dem Feld „objectIsLiteral“ angegeben. Hierbei handelt es sich um ein einfaches Flag, welches ein Objekt als Literal kennzeichnen kann. Das letzte Feld ordnet das Statement einem Modell zu, in dem es die ID eines RDF-Modells aus der Modell-Tabelle enthält. Spaltenname Spaltentyp id Integer name Varchar RDF Storage / RDF Database: Sesame

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.) Das Tripel-Schema verfügt über die folgende Tabellenstruktur. Bemerkung: Diese Struktur ist nur ein Beispiel, sie kann von anderen Tripel-Strukturen (Jena, Sesame) abweichen. Da kommen noch einige einige zusätzliche Felder hinzu. Da es sich bei einem Subjekt und einem Prädikat nur um eine Ressource handeln kann, gibt der Integer-Wert in den beiden Feldern eine Ressourcen-ID an, das heißt er referenziert einen Eintrag in der Ressourcen-Tabelle (siehe unten). Bei einem Objekt steht der Integer-Wert entweder für eine Ressource oder ein Literal. Um was es sich handelt, wird in dem Feld „objectIsLiteral“ angegeben. Hierbei handelt es sich um ein einfaches Flag, welches ein Objekt als Literal kennzeichnen kann. Das letzte Feld ordnet das Statement einem Modell zu, in dem es die ID eines RDF-Modells aus der Modell-Tabelle enthält. RDF Storage / RDF Database: Sesame

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. Das Tripel-Schema verfügt über die folgende Tabellenstruktur. Bemerkung: Diese Struktur ist nur ein Beispiel, sie kann von anderen Tripel-Strukturen (Jena, Sesame) abweichen. Da kommen noch einige einige zusätzliche Felder hinzu. Da es sich bei einem Subjekt und einem Prädikat nur um eine Ressource handeln kann, gibt der Integer-Wert in den beiden Feldern eine Ressourcen-ID an, das heißt er referenziert einen Eintrag in der Ressourcen-Tabelle (siehe unten). Bei einem Objekt steht der Integer-Wert entweder für eine Ressource oder ein Literal. Um was es sich handelt, wird in dem Feld „objectIsLiteral“ angegeben. Hierbei handelt es sich um ein einfaches Flag, welches ein Objekt als Literal kennzeichnen kann. Das letzte Feld ordnet das Statement einem Modell zu, in dem es die ID eines RDF-Modells aus der Modell-Tabelle enthält. RDF Storage / RDF Database: Sesame

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 ObjRes ObjStr TinyBlob ObjLitera Integer-Referenz RDF Storage / RDF Database: Sesame

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. RDF Storage / RDF Database: Sesame

18 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 Sesame Graph ICS-RDF Suite RQL KAON TRIPLE ähnlich F-Logic RDF Storage / RDF Database: Sesame

19 RDF Database: Sesame RDF Storage / RDF Database: Sesame

20 Übersicht Gliederung: Installation Architektur API Backends
Webinterface RDF Storage / RDF Database: Sesame

21 Entwicklung von holländischen Firma Aduna
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 RDF Storage / RDF Database: Sesame

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. RDF Storage / RDF Database: Sesame

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 RDF Storage / RDF Database: Sesame

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 <database> create database <database>; oder mysqladmin -u root -p create <database> grant all on <database>.* to identified by 'password'; RDF Storage / RDF Database: Sesame

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. RDF Storage / RDF Database: Sesame

26 „high-level“ Zugriff auf Sesame Repository, solche wie
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) RDF Storage / RDF Database: Sesame

27 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(" HTTPService service = Sesame.getService(sesameServerURL); service.login("foo", "bar"); SesameRepository myRepository = service.getRepository("foobar-rep"); RDF Storage / RDF Database: Sesame

28 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 = " 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

29 Ist aber separat erhältlich Unterstützt lesen und schreiben von RDF
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 RDF Storage / RDF Database: Sesame

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. RDF Storage / RDF Database: Sesame

31 5. Webinterface Leseaktionen (Export, Abfrage)
Schreibaktionen (Hinzufügen, Entfernen) RDF Storage / RDF Database: Sesame

32 5. Webinterface Die Konfiguration von Sesame
RDF Storage / RDF Database: Sesame

33 Referenzen Referenzen
Brickley, Miller: RDF, SQL and the Semantic Web - a case study, S. Melnik: Storing RDF in a relational database, 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 RDF Storage / RDF Database: Sesame

34 Referenzen Referenzen Sesame RDF database,
Comparing Formats, IsaViz: A Visual Authoring Tool for RDF, Mapping Semantic Web Data with RDBMSes, RDF Storage / RDF Database: Sesame


Herunterladen ppt "RDF Storage / RDF Database: Sesame"

Ähnliche Präsentationen


Google-Anzeigen