Easyrec

easyrec is an open-source program that provides personalized recommendations using RESTful Web services to be integrated into Web enabled applications. It is distributed under the GNU General Public License by the Studio Smart Agent Technologies and hosted at SourceForge.

It is written in Java, uses a MySQL database and comes with an administration tool.

History
The development of easyrec, an implementation of the Adaptive Personalization  approach, started in the course of several research and development projects  conducted by the Studio Smart Agent Technologies in close cooperation with international companies. During the year of 2008 the core functionality of easyrec was developed forming the basis of research prototypes focusing on the music domain (e.g. MusicExplorer ). In June 2009 a beta version of easyrec, containing basic administration features, was integrated into a movie streaming portal for evaluation purposes. Furthermore, in September 2009 easyrec was awarded a special recognition in the category “Award for Innovations – IT Innovations for an economic upswing” by the jury of the Austrian state prize for multimedia and e-business. After a comprehensive refactoring phase and the integration of the evaluation results easyrec was published on SourceForge on 18 February 2010. In course of the CeBIT tradeshow 2011 in Hanover easyrec has been awarded the German “INNOVATIONSPREIS-IT 2011”.

Principles
The following five primary goals guided the development of easyrec.
 * It should be a ready-to-use application, not another algorithmic framework
 * It should be easy to use, concerning installation, integration and administration
 * It should be robust and scalable for serving real world applications
 * It should be free of charge, so that anyone can profit from personalization features
 * It should rely on a community-driven development

Uses
Although easyrec is a domain-agnostic, general purpose personalization system, the current Web service API is customized for providing online shops with item recommendations. Especially for small and medium enterprises, easyrec provides a low barrier entrance to personalization.

Features


A major feature of easyrec is a set of usage statistics and other business relevant information presented via an administration and management interface. Furthermore, the easyrec administrator is supported by a variety of administration and configuration functions including the manual import or adaptation of business rules. Integrators or developers benefit from the lightweight Web service APIs (REST and SOAP) as well as from the guided installation wizard.

Concerning personalization functionality easyrec is providing the following services
 * unpersonalized recommendations of the form "other users also bought/viewed/...", etc.
 * personalized recommendation depending on individual preferences
 * rankings such as "most bought items", "most viewed...", etc.

Additionally, as an integration showcase, a MediaWiki extension was developed and is bundled with the application.

Currently additional features like further recommender algorithms and a plugin-system are evaluated and prepared for integration into the easyrec system.

Architecture
The underlying architecture of easyrec is designed to be robust and scalable—separating time-consuming computations from the task of online assembling of recommendations.

easyrec is designed as a multi-layer system consisting of
 * a database layer as storage of user actions and pre-calculated business rules
 * an application layer for hosting online and offline recommendation services and
 * an API layer for various Web service interfaces.

Moreover, the generator server contains different item association generators which create business rules that define a relation between two items.