This document provides an overview and roadmap of Neo4j product updates. It discusses the property graph model used by Neo4j and the Cypher query language. It summarizes new capabilities in Neo4j 5 such as graph schema, improved graph pattern matching, and parallel query processing. The document also mentions upcoming features like auto-sharding and integrations with Google Dataflow. Finally, it briefly introduces new graph algorithms for edge embeddings, longest path, and topological sorting.
1. Neo4j Inc. All rights reserved 2023
Roadmap y Novedades de
producto
Jesús Barrasa
Head of Solutions Architecture EMEA
1
2. Neo4j Inc. All rights reserved 2023 2
…conectando con la intro de Ivan
3. Neo4j Inc. All rights reserved 2023
The Property Graph Model
3
Employee City
Company
Nodes represent
objects (nouns)
Relationships are directional
Relationships connect nodes are
represent actions (verbs)
Relationships can have properties
(name/value pairs)
Nodes can have
properties (name/value
pairs)
name: Emil Eifrem
date_of_birth: 1979-03-01
employee_ID: 1
:HAS_CEO
start_date: 2008-01-20
:LOCATED_IN
4. Neo4j Inc. All rights reserved 2023
Cypher (GQL): Pattern Based
4
MATCH (p:Employee {employee_ID: 1})-[r:WORKS_AT*..3]-(c:Company)
RETURN c.name as company, count(*) as score
ORDER BY score DESC
Node
Pattern
Relationship
Pattern
5. Neo4j Inc. All rights reserved 2023
GQL Standard
5
Project agreed back in September 2019
First version of the full CRUD graph query
language in four-year window
39075 GQL submitted for a DIS (March 24)
Expected publication Q4 2023
Cypher includes GQL features since v.5
DIS = Draft International Standard = technically stable
IS = International Standard.
https://www.iso.org/standard/76120.html
6. Neo4j Inc. All rights reserved 2023
Neo4j for applications
6
const movies = await driver
.executeQuery(
'match (p:Employee)-[r:WORKS_AT*..3]-(c:Company) return c',{limit: 10})
.then((result) => { return result.records.map( (r) => r.get('c') ) })
.catch((error) => { console.error(error) })
7. Neo4j Inc. All rights reserved 2023
Neo4j for analytics
7
from graphdatascience import GraphDataScience
gds = GraphDataScience(DB_ULR, auth=(DB_USER, DB_PASS))
gds.louvain.write(G,writeProperty='community')
8. Neo4j Inc. All rights reserved 2023
Neo4j: Native graph architecture
8
Native Graph
Storage
Native Graph
Processing
Autonomous
Clustering
Composite
Databases
• No mismatch
• Data integrity / ACID
• Schema flexible
• 1000x faster than
relational
• K-Hop now 10-1000x faster
than version 4
• Elastic scale-out for
high throughput
• 100s of machines
across clusters
• Federation of scaled
out shards
• Instant composite
database
Data is connected
as it is stored
Lightning-fast retrieval of data and
relationships via pointer chasing
28. Edge embeddings
Find missing relationships
● Users generate edge embeddings
using DGL, PyKeen, or PyTorch
Geometric
● Bring them into Neo4j Graph Data
Science or AuraDS stored as a
property.
● Use similarity functions to identify
possible relationship candidates
and check node pairs.
● Create relationships
Help predict missing
relationships between entities
Infer new relationships
Improve semantic
understanding and reasoning
Neo4j Inc. All rights reserved 2023
28
How it Helps You
29. Longest Path Algo
Find the path of maximum
length between two nodes in
a directed acyclic graph
Neo4j Inc. All rights reserved 2023
30. Longest Path
Once a directed acyclic graph
is built, use either Graph Data
Science or the Python client to
call the Longest Path
Algorithm.
Find the path of maximum
length between two nodes in a
graph.
Help solve critical scheduling and
optimization problems by
understanding longest paths
How it Helps You
31. Topological Sort Algo
Sort nodes in a directed
acyclic graph by
traversing them in order
of dependency
Identify dependencies
Neo4j Inc. All rights reserved 2023
32. Identify
Dependencies
Once a directed acyclic graph
is built, use either Graph Data
Science or the Python client to
call the topological sort
algorithm.
Find dependencies in the
graph.
Ensure that dependent tasks are
performed in the correct order
How it Helps You