<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Benchmarking triple stores with biological data</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Vladimir Mironov</string-name>
          <email>Vladimir.Mironov@bio.ntnu.no</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nirmala Seethappan</string-name>
          <email>s.nirmala@gmail.com</email>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ward Blondé</string-name>
          <email>Ward.Blonde@ugent.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Erick Antezana</string-name>
          <email>Erick.Antezana@bio.ntnu.no</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Bjørn Lindi</string-name>
          <email>Bjorn.Lindi@ntnu.no</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Martin Kuiper</string-name>
          <email>Martin.Kuiper@bio.ntnu.no</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dept. Applied Mathematics, Biometrics and Process Control, Ghent University</institution>
          ,
          <addr-line>Ghent</addr-line>
          ,
          <country country="BE">Belgium</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Dept. Biology, Norwegian University for Science and Technology (NTNU)</institution>
          ,
          <addr-line>Trondheim</addr-line>
          ,
          <country country="NO">Norway</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>High Performance Computing, Norwegian University for Science and Technology (NTNU)</institution>
          ,
          <addr-line>Trondheim</addr-line>
          ,
          <country country="NO">Norway</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Martin.Kuiper</institution>
          ,
          <addr-line>Erick.Antezana</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>We have compared the performance of five non-commercial triple stores, Virtuoso-open source, Jena SDB, Jena TDB, SWIFT-OWLIM and 4Store. We examined three performance aspects: the query execution time, scalability and run-to-run reproducibility. The queries we chose addressed different ontological or biological topics, and we obtained evidence that individual store performance was quite query specific. We identified three groups of queries displaying similar behavior across the different stores: 1) relatively short response time, 2) moderate response time and 3) relatively long response time. OWLIM proved to be a winner in the first group, 4Store in the second and Virtuoso in the third. Our benchmarking showed Virtuoso to be a very balanced performer - its response time was better than average for all the 24 queries; it showed a very good scalability and a reasonable run-to-run reproducibility.</p>
      </abstract>
      <kwd-group>
        <kwd>triple store</kwd>
        <kwd>benchmarking</kwd>
        <kwd>semantic web</kwd>
        <kwd>knowledge management</kwd>
        <kwd>RDF</kwd>
        <kwd>SPARQL</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>1 Introduction</p>
      <p>
        Semantic Web technologies are increasingly being adopted by the scientific
community, and Life Sciences researchers are no exception [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Our perspective is
from the Life Sciences, and we have previously built two semantically integrated
knowledge bases [
        <xref ref-type="bibr" rid="ref2 ref3">2,3</xref>
        ]. Semantic Web technologies open a new dimension to data
integration, with various solutions, such as format standardization at the source
(ontologies and uniform semantics), a sound scalability system, and an advanced
exploratory analysis (e.g. automated reasoning), to overcome some of the current
limitations. An increasing number of principal biological data providers, such as
UniProt [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], have started to make their data available in the form of triples
(commonly represented in the Resources Description Framework (RDF) language
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]). Access to data in RDF format typically is facilitated via so-called endpoints.
Those endpoints allow querying by SPARQL [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], the standard query language that
allows users experienced in this query language to fetch information from resources
holding RDF triple stores – a collection of terms and their interrelationships.
      </p>
    </sec>
    <sec id="sec-2">
      <title>1.1 Triple stores</title>
      <p>
        Currently, there are several triple store solutions [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] to store information represented
in RDF format. Although most of them are not targeted towards a specific domain,
some of them have been readily adopted by biological data handlers who expected to
find in them a means to overcome some of the limitations of classical storage
solutions (mainly based on relational database management systems).
      </p>
      <p>
        The development of triple stores has flourished during the last 5 years. Currently,
