CREATE
(DivinaCommedia:Book{title: 'Divina Commedia', published: 1321})
CREATE
(Dante:Person {name: 'Dante Alighieri'})-[:CharacterOf]->(DivinaCommedia),
(Virgilio:Person {name: 'Virgilio'})-[:CharacterOf]->(DivinaCommedia),
(Beatrice:Person {name: 'Beatrice'})-[:CharacterOf]->(DivinaCommedia),
(CelestinoIV:Person {name: 'Celestino IV'})-[:CharacterOf{where: "Antinferno"}]->(DivinaCommedia),
(Caronte:Person {name: 'Caronte'})-[:CharacterOf{where: "Inferno"}]->(DivinaCommedia),
(Farinata:Person {name: 'Farinata degli Uberti'})-[:CharacterOf{where: "Inferno"}]->(DivinaCommedia),
(PierdellaVigna:Person {name: 'Pier della Vigna'})-[:CharacterOf{where: "Inferno"}]->(DivinaCommedia),
(Paolo:Person {name: 'Paolo Malatesta'})-[:CharacterOf{where: "Inferno"}]->(DivinaCommedia),
(Francesca:Person {name: 'Francesca da Polenta'})-[:CharacterOf{where: "Inferno"}]->(DivinaCommedia),
(Ulisse:Person {name: 'Ulisse'})-[:CharacterOf{where: "Inferno"}]->(DivinaCommedia),
(OttavianoAugusto:Person {name: 'Ottaviano Augusto'})-[:CharacterOf{where: "Purgatorio"}]->(DivinaCommedia),
(Omero:Person {name: 'Omero'})-[:CharacterOf{where: "Purgatorio"}]->(DivinaCommedia),
(Matelda:Person {name: 'Matelda'})-[:CharacterOf{where: "Purgatorio"}]->(DivinaCommedia),
(SanTommasoDaquino:Person {name: 'San Tommaso d\'Aquino'})-[:CharacterOf{where: "Paradiso"}]->(DivinaCommedia),
(Costantino:Person {name: 'Costantino'})-[:CharacterOf{where: "Paradiso"}]->(DivinaCommedia),
(Cristo:Person {name: 'Cristo'})-[:CharacterOf{where: "Paradiso"}]->(DivinaCommedia),
(Dante)-[:AUTHOR]->(:Book{title: 'Divina Commedia'})
Are we missing something, yes of course! Paolo and Francesca were lovers, let’s fix it:
MATCH(Paolo:Person{name:"Paolo Malatesta"}),(Francesca:Person{name:"Francesca da Polenta"})
CREATE
(Paolo)-[:InLove]->(Francesca),
(Francesca)-[:InLove]->(Paolo)
Let’s find out the bad guys!
MATCH(p:Person)-[CharacterOf { where:'Inferno' }]->(Book {title: 'Divina Commedia'})
RETURN p.name
All the protagonist
MATCH (p:Person)-[:CharacterOf]->(Book {title: 'Divina Commedia'})
RETURN p.name
Where is 'Omero'
MATCH(p:Person {name : 'Omero'})-[r:CharacterOf]->(Book {title: 'Divina Commedia'})
RETURN r.where
This guys are not speaking, let’s add some nice quotations
MATCH(p:Person {name : 'Ulisse'}),(p1:Person {name : 'Francesca da Polenta'})
SET p +={quotation : "Fatti non foste per viver come bruti, ma per seguir virtute e canoscenza"}
SET p1 +={quotation : "Amor, ch\'a nullo amato amar perdona"}
Now you can say something
MATCH(p:Person)
WHERE exists(p.quotation)
RETURN p.name + " says " + "\'" + p.quotation + "\'"
Created by Francesco Saverio Zuppichini