SlideShare a Scribd company logo
1 of 26
GRAPHGENGraphDB Prototyping made easy
#FOSDEM
31-01-2015
graphgen.neoxygen.io
#whoami
Christophe Willemsen
Software Engineer
Neo4j Consultant
@graph_aware
graphaware.com
WHY GRAPHGEN ?
QUICK OVERVIEW ABOUT THE NEO4J NATIVE TOOLS
TO BUILD A GRAPH
BY HAND
CREATE (n:Person {firstname: ‘Roger’, lastname:’Laguadec’})
100X
For 100 nodes and you need to be really inventive
for the node properties
A LOOP
FOREACH ( i in range(0,99) | CREATE (n:Person {id:i} ) )
Not non-developer friendly and no properties except the id
LOAD CSV
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM FILE
‘file:///Users/me/docs/import.csv’ AS line
MERGE (n:Person {firstname: line.firstname} )
You need initial data !
GRAPH MODEL DECISIONS
GRAPH MODEL DECISIONS
WITH GRAPHGEN THEN ?
(p:Person {firstname: firstName, lastname: lastName} *100)
(p)-[:KNOWS *n..n]->(p)
DEMO 1
NODES SYNTAX
BASED OFF THE AMAZING CYPHER QUERY LANGUAGE!
(p:Person {firstname: firstName} *100 )
identifier
label
Node property key
Sample date
provider type amount
RELATIONSHIPS SYNTAX
BASEE SUR LE LANGAGE CYPHER !
-[:KNOWS {since: unixTime} *n..n ]->
type
Relationship property
key
Sample data
Provider type cardinality
PROPERTY PARAMETERS
E.g.: I want 100 person nodes with a name and a birth date, the birth date
Should be realistic so that people are adults and not already in retirement.
(p:Personne {nom: fullName, ddn: { dateTimeBetween: [‘’-65 years’’, ‘’-18 years’’]}} *100)
YAML inline
Sample data providers
• word
• sentence
• dateTime
• dateTimeBetween
• text
• unixTime
• randomDigit
• numberBetween
• company
• firstName, lastName
• country
• city
• address
• latitude, longitude
• url
• username
• password
• creditCardNumber
• ip
• userAgent
• uuid
• ean13
• fileExtension
• hashTag
• …… et plein d’autres
DEMO 2
GRAPHGEN CAN DO BETTER
NODE MODELS
WRITING THIS:
(user:User:Person {
_id: uuid,
login: userName,
password: password,
email: email,
prenom: firstName,
nom: lastName,
ddn: { dateTimeBetween: [‘’-50 years’’, ‘’-18 years’’]}} *100)
IS LONG TO WRITE AND REPETITIVE
IF YOU USE GRAPHGEN A LOT
( which is good in fact )
NODE MODELS
THIS IS BETTER AND PEOPLE SAY WOW:
(user:#User:#Person *100)
# = Node model activation
NODE MODELS
• #Person
• #User
• #Tweet
• #File
• #HashTag
• #BlogPost
• #Company
• … and soon you’ll be able to create your own models in the
Graphgen UI
TIPS & TRICKS
TIP 1
Fixed Value
SOLUTION: randomElement with 1 element
(p:Person:Administrator {group: {randomElement:[‘’ADMIN’’]}} *20)
GRAPHGEN THE GOOD POINTS
• BASED ON CYPHER SPEC (NO NEW SYNTAX TO LEARN)
• FOR EVERYBODY
• PROPERTY VALUES GENERATION
• IMMEDIATE VISUALISATION FEEDBACK
• IMPORT WHAT YOU SEE IN YOUR DATABASE
• EXPORT
NOT SO BAD
GRAPHGEN THE BAD POINTS
• YOUNG PROJECT WORKED ON IN FREE TIME (10 OCTOBER)
• ADAPT TO 75% OF GRAPH MODELING POSSIBILITIES
• LIMITED TO 1000 NODES IN THE WEBAPP (DUE TO THE VIZ) AND
NO LIMIT IN THE CLI VERSION (well your memory could be the
limit)
SOON IN GRAPHGEN
• User Dashboard
• Define your own models
• Define cardinalities percentage
• Define indexed and unique constraints
• Public API
• More export formats
QUESTIONS ?
THANK YOU 
Graphgen : http://graphgen.neoxygen.io
PHP components for Neo4j : https://github.com/neoxygen
Follow me : @ikwattro

More Related Content

What's hot

Big Data-Driven Applications with Cassandra and Spark
Big Data-Driven Applications  with Cassandra and SparkBig Data-Driven Applications  with Cassandra and Spark
Big Data-Driven Applications with Cassandra and Spark
Artem Chebotko
 
AI與大數據數據處理 Spark實戰(20171216)
AI與大數據數據處理 Spark實戰(20171216)AI與大數據數據處理 Spark實戰(20171216)
AI與大數據數據處理 Spark實戰(20171216)
Paul Chao
 
Graph Data Modeling in DataStax Enterprise
Graph Data Modeling in DataStax EnterpriseGraph Data Modeling in DataStax Enterprise
Graph Data Modeling in DataStax Enterprise
Artem Chebotko
 

What's hot (20)

GraphQL Schema Stitching with Prisma & Contentful
GraphQL Schema Stitching with Prisma & ContentfulGraphQL Schema Stitching with Prisma & Contentful
GraphQL Schema Stitching with Prisma & Contentful
 
Graph Gurus 23: Best Practices To Model Your Data Using A Graph Database
Graph Gurus 23: Best Practices To Model Your Data Using A Graph DatabaseGraph Gurus 23: Best Practices To Model Your Data Using A Graph Database
Graph Gurus 23: Best Practices To Model Your Data Using A Graph Database
 
Python網站框架絕技: Django 完全攻略班
Python網站框架絕技: Django 完全攻略班Python網站框架絕技: Django 完全攻略班
Python網站框架絕技: Django 完全攻略班
 
Realtime Data Analysis Patterns
Realtime Data Analysis PatternsRealtime Data Analysis Patterns
Realtime Data Analysis Patterns
 
Graph Gurus 15: Introducing TigerGraph 2.4
Graph Gurus 15: Introducing TigerGraph 2.4 Graph Gurus 15: Introducing TigerGraph 2.4
Graph Gurus 15: Introducing TigerGraph 2.4
 
Graph Gurus Episode 4: Detecting Fraud and Money Laudering in Real-Time Part 2
Graph Gurus Episode 4: Detecting Fraud and Money Laudering in Real-Time Part 2Graph Gurus Episode 4: Detecting Fraud and Money Laudering in Real-Time Part 2
Graph Gurus Episode 4: Detecting Fraud and Money Laudering in Real-Time Part 2
 
Big Data-Driven Applications with Cassandra and Spark
Big Data-Driven Applications  with Cassandra and SparkBig Data-Driven Applications  with Cassandra and Spark
Big Data-Driven Applications with Cassandra and Spark
 
Traversing Graphs with Gremlin
Traversing Graphs with GremlinTraversing Graphs with Gremlin
Traversing Graphs with Gremlin
 
Graph Gurus Episode 7: Connecting the Dots in Real-Time: Deep Link Analysis w...
Graph Gurus Episode 7: Connecting the Dots in Real-Time: Deep Link Analysis w...Graph Gurus Episode 7: Connecting the Dots in Real-Time: Deep Link Analysis w...
Graph Gurus Episode 7: Connecting the Dots in Real-Time: Deep Link Analysis w...
 
aRangodb, un package per l'utilizzo di ArangoDB con R
aRangodb, un package per l'utilizzo di ArangoDB con RaRangodb, un package per l'utilizzo di ArangoDB con R
aRangodb, un package per l'utilizzo di ArangoDB con R
 
AI與大數據數據處理 Spark實戰(20171216)
AI與大數據數據處理 Spark實戰(20171216)AI與大數據數據處理 Spark實戰(20171216)
AI與大數據數據處理 Spark實戰(20171216)
 
TigerGraph.js
TigerGraph.jsTigerGraph.js
TigerGraph.js
 
Graph Data Modeling in DataStax Enterprise
Graph Data Modeling in DataStax EnterpriseGraph Data Modeling in DataStax Enterprise
Graph Data Modeling in DataStax Enterprise
 
Application Modeling with Graph Databases - Relationships are cool
Application Modeling with Graph Databases - Relationships are coolApplication Modeling with Graph Databases - Relationships are cool
Application Modeling with Graph Databases - Relationships are cool
 
Improving Model Predictions via Stacking and Hyper-parameters Tuning
Improving Model Predictions via Stacking and Hyper-parameters TuningImproving Model Predictions via Stacking and Hyper-parameters Tuning
Improving Model Predictions via Stacking and Hyper-parameters Tuning
 
Graph Gurus Episode 1: Enterprise Graph
Graph Gurus Episode 1: Enterprise GraphGraph Gurus Episode 1: Enterprise Graph
Graph Gurus Episode 1: Enterprise Graph
 
MLSD18. Basic Transformations - QCRI
MLSD18. Basic Transformations - QCRIMLSD18. Basic Transformations - QCRI
MLSD18. Basic Transformations - QCRI
 
Synthetic Encoding
Synthetic EncodingSynthetic Encoding
Synthetic Encoding
 
New Capabilities in the PyData Ecosystem
New Capabilities in the PyData EcosystemNew Capabilities in the PyData Ecosystem
New Capabilities in the PyData Ecosystem
 
BigQuery JavaScript User-Defined Functions by THOMAS PARK and FELIPE HOFFA at...
BigQuery JavaScript User-Defined Functions by THOMAS PARK and FELIPE HOFFA at...BigQuery JavaScript User-Defined Functions by THOMAS PARK and FELIPE HOFFA at...
BigQuery JavaScript User-Defined Functions by THOMAS PARK and FELIPE HOFFA at...
 

Viewers also liked

Machine Learning, Data Mining, Genetic Algorithms, Neural ...
Machine Learning, Data Mining, Genetic Algorithms, Neural ...Machine Learning, Data Mining, Genetic Algorithms, Neural ...
Machine Learning, Data Mining, Genetic Algorithms, Neural ...
butest
 
10-15 511 genetic algorithms and machine learning (alan nochenson)
10-15 511 genetic algorithms and machine learning (alan nochenson)10-15 511 genetic algorithms and machine learning (alan nochenson)
10-15 511 genetic algorithms and machine learning (alan nochenson)
Alan Nochenson
 

Viewers also liked (20)

GraphGen: Conducting Graph Analytics over Relational Databases
GraphGen: Conducting Graph Analytics over Relational DatabasesGraphGen: Conducting Graph Analytics over Relational Databases
GraphGen: Conducting Graph Analytics over Relational Databases
 
20141216 graph database prototyping ams meetup
20141216 graph database prototyping ams meetup20141216 graph database prototyping ams meetup
20141216 graph database prototyping ams meetup
 
Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)
Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)
Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)
 