there are more than 20 systems available [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Both the academic and private sectors
have been involved in developing these triple stores. This race has created a healthy
competition to excel in querying and loading performance, scalability, and stability.
In particular, the semantic web community has been also challenging the usage of
triple stores by promoting open contests and demonstrating Semantic Web
applications [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. It is encouraging for the scientific community that many of these
triple stores are freely available for academic use.
      </p>
    </sec>
    <sec id="sec-3">
      <title>1.2 Benchmarking efforts</title>
      <p>
        Much of the benchmarking done previously on triple stores was based on artificial
data or a set of triples that could at best only mimic a realistic ontology. Among the
“standard” sets used are: the Lehigh University Benchmark (LUBM [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]) and the
Berlin SPARQL Benchmark (BSBM, [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]). Other studies, such as the one performed
by UniProt [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], demonstrated the current limitations of some triple stores [12].
      </p>
      <p>
        Here, we present “the NTNU benchmark”, which is the work we undertook using
five popular triple store implementations, and report the outcome of this
benchmarking. In comparison with previous benchmarkings [
        <xref ref-type="bibr" rid="ref12">13</xref>
        ], we used two
additional stores not included previously (Swift OWLIM and 4Store) and instead of
(artificial) computationally generated data, we used biologically relevant real life data
from our Cell Cycle Ontology knowledge base [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <sec id="sec-3-1">
        <title>2.1 Software</title>
        <p>The set of triple store implementations included Virtuoso OpenSource 6.0.0, Swift
OWLIM 2.9.1, 4Store 1.0.2, Jena SDB 1.3.1, Jena TDB 0.8.2. The stores were run
under Centos 5 operating system. The details of software configuration are available
on request.</p>
      </sec>
      <sec id="sec-3-2">
        <title>2.2 Hardware</title>
        <p>The benchmarking was performed on a Dell R900 machine with 24 Intel(R)
Xeon(R) CPUs (2.66GHz). The machine was equipped with 132G main memory and
14x500GB 15K SAS hard drives.</p>
      </sec>
      <sec id="sec-3-3">
        <title>2.3 Querying</title>
        <p>
          The ten graphs constituting the Cell Cycle Ontology (CCO) [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], in size ranging
from 356903 to 3170556 triples, were used for benchmarking. The graphs were
queried with 24 SPARQL queries from the library of queries on the CCO web site
(http://www.semantic-systems-biology.org/cco/queryingcco/sparql). The queries were
executed on each of the graphs sequentially from query Q1 through Q24. The
experiments were replicated three times. Prior to each experiment the contents of the
stores were completely cleared and uploaded anew. The average response time and
the corresponding relative standard errors (RSE) for these three observations were
computed for all the data points (24 queries and 10 graphs, available as
supplementary material) and used to aggregate the data for Tables 2 and 3 and Figures
1 and 2.
3 Results and Discussion
        </p>
        <p>The most salient features of the queries used for our benchmarking are summarized
in Table 1.</p>
        <p>C@8@?! =FGHF!IJ! G@.?@AK?! FHLHM!
09D/E/36 09D/E/36 09D/E/36 9136;596
$</p>
        <p>K=NA?!
9136;596
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
!
"#
"%
"&amp;
"'
"(
")
"*
"+
",
"#"##
"#%
"#&amp;
"#'
"#(
"#)
"#*
"#+
"#,
"%"%#
"%%
"%&amp;
"%'
$
$
$
$
$
$</p>
        <p>As can be seen from Table 1, this collection of queries encompasses a broad range
of features and combinations thereof. This ensures a comprehensive assessment of the
performance of the triple stores.</p>
        <p>
          In order to get a bird's eye view on the performance of the stores we aggregated the
response times into the single cumulative total response time and estimated the
average relative standard errors for each of the stores (Table 2). (Please note that
OWLIM does not support the COUNT operator, therefore the values for this store do
not include data for queries Q17, Q19, Q20. Q21).
The total execution time varied over a very broad range and some of the stores (most
notably Jena TDB and OWLIM) displayed an unexpectedly high run-to-run
variability. On the basis of these data Virtuoso emerges as an overall winner, with by
far the best total execution time and a relatively small run-to-run variation. However,
the picture changes radically when we look into the query- specific behavior (Table
3).
The table makes clear that all the stores behave in a query specific manner. A
highly query-specific behavior has been also observed by Bizer and Schultz [
          <xref ref-type="bibr" rid="ref13">14</xref>
          ].
However, a couple of common trends are visible. OWLIM is by far the best performer
with the relatively short response time queries; 4Store shows the best performance
with the moderate response time queries; and Virtuoso is doing best of all with the
long response time queries. Jena SDB is consistently the slowest store with all the
short and moderate response time queries. Additionally, it should be noted that for
OWLIM and 4Store the cumulative values in the Table 2 are dominated by outliers –
query Q18 for 4Store and queries Q14, Q3, Q18 for OWLIM. The only common
feature of the queries Q14 and Q18 is the ORDER BY modifier, not used by any other
%&amp;'
        </p>
        <p>%
$&amp;'</p>
        <p>$
0 #&amp;'
)3+A #
?-@ "&amp;'</p>
        <p>"
!&amp;'
!
queries. The list of features shared by the queries Q3 and Q18 includes simple filters,
more than 8 triple patterns and a REGEX operator. At present it is not possible to
determine which of these features or a combination thereof are responsible for the
long execution time.</p>
        <p>Finally, we wanted to compare the stores with respect to their scalability. The
averaged response times were summed over all the queries (except for the queries
Q17, Q19, Q20. Q21 for OWLIM) and plotted against the total number of triples in
the graphs (Figure 1).</p>
        <p>!
"!!!!!!
#!!!!!!
=3+*)&gt;?0.</p>
        <p>$!!!!!!
%!!!!!!</p>
        <p>As can be seen from the figure OWLIM scales up extremely well, with Virtuoso
and Jena SDB as second best. 4Store demonstrated the poorest performance with
respect to scalability. However, as pointed out earlier, the behavior of OWLIM and
4Store is strongly affected by a few outliers. Therefore, to eliminate the impact of the
outliers we excluded the three slowest queries Q3, Q14 and Q18 from the plot (Figure
2).</p>
        <p>"&amp;(
"&amp;'
"&amp;%
"&amp;#
1 "
*4,B!&amp;(
@.A !!&amp;&amp;'%
!&amp;#
!
$!!!!!!
%!!!!!!</p>
        <p>
          Although the mutual arrangement of the individual graphs on the plot changed in
favor of OWLIM and 4Store, the conclusion drawn previously about the scalability
did not change.
4 Conclusions
We have compared the performance of five popular triple stores, Virtuoso-open
source, Jena SDB, Jena TDB, Swift OWLIM and 4Store, in three aspects – the query
execution time, scalability and run-to-run reproducibility. According to our results
there is no absolute winner within this set of stores. Instead, the performance seems to
be quite query-specific. Nevertheless, it was possible to identify three groups of
queries displaying similar behavior with respect to the different stores: 1) relatively
short response time, 2) moderate response time and 3) relatively long response time.
OWLIM proved to be a winner in the first group, 4store in the second and Virtuoso in
the third. Virtuoso emerged from our benchmarking as a very balanced performer –
its response time was better than average for all the 24 queries; it showed a very good
scalability and a reasonable run-to-run reproducibility. Even though in our study we
used only moderately large triple stores, others demonstrated that Virtuoso excels
when confronted with much larger stores, up to 100-200 M triples [
          <xref ref-type="bibr" rid="ref13 ref14">14,15</xref>
          ]. We
