Visualizing a complex graph is a task of graph simplification and providing well-thought visual cues, the best UI goes unnoticed. This talk will summarize current approaches and present a novel user interaction pattern, which takes advantage of a performant Neo4j graph engine.
About the speaker:
Jan Zak - Senior Consultant at GraphAware; Data visualizations, graphs, maps; Based in Prague, Czech Republic
3. ● not just lots of nodes, but also lots of node types with
different levels of importance
● challenges of full visualization
○ rendering performance, layout quality
○ too many different colors hurts
overview comprehensibility
Knowledge Graph
4. ● opposed to Search & Expand
● Ben Shneiderman: The Eyes Have It: A Task by Data
Type Taxonomy for Information Visualizations
○ Visual Information-Seeking Mantra: Overview first, zoom and filter, then
details-on-demand
overview detail
Overview & Detail-on-demand
5. ● maps are graphs
○ real objects as nodes
○ neighbourhood connections as edges
● Overview & Detail-on-demand
○ configurable zoom level to display each object type
● yet, generic graphs are more complex
○ nodes position in visualization is not known before, must be computed by
layout algorithm
○ nodes can be connected to any other nodes
in the graph (possibly leading to supernodes)
Analogy – Vector maps
7. ● allows to create and return a virtual edge between any
two nodes
CALL apoc.create.vRelationship(n, 'TO', {}, m)
APOC Virtual Edges
8. ● all paths between a set of nodes
MATCH (n:Outer) WITH collect(n) AS nodes
CALL apoc.path.expandConfig(nodes, {
terminatorNodes: nodes, maxLevel: 10
}) YIELD path AS p
RETURN p
● before APOC Fall Release 3.5.0.5
○ terminatorNodes + filterStartNode=false (default) was filtering out the
terminator nodes
○ https://github.com/neo4j-contrib/neo4j-apoc-procedures/pull/1290
MATCH (n:Outer) WITH collect(n) AS nodes
UNWIND nodes AS n
WITH n, [m IN nodes WHERE n <> m] AS terminatorNodes
CALL apoc.path.expandConfig(n, {
terminatorNodes: terminatorNodes, maxLevel: 10
}) YIELD path AS p
RETURN p
APOC Path Expanders
9. 1. Easy: Full render of huge graphs is not useful, because:
A. technological limitation, slow rendering and layout performance
B. comprehensibility limitation, too complex to extract insights from it
C. both
2. Medium: How many max colors is recommended for a
categorical measure?
A. less than 10
B. less than 20
C. no limit
3. Hard: What’s the change in APOC Fall Release 3.5.0.5 in
behavior of Path Expander?
A. filterStartNode=false doesn’t filter terminationNodes anymore
B. beginSequenceAtStart=false doesn’t filter terminationNodes anymore
C. both
Answer here: r.neo4j.com/hunger-games
Hunger Games Questions
for “Challenges in knowledge graph visualization”