DEMO:Movie
This document mainly introduces the usage of the movie demo.
1.Modeling and Data Import
After logging in, click “Help”, click “Quick Start”, click “One-Click Model Creation”, click “One-Click Data Creation”, and complete the creation of the Movie Scene Graph.
Movie:
Label |
Type |
Description |
|---|---|---|
movie |
Vertex |
Represents a specific movie, such as “Forrest Gump”. |
person |
Vertex |
Represents a person, who may be an actor, director, or screenwriter for a movie. |
genre |
Vertex |
Represents the genre of a movie, such as drama, horror. |
keyword |
Vertex |
Represents some keywords related to the movie, such as “save the world”, “virtual reality”, “subway”. |
user |
Vertex |
Represents a user who watches movies. |
produce |
Edge |
Represents the relationship between the producer of a movie. |
acted_in |
Edge |
Represents the relationship between actors and the movies they have appeared in. |
direct |
Edge |
Represents the relationship between a movie and its director. |
write |
Edge |
Represents the screenwriting relationship of a movie. |
has_genre |
Edge |
Represents the genre classification of a movie. |
has_keyword |
Edge |
Represents some keywords of a movie, which are more specific labels for classification. |
rate |
Edge |
Represents the rating given by a user to a movie. |
2.Query Examples
2.1.Example One
Query all actors of the movie ‘Forrest Gump’ and return the subgraph composed of the movie and the actors.
MATCH (m:movie {title: 'Forrest Gump'})<-[:acted_in]-(a:person) RETURN a, m
2.2.Example Two
Query all actors of the movie ‘Forrest Gump’ and list the roles they played in the movie.
MATCH (m:movie {title: 'Forrest Gump'})<-[r:acted_in]-(a:person) RETURN a.name,r.role
2.3.Example Three
Query all movies rated below 3 by Michael.
MATCH (u:user {login: 'Michael'})-[r:rate]->(m:movie) WHERE r.stars < 3 RETURN m.title, r.stars
2.4.Example Four
Query users who have the same dislike of movies as Michael, where the standard for dislike is a rating of less than three.
MATCH (u:user {login: 'Michael'})-[r:rate]->(m:movie)<-[s:rate]-(v) WHERE r.stars < 3 AND s.stars < 3 RETURN u, m, v
2.5.Example Five
Recommend movies to Michael by first finding users who dislike the same movies as Michael, and then filtering out the movies that these users like.
MATCH (u:user {login: 'Michael'})-[r:rate]->(m:movie)<-[s:rate]-(v)-[r2:rate]->(m2:movie) WHERE r.stars < 3 AND s.stars < 3 AND r2.stars > 3 RETURN u, m, v, m2
2.6.Example Six
Query the movies that Michael’s friends like.
MATCH (u:user {login: 'Michael'})-[:is_friend]->(v:user)-[r:rate]->(m:movie) WHERE r.stars > 3 RETURN u, v, m
2.7.Example Seven
By querying the movies that people who gave ‘Forrest Gump’ a high rating also like, recommend similar movies to users who like ‘Forrest Gump’.
MATCH (m:movie {title:'Forrest Gump'})<-[r:rate]-(u:user)-[r2:rate]->(m2:movie) WHERE r.stars>3 AND r2.stars>3 RETURN m, u,m2