Home - UCM-GAIA/RecoLibry-Core GitHub Wiki

RecoLibry-Core is a Java library to implement recommender systems. This library follows a component-based architecture that facilitates the reuse of existing third-party frameworks and allows the creation of new elements to be included in recommendation systems. RecoLibry-Core defines the scheme of a recommender system using a set of interfaces and abstract classes.

Main structure

The following diagram shows the most important classes that are used in RecoLibry-Core to create a recommendation system:

UML class diagram

The main class is RecommenderSystem. It executes all recommender system steps and it returns the query with the information needed by the algorithm. To do that, RecommenderSystem has two attributes: algorithm and query. The first one contains an instance of a RecommenderAlgorithm. It will be a class that implements the RecommenderAlgorithm interface. In addition, it contains a class that implements the Query interface. It stores the information needed to execute a query in the recommender system. Finally, the recommender system results will be returned in RecommendedResult objects. These objects contain an item recommended and its corresponding recommended value. To know how is the execution flow of a recommender system in RecoLibry-Core, we recommend reviewing the section execute recommender system.

As you can see, when we want to implement a new algorithm we must create a class that implements the RecommenderAlgorithm interface. In addition, we need to create a class that implements the Query interface. Next, we explain how to implement both interfaces.

Wiki index

This wiki explains how to develop recommendation systems using the RecoLibry-Core framework. The content of this wiki is:

  1. Configure new project
  2. Recommender System Configuration
  3. Building Recommender System
  4. Recommender System Execution
  5. Implement a new algorithm
  6. Examples:
  7. JavaDoc

If you want to see some examples of recommender systems implemented with this library, you can visit the repository RecoLibry-Examples.