RecRDF4J: Recommendations on top of RDF4J
Recommender Systems (RS) require data models that are able to represent the consumption relationship between users and items. Whereas these models typically depend on the technique applied (e.g. matrix for SVD), we believe that a graph representation is very suitable to encode all kinds of interconnections, between users, between items, or between attributes of both, users and items.
For instance, items, their attributes and the categories to which they belong, as well as the interconnections between them can be represented as nodes and paths in the graph. This representation is particularly useful for a cross-domain setting, in which items of different domains have less common attributes and the best one can do is rely on those interconnections.
However the task of knowledge acquisition, finding structured data and integrating it, is expensive. We believe that Semantic Web standards have enough to offer in this regard. One could for instance integrate a dataset for recommendations with Dbpedia, a well-known Linked Open Data (LoD) dataset, and have access to this structured RDF-knowledge. Interestingly RDF is also equipped with semantic predicates which could certainly be used to improve the quality of recommendations.
RecRDF4J is a project that aims at integrating these two paradigms and extends the Java Framework for RDF processing by adding to it the capability of producing recommendations. Two are the modules included in this project, recommender and recommendereval. The role of the first one is to define a new kind of repository called SailRecommenderRepository with the extended capability. This repository allows one to attach a recommender model to it. The second module allows one to evaluate the recommender integrated into the system according to standard metrics, such as precision, recall, MAE, RMSE, NDCG, MRR, etc.
- RDF4J. Java framework for processing RDF data.