In this example dataset, we will explore a couple of interesting queries that would allow us--with the information that is available to us--to construct interesting recommendations for our hypothetical users. We will do so along different axes:
- Product purchases
- Brand loyalty
- Social and/or family ties
Let's start with the first and work our way through.
Let's build this thing from the ground up. The first query that we want to write is based on past purchasing behavior. We would like to find people that already share a couple of products that they have purchased in the past, but that also explicitly do not share a number of other products. In our data model, this Cypher query would go something as follows:
match (p1:Person)-[:BOUGHT]->(prod1:Product)<-[:BOUGHT]-(p2:Person)-[:BOUGHT]->(prod2:Product)
where not(p1-[:BOUGHT]->prod2)
return p1.name as FirstPerson, p2.name as SecondPerson, prod1.name...