Réalisation d'un mashup de données avec DSS de Dataiku - Première partie
Réalisation d'un mashup de données avec DSS de Dataiku - Première partieRéalisation d'un mashup de données avec DSS de Dataiku - Première partie
Réalisation d'un mashup de données avec DSS de Dataiku - Première partie
 
SPARQL, comment illuminer vos mashups en consommant les données du Linked Data ?
SPARQL, comment illuminer vos mashups en consommant les données du Linked Data ?SPARQL, comment illuminer vos mashups en consommant les données du Linked Data ?
SPARQL, comment illuminer vos mashups en consommant les données du Linked Data ?
 
Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec ...
Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec ...Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec ...
Réalisation d'un mashup de données avec DSS de Dataiku et visualisation avec ...
 
How to apply graph analytics for bank loan fraud detection?
How to apply graph analytics for bank loan fraud detection?How to apply graph analytics for bank loan fraud detection?
How to apply graph analytics for bank loan fraud detection?
 
Machine Learning, Data Mining, Genetic Algorithms, Neural ...
Machine Learning, Data Mining, Genetic Algorithms, Neural ...Machine Learning, Data Mining, Genetic Algorithms, Neural ...
Machine Learning, Data Mining, Genetic Algorithms, Neural ...
 
Github in a Graph
Github in a GraphGithub in a Graph
Github in a Graph
 
