O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
GRAPHGENLe générateur de graphes
#Neo4j Meetup Lyon
18-12-2014
graphgen.neoxygen.io
#whoami
Christophe Willemsen
Senior Consultant
Expert Neo4j
@graph_aware
graphaware.com
POURQUOI GRAPHGEN ?
RETOUR RAPIDE SUR LES FONCTIONS
NATIVES A NEO4J POUR CRÉER
SON GRAPHE
A LA MAIN
CREATE (n:Personne {prenom: ‘Roger’, nom:’Laguadec’})
A ECRIRE
100XPour avoir 100 noeuds
AVEC UNE BOUCLE
FOREACH ( i in range(0,99) | CREATE (n:Personne {id:i} ) )
LOAD CSV
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM FILE
‘file:///Users/me/docs/import.csv’ AS csv
MERGE (n:Per...
ET AVEC GRAPHGEN ALORS ?
(p:Personne {prenom: firstName, nom: lastName} *100)
(p)-[:CONNAIS *n..n]->(p)
DEMO 1
SYNTAXE DES NOEUDS
BASEE SUR LE LANGAGE CYPHER !
(p:Personne {prenom: firstName} *100 )
identifiant
label
propriété du noe...
SYNTAXE DES RELATIONS
BASEE SUR LE LANGAGE CYPHER !
-[:CONNAIS {depuis: unixTime} *n..n ]->
type
propriété de la relation
...
PARAMETRES DE PROPRIETES
Exemple: Je veux 100 personnes avec une date de naissance,
mais ces personnes doivent être majeur...
Les faker types
• word
• sentence
• dateTime
• dateTimeBetween
• text
• unixTime
• randomDigit
• numberBetween
• company
•...
DEMO 2
GRAPHGEN ENCORE PLUS FORT !
NŒUDS TYPES
ECRIRE CA :
(user:User:Person {
_id: uuid,
login: userName,
password: password,
email: email,
prenom: firstNam...
NŒUDS TYPES
COMME CA C’EST COOL :
(user:#User:#Person *100)
# = Activation du nœud type
NŒUDS TYPES
• #Person
• #User
• #Tweet
• #File
• #HashTag
• #BlogPost
• #Company
• … et plein d’autres à venir
TRUCS & ASTUCES
ASTUCE 1
Utiliser une propriété avec valeur fixe que je définis pour tous les nœuds Personne
SOLUTION: randomElement avec ...
ASTUCE 2
Suggestions (groupes de personnes qui ne peuvent pas se connaître)
SOLUTION: Créer deux groupes de nœuds distinct...
GRAPHGEN LES POINTS FORTS
• BASE SUR LA SPEC CYPHER (PAS DE NOUVELLE SYNTAXE A APPRENDRE)
• DESTINE A TOUT LE MONDE
• GENE...
MOINS FORTS
GRAPHGEN LES POINTS FAIBLES
• LE PROJET EST ENCORE JEUNE (10 OCTOBRE)
• S’ADAPTE A +- 75% DE COMPLEXITE
• QUEL...
A VENIR DANS GRAPHGEN
• User Dashboard pour sauver vos graphes
• Définir vos propres nœuds types
• Définir les pourcentage...
QUESTIONS ?
MERCI 
Graphgen : http://graphgen.neoxygen.io
Composants PHP pour Neo4j : https://github.com/neoxygen
Follow me : @ikwatt...
Próximos SlideShares
Carregando em…5
×

Graphgen - le générateur de graphes

902 visualizações

Publicada em

Graphgen est un générateur de graphes en ligne dédié à la base de données Neo4j. Vous pourrez facilement créer et générer des graphes avec des valeurs aléatoirement générées.

La syntaxe est basée sur le langage de requêtage Cypher .

Publicada em: Software
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Graphgen - le générateur de graphes

  1. 1. GRAPHGENLe générateur de graphes #Neo4j Meetup Lyon 18-12-2014 graphgen.neoxygen.io
  2. 2. #whoami Christophe Willemsen Senior Consultant Expert Neo4j @graph_aware graphaware.com
  3. 3. POURQUOI GRAPHGEN ? RETOUR RAPIDE SUR LES FONCTIONS NATIVES A NEO4J POUR CRÉER SON GRAPHE
  4. 4. A LA MAIN CREATE (n:Personne {prenom: ‘Roger’, nom:’Laguadec’}) A ECRIRE 100XPour avoir 100 noeuds
  5. 5. AVEC UNE BOUCLE FOREACH ( i in range(0,99) | CREATE (n:Personne {id:i} ) )
  6. 6. LOAD CSV USING PERIODIC COMMIT 1000 LOAD CSV WITH HEADERS FROM FILE ‘file:///Users/me/docs/import.csv’ AS csv MERGE (n:Personne {prenom: csv.prenom} )
  7. 7. ET AVEC GRAPHGEN ALORS ? (p:Personne {prenom: firstName, nom: lastName} *100) (p)-[:CONNAIS *n..n]->(p)
  8. 8. DEMO 1
  9. 9. SYNTAXE DES NOEUDS BASEE SUR LE LANGAGE CYPHER ! (p:Personne {prenom: firstName} *100 ) identifiant label propriété du noeud faker type quantité
  10. 10. SYNTAXE DES RELATIONS BASEE SUR LE LANGAGE CYPHER ! -[:CONNAIS {depuis: unixTime} *n..n ]-> type propriété de la relation faker type cardinalité
  11. 11. PARAMETRES DE PROPRIETES Exemple: Je veux 100 personnes avec une date de naissance, mais ces personnes doivent être majeures et pas encore à l’âge De la retraite. (p:Personne {nom: fullName, ddn: { dateTimeBetween: [‘’-65 years’’, ‘’-18 years’’]}} *100) YAML inline !!!
  12. 12. Les faker types • 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
  13. 13. DEMO 2
  14. 14. GRAPHGEN ENCORE PLUS FORT !
  15. 15. NŒUDS TYPES ECRIRE CA : (user:User:Person { _id: uuid, login: userName, password: password, email: email, prenom: firstName, nom: lastName, ddn: { dateTimeBetween: [‘’-50 years’’, ‘’-18 years’’]}} *100) C’EST LOOOOOOOOOOONG !
  16. 16. NŒUDS TYPES COMME CA C’EST COOL : (user:#User:#Person *100) # = Activation du nœud type
  17. 17. NŒUDS TYPES • #Person • #User • #Tweet • #File • #HashTag • #BlogPost • #Company • … et plein d’autres à venir
  18. 18. TRUCS & ASTUCES
  19. 19. ASTUCE 1 Utiliser une propriété avec valeur fixe que je définis pour tous les nœuds Personne SOLUTION: randomElement avec 1 seul élément (p:Personne:Administrateur {groupe: {randomElement:[‘’ADMIN’’]}} *20)
  20. 20. ASTUCE 2 Suggestions (groupes de personnes qui ne peuvent pas se connaître) SOLUTION: Créer deux groupes de nœuds distincts avec le même label (p:#Person *20)-[:A_TRAVAILLE_POUR *n..1]->(c:#Company *10) (autres:#Person *20)-[:A_TRAVAILLE_POUR *n..1]->(c)
  21. 21. GRAPHGEN LES POINTS FORTS • BASE SUR LA SPEC CYPHER (PAS DE NOUVELLE SYNTAXE A APPRENDRE) • DESTINE A TOUT LE MONDE • GENERATION DE VALEURS • VISUALISATION IMMEDIATE DE VOTRE GRAPHE • IMPORTATION DU GRAPHE DANS VOTRE BASE • EXPORT
  22. 22. MOINS FORTS GRAPHGEN LES POINTS FAIBLES • LE PROJET EST ENCORE JEUNE (10 OCTOBRE) • S’ADAPTE A +- 75% DE COMPLEXITE • QUELQUES FONCTIONS CLES AVANT UNE STABLE RELEASE • LIMITE A 1000 NŒUDS POUR LA VISUALISATION Faut pas exagérer non plus !
  23. 23. A VENIR DANS GRAPHGEN • User Dashboard pour sauver vos graphes • Définir vos propres nœuds types • Définir les pourcentages des relations x..n • Génération GraphGist en 1 clic • Public API • Export vers d’autres formats
  24. 24. QUESTIONS ?
  25. 25. MERCI  Graphgen : http://graphgen.neoxygen.io Composants PHP pour Neo4j : https://github.com/neoxygen Follow me : @ikwattro

×