PROVING GROUND
about academic work proving ground  

DBpedia Movie Recommender

DBpedia Movie Recommender (DBMR) is a simple browser-based application for exploring the set of 80K movies from DBpedia using a similarity measure computed at query time and a network visualisation interface.

Try it

The playground is available at: http://klarman.me/proving-ground/dbmr.

Tools

The backend is written in prolog and runs on the SWI-Prolog engine. The front makes use of the vis.js library for visualising networks. The communication between the two is enabled via Pengines.

Data

The dataset (1.3M triples) contains information about around 80K movies with the following properties:

  • http://dbpedia.org/property/starring (100881 values)
  • http://purl.org/dc/terms/subject (21295 values)
  • http://dbpedia.org/property/country (1193 values)
  • http://dbpedia.org/property/director (30389 values)
  • http://dbpedia.org/property/language (1426 values)
Warning! The dataset is rather messy and deserves a serious clean up.

Similarity measure

Let X1, X2 be two objects and P a property with N(P) denoting the cardinality of the entire range of P in the dataset. Then the similarity score between X1 and X2 over P is given as:

Sim(X1, X2, P) = |I|*(N(P)/(|X1|+|X2|-|I|))^K

where I denotes a nonempty intersection of X1 and X2, and K is a "magic" parameter to account for the fact that usually N(P) >> (|X1| + |X2| - |I|). The total similarity between two objects is a weighted sum of the similiarity scores over all properties.

Additional reference

  • Szymon Klarman. DIY: DBpedia Movie Recommender – an exercise in linked open data engineering. Blog post, 2016. [post]