Date post: | 15-Apr-2017 |
Category: |
Technology |
Upload: | mate-thurzo |
View: | 62 times |
Download: | 2 times |
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