<!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>Efficient and Scalable Aggregate Computation on Temporal Graphs</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Vincent Le Claire supervised by Prof. Dr. Peter Fischer University of Augsburg Augsburg</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Many applications such as social networks generate big volumes of graph data that has additional temporal information or changes rapidly, which has lead to a signi cant amount of research on temporal graphs. Existing and ongoing work on temporal graphs has focused on path problems and graph databases in general. Aggregations, which are very common for relational data, are just as insightful for temporal graph data, but need to be computed e ciently and scalable. To aggreagte e ciently, useful operations on graphs need to be selected, the composition of aggregation functions needs to be investigated, and the distribution of the calculation must be studied. After tackling the research question with the simplifying assumption of static communities (which are highly coupled nodes), then the parallelization of the problem is investigated, and nally, the simplifying assumption is removed for the general case of dynamic communities. As aggregations play an important role in (temporal) relational data, this direction of research might establish them in temporal graphs just as well.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>Much data in the real world can naturally be expressed
as a graph. For example, in a social network, graph nodes
can represent people, and graph edges then represent that
two people are friends in this social network. As another
example, consider a tra c network that consists of streets
that are interconnected by crossways. Many of these graphs
are not static but change constantly. Social networks, as
they are intended for interaction, are obviously dynamic.
Likewise, tra c networks are not static as temporary road
works or other means of blocked roads are sources of change.
For temporal graphs (aka dynamic graphs), the wide range
of use cases results in a plethora of di erent de nitions and
algorithms, as no common view or formalization has { so
far { been achieved. One important aspect of (not only
temporal) graph data is the aggregation of many values to
Proceedings of the VLDB 2020 PhD Workshop, August 31st, 2020. Tokyo,
Japan. Copyright (C) 2020 for this paper by its authors. Copying permitted
for private and academic purposes.
a smaller set of meaningful metrics, as often seen in, e.g.,
business intelligence.</p>
      <p>In the context of aggregates in temporal graphs, consider
the following example: In a social network, users can be
grouped into several communities that have stronger bounds
inside than to the outside. A query for this use case might
be: \For the most connected member of each community,
how much did the number of friends change over the progress
of every calendar week of last year?" That query has
several complementary aspects: (a) It accesses the graph in
substructures of varying amount (nodes, neighbours,
communities), which resembles (but exceeds) the grouping of
relational aggregations. (b) It has a temporal aspect of varying
granularity ( rst, the number of friends is calculated for each
week; second, only the data of the last year is examined). (c)
It uses di erent aggregation functions (here: sum, argmax).
(d) It re-uses an aggregation (the sum of the friends has to
be calculated for every node because it is needed to nd the
most connected member in a rst step).
1.1</p>
    </sec>
    <sec id="sec-2">
      <title>Motivation</title>
      <p>The core of this research proposal is to investigate
aggregates on temporal graphs rather than arbitrary temporal
graph algorithms. There are several reasons for this focus:
There are many use cases of aggregations, among them,
for example, weekly analytics of air tra c connections,
or averaging the number of contacts between people
during a global outbreak of a disease. Furthermore,
many use cases of relational temporal aggregates are
applicable for graphs, too. The importance of
aggregates on temporal graph data is also recognized by
their use in benchmarks: The LDBC Social Network
Benchmark uses a temporal graph for its data, and its
business intelligence workload sports several temporal
graph data aggregations.</p>
      <p>For several temporal graph problems, there exist
efcient, often parallel and/or incremental algorithms.
Yet, these algorithms tend to make speci c
assumptions on the data model and the workload; when the
uses cases are more general or di er slightly in their
assumptions, the scalability su ers. Considering the
more limited scope, temporal aggregates over graphs
are likely to provide more room for optimization and
less sensitivity to workload and data model changes {
we will outline this reasoning later in this paper.
Despite all the points outlined above, aggregates over
temporal graphs have not been a major research
direction so far. This is in stark contrast to classical graph
problems such as shortest path or adapting existing
workloads on temporal data using snapshots.</p>
    </sec>
    <sec id="sec-3">
      <title>PREVIOUS WORK</title>
    </sec>
    <sec id="sec-4">
      <title>Use Cases of Temporal Graphs</title>
      <p>
        One of the rst examples of using temporal graphs is
an article by Cervoni et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. The authors use temporal
graphs for the calculation of temporal constraints.
      </p>
      <p>
        Use cases of temporal graph metrics have been mentioned
by Tang et al. [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. Nicosia et al. [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] describe some metrics
and di erences to their static graph counterparts.
      </p>
      <p>
        Holme and Saramaki [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] review many use cases for
temporal networks and describe the di erent modeling of them.
      </p>
      <p>
        There are examples of the usage of temporal graphs in
medicine: Wainer and Sandri [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] use them for medicial
diagnostics. Liu et al. [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] model medical events of a single
patient and their relationship using temporal graphs.
      </p>
      <p>
        For visualizing scienti c publications and their
interrelations, Erten et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] use temporal graphs.
      </p>
      <p>The wide range of uses of temporal graphs (along with our
motivating example) reassures us that the addition of
temporal information to graphs is sensible and not an academic
niche.
2.2</p>
    </sec>
    <sec id="sec-5">
      <title>Temporal Databases and Aggregates</title>
      <p>
        The research on temporal aggregation dates back to the
1990s, co-occuring to the seminal work on temporal
databases. One of the rst publications regarding temporal
aggregation (on relational databases) is by Snodgrass et al. [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ],
which is a direct result of their introduction of TSQL2.
TSQL2 added temporal semantics on top of the SQL
standard, which has become mostly obsolete by the inclusion
of temporal semantics into SQL:2011. Following, Kline and
Snodgrass further evaluate the calcuation of temporal
aggregates in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. Zhang et al. [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] appended ranges to the
temporal aggregates.
      </p>
      <p>
        Bohlen et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] focus on multi-dimensional temporal
aggregates. They distinguish between two (or more) time
dimensions: one or more application times, which describe at
which time a tuple is valid, and a system time, which de nes
the time where the database system is aware of the tuple.
Cheng [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] describes the aggregation of null-time intervals.
      </p>
      <p>
        In 2013, Kaufmann et al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] introduce the Timeline
Index, which is a main-memory structure that e ciently
supports temporal aggregations on system time and other
temporal operations in a relational database. Ideas of the
Timeline Index will play an important role in our rst step of
research, as we will show in Section 4. Other work mentioned
in this section lays the foundation to understand what
temporal aggregations are and what expressive power they have.
2.3
      </p>
    </sec>
    <sec id="sec-6">
      <title>Processing Systems and Databases</title>
      <p>For our purposes, managing large-scale evolving graphs
relates to both graph databases and processing systems:</p>
      <p>
        Fernandes and Bernardino [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] compare several graph
database systems. The most popular among them is Neo4j [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
TGraph [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] is an ACID-compliant extension of Neo4j for
temporal range queries. TGraph assumes that the graph
structure changes rarely, while attributes of nodes and edges
2.1
change over time. A custom data structure called DPS
(Dynamic Property Storage) handles the dynamic attributes of
nodes and edges, while the graph itself and the static
attributes of the nodes and edges are kept in the existing Neo4j
format.
      </p>
      <p>
        Google's Pregel [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] is an early example of a graph
processing system, introduced in 2010. It is a distributed
system for big graphs providing a very ne-grained
concurrency model; like MapReduce [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], it relies on synchronization
rounds (BSP). GraphLab [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] positions itself in the machine
learning domain, it thus investigates relaxed coordination
models. Kineograph [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] is a distributed graph system for
dynamic (that means, frequently changing) graphs. It stores
its graph as snapshots for di erent points in time.
Similarly, GraphTau [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] is distributed and stores snapshots; it
builds upon Apache Spark. GraphChi [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] focuses on
diskbased evolving graphs. A recent general-purposes system to
analyze huge temporal graphs is Gradoop [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>Generally speaking, graph databases tend to be limited
in scalability for analytical temporal workloads, while the
broad support for temporal graph operations in processing
system makes it hard to devise optimization speci c to
aggregations.
2.4</p>
    </sec>
    <sec id="sec-7">
      <title>Incremental Aggregate Maintenance</title>
      <p>E cient computation of graph aggregates may draw
heavily from existing work on incremental aggregate
computation, notably from (a) incremental view maintenance and
(b) incremental computation of streaming aggregates.</p>
      <p>
        Materialized views are well established in relational
databases; Halevy [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] gives an extensive overview of how they
are used to answer queries. Materialized views contain the
result of a query, which can be, for example, an aggregation.
When the underlying data changes, the materialized view
is updated. Many approaches exist to perform this in an
incremental manner. There is an additional interesting line
of work that is helpful for our problem setting: Answering
queries with views and thus view containment could provide
valuable insights on stacking distinct aggregates { which is
clearly harder than, for example, a cube operator with the
same aggregation function.
      </p>
      <p>
        Tangwongsan et al. [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] provide a comprehensive solution
on sliding-window aggregations. For in-order arrival/expiry
of the data they achieve O(1), while for out-of-order expiry
they still achieve O(1) in the best case (which is in-order)
and up to O(log n) in total out-of-order execution. The
latter model matches well with arbitrary lifetime intervals of
temporal data.
3.
      </p>
    </sec>
    <sec id="sec-8">
      <title>PROBLEM DEFINITION</title>
      <p>The problem we are thus trying to tackle in our work is to
e ciently compute (combinations of) aggregate values over
(possibly changing) substructures of highly dynamic, huge
graphs.</p>
      <p>The implications of this problem statement can further be
broken down along the following dimensions:
1. Graph properties to aggregate: Compared to
relational or streaming/ordered models, graphs allow for
an additional range of (possibly very costly and
hardto-optimize) operations such as reachability or shortest
paths. These may serve as an input to the aggregate
metrics (such as betweenness centrality), yet the e ort
to compute them may outstrip the cost of the
aggregations.</p>
      <p>It is therefore an important tradeo to consider how
rich the support for such operations needs to be. Our
current take is to allow limited neighborhood access
but not arbitrary reach/iteration.
2. Hierarchical composition of distinct aggregate
functions: While a signi cant body of works exists on
re ning/combining values over the same aggregation
function (like drill-down or roll-up data cubes), using
several distinct aggregation functions \on top" of each
other (e.g. maximum on top of sum in the example)
is not as well studied for e ective evaluation.
3. Several dimensions of varying granularity
(a) Time: As already observed, temporal aggregates
may cover varying degrees of time (points,
disjoint/overlapping intervals). In aggregation
hierarchies, the granularities may necessarily have a
containment relationship (e.g. weeks and months).
(b) Graph structure: While relational data is
typically \grouped" over an attribute or
combinations of attributes (which often have an obvious
containment relationship), graphs provide a wider
range of options, covering individual nodes,
neighborhoods, communities, connected components or
the entire graph. Determining these \groups"
may itself be a complex and expensive operation.
Furthermore, on temporal data the membership
of sets of lower-level groups may change over time,
such as nodes changing their community, making
partial computation harder to maintain.
4. Distributed computation: The expected problem
size makes single-thread, main-memory approaches as
well as full recomputation on change not very
appealing. While these aspects are fairly well-understood
for relational streaming and ongoing work exist for
static graphs, research for partitioning and distributed
state management of dynamic graphs is still in its early
stages.</p>
      <p>
        To narrow the problem de nition, we assume a changing
graph whose nodes and edges may have additional
properties assinged that may also change over time, similar to the
approach Huang et al. have for TGraph [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. To give more
expressive power, we assume an interval time model instead
of only allowing points in time for queries. At this time, we
do not assume a graph with directed nor undirected edges.
      </p>
    </sec>
    <sec id="sec-9">
      <title>RESEARCH PLAN</title>
      <p>
        An interesting foundation for this type of research is the
Timeline Index approach of Kaufmann et al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. It
expresses the (relational) temporal data as a changelog of
activated/deactived data points. Validity information snapshots
reduce the space to be processed and allow for archival or
distribution. Due to these design choices and also due to
the optimization for main memory, it provides an e cient
underpinning for incremental aggregations.
      </p>
      <p>Temporal graphs can clearly also be expressed as a (set)
of changelog(s) of nodes, edges and properties. Dealing with
the underlying structure of a graphs is one of the most
interesting challenges when adapting Timeline, as it a ects
the scope of aggregations (e.g. over nodes or communities)
as well as the means of partitioning the graph for parallel
execution. To make this challenge more tractable, we rst
keep the aggregation scopes static and drop this
requirement in our last step. Additionally, we consider also
materializing (partial) aggregate values to speed up aggregate
computation over time, graph structure and aggregate
function composition. In turn, this also introduces an additional
partitioning problem.
4.1</p>
    </sec>
    <sec id="sec-10">
      <title>Interfacing with Graph Computations</title>
      <p>As a rst step, we are investigating how to best express
the usage of graph properties required for the metric
computation. The goal is to de ne a suitable subset of graph
operations that can be computed in an incremental manner
over temporal data and can therefore \drive" an e cient
temporal aggregation process. While some operations are
obviously both useful for metrics and easy to derive (such
property values on a single node or edge) and others are
useful, but extremely hard to compute incrementally (general
temporal paths), the space in between is not well-charted.
We plan to investigate a broad range of metrics from use
cases in order to further understand the requirements. The
results will allow use to also adapt the design of the graph
data storage and programming interface.
4.2</p>
    </sec>
    <sec id="sec-11">
      <title>Composition of Aggregates</title>
      <p>
        A second, but orthogonal problem is the combination of
multiple aggregations into a hierarchy. While a wide range
of single-level aggregations may be supported for
incremental computation by applying ideas of, e.g., Tangwongsan et
al. [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] (maybe with extensions for update sets), re-using
partial results over a DAG of distinct aggregation functions
clearly raises its own set of challenges. We plan to
investigate expression or view containment approaches to
consider both dependencies among aggregation functions and
the varying granularities of time and graph structure,
possibly deriving \core" aggregation parts in lower levels that
can be shared for multiple aggregates or combined among
these dimensions. Furthermore, deciding on when and what
to materialize will be further area of investigation.
4.3
      </p>
    </sec>
    <sec id="sec-12">
      <title>Parallelization</title>
      <p>In order to achieve a signi cant amount of scalability, the
computations need to be parallelized.</p>
      <p>We see two main directions: (a) Partitioning (social) graph
data in order to both maximize parallel computation and
minimize communication is an ongoing challenge in the
research community, e.g., due to skewed distribution of the
data. We expect that some parts of the changelog, the
snapshots, and the partial aggregates may just cover a small
subset of highly active and highly connected nodes, while other
parts may cover larger sets of lower activity. We also may
have to investigate possible \cuts" within graph structures
such as communities or even nodes, so partial aggregates
can be computed with more parallelism.</p>
      <p>
        (b) In contrast to general graph computations, many
aggregate functions do not require strict consistency rules in
order to produce correct results, similar to what CRDTs [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]
can achieve in eventual consistency environements. The
temporal validity information provided with the data
elements facilitates the reconciliation of di erent \episodes"
and may further be used to derive the synchronization
boundaries as only changes in the data require actual coordination.
4.4
      </p>
    </sec>
    <sec id="sec-13">
      <title>Dynamic Communities</title>
      <p>
        In our last step, we drop the assumption of static graph
structures, so that the graph structures we aggregate over
also change over time; hence, nodes and edges may migrate
between substructures. This has two major consequences:
(a) Determining communities is by itself an expensive
operation, even on non-temporal graphs, typically scaling much
faster than the number of edges. We already begun
investigating some light-weight methods on the basis of Brandes et
al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] that promise to allow for incremental community
detection and evolution. (b) Sharing partial changelogs,
snapshots or aggregates becomes more challenging when their
membership or association to bigger structures changes. We
plan to investigate methods for more ne-grained
partitioning or association-strength partitioning strategies to
minimize the number of large-scale recomputation.
      </p>
    </sec>
    <sec id="sec-14">
      <title>CONCLUSIONS</title>
      <p>Aggregations have important applications for relational
data, and they are used frequently. Likewise, there are many
use cases for aggregations of temporal graph data. There is
a broad foundation of graph databases and research of other
important temporal graph problems. Also, there are
similarities in the challenges of computation of streaming data
and the maintenance of materialized views, for example.</p>
      <p>The research problem is four-fold: Graphs have di
erent (sometimes very costly) operations; it is necessary to
nd a set of operations that is both e cient and expressive.
Secondly, because some aggregations can be composed into
others, it is wise to study how this can be done e ciently.
Thirdly, the time dimension and the graph structure give
granularity. Lastly, the problem should be solved
distributive.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <fpage>Neo4j</fpage>
          . https://neo4j.com.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Bo</surname>
          </string-name>
          <article-title>hlen et al. Multi-dimensional aggregation for temporal data</article-title>
          .
          <source>In EDBT</source>
          , pages
          <volume>257</volume>
          {
          <fpage>275</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>U.</given-names>
            <surname>Brandes</surname>
          </string-name>
          et al.
          <article-title>On modularity clustering</article-title>
          .
          <source>TKDE</source>
          <year>2007</year>
          ,
          <volume>20</volume>
          (
          <issue>2</issue>
          ):
          <volume>172</volume>
          {
          <fpage>188</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>R.</given-names>
            <surname>Cervoni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cesta</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Oddi</surname>
          </string-name>
          .
          <article-title>Managing dynamic temporal constraint networks</article-title>
          .
          <source>In AIPS</source>
          , pages
          <volume>13</volume>
          {
          <fpage>18</fpage>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>K.</given-names>
            <surname>Cheng</surname>
          </string-name>
          .
          <article-title>On computing temporal aggregates over null time intervals</article-title>
          . In D. Benslimane et al., editors,
          <source>DEXA</source>
          , pages
          <volume>67</volume>
          {
          <fpage>79</fpage>
          ,
          <string-name>
            <surname>Cham</surname>
          </string-name>
          ,
          <year>2017</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>R.</given-names>
            <surname>Cheng</surname>
          </string-name>
          et al.
          <article-title>Kineograph: taking the pulse of a fast-changing and connected world</article-title>
          .
          <source>In EuroSys 2012</source>
          , pages
          <fpage>85</fpage>
          {
          <fpage>98</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Dean</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghemawat</surname>
          </string-name>
          .
          <source>Mapreduce: simpli ed data processing on large clusters. CACM</source>
          ,
          <volume>51</volume>
          (
          <issue>1</issue>
          ):
          <volume>107</volume>
          {
          <fpage>113</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C.</given-names>
            <surname>Erten</surname>
          </string-name>
          et al.
          <article-title>Exploring the computing literature using temporal graph visualization</article-title>
          .
          <source>In Visualization and Data Analysis</source>
          <year>2004</year>
          , volume
          <volume>5295</volume>
          , pages
          <fpage>45</fpage>
          {
          <fpage>56</fpage>
          .
          <source>International Society for Optics and Photonics</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>D.</given-names>
            <surname>Fernandes</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Bernardino</surname>
          </string-name>
          .
          <article-title>Graph databases comparison: Allegrograph, arangodb, in nitegraph, neo4j, and orientdb</article-title>
          .
          <source>In DATA</source>
          , pages
          <volume>373</volume>
          {
          <fpage>380</fpage>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A. Y.</given-names>
            <surname>Halevy</surname>
          </string-name>
          .
          <article-title>Answering queries using views: A survey</article-title>
          .
          <source>The VLDB Journal</source>
          ,
          <volume>10</volume>
          (
          <issue>4</issue>
          ):
          <volume>270</volume>
          {
          <fpage>294</fpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>P.</given-names>
            <surname>Holme</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Sarama</surname>
          </string-name>
          <article-title>ki. Temporal networks</article-title>
          .
          <source>Physics reports</source>
          ,
          <volume>519</volume>
          (
          <issue>3</issue>
          ):
          <volume>97</volume>
          {
          <fpage>125</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>H.</given-names>
            <surname>Huang</surname>
          </string-name>
          et al.
          <article-title>Tgraph: A temporal graph data management system</article-title>
          .
          <source>In CIKM</source>
          , pages
          <volume>2469</volume>
          {
          <fpage>2472</fpage>
          . ACM,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A. P.</given-names>
            <surname>Iyer</surname>
          </string-name>
          et al.
          <article-title>Time-evolving graph processing at scale</article-title>
          .
          <source>In GRADES 2016</source>
          , pages
          <issue>1{6</issue>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>M.</given-names>
            <surname>Junghanns</surname>
          </string-name>
          et al.
          <article-title>Gradoop: Scalable graph data management and analytics with hadoop</article-title>
          .
          <source>arXiv preprint arXiv:1506.00548</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kaufmann</surname>
          </string-name>
          et al.
          <article-title>Timeline index: a uni ed data structure for processing queries on temporal data in sap hana</article-title>
          .
          <source>In SIGMOD</source>
          , pages
          <volume>1173</volume>
          {
          <fpage>1184</fpage>
          . ACM,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>N.</given-names>
            <surname>Kline</surname>
          </string-name>
          and
          <string-name>
            <given-names>R. T.</given-names>
            <surname>Snodgrass</surname>
          </string-name>
          .
          <article-title>Computing temporal aggregates</article-title>
          .
          <source>In ICDE</source>
          , pages
          <volume>222</volume>
          {
          <fpage>231</fpage>
          . IEEE,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A.</given-names>
            <surname>Kyrola</surname>
          </string-name>
          , G. Blelloch, and
          <string-name>
            <given-names>C.</given-names>
            <surname>Guestrin</surname>
          </string-name>
          . Graphchi:
          <article-title>Large-scale graph computation on just a PC</article-title>
          .
          <source>In OSDI 2012</source>
          , pages
          <fpage>31</fpage>
          {
          <fpage>46</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>C.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Xiong</surname>
          </string-name>
          .
          <article-title>Temporal phenotyping from longitudinal electronic health records: A graph based framework</article-title>
          .
          <source>In ACM SIGKDD</source>
          <year>2015</year>
          , pages
          <fpage>705</fpage>
          {
          <fpage>714</fpage>
          . ACM,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Low</surname>
          </string-name>
          et al.
          <article-title>Distributed graphlab: A framework for machine learning in the cloud</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>5</volume>
          (
          <issue>8</issue>
          ):
          <volume>716</volume>
          {
          <fpage>727</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>G.</given-names>
            <surname>Malewicz</surname>
          </string-name>
          et al.
          <article-title>Pregel: a system for large-scale graph processing</article-title>
          .
          <source>In SIGMOD</source>
          , pages
          <volume>135</volume>
          {
          <fpage>146</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>V.</given-names>
            <surname>Nicosia</surname>
          </string-name>
          et al.
          <article-title>Graph metrics for temporal networks</article-title>
          .
          <source>In Temporal networks</source>
          , pages
          <volume>15</volume>
          {
          <fpage>40</fpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>M.</given-names>
            <surname>Shapiro</surname>
          </string-name>
          et al.
          <article-title>Con ict-free replicated data types</article-title>
          .
          <source>In Stabilization, Safety, and Security of Distributed Systems</source>
          , pages
          <fpage>386</fpage>
          {
          <fpage>400</fpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>R. T.</given-names>
            <surname>Snodgrass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Gomez</surname>
          </string-name>
          , and
          <string-name>
            <surname>L. E. McKenzie.</surname>
          </string-name>
          <article-title>Aggregates in the temporal query language tquel</article-title>
          .
          <source>IEEE Transactions on Knowledge and Data Engineering</source>
          ,
          <volume>5</volume>
          (
          <issue>5</issue>
          ):
          <volume>826</volume>
          {
          <fpage>842</fpage>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>J.</given-names>
            <surname>Tang</surname>
          </string-name>
          et al.
          <article-title>Applications of temporal graph metrics to real-world networks</article-title>
          .
          <source>In Temporal Networks</source>
          , pages
          <volume>135</volume>
          {
          <fpage>159</fpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>K.</given-names>
            <surname>Tangwongsan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hirzel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Schneider</surname>
          </string-name>
          . Optimal and
          <article-title>general out-of-order sliding-window aggregation</article-title>
          .
          <source>Proceedings of the VLDB Endowment</source>
          ,
          <volume>12</volume>
          (
          <issue>10</issue>
          ):
          <volume>1167</volume>
          {
          <fpage>1180</fpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>J.</given-names>
            <surname>Wainer</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Sandri</surname>
          </string-name>
          .
          <article-title>Fuzzy temporal/categorical information in diagnosis</article-title>
          .
          <source>Journal of Intelligent Information Systems</source>
          ,
          <volume>13</volume>
          (
          <issue>1-2</issue>
          ):9{
          <fpage>26</fpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>D.</given-names>
            <surname>Zhang</surname>
          </string-name>
          et al.
          <article-title>E cient computation of temporal aggregates with range predicates</article-title>
          .
          <source>In PODS 2001</source>
          , pages
          <fpage>237</fpage>
          {
          <fpage>245</fpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>