10-15 511 genetic algorithms and machine learning (alan nochenson)
10-15 511 genetic algorithms and machine learning (alan nochenson)10-15 511 genetic algorithms and machine learning (alan nochenson)
10-15 511 genetic algorithms and machine learning (alan nochenson)
 
Finding the insights hidden in your graph data
Finding the insights hidden in your graph dataFinding the insights hidden in your graph data
Finding the insights hidden in your graph data
 
Fouille de données issues d’un grand graphe par carte de Kohonen à noyau
Fouille de données issues d’un grand graphe par carte de Kohonen à noyauFouille de données issues d’un grand graphe par carte de Kohonen à noyau
Fouille de données issues d’un grand graphe par carte de Kohonen à noyau
 
20141015 how graphs revolutionize access management
20141015 how graphs revolutionize access management20141015 how graphs revolutionize access management
20141015 how graphs revolutionize access management
 
Bringing graph technologies to data analysis : the case of Azerbaijan in th...
Bringing graph technologies to data  analysis : the case of Azerbaijan in  th...Bringing graph technologies to data  analysis : the case of Azerbaijan in  th...
Bringing graph technologies to data analysis : the case of Azerbaijan in th...
 
The Impact of Algorithmic Trading
The Impact of Algorithmic TradingThe Impact of Algorithmic Trading
The Impact of Algorithmic Trading
 
