Algorithm Types
In Cypher
MATCH (will:Person {name:"Will"})-[:PURCHASED]->(b:Book)<-[:PURCHASED]-(o:Person)
MATCH (o)-[:PURHCASED]->(rec:BooK)
WHERE NOT exists((will)-[:PURCHASED]->(rec))
RETURN rec
Basic initial approach. Improvements:
In Cypher
MATCH (will:Person {name:"Will})-[:PURCHASED]->(b:Book)<-[:HAS_TAG]-(t:Tag)
MATCH (t)<-[:HAS_TAG]-(other:Book)
WHERE NOT exists((will)-[:PURCHASED]->(other))
RETURN other