48. About APOC
• Large standard library of utility
functions and procedures
• Actively developed - many contributors
• "scratch your itch"
• Makes Cypher easier to use
• Enable some specific use-cases
• Plan is it migrate some of the functionality
into the Neo4j product
79. 1) GraphQL is an API query language, not a database query
language.
2) Limited expressivity (no projections, no aggregations, etc).
3) While GraphQL exposes your application data as a graph, it’s
not (just) for graph databases
What is GraphQL?
@lyonwj
80. ● Overfetching
○ Less data over the wire
● Underfetching
○ Single round trip
● GraphQL Specification
● “Graphs All The Way Down”
○ Relationships vs Resources
○ Unify disparate systems (microservices)
● Simplify data fetching
○ Component based data interactions
GraphQL Advantages
@lyonwj
81. ● Some well understood practices from
REST don’t apply
○ HTTP status codes
○ Errors
○ Caching
● Exposing arbitrary complexity to client
○ Performance considerations
● n+1 query problem
● Query costing / rate limiting
GraphQL Challenges
@lyonwj
106. ● GraphQL First Development
○ GraphQL schema drives the database data model
● Generate Cypher from GraphQL
○ Single query / single round trip to database
● Generate GraphQL CRUD API from type definitions
● Auto-generated resolvers (no boilerplate!)
● Extend GraphQL functionality with Cypher
○ @cypher schema directive
Goals for Neo4j-GraphQL Integration
@lyonwj
108. Auto-generate GraphQL CRUD API
@lyonwj
Query & Mutation types
○ Entry point for each type
Ordering
Pagination
Complex Filter
DateTime types
https://blog.grandstack.io/complex-graphql-filtering-with-neo4j-graphql-js-aef19ad06c3e
141. Graph Algorithm Categories in Neo4j
neo4j.com/
graph-algorithms-
book/
Pathfinding
& Search
Centrality /
Importance
Community
Detection
Link
Prediction
Finds optimal paths
or evaluates route
availability and quality
Determines the
importance of distinct
nodes in the network
Detects group
clustering or partition
options
Evaluates how
alike nodes are
Estimates the likelihood
of nodes forming a
future relationship
Similarity
142. Graph Algorithms in Neo4j
• Parallel Breadth First Search &
DFS
• Shortest Path
• Single-Source Shortest Path
• All Pairs Shortest Path
• Minimum Spanning Tree
• A* Shortest Path
• Yen’s K Shortest Path
• K-Spanning Tree (MST)
• Random Walk
• Degree Centrality
• Closeness Centrality
• CC Variations: Harmonic, Dangalchev,
Wasserman & Faust
• Betweenness Centrality
• Approximate Betweenness Centrality
• PageRank
• Personalized PageRank
• ArticleRank
• Eigenvector Centrality
• Triangle Count
• Clustering Coefficients
• Connected Components (Union Find)
• Strongly Connected Components
• Label Propagation
• Louvain Modularity – 1 Step &
Multi-Step
• Balanced Triad (identification)
• Euclidean Distance
• Cosine Similarity
• Jaccard Similarity
• Overlap Similarity
• Pearson Similarity
Pathfinding
& Search
Centrality /
Importance
Community
Detection
Similarity
Updated June 2019
Link
Prediction
• Adamic Adar
• Common Neighbors
• Preferential Attachment
• Resource Allocations
• Same Community
• Total Neighbors
+35