Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎬 Movie Recommendation Knowledge-Based System

πŸ“Œ Project Information

A knowledge-based movie recommendation system built using Prolog and expert system concepts.


πŸ‘¨β€πŸ’» Project Overview

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.


🎯 Objectives

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

βš™οΈ Technologies Used

Technology Purpose
Prolog Knowledge representation and logical reasoning
SWI-Prolog Running and testing the system
GitHub Version control and project hosting

🧠 System Features

βœ… Movie Knowledge Base

Stores movie information including:

  • Movie name
  • Genre
  • Director

Example:

movie(inception, scifi, nolan).

βœ… User Preferences

Stores:

  • Preferred genres
  • Preferred directors

Example:

prefers_genre(user_a, scifi).
prefers_director(user_a, nolan).

βœ… Ratings System

Users can rate movies on a scale from 1–5.

Example:

rating(user_a, inception, 4).

βœ… Genre-Based Recommendation

Suggests movies based on the user's favorite genres.


βœ… Director-Based Recommendation

Suggests movies directed by preferred directors.


βœ… Collaborative Filtering

The system identifies users with similar tastes by comparing ratings and recommends highly rated movies from similar users.


βœ… Similarity Analysis

Calculates:

  • Shared movies between users
  • Rating similarity
  • Average similarity score

πŸ“‚ Project Structure

Movie-Recommendation-System/
β”‚
β”œβ”€β”€ prolog.pl
β”œβ”€β”€ LICENSE
└── README.md

▢️ How to Run

Step 1: Install SWI-Prolog

Download from: https://www.swi-prolog.org/


Step 2: Open SWI-Prolog

Load the Prolog file:

[prolog].

Step 3: Run Queries

Genre Recommendation

recommend_genre(user_a, Movie).

Director Recommendation

recommend_director(user_a, Movie).

Collaborative Recommendation

recommend_collaborative(user_a, Movie).

All Recommendations

recommend(user_a, Movie).

Recommendations Without Duplicates

recommend_no_duplicates(user_a, Movie).

πŸ“Š Sample Output

Example:

?- recommend_director(user_a, Movie).

Movie = inception ;
Movie = interstellar ;
Movie = dark_knight.

🚧 Challenges Faced

  • Managing recommendation duplicates
  • Handling sparse rating data
  • Calculating user similarity efficiently
  • Maintaining modular and reusable rules

πŸ“š AI Concepts Used

  • Knowledge Representation
  • Rule-Based Expert System
  • Logical Inference
  • Collaborative Filtering
  • Similarity Measurement

πŸ“– Conclusion

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.


πŸ‘¨β€πŸŽ“ Author

Md Tausif Uddin

Department of Computer Science & Engineering (CSE)
University of Asia Pacific (UAP)

GitHub: https://github.com/tausif112


πŸ“œ License

This project is licensed under the MIT License.

About

Knowledge-Based Movie Recommendation System built with Prolog and Expert System techniques.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages