<!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>EGG: A Framework for Generating Evolving RDF Graphs</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Karim Alami</string-name>
          <email>alami.karim7@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Radu Ciucanu</string-name>
          <email>ciucanu@isima.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Engelbert Mephu Nguifo</string-name>
          <email>mephu@isima.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universite Clermont Auvergne &amp; CNRS LIMOS</institution>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>We demonstrate EGG (Evolving Graph Generator), an opensource framework for generating evolving RDF graphs based on nelytuned temporal constraints given by the user. During the demonstration, we will showcase the highly-expressive constraints that the user can specify in EGG to generate evolving graphs over various real-world use cases, the accuracy and scalability of the generator, and the ease of using EGG in performance comparisons of evolving graph processing systems.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Evolving graph con guration
# of snapshots
Evolving properties (nodes and edges)
Evolution constraints</p>
      <p>Static graph con guration</p>
      <p>Size
Node and edge types
Occurrence constraints
Degree distributions</p>
      <p>EGG
Evolving graph generator</p>
      <p>gMark
Static graph generator</p>
      <p>
        RDF annotated
with temporal
information
In this section, we present gMark static graph con gurations, EGG evolving graph
con gurations, and we brie y discus EGG implementation challenges. Similarly to
gMark, EGG is schema-driven and domain-independent. We use next as running
example a geographical database, but we have been additionally able to easily
encode di erent domains such as a social network, a DBLP-like bibliographical
network, or an online shop. All these schemas will be part of our demonstration.
Static graph con gurations. Assume that a user wants to generate graphs
simulating a geographical database storing data about cities, and di erent
facilities such as transportation and hotels. The user can specify as gMark input the
following types of constraints: (i) graph size, given as # of nodes; (ii) node types
e.g., city and hotel, and edge types e.g., train and contains; (iii) occurrence
constraints e.g., 10% of the graph nodes should be of type city, whereas 90%
of the graph nodes should be of type hotel; (iv) degree distributions e.g.,
source type predicate target type In-distribution Out-distribution
city contain!s hotel Uniform [
        <xref ref-type="bibr" rid="ref1 ref1">1,1</xref>
        ] Zip an
      </p>
      <p>
        !
meaning that we can have an edge of type contains from a node of type city
to a node of type hotel, with a Zip an out-distribution (since it is realistic to
assume that the number of hotels in a city follows such a power-law distribution)
and a uniform [
        <xref ref-type="bibr" rid="ref1 ref1">1,1</xref>
        ] in-distribution (since a hotel is located in precisely one city).
      </p>
      <p>We call such gMark graph con gurations as being static since the nodes
of type e.g., city and hotel are rarely created or deleted. Nonetheless, such
nodes (as well as the di erent edges connecting them) possess properties that
naturally evolve over time, in an interdependent manner. The user can specify
such evolving properties as input of EGG, as we illustrate next.</p>
      <p>
        Evolving graph con gurations. Assume that our user generates with gMark
