The goal of this project is to integrate a recommendation system, allowing XWiki to propose similar pages when the user navigates on one XWiki document and / or to help automatize content organisation.

One of the frequent problems of knowledge management is related to the organisation of the shared content, both for content retrieval (when "reading" the wiki) and for content creation (when "writing" on the wiki). XWiki's standard features of data organisation and structuring are already trying to answer this need by providing users with tools to make it easy to organize the data, but they don't completely prevent information duplication, misplacing information on the wiki when creating new pages and difficulties to retrieve those when reading. In most knowledge management groups there would be one or more "information stewards": users that are "responsible" (formally or informally) of keeping information clean and organized (by helping the other users or by doing the cleanup themselves). The purpose of this project is to attempt to replace the human stewards with robots emoticon_smile .

In order to tackle this, the student should have:

  • basic understanding of the problem of recommendations, as well as of existing approaches (ML/AI);
  • basic understanding of the problem of (document) classification, assisted or unassisted, as well as of existing approaches (ML/AI);
  • basic understanding of XWiki's content organisation (page tree, page metadata & structure) - this knowledge can be acquired during the project preparation phase;
  • experience with knowledge sharing in a group (as an exercise or as a real-life activity) is a plus: collaborative notes taking, project documentation, etc.

The student will need to propose an open-source framework (or library) to be used as a base for integrating this recommendation and/or classification system. The choice of this framework is left to the discretion of the student, but it should satisfy the following points :

  • It should have an Open-Source license ;
  • It should be actively maintained ;
  • It should provide stable versions, it should not be a project in alpha or beta ;
  • It can be specialized in recommendation and/or classification systems or it can more generic and targeted for solving other machine learning problems.

The framework chosen and the motivations behind it should be exposed in the student proposal, before the start of the project.

There are 2 major axes that can be tackled by this project, the extent to which each of the axes is explored can be chosen by the student, based on their experience and/or preference:

  • recommendations of similar contents to users reading / searching / creating content
  • proposals of (re)organisation of the content of the whole wiki or a part of it, to help a knowledge steward identify related contents and keep the wiki organised.

As in the case of a human knowledge steward, it is probably interesting to include learning as an essential component of the robot steward in its quest for obtaining good results. 

The various usage scenarios / use cases should be explored and presented by the student in the proposal.

Before starting with this project, we recommend that you take a look at a previous research project that was done in a similar scope on top of XWiki by a researcher in 2015. While the tools that have been used as part of this research project are not maintained anymore, some background work has already been done to explore ways for integrating recommendations in XWiki.

Making a proposal

Your proposal for this project should include the following elements. If you feel like something is missing, don't hesitate to add it to the list, or ping us on the chat in case of any question.

  • A presentation of yourself, and why you would like to do this project. If you have some references in the field of machine learning or, more specifically, recommender systems, don't hesitate to mention it.
  • The presentation of the framework that you propose to integrate as part of this project, along with some motivation non why you think that this framework is best suited for the project. You can also use this part to provides the strong and weak points of the framework, and show how it compares to other solutions.
  • An overview of the integration of the recommendation/classification system, as you would see it. This overview can be technical (how to integrate with the framework, how to push and retrieve data, etc …) and functional (how to integrate the recommendations in the UI). This part should include both technical details about how it would be done but also scenarios that would be addressed by the integration. 
  • References to the contributions done on the XWiki project up to this point (either links to JIRA issues, or pull requests).



Get Connected