Skip to content

Instantly share code, notes, and snippets.

@suellenstringer-hye
Last active August 19, 2016 20:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save suellenstringer-hye/acd4e8cc3994805319b9752a619d5efc to your computer and use it in GitHub Desktop.
Save suellenstringer-hye/acd4e8cc3994805319b9752a619d5efc to your computer and use it in GitHub Desktop.
Todd's gist
= Network analysis with Neo4j
:neo4j-version: 2.1.0
:author: Todd F. Hughes
:twitter: @todd_f_hughes
:tags: domain:education, use-case:network analysis
//graph
=== DATASET
[source, cypher]
----
CREATE
//Personajes
(regidor1:Person{name:'Regidor1', role1:'male', role2:'middle'}),
(regidor2:Person{name:'Regidor2', role1:'male', role2:'middle'}),
(alonso_regidor:Person{name:'Alonso, Regidor', role2:'middle'}),
(barrildo:Person{name:'Barrildo', role1:'male', role2:'disempowered'}),
(comendador:Person{name:'Comendador', role1:'male', role2:'empowered'}),
(esteban:Person{name:'Esteban', role1:'male', role2:'middle'}),
(flores:Person{name:'Flores', role1:'male', role2:'empowered'}),
(frondoso:Person{name:'Frondoso', role1:'male', role2:'disempowered'}),
(rey:Person{name:'Rey Don Fernando', role1:'male', role2:'nobility'}),
(reina:Person{name:'Reina Doña Isabel', role1:'female', role2:'nobility'}),
(laurencia:Person{name:'Laurencia', role1:'female', role2:'disempowered'}),
(manrique:Person{name:'Don Manrique', role1:'male', role2:'empowered'}),
(maestre_calatrava:Person{name:'El Maestre de Calatrava', role1:'male', role2:'empowered'}),
(pascuala:Person{name:'Pascuala', role1:'female', role2:'disempowered'}),
(ortuño:Person{name:'Ortuño', role1:'male', role2:'empowered'}),
(mengo:Person{name:'Mengo', role1:'male', role2:'disempowered'}),
(todos:Person{name:'Todos', role2:'disempowered'}),
(aparte:Person{name:'Aparte'}),
//Relationships
(flores)-[:SPOKE_TO]->(comendador),
(ortuño)-[:SPOKE_TO]->(comendador),
(comendador)-[:SPOKE_TO]->(flores),
(comendador)-[:SPOKE_TO]->(ortuño),
(maestre_calatrava)-[:SPOKE_TO]->(comendador),
(comendador)-[:SPOKE_TO]->(maestre_calatrava),
(pascuala)-[:SPOKE_TO]->(laurencia),
(laurencia)-[:SPOKE_TO]->(pascuala),
(frondoso)-[:SPOKE_TO]->(barrildo),
(mengo)-[:SPOKE_TO]->(barrildo),
(frondoso)-[:SPOKE_TO]->(mengo),
(laurencia)-[:SPOKE_TO]->(frondoso),
(barrildo)-[:SPOKE_TO]->(frondoso),
(barrildo)-[:SPOKE_TO]->(mengo),
(frondoso)-[:SPOKE_TO]->(laurencia),
(mengo)-[:SPOKE_TO]->(laurencia),
(barrildo)-[:SPOKE_TO]->(laurencia),
(laurencia)-[:SPOKE_TO]->(barrildo),
(mengo)-[:SPOKE_TO]->(barrildo),
(pascuala)-[:SPOKE_TO]->(mengo),
(mengo)-[:SPOKE_TO]->(pascuala),
(barrildo)-[:SPOKE_TO]->(pascuala),
(pascuala)-[:SPOKE_TO]->(barrildo),
(flores)-[:SPOKE_TO]->(pascuala),
(laurencia)-[:SPOKE_TO]->(flores),
(flores)-[:SPOKE_TO]->(laurencia),
(laurencia)-[:SPOKE_TO]->(mengo),
(flores)-[:SPOKE_TO]->(frondoso),
(pascuala)-[:SPOKE_TO]->(frondoso),
(frondoso)-[:SPOKE_TO]->(pascuala),
(frondoso)-[:SPOKE_TO]->(flores),
(pascuala)-[:SPOKE_TO]->(flores),
(todos)-[:SPOKE_TO]->(todos),
(comendador)-[:SPOKE_TO]->(todos),
(alonso_regidor)-[:SPOKE_TO]->(todos),
(esteban)-[:SPOKE_TO]->(comendador),
(comendador)-[:SPOKE_TO]->(esteban),
(alonso_regidor)-[:SPOKE_TO]->(comendador),
(comendador)-[:SPOKE_TO]->(alonso_regidor),
(esteban)-[:SPOKE_TO]->(todos),
(todos)-[:SPOKE_TO]->(esteban),
(laurencia)-[:SPOKE_TO]->(comendador),
(comendador)-[:SPOKE_TO]->(pascuala),
(pascuala)-[:SPOKE_TO]->(comendador),
(comendador)-[:SPOKE_TO]->(flores),
(flores)-[:SPOKE_TO]->(comendador),
(comendador)-[:SPOKE_TO]->(ortuño),
(ortuño)-[:SPOKE_TO]->(pascuala),
(ortuño)-[:SPOKE_TO]->(laurencia),
(laurencia)-[:SPOKE_TO]->(ortuño),
(regidor1)-[:SPOKE_TO]->(rey),
(rey)-[:SPOKE_TO]->(regidor1),
(rey)-[:SPOKE_TO]->(regidor2),
(regidor2)-[:SPOKE_TO]->(rey),
(rey)-[:SPOKE_TO]->(regidor2),
(laurencia)-[:SPOKE_TO]->(aparte),
(comendador)-[:SPOKE_TO]->(laurencia),
(flores)-[:SPOKE_TO]->(ortuño),
(ortuño)-[:SPOKE_TO]->(flores),
(reina)-[:SPOKE_TO]->(rey),
(manrique)-[:SPOKE_TO]->(rey),
(rey)-[:SPOKE_TO]->(manrique),
(reina)-[:SPOKE_TO]->(manrique),
(ortuño)-[:SPOKE_TO]->(flores),
(comendador)-[:SPOKE_TO]->(frondoso),
(frondoso)-[:SPOKE_TO]->(aparte),
(frondoso)-[:SPOKE_TO]->(comendador)
----
=== Which characters are male?
[source,cypher]
----
MATCH (a:Person {role1:'male'})-[r]->(b)
RETURN DISTINCT a.name AS Name
----
//table
=== Which characters are female?
[source,cypher]
----
MATCH (a:Person {role1:'female'})-[r]->(b)
RETURN DISTINCT a.name AS Name
----
//table
=== Which characters are empowered?
[source,cypher]
----
MATCH (a:Person {role2:'empowered'})-[r]->(b)
RETURN DISTINCT a.name AS Name
----
//table
=== Which characters are disempowered?
[source,cypher]
----
MATCH (a:Person {role2:'disempowered'})-[r]->(b)
RETURN DISTINCT a.name AS Name
----
//table
=== Which characters find themselves between the "empowered and the "disempowered"?
[source,cypher]
----
MATCH (a:Person {role2:'middle'})-[r]->(b)
RETURN DISTINCT a.name AS Name
----
//table
=== Who did Rey speak to?
[source, cypher]
----
MATCH (rey:Person{name:'Rey Don Fernando'})-[r]->(b)
RETURN rey,r,b
----
//graph_result
=== Who spoke to Rey?
[source, cypher]
----
MATCH (rey:Person{name:'Rey Don Fernando'})<-[r]-(b)
RETURN rey,r,b
----
//graph_result
=== Which women spoke to men?
[source, cypher]
----
MATCH (men:Person{role1:'male' })-[r]-(women:Person{role1:'female'})
RETURN men,r,women
----
//graph_result
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment