Temporal Graph Analytics with GRADOOP Christopher Rost and Kevin Gomez Leipzig University
About the speakers and the team Kevin, Christopher, Prof. Dr. Erhard Rahm, PhD Student PhD Student Database Chair Timo, Lucas, M.Sc. Student B.Sc. Student
We’re hiring! CENTER FOR SCALABLE DATA ANALYTICS AND ARTIFICIAL INTELLIGENCE ● Visit us at www.scads.de ● Open positions and projects (Developer and PhD Students) ● Various topics: ● Machine Learning (Graph-ML, Privacy) ● Image Recognition ● Blockchain (Distributed-Ledger) ● Graph Analytics
Motivation
“Graphs are everywhere”
“Graphs are everywhere”
“Graphs are everywhere” Mike Raj Sheldon O f d n i e f r f r John i e n d f O d friendOf O n e f i r f Bob friendOf friendOf James Anna friendOf friendOf friendOf Dutch Chris friendOf friendOf Sally friendOf Arthur friendOf Jack
“Graphs are everywhere” Mike Raj Sheldon O f d e n r i f f r John i e n age:29 d f O d friendOf O sex: f n e f i r f yob: 1991 Bob friendOf friendOf James Anna friendOf friendOf friendOf Dutch Chris friendOf friendOf Sally friendOf Arthur friendOf Jack
“Graphs are everywhere” Mike Raj Sheldon O f d n i e f r f r John i e n age:29 d f O d friendOf O sex: f n e i f r f yob: 1991 Bob friendOf friendOf James Anna friendOf since: 5Y friendOf friendOf Dutch Chris friendOf friendOf Sally friendOf Arthur friendOf Jack
“A open-source framework and research platform for efficient , distributed and domain independent management and analytics of heterogeneous and temporal graph data.“
Architecture Java 8 G raph A nalytical L anguage (GrALa) 45k LOC TPGM EPGM ALv 2.0 Distributed Operator Implementation HDFS / YARN
Graphs and collections of graphs
Operators Operators Algorithms Binary Unary Logical Graph Frequent Subgraph Graph Collection
Temporal extension
Temporal extension
Temporal extension
Temporal extension
Time dependent operators Operators Algorithms Binary Unary Logical Graph Frequent Subgraph Graph Collection
Time dependent operators Operators Algorithms Binary Unary (Temp-)Logical Graph Frequent Subgraph (Temp-)Graph Collection
Use case: spread of airborne pathogens Accident Oncology Virus X Symptoms: 3 rd eye growing Transmission: if contact > 5 min Incubation period: 5 time units Surgery Cardiology In case of an infection, which hospital services are Contact tracking Sensors capturing who is close to whom at risk of contracting at what time. the virus X? {empID1, empID2, t_from, t_to} Images by Vecteezy.com.
TemporalGraph contacts = TemporalGraph contacts = mySource.getTemporalGraph(); mySource.getTemporalGraph(); t 0 t 1 t 5 ... t 10 t 15 t 20 time
contact [ t 2 ,t 6 ) Employee [-,-) id: 32432 srv: Oncology Employee [-,-) id: 99934 srv: Oncology t 0 t 1 t 5 ... t 10 t 15 t 20 time
Breaking news: Employee of oncology infected by VirusX. Detected at t 20 . t 0 t 1 t 5 ... t 10 t 15 t 20 time
Breaking news: Employee of oncology infected by VirusX. Detected at t 20 . Virus X Symptoms: 3 rd eye growing Transmission: if contact > 5 min Incubation period: 5 time units t 0 t 1 t 5 ... t 10 t 15 t 20 time
TemporalGraph contacts = TemporalGraph contacts = mySource.getTemporalGraph(); mySource.getTemporalGraph(); contacts = contacts.snapshot snapshot( contacts = contacts.snapshot snapshot( new FromTo(t15, t20)); new FromTo(t15, t20)); Virus X Symptoms: 3 rd eye growing Transmission: if contact > 5 min Incubation period: 5 time units t 0 t 1 t 5 ... t 10 t 15 t 20 time
TemporalGraph contacts = TemporalGraph contacts = mySource.getTemporalGraph(); mySource.getTemporalGraph(); contacts = contacts.snapshot snapshot( contacts = contacts.snapshot snapshot( new FromTo(t15, t20)); new FromTo(t15, t20)); Virus X Symptoms: 3 rd eye growing Transmission: if contact > 5 min Incubation period: 5 time units t 0 t 1 t 5 ... t 10 t 15 t 20 time
TemporalGraph contacts = TemporalGraph contacts = mySource.getTemporalGraph(); mySource.getTemporalGraph(); contacts = contacts.snapshot( contacts = contacts.snapshot( new FromTo(t15, t20)); new FromTo(t15, t20)); contacts = contacts.groupBy groupBy( contacts = contacts.groupBy groupBy( (v v[‘srv’]), � (v v[‘srv’]), � [], [], (e e.getLabel()), � (e e.getLabel()), � [new MaxDuration()]); [new MaxDuration()]); Virus X Symptoms: 3 rd eye growing Transmission: if contact > 5 min Incubation period: 5 time units t 0 t 1 t 5 ... t 10 t 15 t 20 time
TemporalGraph contacts = TemporalGraph contacts = mySource.getTemporalGraph(); contact mySource.getTemporalGraph(); maxDur: 124 min contact maxDur: 40 min contacts = contacts.snapshot( contacts = contacts.snapshot( new FromTo(t15, t20)); new FromTo(t15, t20)); contact maxDur: 9 min contacts = contacts.groupBy groupBy( contacts = contacts.groupBy groupBy( (v v[‘srv’]), � (v v[‘srv’]), � [], contact [], maxDur: 122 min (e e.getLabel()), � (e e.getLabel()), � [new MaxDuration()]); contact [new MaxDuration()]); maxDur: 2 min contact maxDur: 146 min Virus X Symptoms: 3 rd eye growing Transmission: if contact > 5 min Incubation period: 5 time units t 0 t 1 t 5 ... t 10 t 15 t 20 time
TemporalGraph contacts = TemporalGraph contacts = mySource.getTemporalGraph(); contact mySource.getTemporalGraph(); maxDur: 124 min contact maxDur: 40 min contacts = contacts.snapshot( contacts = contacts.snapshot( new FromTo(t15, t20)); new FromTo(t15, t20)); contact maxDur: 9 min contacts = contacts.groupBy groupBy( contacts = contacts.groupBy groupBy( (v v[‘srv’]), � (v v[‘srv’]), � [], contact [], maxDur: 122 min (e e.getLabel()), � (e e.getLabel()), � [new MaxDuration()]); contact [new MaxDuration()]); maxDur: 2 min contact maxDur: 146 min Virus X Symptoms: 3 rd eye growing Transmission: if contact > 5 min Incubation period: 5 time units t 0 t 1 t 5 ... t 10 t 15 t 20 time
TemporalGraph contacts = TemporalGraph contacts = mySource.getTemporalGraph(); contact mySource.getTemporalGraph(); maxDur: 124 min contact maxDur: 40 min contacts = contacts.snapshot( contacts = contacts.snapshot( new FromTo(t15, t20)); new FromTo(t15, t20)); contact maxDur: 9 min contacts = contacts.groupBy groupBy( contacts = contacts.groupBy groupBy( (v v[‘srv’]), � (v v[‘srv’]), � [], contact [], maxDur: 122 min (e e.getLabel()), � (e e.getLabel()), � contact [new MaxDuration()]); [new MaxDuration()]); maxDur: 2 min Breaking news: contact maxDur: 146 min Employees of oncology and surgery quarantined because of VirusX. t 0 t 1 t 5 ... t 10 t 15 t 20 time
Conclusion ● Distributed graph analysis system ● Temporal property graph model – Bitemporal support – Logical graphs and graph collections – Composing operators and algorithms ● Declarative workflow creation ● Visit Gradoop: http://gradoop.com ● Read our Wiki: https://github.com/dbs-leipzig/gradoop/wiki ● Start: https://github.com/dbs-leipzig/gradoop/wiki/Getting-started ● Try the examples: https://github.com/dbs-leipzig/gradoop/wiki/Examples
Recommend
More recommend