As you can see, the data can be modeled as a graph with people, locations and attributes.
The graph is centered around the people. People are linked to the locations where they live in and to attributes. People can have two kinds of relationships with an attribute : they can “want” it (it means they want their potential dates to have that attribute) or they can “have” it (it means they have the attribute). For example, in the graph, we can see that Nicole has the attributes “calm” and “smart”. She wants someone who has the attribute “sweet”.
At this point what we have done is simply express the data in a way that makes sense. Now, let’s start asking questions. What we want is to find good matches between people. The data model we have is going to help us do that. It illustrates a simple truth : people are connected through the things they share.
Simply by looking at the data model, we can see that Nicole and John would be a good match. They both live in London for one. In addition John is “sweet” which is what Nicole wants. Nicole is “smart” and that is what John is looking for.