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:

movie_schema

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