Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Join the chat at Build Status

This project contains development artifacts used to perform research around product comparison matrices (PCM). This work is currently involving members of the DiverSE (DIVERsity-centric Software Engineering) research team as well as students at University of Rennes 1 (ISTIC).

This project is released under Apache v2 License.

Development tools

Frameworks and dependencies


This github repository contains several projects :

  • api-java: Java interface to the PCM API
  • api-java-impl: Java implementation of the API
  • model: contains the PCM metamodel, takes care of code source generation for the API
  • dataset-best-buy: builds datasets from
  • dataset-wikipedia: builds datasets from Wikipedia
  • io-wikipedia: parses Wikipedia pages and creates PCMs
  • io-best-buy: parses and creates PCMs
  • play-app: contains OpenCompare website (Play server)

Getting started


First, make sure your JAVA_HOME environment variable is set to the location of a JDK version 8 or later. Then execute the following (On Windows avoid specials chars from filepath like : C:/Users/François/OpenCompare) :

git clone
cd OpenCompare/org.opencompare
export PLAY2_HOME=play-app
mvn clean install

You can also use this option to skip tests:

mvn clean install -DskipTests

You can also permanently set the PLAY2_HOME environment variable by adding the following to the .bashrc file in your /home directory:

export PLAY2_HOME=/.../OpenCompare/org.opencompare/play-app/

If you wish to use your own installation of Play, export the relevent path in PLAY2_HOME.

Start the server

To launch the Play application (basically the OpenCompare website), change directory to org.opencompare/dataset-wikipedia and run:

mvn test -PbuildDataset

Then, go to org.opencompare/play-app and execute the following command to populate the database (be sure to have a MongoDB server running through mongod):

./activator test

Finally, or if you already have populated the database, you can launch the HTTP server:

./activator run

Use website

Now the server is running, you can connect on:

Reset the database

To remove all the PCMs from the database, you have to connect to your MongoDB instance and remove all the elements of the pcms collection in the opencompare database, as in the following commands:


use opencompare


Other repositories

We have other repositories and sub-projects:

  • getting-started (for using the Java API)
  • editor (JavaScript, deprecated, now integrated)
  • data-importers (for importing PCMs from various sources: opendata API, tabular data, unstructured data, etc.)