<!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>Graph Databases Benchmarking on the Italian Business Register</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Nicola Ferro</string-name>
          <email>ferro@dei.unipd.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Luca Sinico</string-name>
          <email>luca.sinico@infocamere.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Information Engineering, University of Padua</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Infocamere</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <fpage>96</fpage>
      <lpage>107</lpage>
      <abstract>
        <p>In this paper, we develop a benchmark for graph database systems based on the real data of the Italian Business Register, consisting of about 10 million entities and 5 million relationships among them. We evaluate three state-of-the-art open source graph database systems { ArangoDB, Neo4J, and OrientDB { and we compare them to a wellknown relational database management system, namely PostgreSQL. We found out that the strong points of graph databases are: the purposely designed storage techniques, which let them have good performance on graph datasets; and the purposely designed query languages, which go beyond the standard SQL and manage the typical problems that arise when graphs are explored. However, we have seen that the main performance increments have been obtained when heavy graph situations are queried; for simpler situations and queries, a relational database performs equally well.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Graph databases [
        <xref ref-type="bibr" rid="ref2 ref3">3, 2</xref>
        ] are becoming a more and more adopted data model and
technology. Common use cases for graph databases are social graphs,
recommender systems, business relationships, network impact analysis, geospatial
applications such as maps and route planning for rail or logistics,
telecommunication or energy distribution networks, fraud detection, and many more.
      </p>
      <p>The success of graph databases in such elds is due not only to their data
model, which naturally model the domain of interest, but also to their query
functionalities and their graph processing APIs which allow us to express queries
and operations on graphs more easily than, e.g., the SQL language.</p>
      <p>In this paper, we focus on the application of graph databases to the case of
the Italian Business Register3 (\Registro Imprese"), i.e. the register of company
details (name, articles of association, directors, headquarters, : : :), their share
holders, their subsidiaries, and all subsequent events that occurred after
registration { for instance, amendments to the articles of association and company
roles, relocations, liquidations, insolvency procedures, and so on.</p>
      <p>The Italian Business Register thus provides a complete picture of the
legal position of each company and is a key archive for drawing up indicators of
economic and business development. Its main function is to ensure an organic
system of legal disclosure for companies, ensuring the provision of timely
information throughout the country. The Italian Business Register is thus intrinsically
a graph of relationship among Italian companies. This work has been conducted
in the context of a joint project with InfoCamere s.c.p.a., the company which
manages the Italian Business Register. We aim at comparing graph database
systems, also with respect to traditional relational systems, to determine the best
solutions to develop an innovative application to search and access the Italian
Business Register. Therefore, we studied and tested three of the most important
open source graph databases { ArangoDB4, Neo4j5, OrientDB6 { and we also
compared them to a well-known relational database, namely PostgreSQL7. We
used a real dataset, i.e. the data of the Italian companies and their equity
participations, constituted by, roughly, 6 million companies, 4 million persons and
5 million relationships among them.</p>
      <p>The paper is organized as follows: Section 2 brie y summarizes related works;
Section 3 describes the compared graph databases; Section 4 introduces the
domain of interest and the experimental setup; Section 5 reports the conducted
experiments and their results; nally, Section 6 wraps up the discussion and
outlooks possible future works.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Works</title>
      <p>
        In recent years there have been several e orts to evaluate graph databases and
develop benchmarks for this purpose. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] compared Neo4J to the MySQL8
relational database management system by using synthetic data. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] used
synthetic data to evaluate traversal operations for di erent graph database systems,
among which Neo4J, OrientDB, and DEX (now Sparksee, commercial)9. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] used
both synthetic data and real data from the Amazon's co-purchasing network to
evaluate several systems, among which Neo4J, OrientDB, DEX/Sparksee, and
In niteGraph10 (commercial). [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] used synthetic data to evaluate Neo4J,
OrientDB, and DEX/Sparksee according to di erent workloads { load, traversal,
and intensive. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] compared a wide range of graph and relational database
systems using synthetic data against speci c test cases, namely Single Source
Short4 https://www.arangodb.com/
5 https://neo4j.com/
6 https://orientdb.com/
7 https://postgresql.org/
8 https://www.mysql.com/
9 http://sparsity-technologies.com/
10 http://www.objectivity.com/products/infinitegraph/
est Paths (SSSP) problem, Shiloach-Vishkin connected components algorithm,
and PageRank. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] used two real datasets, namely Wiki-Talk and Slashdot, to
evaluate Neo4J, OrientDB and other systems. Finally, [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] used the Linked Data
Benchmark Council (LDBC)11 Social Network Benchmak (SNB) to evaluate
Neo4J, PostgreSQL and other systems. Note that LDBC develops also another
benchmark, i.e. the Semantic Publishing Benchmark (SPB).
      </p>
      <p>Our work di ers from the state-of-the-art because it relies on real data,
instead of synthetic ones as many of the works above, and explores a new domain,
i.e. the business register, which is not covered by previous works.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Property Graph Databases</title>
      <p>
        A property graph [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is a directed graph were both nodes and edges can contain
properties which, typically are, key-value pairs. Moreover, both nodes and edges
are typed, allowing for semantic enrichment of the data.
      </p>
      <p>We compared the graph databases described in the following sections. Table 1
summarizes and compares the main features of the analyzed graph databases.
ArangoDB ArangoDB is an open-source NoSQL multi-model database
management system supporting three data models, namely graphs, key/value pairs,
and documents. It is a schema-free DBMS, implemented in C/C++ and JavaScript,
and supports several operating systems (Linux, OS X, Windows, Raspbian and
Solaris).</p>
      <p>ArangoDB represents documents in a proprietary JavaScript Object
Notation (JSON) binary format, called VelocyPack, which is a platform-independent
serialization format. It manages two kinds of documents, i.e. nodes and edges.
It has its own proprietary and declarative query language { ArangoDB Query
Language (AQL), which o ers aggregate, ordering, ltering, and sub-querying,
and graph-traversal functions, especially suitable to express how graphs have to
be explored, e.g. breadth or depth- rst, how many times to visit a node or an
edge, whether to avoid duplicates and cycles.</p>
      <p>Neo4j Neo4j is an open-source NoSQL graph database implemented in Java and
Scala, portable across many operating systems. Its data model consists of node
objects, which can be labeled, connected by named and directed edge objects,
where both nodes and edges can act as containers of properties. Neo4j stores
graph data in di erent les for each part of the graph { nodes, relationships,
labels, and properties { speci cally arranged to facilitate graph traversals.</p>
      <p>Cypher is the proprietary and declarative query language provided by Neo4j.
It is designed for working with graph data and de nes the structure of the
patterns to be searched or created over the graph data. It allows for a sort of
graphical speci cation of queries or search patterns by means of an ASCII art
like drawing.
11 http://www.ldbcouncil.org/</p>
      <p>Graph
Property graph</p>
      <p>Yes
Yes
Java</p>
      <p>Scala
Yes, secondary</p>
      <p>Yes, ACID
Schema-less
Yes (edges)</p>
      <p>Yes
Cypher</p>
      <p>Java
Yes</p>
      <p>Java
C/C++
JavaScript</p>
      <p>PHP
Ruby
Python</p>
      <p>...</p>
      <p>RESTful HTTP</p>
      <p>Java API
Feature</p>
      <p>Category</p>
      <p>Initial release
Database Model</p>
      <p>Graph model</p>
      <p>Native graph
Index-free adjacency</p>
      <p>Implementation</p>
      <p>Indices</p>
      <p>Transactions
(Single instance)</p>
      <p>Data scheme
Referential integrity</p>
      <p>Data typing
Query Language
Stored procedures
Graph functions</p>
      <p>Drivers</p>
      <p>Triggers
Concurrency
User concepts</p>
      <p>Durability
Community license</p>
      <p>Replication
con ict resolution</p>
      <p>Data sharding</p>
      <p>Caching
OrientDB</p>
      <p>NoSQL
2010</p>
      <p>Graph
Document
Key-Value</p>
      <p>Object
Property graph</p>
      <p>Yes</p>
      <p>Yes
Java</p>
      <p>PostgreSQL</p>
      <p>Relational</p>
      <p>1996
Relational</p>
      <p>Object
{
{
{</p>
      <p>C
Yes, secondary Yes, secondary</p>
      <p>Yes, ACID</p>
      <p>Yes, ACID
Schema-less
Schema-ful
Yes (edges)</p>
      <p>Yes
SQL \extended"</p>
      <p>SQL
JavaScript</p>
      <p>Groovy</p>
      <p>Yes
Java</p>
      <p>JDBC
JavaScript</p>
      <p>PHP
Ruby
Python</p>
      <p>...</p>
      <p>RESTful HTTP</p>
      <p>Java API
Binary</p>
      <p>Yes
(Hooks)</p>
      <p>Yes
Yes</p>
      <p>Yes</p>
      <p>Apache v2
Master/Master
Master/Slave</p>
      <p>Yes</p>
      <p>Data
Query results</p>
      <p>Schema-ful</p>
      <p>Yes
Yes</p>
      <p>SQL
PL/pgSQL</p>
      <p>PL/Tcl</p>
      <p>PL/Perl
PL/Python</p>
      <p>No
C/C++
JDBC
PHP
Ruby
Python
ODBC</p>
      <p>...</p>
      <p>JDBC
C API</p>
      <p>Yes
Yes
Yes
Yes</p>
      <p>BSD
Master/Slave</p>
      <p>No</p>
      <p>Data
Query plans
Access methods</p>
      <p>RESTful HTTP</p>
      <p>OrientDB OrientDB, initially born as an object-oriented database, is now an
open-source multi-model database management system, supporting alternative
paradigms, namely objects, documents, key/value pairs, and graphs. It is
developed in Java and multi-platform. It relies on its object-oriented nature to model
graphs as node and edge elements together with their properties.</p>
      <p>OrientDB comes with a sort of dialect of the SQL query language, which
provides speci c extension for graph traversal and pattern speci cation.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Experimental Setup</title>
      <p>4.1</p>
      <sec id="sec-4-1">
        <title>Use Case</title>
        <p>InfoCamere12 is the IT company of the Italian Chambers of Commerce. By
developing up-to-date and innovative IT solutions and services, it connects the
Chambers of Commerce and their databases through a network that is also
accessible to the public via the Internet. Thanks to InfoCamere, businesses,
Public Authorities, trade associations, professional bodies and simple citizens
both in Italy and abroad can easily access updated and o cial information and
economic data on all businesses registered and operating in Italy. The Italian
Chambers of Commerce are public bodies entrusted to serve Italian businesses
through over 300 branch o ces located throughout the country. InfoCamere
helps them in pursuing their goals in the interest of the business community,
especially through the provision of the Italian Business Register and services
over it.
12 https://www.infocamere.it/</p>
        <p>We use a simpli ed version of the Italian Business Registers, whose Entity{
Relationship (ER) schema is shown in Figure 1. There are two entities, namely
companies and physical persons, whose attributes are:
{ fiscal code: a unique identi er;
{ rea: an identi cation code for linking to the REA register (Repertorio
Economico Amministrativo);
{ cciaa: the identi er of the Chamber of Commerce where the company is
registered;
{ type: either company or physical person;
{ denomination: the business name for companies or the name for persons;
{ country: the registration country for companies, e.g. foreign companies with
branches in Italy or the birth country for persons;
{ legal form: a code representing the legal nature of a company, e.g. sole
proprietorship;
{ share capital: the amount of company's share capital;
{ stocks: the number of nancial stocks.</p>
        <p>The recursive relationship distinguishes between two roles: the subsidiary
and the holding company.</p>
        <p>The dataset is a snapshot of the Italian Business Register at October 2016,
consisting of about 10.5 million companies and physical persons and about 5
million relationships among them.
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Queries</title>
        <p>According to the requirements for developing advanced services on the Italian
Business Registry, there are two typologies of queries that need to be answered,
e.g. for supporting antitrust, investigations, nancial organizations, loans and so
on:
{ how is a company composed?
retrieve the companies which own equity shares of a given company, i.e.
the holding companies ;
retrieve the companies directly connected to a given company regardless
of type of participation, i.e. both subsidiaries and holdings;
retrieve the list and level of all the direct and indirect subsidiaries of a
given company, e.g. shell companies;
{ how are companies linked?
retrieve the list of the companies which are shared subsidiaries of two
given companies;
retrieve the list of the companies which are shared holdings of two given
companies;
get the shortest path between two given companies.</p>
        <p>Each query is performed on three types of workloads: small-weight (also
referenced as Small), medium-weight (Medium), and large-weight (Large) workload
for that query. For example, for the \Subsidiaries and holdings of a company"
query, the light situation is given by a company that has few (units) subsidiaries
and holdings; the medium case is given by a company with a good number
(hundreds) of subsidiaries and holdings; the heavy case is given by a company that
has a very large number (thousands) of subsidiaries and holdings.</p>
        <p>We used the query language provided by each database to implement the
queries: AQL for ArangoDB; Cypher or the Java API in the case of complex
queries for Neo4j; its extended SQL for OrientDB; and SQL for PostgreSQL.
4.3</p>
      </sec>
      <sec id="sec-4-3">
        <title>Con guration</title>
        <p>All tests have been done during an internship at InfoCamere. We set up a
virtual instance of a RedHat Linux server with the following characteristics: AMD
Opteron 6276, x86 64, dual-core, single-thread per core, 64bit, 2.3GHz; 6GB
DRAM; 100GB HDD; Red Hat Enterprise Linux Server release 6.8 (Santiago);
OpenJDK 1.8.0 101 64-Bit Server VM (Java version 8u101).</p>
        <p>We used the following versions of the tested databases: ArangoDB 3.0.10;
Neo4J 3.0.6; OrientDB 2.2.11; and, PostgreSQL 9.6.1.</p>
        <p>We performed a cache warm-up; we repeated each query 20 times, reporting
averaged values and con dence intervals; after each query, we re-started the
database and warmed-up the cache again.
5
5.1</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Evaluation</title>
      <sec id="sec-5-1">
        <title>How is a Company Composed?</title>
        <p>In this section we report the performance of the queries corresponding to the
use cases aimed at de ning how a company is composed.</p>
        <p>Holdings of a company Figure 2 shows, on the left, the typical subgraph for
the holdings of a company and, on the right, the performance of the di erent
systems in the three workloads, where we have 4 resulting nodes in the small
case, 418 nodes in the medium case, and 6067 nodes in the large case.</p>
        <p>From Figure 2.(b), it emerges that the best performing system is ArangoDB
while the worst one is Neo4J; OrientDB and PostgreSQL are very similar and
about one order of magnitude slower than ArangoDB. In terms of stability,
i.e. low variance among query performance, PostgreSQL is the top performing
system, closely followed by ArangoDB.</p>
      </sec>
      <sec id="sec-5-2">
        <title>Subsidiaries and holdings of a company Figure 3 shows, on the left, the</title>
        <p>typical subgraph for the subsidiaries and holdings of a company and, on the
right, the performance of the di erent systems in the three workloads, where we</p>
        <p>ArangoDB</p>
        <p>Neo4J
106 OrientDB</p>
        <p>PostgreSQL
10S2mall
107
105
s
n
104
103
10S2mall
have 5 resulting nodes in the small case, 120 nodes in the medium case, and 1815
nodes in the large case.</p>
        <p>As before, ArangoDB is the top performing system while Neo4J is the worst
one. However, PostgreSQL is very competitive and better than ArangoDB in
the medium and large cases. OrientDB performs roughly an order of magnitude
slower than ArangoDB. In terms of variance, both ArangoDB and PostgreSQL
are quite stable while OrientDB and Neo4J exhibit quite less stability.
Direct and indirect subsidiaries of a company Figure 4 shows, on the left,
the typical subgraph for the direct and indirect subsidiaries of a company and,
on the right, the performance of the di erent systems in the three workloads,
where we have 12 resulting nodes in the small case, 76 nodes in the medium
case, and 14037 nodes in the large case. Note that a challenging aspect of this
query is a kind of \global uniqueness", i.e. the need to avoid duplicate records
and to traverse the same nodes more than once.
10S2mall</p>
        <p>We can observe that ArangoDB is still the top performing systems but the
gap between systems is somehow smaller in this more complex case, being just
about one order of magnitude for the small and medium cases. In these two
cases, PostgreSQL is still very competitive with respect to graph databases while
its performance greatly deteriorates in the large case, about three orders of
magnitude slower. This is probably due to the way in which \global uniqueness"
is imposed, i.e. only at a posteriori and not while traversing the graph. From the
variance point of view, PostgreSQL is the most stable system closely followed by
ArangoDB while, as in the previous cases, Neo4J and OrientDB are somehow
less stable.
In this section we report the performance of the queries corresponding to the
use cases aimed at de ning how companies are linked among them.</p>
      </sec>
      <sec id="sec-5-3">
        <title>Companies which are shared subsidiaries of two companies Figure 5</title>
        <p>shows, on the left, the typical subgraph for the shared subsidiaries of two
companies and, on the right, the performance of the di erent systems in the three
workloads, where we have 6 resulting nodes in the small case, 84 nodes in the
medium case, and 8728 nodes in the large case.</p>
        <p>ArangoDB is again the top performing systems and the gap between systems
is somehow small, being just about one order of magnitude for the small and
medium cases. In these two cases, PostgreSQL is still very competitive with
respect to graph databases while its performance greatly deteriorates in the large
case, about four orders of magnitude slower. As before, from the variance point
of view, PostgreSQL is the most stable system closely followed by ArangoDB
while Neo4J and OrientDB are somehow less stable.
10S2mall</p>
        <p>Medium
(a) Execution time.</p>
        <p>Large</p>
      </sec>
      <sec id="sec-5-4">
        <title>Companies which are shared holdings of two companies Figure 6 shows,</title>
        <p>on the left, the typical subgraph for the shared holdings of two companies and,
on the right, the performance of the di erent systems in the three workloads,
where we have 26 resulting nodes in the small case, 140 nodes in the medium
case, and 19548 nodes in the large case.</p>
        <p>This query is basically the same as the previous one but just with reversed
direction of the edges. With respect to the previous query case, we can observe
that there is a swap between ArangoDB, the top performing system in the small
and medium cases, and Neo4j in the large case, where Neo4J is the best system.
Moreover, in the small and medium cases, the variance in performance is greatly
increased for both Neo4J and OrientDB. PostgreSQL somehow performs as in
the previous query case, even if it improves in the large case being just about
one order of magnitude slower.
10S2mall</p>
      </sec>
      <sec id="sec-5-5">
        <title>Shortest path between two companies Figure 7 shows, on the left, the</title>
        <p>typical subgraph for the shortest path between two companies and, on the right,
the performance of the di erent systems in the three workloads, where we have
a path made of 4 edges in the small case, 8 edges in the medium case, and 17
edges in the large case.</p>
        <p>ArangoDB is again the top performing systems and the gap between systems
is somehow small, being just about one order of magnitude for the small and
medium cases. In these two cases, PostgreSQL is also very competitive with
respect to graph databases while its performance greatly deteriorates in the
large case, about three orders of magnitude slower. It is interesting to note that
ArangoDB and Neo4J have very close performance in the large case and that the
Neo4J performances are almost constant across the three cases. Finally, from the
variance point of view, PostgreSQL is the most stable system closely followed
by ArangoDB while Neo4J and OrientDB are somehow less stable.
By looking at the charts, it emerges that ArangoDB generally performs better
than all the others, especially for the small and medium cases. For the large
case, Neo4j works on par with ArangoDB or even better in all the queries that
requires somehow heavier graph processing.</p>
        <p>Furthermore, Neo4j and OrientDB have often quite close performance,
especially for small and medium cases; for the large case, instead, there is no clear
winner.</p>
        <p>Overall, PostgreSQL typically performs well and it is competitive in the
small and medium cases or when light graph processing is required, i.e. when
just directly connected nodes are involved. On the other hand, it takes more
time than the others when it has to process bigger amounts of data and/or more
complex graph structures.
We evaluated the performance of three state-of-the-art open source graph database
systems { ArangoDB, Neo4J, and OrientDB { and one relational database
management system { PostgreSQL. We developed a benchmark using the real data of
the Italian Business Register, considering six types of queries involving more or
less complex graph patterns, and accounting for three workloads { light, medium,
and large. To the best of our knowledge, this is the rst benchmark for graph
databases using real business register data.</p>
        <p>We found that ArangoDB is almost always the top-performing system,
especially in the small and medium cases, followed by Neo4J and OrientDB for which
there is no clear winner. When we consider the large workload case, ArangoDB
and Neo4J get closer and, sometimes, the latter performs better. When it comes
to PostgreSQL it is competitive for the small and medium cases but its
performance deteriorate in the case of large workloads and more complex graph
structures. In terms of performance stability, PostgreSQL is the most stable
system, i.e. the one with lowest variance, closely followed by ArangoDB while Neo4J
and OrientDB show a greater variance.</p>
        <p>Future work will be about the release to the Chambers of Commerce and
other users the application which uses the graph database technology, and will
further inspect how to extract other valuable information from the graph data.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Abul-Basher</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chignell</surname>
            ,
            <given-names>M.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Godfrey</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yakovets</surname>
          </string-name>
          , N.:
          <article-title>TGDB: Towards a Benchmark for Graph Databases</article-title>
          .
          <source>In CASCON 2016</source>
          . pp.
          <volume>257</volume>
          {
          <fpage>267</fpage>
          . ACM Press, New York, USA (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Angles</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arenas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barcelo</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hogan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reutter</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vrgoc</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Foundations of Modern Query Languages for Graph Databases</article-title>
          .
          <source>ACM CSUR 50(5)</source>
          ,
          <volume>68</volume>
          :1{
          <fpage>68</fpage>
          :
          <fpage>40</fpage>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Angles</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gutierrez</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Survey of Graph Database Models</article-title>
          .
          <source>ACM CSUR 40(1)</source>
          , 1:
          <issue>1</issue>
          {1:
          <issue>39</issue>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Angles</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gutierrez</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>An introduction to Graph Data Management</article-title>
          . arXiv.org,
          <source>Databases (cs.DB) arXiv:1801</source>
          .
          <volume>00036</volume>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Ciglan</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Averbuch</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hluchy</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Benchmarking Traversal Operations over Graph Databases</article-title>
          .
          <source>In ICDEW 2012</source>
          . pp.
          <volume>186</volume>
          {
          <fpage>189</fpage>
          . IEEE Computer Society (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Jouili</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vansteenberghe</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>An empirical comparison of graph databases</article-title>
          .
          <source>In: SocialCom 2013</source>
          . pp.
          <volume>708</volume>
          {
          <fpage>7015</fpage>
          . IEEE Computer Society (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Kolomicenko</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Svoboda</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Holubova</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Experimental Comparison of Graph Databases</article-title>
          .
          <source>In: IIWAS 2013</source>
          . pp.
          <volume>115</volume>
          {
          <fpage>124</fpage>
          . ACM Press, New York, USA (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>McColl</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ediger</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Poovey</surname>
          </string-name>
          , J.,
          <string-name>
            <surname>Campbell</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bader</surname>
            ,
            <given-names>D.A.:</given-names>
          </string-name>
          <article-title>A Performance Evaluation of Open Source Graph Databases</article-title>
          .
          <source>In: PPAA 2014</source>
          . pp.
          <volume>11</volume>
          {
          <fpage>17</fpage>
          . ACM Press (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Pacaci</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tamer</surname>
            <given-names>O</given-names>
          </string-name>
          zsu, M.:
          <string-name>
            <surname>Do We Need Specialized Graph Databases</surname>
          </string-name>
          <article-title>?: Benchmarking Real-Time Social Networking Applications</article-title>
          .
          <source>In GRADES 2017</source>
          . pp.
          <volume>12</volume>
          :
          <issue>1</issue>
          {
          <issue>12</issue>
          :
          <article-title>7</article-title>
          . ACM Press (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Vicknair</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Macias</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nan</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wilkins</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>A Comparison of a Graph Database and a Relational Database</article-title>
          .
          <source>In: ACM SE</source>
          <year>2010</year>
          . pp.
          <volume>42</volume>
          :
          <issue>1</issue>
          {
          <issue>42</issue>
          :
          <article-title>6</article-title>
          . ACM Press (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>