Awesome
Temporal Graph Explorer
Publication
Please refer to our recent publication when using the TGE in your work.
@inproceedings{DBLP:conf/edbt/RostGFTR21,
author = {Christopher Rost and
Kevin G{\'{o}}mez and
Philip Fritzsche and
Andreas Thor and
Erhard Rahm},
title = {Exploration and Analysis of Temporal Property Graphs},
booktitle = {{EDBT}},
pages = {682--685},
publisher = {OpenProceedings.org},
year = {2021}
}
Description
Temporal property graphs are an intuitive way to model, analyze and visualize complex and evolving relationships among heterogeneous data objects, for example, as they occur in social, biological and information networks. These graphs typically contain thousands or millions of vertices and edges and their entire representation can easily overwhelm an analyst.
GRADOOP is an open-source system for graph analytics that enables handling of such temporal graphs. GRADOOP and its graph model TPGM is implemented on top of Apache Flink, a state-of-the-art distributed dataflow framework, and thus allows us to scale graph analytical programs across multiple machines.
The Temporal Graph Explorer demonstrates three TPGM operators: Snapshot, Difference and Temporal Graph Grouping. A user can choose between different input graphs and adjust the operator parameters. The computation is executed on the user machine by automatically starting an Apache Flink cluster.
Snapshot
To enable temporal and evolutionary queries and analysis, one data management challenge for large
historical graphs is the retrieval of graph snapshots as of any time-point in the considered time
domain. To achieve this, we developed the snapshot operator that can be applied on
a temporal graph instance and allows to retrieve a valid state of
the graph either at a specific point in time, or a subgraph that is
valid during a time range. The user can configure the operator by
pre-defined time-dependent predicates such as asOf()
, overlaps()
or precedes()
. Furthermore, user-defined predicates, as well as
helper functions to extract certain time dimensions, can be used.
Difference
An important part of the analysis of graphs is the examination of changes that have occurred between two graph states. Changes, i.e. additions, deletions, and edits, represent the evolution of a temporal graph and can be selected or aggregated in subsequent analysis steps. Therefore, we demonstrate the difference operator that computes a graph between two graph snap- shots by determining the union and extending each element by a property that expresses the addition, deletion, or persistence of this element respectively. Both snapshots can be configured by using time-dependent predicate functions, as described before. In addition, the desired time-dimension can be selected.
Temporal Graph Grouping
One way to reduce complexity of a large temporal property graph is the grouping of vertices and edges to summary graphs. We developed an algorithm for graph grouping with support for attribute aggregation as well as structural and temporal summarization by pre-defined and user-defined grouping key functions. The operation is very similar to a GROUP BY operation known from relational databases but in addition summarizes the graph structure according to the computed vertex and edge groups.
Demo Instructions
- Clone the repo
$ mvn clean install
$ mvn exec:java -Dexec.mainClass="org.gradoop.demo.server.Server"
- Navigate to
http://localhost:2342/gradoop/html/snapshot.html
orhttp://localhost:2342/gradoop/html/difference.html
orhttp://localhost:2342/gradoop/html/keyedgrouping.html
- Select data set from drop down list
- Enjoy
Add new graphs
- Create a temporal CSV graph using Gradoop (see Gradoop Examples)
- Copy CSV graph to
src/main/resources/data
- Add it to the input graph drop-down of the html files
- Restart the server
Further reading
- Exploration and Analysis of Temporal Property Graphs
- Evolution Analysis of Large Graphs with Gradoop, Workshop LEG@ECMLPKDD 2019, Sep. 2019
- Analyzing Temporal Graphs with Gradoop, Datenbank Spektrum 19(3), Nov. 2019
- Gradoop Wiki
- Gradoop Source Code
- Gradoop Project Page, University of Leipzig
This is an extension of the Gradoop Demo.
Disclaimer
Apache®, Apache Flink and Flink® are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.