/KohaRecommenderEngine

Crowd-sourced recommendations based on old issues in your library :)

Primary LanguagePerl

KohaRecommenderEngine

This Koha Plugin is an attempt at creating a "crowd-sourced" recommendation engine.
At the time of writing it is a collaborative-filtering based recommender system.
Caution : Only issues less than one year old are took into account.
Similar references are linked to each others by patron issues.
It can easily be extended to support content based filters as well (have a look at the code).

How it works?

I made this little sketch to try to explain things. How it works

Want to learn more about Recommender Systems?

Here is a list of links about the theory beyond the code :

Here are some links more specifically about Recommender System in Libraries:

To install the plugin

First you have to modify koha-conf.xml and set enableplugins to 1 (it is set to 0 by default).
Then check in Koha Administration panel, search for the UseKohaPlugins variable, and set this to Enable.
Finally go to the Reports panel and click on "Report Plugins".
On the top left corner you'll see an "Upload a plugin" link, which will enable you to install the KPZ file.

Configuration - Integration to OPAC

Configuration needs to be run at least once for the plugin to work.
On first configuration you will have to choose how many recommendations to compute and how many years of historical data to analyse.
You can also choose whether or not you want the results to be available on OPAC (checked = yes).
After clicking on the "Save" button, the plugin should be working correctly and results will be displayed in the intranet interface + Opac interface if enabled.

Opac Details Recommendation

How to use

If you have not integrated to Opac you could still use the plugin to generate lists of recommendations. Easy! Click on "Run report" and type in a biblionumber.
You'll then be rewarded by a list of references which were top issued by patrons.

To Do

  • Fasten/Optimize query
  • Develop some configuration options
  • Enable handling of "Content-Based Filtering" techniques
  • Improve UI.
  • Any other idea is welcome

Greetings

  • Kyle Hall who developped Koha Plugin functionnality and provided the community with running examples.
  • Lyon 3 Koha Team for their "knowledge sharing" values and for giving me the necessary pre-requisite for having fun while coding in Perl and JS.

FR - KohaRecommenderEngine

Ce plugin est une tentative d'implémentation d'un système de recommendation.
Actuellement c'est un système assez basique de "Filtre Collaboratif".
Les références bibliographiques sont liées les unes aux autres par les emprunts des usagers.
Attention, seuls les emprunts datant de moins d'un an sont pris en comptes.
Le code peut facilement être étendu pour prendre également en charge des filtres basés sur le contenu.

Comment ça marche?

J'ai fait cette petite bande-dessinée pour tenter d'expliquer le fonctionnement (pas encore traduite). How it works

En savoir plus sur les systèmes de recommendation

Quelques liens à propos de la théorie de fonctionnement des systèmes de recommendation:

Quelques liens plus spécifiques à propos de leurs usages en bibliothèques:

Pour installer le plugin

En premier lieu vous devrez modifier le fichier "koha-conf.xml" et positionner la variable "enableplugins" à 1 (elle est à 0 par défaut).
Ensuite rendez vous dans le module d'Administration de Koha, cherchez la variable "UseKohaPlugin" et positionnez là à "Enable".
Pour finir, aller dans la partie "Rapports" et cliquez sur le lien "Plugins de rapports".
Dans le coin supérieur gauche vous devriez alors voir un lien "Téléverser un plugin" ou "Upload a plugin", qui vous permettra d'installer le fichier ".KPZ".

Configuration - Integration à l'OPAC

Pour que le plugin fonctionne correctement il doit être configuré au moins une fois.
À la première configuration vous devrez renseigner le nombre de résultats à générer ainsi que le nombre d'années d'historique de prêt à prendre en compte.
Vous pouvez également choisir si vous souhaitez que les résultats soient affichés sur l'OPAC (case coché = oui).
Après avoir cliqué sur le bouton "Save" le plugin devrait fonctionner normalement et les résultats s'afficher sur l'interface Pro, et également sur l'OPAC si l'option a été coché.

Si tout s'est passé correctement vous devriez obtenir un nouvel onglet à la suite de l'onglet "Commentaires" sur la page opac-detail: Opac Details Recommendation

To Do

  • Optimiser la requète SQL
  • Ajouter des options de configurations
  • Permettre la prise en charge de filtres de contenus
  • Améliorer l'interface utilisateur.
  • Toutes les idées sont les bienvenues!

Remerciements

  • Kyle Hall pour le développement des Plugins et les exemples fournis à la communauté.
  • l'équipe Koha de l'Université Lyon 3 pour sa valorisation du partage des connaissances et pour m'avoir donné les prérequis nécessaires en Perl, JS et SQL.