We have players, clubs, teams and leagues. The next step is to add the review system.

We need a scout, who reviews the players. This scout can be independent or working as coach for a club or other organization. In the example below, this scout is working as coach for the club. I have added a property named ‘level’ in the scout node, which can be used to add weight to the review. The more experienced the scout the higher the level.

The scout writes a review, with a rating (1 to 5) and a review description. That review is of a specific performance of the player, it could a (test-) match, training or more generic, like a season.

This is the code to create to reviews, for both players, already available in the demo.

// Create scout     
CREATE
     (scout:Scout {name:'Scout', function:'Head scout', level:5}),
     (scout)-[:WORKS_FOR]->(myc)

// Create review for goalie1 
CREATE 
    (perf1:Performance {type:'Training', date: 20150516}),
    (review1:Review {rating: 5, review: 'Excellent goalie'}),
    (scout)-[:WROTE_REVIEW]->(review1),
    (review1)-[:REVIEW_OF]->(perf1),
    (perf1)-[:PERFORMANCE_OF]->(goalie1)

// Create review for player1
CREATE 
    (perf2:Performance {type:'Match', date: 20150516}),
    (review2:Review {rating: 4, review: 'Good defender'}),
    (scout)-[:WROTE_REVIEW]->(review2),
    (review2)-[:REVIEW_OF]->(perf2),
    (perf2)-[:PERFORMANCE_OF]->(player1)

When add above to the existing graph, it looks like this: