Program to built book recommendation system, Programming Languages

Assignment Help:

1 Problem Description

The task of the assignment is to build a book recommendation system for Auer Libraries. The system is to be implemented in Prolog and as the owners of the library intend to extend their collection beyond its current contents the book recommendation system should work with more than just the sample library provided.

Analysis has deemed the following structure for the book items:

books(book(title(Title),
author(Surname, GivenName),
type(Type),
pages(NoOfPages),
series(SeriesTitle),
genre([X, Y, Z]))).

Users of the system should be prompted to determine what type of book they would like to read based on what genre (or genres) they would like to book to fall into, the length, whether or not it belongs to a series. Though the sample library provided is small it must be remembered that the actually library currently numbers over 3000 items and as a result asking only one question is likely to be insufficient, however the system must not require that ALL possible questions are asked of the user: if the user is happy with the provided list of recommendations is small enough then no further questions are to be asked.

Book length is given in number of pages however users are never going to know the exact number of pages so when asking length you will need to ask if they want a short (<250 pages), medium (250-500 pages), long (501-900 pages) or epic length read (greater than 900 pages). (Note epic length can also result from a set of short and/or medium books in the same series.)

Genres implies that a user may want to read a fantasy/romance thus a book MUST belong to both genres to be recommended (it can belong to other genres as well). If a user wishes to read pure fantasy then it MUST ONLY belong to that genre. If a user wants to read fantasy, but does not require pure fantasy then the book MUST have fantasy as one of its genre list but is not required to have only fantasy as its genre.

1.1 Data set.

books(book(title(‘On Basilisk Station'),
author(weber, david),
type(hardcover),
pages(240),
series(‘Honor Harrington'),
genre([‘science fiction'])),
book(title(‘Honor of the Queen'),
author(weber, david),
type(hardcover),
pages(267),
series(‘Honor Harrington'),
genre([‘science fiction'])),
book(title(‘Honor Among Enemies'),
author(weber, david),
type(hardcover),
pages(267),
series(‘Honor Harrington'),
genre([‘science fiction'])),
book(title(‘Pawn of Prophesy'),
author(eddings, david),
type(paperback),
pages(300),
series(‘The Belgariad'),
genre([‘fantasy'])),
book(title(‘Queen of Sorcery'),
author(eddings, david),
type(paperback),
pages(350),
series(‘The Belgariad'),
genre([‘fantasy'])),
book(title(‘Regency Buck'),
author(heyer, georgette),
type(paperback),
pages(321),
series(),
genre([‘romance', 'regency', 'historical'])),
book(title(‘The Nonesuch'),
author(heyer, georgette),
type(paperback),
pages(324),
series(),
genre([‘romance', 'regency', 'historical'])),
book(title(‘Taming Lord Renwick'),
author(savery, jeanne),
type(paperback),
pages(240),
series(‘The White Tiger'),
genre([‘romance', 'regency', 'historical'])),

book(title(‘Lady Serena's Surrender'),
author(savery, jeanne),
type(paperback),
pages(248),
series(‘The White Tiger'),
genre([‘romance', 'regency', 'historical'])),
book(title(‘Pride and Prejudice'),
author(austen, jane),
type(paperback),
pages(324),
series(),
genre([‘romance','historical'])),
book(title(‘Burnt Offerings'),
author(hamilton, laurell),
type(paperback),
pages(324),
series(‘Anita Blake: Vampire Hunter),
genre([‘romance','supernatural'])),
book(title(‘Blue Moon'),
author(hamilton, laurell),
type(paperback),
pages(323),
series(‘Anita Blake: Vampire Hunter),
genre([‘romance','supernatural'])),
book(title(‘The Dark Is Rising'),
author(cooper, susan),
type(paperback),
pages(200),
series(‘The Dark Is Rising'),
genre([‘fantasy', 'historical', ‘young adult'])),
book(title(‘Greenwitch'),
author(cooper, susan),
type(paperback),
pages(200),
series(‘The Dark Is Rising'),
genre([‘fantasy', 'historical', ‘young adult'])),
book(title(‘Bride of the Mist'),
author(skye, christina),
type(paperback),
pages(456),
series(‘Draycott Abbey'),
genre([‘fantasy', 'historical', ‘romance'])),
book(title(‘Key to Forever'),
author(skye, christina),
type(paperback),
pages(384),
series(‘Draycott Abbey'),
genre([‘fantasy', 'historical', ‘romance'])),

book(title(‘Hour of the Rose'),
author(skye, christina),
type(paperback),
pages(384),
series(‘Draycott Abbey'),
genre([‘fantasy', 'historical', ‘romance'])),
book(title(‘Lord Of The Rings'),
author(tolkien, jkk),
type(paperback),
pages(1024),
series(‘'),
genre([‘fantasy'])),
).

2 Requirements
The following requirements should be satisfied when building the system.
(1) The system should be built using PROLOG.
(2) The system should be menu based. This means it allows the user to choose functions during its execution.
(3) The system should be interactive. It acquires information of a sample by asking a sequence of questions which answered by the user. Those questions MUST be multiple-choice questions. The system then recommends a book based on information provided by the user.
(4) Rules in the system should be as general as possible. This means you should separate data from rules, and hence, minimise the usage of constants in the rules.


Related Discussions:- Program to built book recommendation system

Explain the applet element, Explain the applet Element ? Applets are em...

Explain the applet Element ? Applets are embedded in web pages by using the and tags. The APPLET element is same to the IMG element. Like IMG APPLET references a source fil

Write a prolog predicate has duplicates, Write a Prolog predicate has_dupli...

Write a Prolog predicate has_duplicates(L) that is true if list L contains duplicated elements (that is at least 2 copies of an element). For instance: ?- has_duplicates([a,e,b,

Write a booking and pricing system, Write a booking and pricing system for ...

Write a booking and pricing system for seats for performances in a theatre. Design and write a system to handle information (equipment, people, events etc.) for a club. Given

String data transfer instruction in assembly language, What are the string ...

What are the string data transfer instruction in assembly language? Explain all types of string data transfer instructions with examples of each? What will be the behavior of direc

Write a shell script to find the maximum of three numbers, W.A.S.S to find ...

W.A.S.S to find the maximum of three numbers Program # W.A.S.S to find the maximum of three numbers echo "Enter three No.:" read no1 read no2 read no3 if test $no1 -gt $n

Write a prolog predicate for a list, Write a Prolog predicate remove_nth(N,...

Write a Prolog predicate remove_nth(N,L1,L2) that is true if list L2 is just list L1 with its Nth element removed. If L1 does not have an Nth element then the predicate should fail

Define a procedure which makes an avl tree with one node, (a) Define a proc...

(a) Define a procedure called make-avl-tree which makes an AVL tree with one node. Also create another constructor build-avl-tree that creates an AVL tree from a root, left subtree

Java swing, Expertsmind brings you unique solution in java assignments ...

Expertsmind brings you unique solution in java assignments Swing Move is the primary Java GUI gadget tool set. It is part of Oracle's Java Groundwork Sessions (JFC) - an A

Creates an object and prompt the user to enter the name, Design an object d...

Design an object definition named Pet, which should have the following fields: name: The name field holds the name of a Pet type: The type field holds the type of anima

Determine that the processes are iterative or recursive, Each of the follow...

Each of the following two procedures defines a method for adding two positive integers in  terms of the procedures inc, which increments its argument by 1, and dec, which decrement

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd