Giter Club home page Giter Club logo

fantastic-books-in-clips's Introduction

Fantastic Books and Where To Find Them

An expert system is one of the first successful forms of AI and was popular in the 80's (yes, pre-Python and Java design patterns, but after the start of great ML and AI academic research). This expert system uses a rule engine written in late 1995 by an engineer at Sandia National Labs.

The rule engine itself is based on an implementation of the Rete algorithm, which optimizes on a simple looping through conditionals by implementing a trie of left hand side patterns to match, and marking nodes as they are fulfilled (not necessarily in sequential order). When a leaf node is reached, the corresponding rule is fired.

Dependencies

  • Jess rule engine, Java-based, can integrate with JSR94 rule engine API
  • CLIPS functional programming language
  • Maven build system, install dependency by downloading jess.jar, running mvn install, referencing under a <dependency> tag in pom.xml

Functionality

  • Asks series of questions based on characteristics of books in dataset
  • Guaranteed recommendation when one remaining book that fits user written characteristics in dataset
  • Uses a CLI and string-built questions

How to Run

This expert system is currently standalone, so this is the process to run the CLI recommendation system. A future improvement is to write a driver to run the code using Java then package into a .jar file.

  1. Download jess.exe from https://www.jessrules.com/jess/download.shtml. (Fun fact: I got to interact with the Jess creator during this process).
  2. Save book_recs.clp in the examples/jess folder.
  3. Run jess.exe using bin/jess.
  4. Run (batch "examples/jess/book_recs.clp").

Future Improvements

This program is not actively worked on at the moment, but forks and pull requests are certainly welcome. The following example extensions are not time consuming to implement.

  • Move build to Maven and write Java driver.
  • Add length of book as a characteristic.
  • Make it so that if the first question is given a book the system doesn't know, it saves that book into the database.
  • Standardize which characteristics go with which appeal factor.
  • Output the reason why the book was chosen along with the recommendation.

Easy Contributions

  • Add a book! Genres can be verified by looking at the Wikipedia page of the book.
  • Update the characteristics of a book.

fantastic-books-in-clips's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.