AD Research Wiki
  • Comments
  • Edit
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

FrontPage

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

AD Research Wiki:
  • TripleStores

Triple Stores

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

Software Installation

Installation von Virtuoso Open-Source Edition:

  1. Herunterladen

  2. Anweisungen in der README-Datei folgen.

Installation von rdf3x:

  1. Herunterladen

  2. Kompilieren

Installation von SparqlEngineDraft:

  1. Klonen

  2. Anweisungen befolgen.

Data Import

Um den Datensatz in die Triple-Stores laden zu können, muss dieser Satz in ein für die RDF-Speicherung gängiges Format umgewandelt werden. Ausgewählt wurde das NT-Format. Der ursprüngliche Datensatz enthält Values und Entities. Values waren schon nt-konform, die Entities mussten umgewandelt werden. Dafür wurden die Entities in eckige Klammern gesetzt und unzulässige Zeichen durch die entsprechenden Prozent-Kodierungen oder durch von uns definierte Ersatzzeichen ersetzt (siehe Ersetzungtabelle unten).

Ersetzungstabelle:

%

<

>

\

^

`

space

%25

%3C

%3E

%5C

%5E

%60

_

Z.B.: Michael Jackson --> <Michael_Jackson>

Data Import Virtuoso:

Das Importieren der Daten in den Virtuoso Store wurde mit dem Bulk loading process durchgeführt. Bei diesem Prozess muss der Name des RDF-Graphen als graph_iri eingegeben werden. Unter diesem Namen ist der RDF-Satz bei Virtuoso erreichbar: Wenn man eine Sparql-Anfrage an den Store erstellt, muss man die graph_iri als prefix für jede Entity benutzen.

Z.B.: Michael Jackson --> '<http://foo/Michael_Jackson>'

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

Data Import Rdf3x:

Das Importieren der Daten in den Rdf3x-Store erfolgt durch ein Skript in <Installationsordner von Rdf3x>/bin/rdf3xload <DB-Name> <RDF-Satz-Pfad>. Bei der Anfragegenerierung ist kein zusätzlicher Präfix erforderlich.

Z.B.: Michael Jackson --> '<Michael_Jackson>'

Data Import SparqlEngineDraft:

Anweisungen befolgen. Bei der Anfragegenerierung ist kein zusätzlicher Präfix erforderlich.

Z.B.: Michael Jackson --> '<Michael_Jackson>'

Indexerstellung:

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

RDF-Store

Ladezeit

Indexgröße auf der Festplatte

Indexgröße im Arbeitspeicher (unmittelbar nach dem Serverstart)

Virtuoso

23 min

7.9 GB

5.8 GB

Rdf3x

76 min

12 GB

?

SparqlEngineDraft

26 min

14.2 GB

3.5 GB

Tests

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

Query \ RDF Store

rdf3x

SparqlEngineDraft

Virtuoso

Query 1

0.730ms(1)

36.819ms(1)

2433.000ms(1)

Query 2

16.472ms(5162)

4.587ms(5162)

121.000ms(5164)

Query 3

98.460ms(1579)

57.766ms(1579)

530.000ms(1579)

Query 4

24.536ms(9767)

6.898ms(9767)

38.000ms(9767)

Query 5

5.164ms(4)

109.617ms(4)

1229.000ms(4)

Query 6

75.784ms(0)

41.713ms(0)

138.000ms(0)

Query 7

31.728ms(3697)

17.634ms(3697)

101.000ms(3697)

Query 8

9.443ms(164)

19.144ms(164)

163.000ms(164)

Query 9

0.513ms(128)

2.586ms(128)

883.000ms(128)

Query 10

466.715ms(1528)

208.694ms(1528)

801.000ms(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>
}
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01