conclude that Virtuoso is well suited for managing large volumes of biological data.
This conclusion is further corroborated by the successful deployment of Virtuoso in
our BioGateway project [
          <xref ref-type="bibr" rid="ref15">16</xref>
          ] where it gracefully supports querying of ~1.8 billion
triples.
        </p>
        <p>
          Data availability. The rdf files used for uploading the triple stores are downloadable
from the CCO web site [
          <xref ref-type="bibr" rid="ref16">17</xref>
          ].
        </p>
        <p>Acknowledgments. The authors appreciate the assistance of E. Jensen with setting up
the triple stores used in this benchmarking. V. Mironov was supported by FUGE Midt
Norge.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Antezana</surname>
            <given-names>E</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuiper</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mironov</surname>
            <given-names>V</given-names>
          </string-name>
          .
          <article-title>Biological knowledge management: the emerging role of the Semantic Web technologies</article-title>
          .
          <source>Brief Bioinform</source>
          .
          <year>2009</year>
          Jul;
          <volume>10</volume>
          (
          <issue>4</issue>
          ):
          <fpage>392</fpage>
          -
          <lpage>407</lpage>
          . Epub 2009 May 19.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Antezana</surname>
            <given-names>E</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Egaña</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Blonde</surname>
            <given-names>W</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Illarramendi</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bilbao</surname>
            <given-names>I</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Baets</surname>
            <given-names>B</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stevens</surname>
            <given-names>R</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mironov</surname>
            <given-names>V</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Kuiper</surname>
            <given-names>M.</given-names>
          </string-name>
          <article-title>The cell cycle ontology: An application ontology for the representation and integrated analysis of the cell cycle process</article-title>
          .
          <source>Genome Biol</source>
          .
          <year>2009</year>
          ,
          <volume>10</volume>
          (
          <issue>5</issue>
          ):
          <fpage>R58</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Antezana</surname>
            <given-names>E</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Blondé</surname>
            <given-names>W</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Egaña</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rutherford</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stevens</surname>
            <given-names>R</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Baets</surname>
            <given-names>B</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mironov</surname>
            <given-names>V</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuiper</surname>
            <given-names>M.</given-names>
          </string-name>
          <article-title>BioGateway: a semantic systems biology tool for the life sciences</article-title>
          .
          <source>BMC Bioinformatics</source>
          .
          <source>2009 Oct</source>
          <volume>1</volume>
          ;
          <issue>10 Suppl 10</issue>
          :
          <fpage>S11</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>UniProt</given-names>
            <surname>Consortium</surname>
          </string-name>
          .
          <article-title>The Universal Protein Resource (UniProt</article-title>
          ) in
          <year>2010</year>
          .
          <source>Nucleic Acids Res</source>
          .
          <year>2010</year>
          Jan;
          <volume>38</volume>
          (Database issue):
          <fpage>D142</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Resources</given-names>
            <surname>Description</surname>
          </string-name>
          <article-title>Framework (RDF)</article-title>
          . http://www.w3.org/RDF/
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>SPARQL</given-names>
            <surname>Query</surname>
          </string-name>
          <article-title>Language for RDF</article-title>
          . http://www.w3.org/TR/rdf-sparql-query/
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Large</given-names>
            <surname>Triple</surname>
          </string-name>
          <article-title>Stores</article-title>
          . http://esw.w3.org/LargeTripleStores
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>8. ListofTriplestoreImplementations. http://en.wikipedia.org/wiki/Triplestore#List_of_Triplestore_Implementations</mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>9. The Semantic Web Challenge http://challenge.semanticweb.org/</mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Guo</surname>
            <given-names>Y</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pan</surname>
            <given-names>Z</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Heflin</surname>
            <given-names>J. LUBM</given-names>
          </string-name>
          :
          <article-title>A Benchmark for OWL Knowledge Base Systems</article-title>
          .
          <source>Journal of Web Semantics</source>
          <volume>3</volume>
          (
          <issue>2</issue>
          ),
          <year>2005</year>
          ,
          <fpage>pp158</fpage>
          -
          <lpage>182</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. Berlin SPARQL Benchmark (BSBM). http://www4.wiwiss.fuberlin.de/bizer/BerlinSPARQLBenchmark/ 12.
          <string-name>
            <surname>Bolleman</surname>
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kappler</surname>
            <given-names>T</given-names>
          </string-name>
          , and
          <article-title>the UniProt Consortium</article-title>
          .
          <source>Weekend Triple Billionaire. SWAT4LS</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          13.
          <string-name>
            <given-names>RDF</given-names>
            <surname>Store</surname>
          </string-name>
          <article-title>Benchmarking</article-title>
          . http://esw.w3.org/RdfStoreBenchmarking
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          14.
          <string-name>
            <surname>Bizer</surname>
            <given-names>C</given-names>
          </string-name>
          and
          <article-title>Schultz A. The Berlin SPARQL Benchmark</article-title>
          .
          <source>International Journal on Semantic Web &amp; Information Systems</source>
          , Vol.
          <volume>5</volume>
          ,
          <string-name>
            <surname>Issue</surname>
            <given-names>2</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pages</surname>
          </string-name>
          1-
          <fpage>24</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          15.
          <string-name>
            <surname>Bizer</surname>
            <given-names>C</given-names>
          </string-name>
          and
          <article-title>Schultz A. Berlin SPARQL Benchmark Results for Virtuoso, Jena TDB and BigOWLIM</article-title>
          . http://www4.wiwiss.fuberlin.de/bizer/BerlinSPARQLBenchmark/results/V5/#comparison
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          16.
          <article-title>The biogateway triple store http://www.semantic-systems-biology</article-title>
          .org/biogateway
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>17. CCO download http://www.semantic-systemsbiology.org/cco/downloadcco/ontologies</mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>