Graph Analytics
Graph AnalyticsGraph Analytics
Graph Analytics
 
NoSQL Graph Databases - Why, When and Where
NoSQL Graph Databases - Why, When and WhereNoSQL Graph Databases - Why, When and Where
NoSQL Graph Databases - Why, When and Where
 
Link Analysis
Link AnalysisLink Analysis
Link Analysis
 
An Introduction to Neural Networks and Machine Learning
An Introduction to Neural Networks and Machine LearningAn Introduction to Neural Networks and Machine Learning
An Introduction to Neural Networks and Machine Learning
 
Reinforcing AML systems with graph technologies.
Reinforcing AML systems with graph technologies.Reinforcing AML systems with graph technologies.
Reinforcing AML systems with graph technologies.
 

Similar to Graph Database Prototyping made easy with Graphgen

Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Jeado Ko
 

Similar to Graph Database Prototyping made easy with Graphgen (20)

Montreal Sql saturday: moving data from no sql db to azure data lake
Montreal Sql saturday: moving data from no sql db to azure data lakeMontreal Sql saturday: moving data from no sql db to azure data lake
Montreal Sql saturday: moving data from no sql db to azure data lake
 
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
 
Fast REST APIs Development with MongoDB
Fast REST APIs Development with MongoDBFast REST APIs Development with MongoDB
Fast REST APIs Development with MongoDB
 
The power of CSS pseudo-elements
The power of CSS pseudo-elementsThe power of CSS pseudo-elements
The power of CSS pseudo-elements
 
The Rise of NoSQL
The Rise of NoSQLThe Rise of NoSQL
The Rise of NoSQL
 
Reactive datastore demo (2020 03-21)
Reactive datastore demo (2020 03-21)Reactive datastore demo (2020 03-21)
Reactive datastore demo (2020 03-21)
 
Javascript Design Patterns
Javascript Design PatternsJavascript Design Patterns
Javascript Design Patterns
 
Strategies for refactoring and migrating a big old project to be multilingual...
Strategies for refactoring and migrating a big old project to be multilingual...Strategies for refactoring and migrating a big old project to be multilingual...
Strategies for refactoring and migrating a big old project to be multilingual...
 
Odessapy2013 - Graph databases and Python
Odessapy2013 - Graph databases and PythonOdessapy2013 - Graph databases and Python
Odessapy2013 - Graph databases and Python
 
Using Google (Cloud) APIs
Using Google (Cloud) APIsUsing Google (Cloud) APIs
Using Google (Cloud) APIs
 
Get together on getting more out of typescript & angular 2
Get together on getting more out of typescript & angular 2Get together on getting more out of typescript & angular 2
Get together on getting more out of typescript & angular 2
 
D3.js and SVG
D3.js and SVGD3.js and SVG
D3.js and SVG
 
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
 
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점 Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
 
