GraphGists

Initialize Graph

Return all nodes with label philosopher

MATCH (p:Philosopher)
RETURN p.name as PhilosopherNames
ORDER BY p.name

Return all ancient philosophers

MATCH (p:Philosopher)-[]->(e:Era)
WHERE e.name = 'Ancient philosophy'
RETURN p.name as PhilosopherNames

Return all school type philosophers

MATCH (p:Philosopher)-[:MEMBER_OF]->(s:School)-[:TYPE_OF]->(st:SchoolType)
RETURN DISTINCT p.name as PhilosopherNames

Return all school type philosophers

MATCH (p:Philosopher)-[:MEMBER_OF]->(s:School)-[:TYPE_OF]->(st:SchoolType)
WHERE st.name = 'Philosophical movements'
RETURN p.name as PhilosopherName, s.name as SchoolName

Return all movement school type philosophers

MATCH (p:Philosopher)-[r:MEMBER_OF]->(s:School)-[:TYPE_OF]->(st:SchoolType)-[:SUBCLASS_OF]->(st2:SchoolType)
WHERE st2.name = 'movement'
RETURN p.name as pName , type(r) as rType , s.name as sName

Influential philosophers from the same school type class

MATCH p=(st2:SchoolType)<-[:TYPE_OF]-(s2:School)<-[:MEMBER_OF]-(p2:Philosopher)<-[:INFLUENCES]-(p1:Philosopher)-[:MEMBER_OF]->(s1:School)-[:TYPE_OF]->(st1:SchoolType)-[:SUBCLASS_OF]->(stc:SchoolType)
WHERE (stc)<-[:SUBCLASS_OF]-(st2)
RETURN p1.name as p1Name, s1.name as s1Name, st1.name as st1Name, p2.name as p2Name, s2.name as s2Name, st2.name as st2Name, stc.name as stcName