Iteration 2 – Domain Model

Domain Model

 

Concept of the keyword in our projection

1.     Review:

A “Review” is the statement of a particular movie, which is given by our respectful user. The “best” review would display on the movie information page besides the movie photo as important as other movie summaries such as synopsis. We should emphasize here that the “Review” is not a common statements as you may see in other BBS, it is more similar to the theme or the topic of a post, and may have huge influent on the movie.

To pick the “best” review to display, we collect other users’ “Comment”(please see keyword: “Comment”) score for this “Review”, behind which we assume that if that “Review” shot the highest comment score, then it should be agreed with most users, and thus, it could serve as the most accurate judgment for that movie.

There is the case why we forbid user edit their review: one may give a really great and accurate review about a particular movie, then, it may display as one of the “best” ones on the movie information page. While, maybe some malicious intention from that user, if that user is allowed to edit the review, he may change it to a totally opposite judgment of the movie, suck and inaccurate one, which will ruin the movie.

In our opinion, when the user has written the “Review”, it is somehow “unrelated” to the user, though with respect to the “copyright”, we will state that the review is given by that user. So that if the user want to give another “Review”, different from former one, it will be a brand new one with no comment and score related to it.

2.     Comment:

A “Comment” is the statement of a particular review, which is given by our respectful user. The comment is to grant score for the review, which then accumulate by our algorithm to calculate the best review for the movie. To some extent, the “Comment” is somehow similar to the common statements in one topic in BBS.

And here is one malicious case to make the unwanted review become the “best” review: one may give a lot of comments for one particular review to promote or degrade that one. Or, one may really want to change their opinion to his former comments about a review after he re-watch the movie and has a new interpretation of it.  For occurrence of such situations, we only take the last comment score to a movie of a particular user into consider. Then, tons of comments from one user may weight as one score. Thus, on contrary to “Review”, this concept is quite related to the user.

Hence, if one want to give a score but no comment, it is allowed; meanwhile, if a comment is given without score, we may assume that the user keep his original score.

Why are rankings given by reviews, as well as scores given by comments so important?

A movie’s ranking is counted based on its relevant reviews. Rankings given by users are important to decide the users’ favorite categories and to recommend friends/movies to the users. So whenever someone tries to give a new review to a movie, no matter he or she has reviewed before or not, his or her review should represent his or her current attitude to the movie.

A review’s score is also important due to similar reasons. We try to establish a model to compute the value of a review, which corresponds to the scores given by comments and its own ranking (each review has a ranking about one movie)*. As a consequence, each review should be separated and not allowed to modified even by the creator. And since scores given by comments may affect the value of the review, we only count the most recent comment given by each user to prevent any malevolent comments to give massive positve/negative scores on one particular review.

* See reference: Cristian Danescu-Niculescu-Mizil, Gueorgi Kossinets, Jon Kleinberg, and Lillian Lee. 2009. How opinions are received by online communities: A case study on Amazon.com helpfulness votes. In Proceedings of the WWW, pages 141–150.

1. User & Friend

A Movie Maniac Matrix system user may have multipal friends, which should be other users. Friend should be a two-way relationship, which means that there is no possibility that A is a friend of B while B is not a friend of A.

2. Movie & Category

Basic information of movie should include a poster, names, companies and actors, etc. And each movie must have at least one category. Categories include:

Action / Adventure / Animation / Children’s / Comedy / Crime / Documentary / Drama / Fantasy / Film-Noir / Horror / Musical / Mystery / Romance / Sci-Fi / Thriller / War / Western. Each user may have at most 5 favorite categories.

3. Movie Following List

Each user may have a movie following list. Each list may include different movies. These movie can be reviewed/ranked or not by the user. It’s just a list for user to easily access to movies that they pay attention to.

4. Review and Ranking

It is a 5-level ranking for movies (eg. 5 stars refers to “Very Like”). Each user can have different reviews on one movie. And each review must have a ranking for the movie. The ranking of the user to the movie is the same as the ranking of his/her most recent review on the movie.

5. Comment and Scoring

It is a 5-level score for reviews (eg. 5 stars refers to “Mostly Agree”). Each user can have diffrent comments on one review. And each comment must have a score for the movie. The score of the user to the review is the same as the score of his/her most recent comment on the review.

6. Most Valuable Review

The value of a review should take into consideration both the approximation rate to the average ranking of the movie, and the average score given by other users. We will establish a model to compute the reviews and give a Most Valuable Review of each movie.

7. Similar User / System Recommended Friend

Our sytem recommends a list of users (Similar users / Possible friends) to current user. These users are computed and generated dynamically according to the favorite categories of the users. Similar users are also used for system to recommend movies the current user (background operation).

8. Message

Messages include incoming and outcoming messages. Each message should have a sender, receiver, subject and body.

Leave a comment