a graph having nodes of type city and hotel, and edges of type train
(connecting two cities) and contains (connecting a city to a hotel). Next, the user wants
to add properties that evolve over time for the aforementioned nodes and edges,
assuming that a graph snapshot corresponds to a day. We next give examples of
such properties, together with nely-tuned constraints to evolve among
consecutive snapshots. A node of type hotel has the following evolving properties:
{ availableRooms (quantitative discrete), which can have as values integers
in the interval [
        <xref ref-type="bibr" rid="ref1">1,100</xref>
        ], following a binomial distribution. There is a probability
of 80% that it changes from a snapshot to the next one, and it can increment or
decrement by an integer up to 5 between two consecutive snapshots.
      </p>
      <p>{ star (ordered qualitative), which can have ve possible values, following a
geometric distribution. It can only change every thirty snapshots, with a
probability of 10%, and it can only increment or decrement by 1.</p>
      <p>{ hotelPrice (quantitative continuous), whose values follow a normal
distribution in an interval that is dynamically constructed based on the value of the
property star. Moreover, hotelPrice is anti-correlated with availableRooms
i.e., if availableRooms decreases, then hotelPrice increases, and vice-versa.</p>
      <p>The user can similarly specify evolving properties and evolution constraints
for the node type city (e.g., properties weather and airQuality) and for the
edge type train (e.g., property trainPrice). It is worth noting that we allow the
EGG user to specify validity properties i.e., Boolean properties encoding whether
a given node or edge exists at a given snapshot e.g., a train connection between
two cities may not be valid during all snapshots.</p>
      <p>Implementation challenges. Building a system like EGG is an ambitious goal
since we allow the user to specify very expressive constraints. This leads to some
interesting challenges that we brie y discuss next:</p>
      <p>Computational complexity. As illustrated earlier, we allow the user to specify
evolution constraints where the value of a property among consecutive
snapshots depends on another property. We model the inter-dependencies between
such evolving properties with a dependency graph. It is easy to see that if the
aforementioned dependency graph is cyclic, the generation algorithm may not
halt. Consequently, in our implementation we require that the dependency graph
is acyclic and we sort it topologically to decide in which order we should apply
the evolution constraints. Even for acyclic dependency graphs, we suspect that
it is NP-complete to decide whether there exists a sequence of graph snapshots
satisfying the input constraints. The exact complexity is an open question.</p>
      <p>
        Storage redundancy. A naive solution to store the generated evolving graphs
would be to entirely store each snapshot, which would yield a redundant storage
due to the graph parts that are static throughout the snapshots. To minimize
such redundancy, we rely on a storage format inspired by [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] that uses named
graphs to express temporal information in RDF. Our output format (that we
serialize using the TriG syntax2) allows us to decouple the storage of the static
parts of the graph (i.e., structural information satis ed in all snapshots) and the
evolving parts of the graph (i.e., the property values that change from a snapshot
to the next one). For example, we use named graphs of the form
ns1:G31 f&lt;hotel:27&gt; ns2:hasProperty &lt;Property:availableRooms&gt;.g
encoding that a node of type hotel has a property availableRooms. Moreover,
for each graph snapshot, we have a further named graph where each of the named
graphs of the form above has associated a value e.g., ns1:G31 ns3:value "57".
We provide examples of such TriG output on the GitHub page of EGG.
2 https://www.w3.org/TR/trig/
      </p>
    </sec>
    <sec id="sec-2">
      <title>3 Demonstration Scenarios</title>
      <p>
        During the demonstration, we will (i) introduce via examples the nely-tuned
temporal constraints that the user can specify in EGG, (ii) emphasize the
accuracy and scalability of EGG, and (iii) point out the ease of using EGG in
performance comparisons of evolving graph processing systems.
(i) Finely-tuned constraints by example. We will show to the attendees
how nely-tuned temporal constraints as those exempli ed in Section 2 can be
easily encoded in JSON as EGG input. In addition to our running example, we
will also rely on several EGG real-world use cases: a social network in the spirit
of the datasets used in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], a DBLP-like co-authorship graph, an online shop in
the spirit of WatDiv [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], and a university database in the spirit of LUBM [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. All
these use cases are also available online on the GitHub page of EGG.
(ii) Accuracy and scalability. For showing the
accuracy of EGG and its sensitivity to di erent
constraints, we will rely on the EGG visualization
module to illustrate that the generated graphs match the
input constraints. For example, we observe in Fig. 2
that the evolving properties satisfy the constraints
in Section 2, in particular the anti-correlation be- Fig. 2. Plots generated with
tween hotelPrice and availableRooms. As for EGG visualization module.
the scalability of EGG, the attendees will generate
graphs of increasing size or with an increasing number of snapshots, and observe
that EGG has a linear time behavior. Detailed accuracy and scalability plots are
available in the wikis of our GitHub page of EGG.
(iii) Impact on empirical evaluations. To emphasize the ease of realizing
empirical evaluations on top of EGG, we will present a performance comparison
of approaches for answering historical reachability queries [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], which ask whether
there exists a path between two nodes in a speci ed interval of time. The
attendees will generate evolving graphs with EGG and visualize the trade-o s between
an algorithm found in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] against a SPARQL implementation of our own on top
of Apache Jena. We provide in a wiki on our GitHub page of EGG more details
e.g., the data and queries to be used, and the types of generated plots.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>G.</given-names>
            <surname>Aluc</surname>
          </string-name>
          and et al.
          <article-title>Diversi ed stress testing of RDF data management systems</article-title>
          .
          <source>In ISWC</source>
          , pages
          <volume>197</volume>
          {
          <fpage>212</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>G.</given-names>
            <surname>Bagan</surname>
          </string-name>
          and et al. gMark:
          <article-title>Schema-driven generation of graphs and queries</article-title>
          .
          <source>IEEE TKDE</source>
          ,
          <volume>29</volume>
          (
          <issue>4</issue>
          ):
          <volume>856</volume>
          {
          <fpage>869</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Guo</surname>
          </string-name>
          and et al.
          <article-title>LUBM: A benchmark for OWL knowledge base systems</article-title>
          .
          <source>J. Web Sem</source>
          .,
          <volume>3</volume>
          (
          <issue>2</issue>
          -3):
          <volume>158</volume>
          {
          <fpage>182</fpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>M.</given-names>
            <surname>Meimaris</surname>
          </string-name>
          and
          <string-name>
            <surname>G. Papastefanatos.</surname>
          </string-name>
          <article-title>The EvoGen benchmark suite for evolving RDF data</article-title>
          . In MEPDaW/LDQ@ESWC, pages
          <volume>20</volume>
          {
          <fpage>35</fpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>K.</given-names>
            <surname>Semertzidis</surname>
          </string-name>
          and et al.
          <article-title>TimeReach: Historical reachability queries on evolving graphs</article-title>
          .
          <source>In EDBT</source>
          , pages
          <volume>121</volume>
          {
          <fpage>132</fpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>J.</given-names>
            <surname>Tappolet</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Bernstein</surname>
          </string-name>
          .
          <article-title>Applied temporal RDF: e cient temporal querying of RDF data with SPARQL</article-title>
          .
          <source>In ESWC</source>
          , pages
          <volume>308</volume>
          {
          <fpage>322</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>