Using a graph database for analyzing your Liferay data

Post on 15-Apr-2017

61 views 2 download

Transcript of Using a graph database for analyzing your Liferay data

Amazing Title Goes HereAwesome Subtitle

Name NameTitle Title Title Title Title

Using a graph database for analyzing your Liferay data

Máté Thurzó @matethurzoStaging Lead, Senior Software Engineer

Budapest

What is graph?

G=(V,E)

Undirected

Directed

Bi-directed

Mixed

Cyclical

Acyclical

Multigraph

Simple graph

Complete graph

Why graphs

Internet and networks

Human relationships

Staging Human body

It’s a graph!

Graphs are fun

Graphs are easy to work with

DEMOneo4j org structure

Graphs are whiteboardfriendly

Graphsalgorithms/performance

Loading dataNEO4J STORED PROCEDURE

LOADING DATABACKGROUND TASK EXECUTOR

Liferay neo4jdriver

Who does Jorge manage?

Who ARE THE CONTENT CREATORS?

Who hasn’t createdany content?

Who to follow?

How far are they arefrom me?

× Discovering relationships, behavior, interests

× Providing suggestions on products

staging? Again?

1.Advanced publication tool

Content can be assembled and reviewed on a staging site and can

be published to live

A staging publication processreplicates data between sites and performs extra operations – such asvalidation

2. replication

Image

Web Content

Blogs

EntityStaging is operating on a graph of entities, discovering and processingthe relationships between them

wysiwyg behavior

In order to ensure a smooth experience wemight need to pullother contents too

reference validation

Certain business rulesneeds to be validatedand reported back

no graph stored

There is no information beforethe execution of thegraph

graph maintenance

On edit approach vsprocessing every time

XML format

Performance considerations –especially on thememory side

graph not homogenous

The graph vertices are not thesame – graph operations notpossible

static calling

Pre-defined entry pointscombined with a staticcontrolling setup

Image

Content

Blog

Image2

Folder Content2

Science kicks in – Enter graph theory

Topologicalsorting– coffman

graham

Image

Content

Blog

Image2

Folder Content2

Image

Content Blog

Image2 Folder

Content2

Image2

ContentBlog

Image Folder

Content2

DirectedDirection is important to tellwhat comes after what –This is defined in the business logic

GraphDuh!

AcyclicalIn a cycle everything

has a predecessor and a successor

Clean bathroom

Sweep floors Wash windows

Armond $2 $3 $3

Francine $3 $2 $3

Herbert $3 $3 $2

Armond – Clean bathroomFrancine – Sweep floorsHerbert – Wash windows

Name/Task Writing a unit test

Implement a new staging data handler

Fix a bug in a BackgroundTaskExecutor

Mária f(x) f(x) f(x)

Dániel f(x) f(x) f(x)

Ákos f(x) f(x) f(x)

Graph creation

Graph searching

× Path finding× Artifical intelligence

× Not using Neo4j× JGraphT library

× Finding insurance fraudulantactivity

× Risk assessement

× News site – content with linksto other content

× Panama papers

Structural analysis

× Parkinson’s disease× Protein struture prediction

× Cancer research

László babaiuniversity of chicagograph isomorphism can be solved in quasipolinomial time

× Static code analysis – Codecheck, Liferay Source Formatter

× Abstract Syntax Tree (AST)× Abstract Semantic Graph (ASG)

Predicting the future

× Probability distribution over graphs× Complex network modeling

× Erdos-Rényi model

Pál erdos

× Statistics gathering in a graphform and analysing theproduced result

It’s a graph!

Questions?

Gists

@matethurzo