A knowledge-based movie recommendation system built using Prolog and expert system concepts.
This project is a Prolog-based Movie Recommendation System that uses a knowledge-based expert system approach to provide personalized movie recommendations. The system uses a knowledge-based expert system approach to provide personalized movie recommendations for users.
The recommendation engine combines:
- Genre-based recommendation
- Director-based recommendation
- Collaborative filtering
- User similarity analysis
The project demonstrates how Artificial Intelligence concepts and logical reasoning can be implemented using Prolog.
The main objectives of this project are:
- To build a movie recommendation expert system using Prolog
- To implement logical rules for intelligent decision making
- To analyze user preferences and ratings
- To generate personalized movie suggestions
- To demonstrate collaborative filtering concepts
| Technology | Purpose |
|---|---|
| Prolog | Knowledge representation and logical reasoning |
| SWI-Prolog | Running and testing the system |
| GitHub | Version control and project hosting |
Stores movie information including:
- Movie name
- Genre
- Director
Example:
movie(inception, scifi, nolan).Stores:
- Preferred genres
- Preferred directors
Example:
prefers_genre(user_a, scifi).
prefers_director(user_a, nolan).Users can rate movies on a scale from 1β5.
Example:
rating(user_a, inception, 4).Suggests movies based on the user's favorite genres.
Suggests movies directed by preferred directors.
The system identifies users with similar tastes by comparing ratings and recommends highly rated movies from similar users.
Calculates:
- Shared movies between users
- Rating similarity
- Average similarity score
Movie-Recommendation-System/
β
βββ prolog.pl
βββ LICENSE
βββ README.md
Download from: https://www.swi-prolog.org/
Load the Prolog file:
[prolog].recommend_genre(user_a, Movie).recommend_director(user_a, Movie).recommend_collaborative(user_a, Movie).recommend(user_a, Movie).recommend_no_duplicates(user_a, Movie).Example:
?- recommend_director(user_a, Movie).
Movie = inception ;
Movie = interstellar ;
Movie = dark_knight.- Managing recommendation duplicates
- Handling sparse rating data
- Calculating user similarity efficiently
- Maintaining modular and reusable rules
- Knowledge Representation
- Rule-Based Expert System
- Logical Inference
- Collaborative Filtering
- Similarity Measurement
The project successfully demonstrates how Artificial Intelligence techniques and logical programming can be used to create an intelligent movie recommendation system. The modular design allows easy scalability by adding more users, movies, and recommendation rules in the future.
Department of Computer Science & Engineering (CSE)
University of Asia Pacific (UAP)
GitHub: https://github.com/tausif112
This project is licensed under the MIT License.