Easy path to machine learning
Easy path to machine learningEasy path to machine learning
Easy path to machine learning
 
Dex Technical Seminar (April 2011)
Dex Technical Seminar (April 2011)Dex Technical Seminar (April 2011)
Dex Technical Seminar (April 2011)
 
AngularJS in large applications - AE NV
AngularJS in large applications - AE NVAngularJS in large applications - AE NV
AngularJS in large applications - AE NV
 
テスト用のプレゼンテーション
テスト用のプレゼンテーションテスト用のプレゼンテーション
テスト用のプレゼンテーション
 
Python tools to deploy your machine learning models faster
Python tools to deploy your machine learning models fasterPython tools to deploy your machine learning models faster
Python tools to deploy your machine learning models faster
 
Pre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDBPre-Aggregated Analytics And Social Feeds Using MongoDB
Pre-Aggregated Analytics And Social Feeds Using MongoDB
 

More from Christophe Willemsen

Your own recommendation engine with neo4j and reco4php - DPC16
Your own recommendation engine with neo4j and reco4php - DPC16Your own recommendation engine with neo4j and reco4php - DPC16
Your own recommendation engine with neo4j and reco4php - DPC16
Christophe Willemsen
 

More from Christophe Willemsen (12)

Knowledge graphs + Chatbots with Neo4j
Knowledge graphs + Chatbots with Neo4jKnowledge graphs + Chatbots with Neo4j
Knowledge graphs + Chatbots with Neo4j
 
Chatbots and Voice Conversational Interfaces with Amazon Alexa, Neo4j and Gra...
Chatbots and Voice Conversational Interfaces with Amazon Alexa, Neo4j and Gra...Chatbots and Voice Conversational Interfaces with Amazon Alexa, Neo4j and Gra...
Chatbots and Voice Conversational Interfaces with Amazon Alexa, Neo4j and Gra...
 
Management des issues Github avec Neo4j et NLP
Management des issues Github avec Neo4j et NLPManagement des issues Github avec Neo4j et NLP
Management des issues Github avec Neo4j et NLP
 
Your own recommendation engine with neo4j and reco4php - DPC16
Your own recommendation engine with neo4j and reco4php - DPC16Your own recommendation engine with neo4j and reco4php - DPC16
Your own recommendation engine with neo4j and reco4php - DPC16
 
Recommendation Engines with Neo4j, Symfony and Reco4PHP
Recommendation Engines with Neo4j, Symfony and Reco4PHPRecommendation Engines with Neo4j, Symfony and Reco4PHP
Recommendation Engines with Neo4j, Symfony and Reco4PHP
 
Moteurs de recommendation avec Neo4j et GraphAwareReco
Moteurs de recommendation avec Neo4j et GraphAwareRecoMoteurs de recommendation avec Neo4j et GraphAwareReco
Moteurs de recommendation avec Neo4j et GraphAwareReco
 
Recommandations avec Neo4j et le GraphAware Recommendation Engine
Recommandations avec Neo4j et le GraphAware Recommendation EngineRecommandations avec Neo4j et le GraphAware Recommendation Engine
Recommandations avec Neo4j et le GraphAware Recommendation Engine
 
Neo4j au secours de l'Internet of Connected Things
Neo4j au secours de l'Internet of Connected ThingsNeo4j au secours de l'Internet of Connected Things
Neo4j au secours de l'Internet of Connected Things
 
Graphgen - le générateur de graphes
Graphgen - le générateur de graphesGraphgen - le générateur de graphes
Graphgen - le générateur de graphes
 
Analysing Github events with Neo4j
Analysing Github events with Neo4jAnalysing Github events with Neo4j
Analysing Github events with Neo4j
 
Présentation symfony drupal
Présentation symfony drupalPrésentation symfony drupal
Présentation symfony drupal
 
GMDSS - Practice1
GMDSS - Practice1GMDSS - Practice1
GMDSS - Practice1
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 

