AD Research Wiki:

Triple Stores

We tested the performance of two triple stores: Virtuoso and RDF-3X. We compare them to our own triple score on a couple of benchmarks.

Software Installation

Installation von Virtuoso Open-Source Edition:

  1. Runterladen

  2. Anweisungen in README-Datei folgen.

Installation von rdf3x:

  1. Runterladen

  2. Kompilieren

Installation von SparqlEngineDraft:

  1. Klonen

  2. Anweisungen befolgen.

Data Import

Um den Datensatz in die Triple-Stores laden zu können, musste dieser Satz in einen für RDF-Speicherung gängigen Format umgewandelt werden. Ausgewählt wurde "*.nt"-Format. Der ursprünglicher Satz enthielt Values und Enteties. Values waren schon nt-konform, die Enteties mussten umgewandelt werden. Dafür wurden die Enteties in die eckigen Klammer gesetzt und die unzulässige Zeichen durch die entsprechende Prozent-Kodierungen oder auch von uns definierten Ersatzzeichen ersetzt.

Ersetzungstabelle:

%

<

>

\

^

`

space

%25

%3C

%3E

%5C

%5E

%60

_

Z.B.: Mikel Jackson --> <Mikel_Jackson>

Data Import Virtuoso:

Datenladen in den Virtuoso wurde mit Bulk loading process durchgefuhrt. Bei diesem Prozess muss der Name des RDF-Graphen als graph_iri eingegeben werden. Unter dieser Namen ist der RDF-Satz bei Virtuoso erreichbar und man benutzt graph_iri als prefix bei jeder Entety, wenn man eine Spqrql-Anfrage an den Store erstellt.

Z.B.: Mikel Jackson --> '<http://foo/Mikel_Jackson>'

* Für die bessere Ladeperformance empfiehlt sich die Variablen NumberOfBuffers und MaxDirtyBuffers auf einen höheren Wert unter in der virtuoso.ini Datei zu setzten(Genauere ist in virtuoso.ini beschrieben). Die Datei liegt unter <Installationsordner von virtuoso>/var/lib/virtuoso/db/virtuoso.ini

Data Import Rdf3x:

Das Datenladen in den Rdf3x-Store erfolgt durch einen Skript <Installationsordner von Rdf3x>/bin/rdf3xload <DB-Name> <RDF-Satz-Pfad>. Kein zusätzlicher Präfix ist bei der Anfragegenerierung erforderlich.

Z.B.: Mikel Jackson --> '<Mikel_Jackson>'

Data Import SparqlEngineDraft:

Anweisungen befolgen. Kein zusätzlicher Präfix ist bei der Anfragegenerierung erforderlich.

Z.B.: Mikel Jackson --> '<Mikel_Jackson>'

Indexerstellung:

Die Größe des Input-RDF-Sets in der NT-Format beträgt 17 GB.

RDF-Store

Ladezeit

Indexgroße auf der Festplatte

Indexgroße in der Arbeitspeicher

Virtuoso

23 min

7.9 GB

?

Rdf3x

76 min

12 GB

?

SparqlEngineDraft

26 min

14.2 GB

3.5 GB

Tests

Testbeschreibung: Alle Testfälle wurden mit dem gelöschten Cache durchgeführt.

Zeilenformat: <time> (number of lines in result)

Query \ RDF Store

rdf3x

SparqlEngineDraft

Query 1

0.581ms(1)

13.827ms(1)

Query 2

17.632ms(5162)

10.568ms(5162)

Query 3

98.772ms(1579)

57.344ms(1579)

Query 4

22.731ms(9767)

16.673ms(9767)

Query 5

5.030ms(4)

239.383ms(4)

Query 6

65.057ms(0)

72.879ms(0)

Query 7

28.483ms(3697)

30.418ms(3697)

Query 8

9.559ms(164)

21.509ms(164)

Query 9

0.501ms(128)

2.319ms(128)

Query 10

476.191ms(1528)

314.789ms(1528)

Queries

Query 1

SELECT ?x WHERE { ?x <is-a> <Book> . ?x <Author> <Anthony_Newman_(Author)> }

Query 2

SELECT ?x WHERE { ?x <Genre> <Comedy> . ?x <is-a> <Award-Nominated_Work> . ?x <is-a> <Film> . }

Query 3

SELECT ?x WHERE { ?x <is-a> <Politician> . ?x <Film_performance> ?y . ?y <Genre> <Comedy> . }

Query 4

SELECT ?x WHERE { ?x <is-a> <Olympic_athlete> . ?x <is-a> <Deceased_Person> }

Query 5

SELECT ?x WHERE { ?x <Release> <Technodrome,_Volume_2_(Consumer_product)> . ?x <is-a> <Canonical_Version> . ?x <is-a> <Musical_Recording> . }

Query 6

SELECT ?x ?y WHERE { ?x <is-a> <Person> . ?x <Country_of_nationality> <Germany> . ?x <Author> ?y . ?y <is-a> <Award-Nominated_Work> }

Query 7

SELECT ?x WHERE { ?x <is-a> <Politician> . ?x <Parent> ?y . ?x <Parent> ?z . ?y <is-a> <Politician> . ?z <is-a> <Politician> . }

Query 8

SELECT ?x ?y WHERE{ ?x <is-a> <Monarch> . ?x <is-a> <Deceased_Person> .?x <Cause_of_death> <Assassination> . ?x <Place_of_birth> ?y }

Query 9

SELECT ?x WHERE{ ?x <is-a> <Lake> . ?x <Contained_by> <Russia> }

Query 10

SELECT ?x ?y ?z WHERE{ ?x <is-a> <Musical_Recording> . ?x <Recorded_by> ?y . ?y <Award_Won> <Bollywood_Movie_Humanitarian_Award> . ?y <Celebrity_friend> ?z . ?z <Profession> <Prophet> }

AD Research Wiki: TripleStores (last edited 2015-04-09 19:58:18 by 10)