Graph Database Prototyping made easy with Graphgen

  • 1. GRAPHGENGraphDB Prototyping made easy #FOSDEM 31-01-2015 graphgen.neoxygen.io
  • 2. #whoami Christophe Willemsen Software Engineer Neo4j Consultant @graph_aware graphaware.com
  • 3. WHY GRAPHGEN ? QUICK OVERVIEW ABOUT THE NEO4J NATIVE TOOLS TO BUILD A GRAPH
  • 4. BY HAND CREATE (n:Person {firstname: ‘Roger’, lastname:’Laguadec’}) 100X For 100 nodes and you need to be really inventive for the node properties
  • 5. A LOOP FOREACH ( i in range(0,99) | CREATE (n:Person {id:i} ) ) Not non-developer friendly and no properties except the id
  • 6. LOAD CSV USING PERIODIC COMMIT 1000 LOAD CSV WITH HEADERS FROM FILE ‘file:///Users/me/docs/import.csv’ AS line MERGE (n:Person {firstname: line.firstname} ) You need initial data !
  • 9. WITH GRAPHGEN THEN ? (p:Person {firstname: firstName, lastname: lastName} *100) (p)-[:KNOWS *n..n]->(p)
  • 11. NODES SYNTAX BASED OFF THE AMAZING CYPHER QUERY LANGUAGE! (p:Person {firstname: firstName} *100 ) identifier label Node property key Sample date provider type amount
  • 12. RELATIONSHIPS SYNTAX BASEE SUR LE LANGAGE CYPHER ! -[:KNOWS {since: unixTime} *n..n ]-> type Relationship property key Sample data Provider type cardinality
  • 13. PROPERTY PARAMETERS E.g.: I want 100 person nodes with a name and a birth date, the birth date Should be realistic so that people are adults and not already in retirement. (p:Personne {nom: fullName, ddn: { dateTimeBetween: [‘’-65 years’’, ‘’-18 years’’]}} *100) YAML inline
  • 14. Sample data providers • word • sentence • dateTime • dateTimeBetween • text • unixTime • randomDigit • numberBetween • company • firstName, lastName • country • city • address • latitude, longitude • url • username • password • creditCardNumber • ip • userAgent • uuid • ean13 • fileExtension • hashTag • …… et plein d’autres
  • 16. GRAPHGEN CAN DO BETTER
  • 17. NODE MODELS WRITING THIS: (user:User:Person { _id: uuid, login: userName, password: password, email: email, prenom: firstName, nom: lastName, ddn: { dateTimeBetween: [‘’-50 years’’, ‘’-18 years’’]}} *100) IS LONG TO WRITE AND REPETITIVE IF YOU USE GRAPHGEN A LOT ( which is good in fact )
  • 18. NODE MODELS THIS IS BETTER AND PEOPLE SAY WOW: (user:#User:#Person *100) # = Node model activation
  • 19. NODE MODELS • #Person • #User • #Tweet • #File • #HashTag • #BlogPost • #Company • … and soon you’ll be able to create your own models in the Graphgen UI
  • 21. TIP 1 Fixed Value SOLUTION: randomElement with 1 element (p:Person:Administrator {group: {randomElement:[‘’ADMIN’’]}} *20)
  • 22. GRAPHGEN THE GOOD POINTS • BASED ON CYPHER SPEC (NO NEW SYNTAX TO LEARN) • FOR EVERYBODY • PROPERTY VALUES GENERATION • IMMEDIATE VISUALISATION FEEDBACK • IMPORT WHAT YOU SEE IN YOUR DATABASE • EXPORT
  • 23. NOT SO BAD GRAPHGEN THE BAD POINTS • YOUNG PROJECT WORKED ON IN FREE TIME (10 OCTOBER) • ADAPT TO 75% OF GRAPH MODELING POSSIBILITIES • LIMITED TO 1000 NODES IN THE WEBAPP (DUE TO THE VIZ) AND NO LIMIT IN THE CLI VERSION (well your memory could be the limit)
  • 24. SOON IN GRAPHGEN • User Dashboard • Define your own models • Define cardinalities percentage • Define indexed and unique constraints • Public API • More export formats
  • 26. THANK YOU  Graphgen : http://graphgen.neoxygen.io PHP components for Neo4j : https://github.com/neoxygen Follow me : @ikwattro