Main page | Documentation | Javadoc | Twitter | Docker
RELISON (/rɪˈlaɪʃ(ə)n/) is a Java framework for experimentation on the link recommendation task in social networks, which aims to identify those people in the network with whom a user might be interested to connect, interact or befriend. RELISON provides tools for executing and evaluating contact recommendation approaches, considering not only their accuracy, but also aspects like their novelty, diversity and the effects that such recommendations have on global properties of the networks (as changes in the structural properties or in the characteristics of the information arriving to the users). In order to measure these effects, RELISON also provides functionality for a) analyzing the structural properties of social networks, b) detecting clusters of users (communities) and c) simulating the diffusion of information in a social network. These functionalities can be used regardless of whether recommendations have been provided to the users.
Built upon the RankSys library, this framework has been programmed with Java 14 and has been created as the result of the research documented in several publications on contact recommendation in social networks and a PhD thesis. The code is licensed under the Mozilla Public License v.2.0.
This framework has been created by the Information Retrieval Group at Universidad Autónoma de Madrid. The main contributors to this library are:
- Javier Sanz-Cruzado ([email protected])
- Pablo Castells ([email protected])
If you find RELISON useful for your research or development, please, cite the following paper:
J. Sanz-Cruzado and Pablo Castells. 2022. RELISON: A Framework for Link Recommendation in Social Networks. SIGIR 2022: The 45th International ACM SIGIR Conference on Research and Development in Information Retrieval, Madrid, Spain, July 2022. DOI: 10.1145/3477495.3531730
Please, find below the BibTex for the publication
@inproceedings{SanzCruzado_Castells_2022,
author = {Javier Sanz-Cruzado and
Pablo Castells},
title = {{RELISON}: {A} {F}ramework for {L}ink {R}ecommendation in {S}ocial {N}etworks},
booktitle = {{SIGIR} 2022: The 45th International {ACM} {SIGIR} Conference on Research
and Development in Information Retrieval, Madrid, Spain, July
11-15, 2021},
publisher = {{ACM}},
year = {2022},
pages = {2992-–3002},
doi = {10.1145/3477495.3531730}
}
Up to date, the following packages have been published:
- RELISON-core: Basic graph definitions and generators.
- RELISON-sna: Social network analysis metrics and community detection.
- RELISON-content: Classes and definitions for user-generated contents in social networks.
- RELISON-linkpred: Link prediction and contact recommendation functionalities.
- RELISON-diffusion: Simulation of information diffusion dynamics.
- RELISON-examples: Examples showcasing the functionality of the library.
- Java JDK: Java 14 or above.
- Maven: Tested with version 3.6.0.
- R: Tested with version 3.6.3.
- GLIBC: In Linux, to execute path-based approaches, this library uses JBLAS 1.2.5, which requires GLIBC version.
- Matlab: For some matrix-based approaches, we provide alternative implementations in Matlab. It has been tested with version R2020a.
In order to install this framework, you need to have Maven http://maven.apache.org installed on your system. Then, you have two different options:
In order to use the library, you only need to import the package you are interested to use in your project from Maven Central. To do this, add the following dependence to your POM:
<artifactId>RELISON-[package-name]</artifactId>
<groupId>io.github.ir-uam</groupId>
<version>1.0.0</version>
First, download the files into a directory. If you want to obtain a .jar containing all the packages, go to the Relison-examples directory and execute the following command:
mvn compile assembly::single
If you just want to install and add all the packages to your Maven library, in the main directory, execute the command:
mvn install
Once it is installed in your Maven library, you can import the package you are interested to use in your project adding the following dependence.
<artifactId>RELISON-[package-name]</artifactId>
<groupId>io.github.ir-uam</groupId>
<version>1.0.0</version>
We plan to add the library to Maven Central in the future, but, as of now, it is not available there.
In case you do not want to use Maven, it is still possible to compile the code using any Java compiler. In this case, you will need the following libraries:
- RankSys v0.4.3.: http://ranksys.github.io
- Fastutils v8.5.2.: http://fastutil.di.unimi.it/
- Colt version v1.2.0: https://dst.lbl.gov/ACSSoftware/colt
- Google MTJ version v1.0.4: https://github.com/fommil/matrix-toolkits-java
- Jung v2.1.1.: http://jung.sourceforge.net/ (Obtained from MavenCentral)
- Apache Lucene v8.4.1.: https://lucene.apache.org/
- JUnit v4.13.1.: https://junit.org/junit4/
- Apache Commons CSV v1.5: https://commons.apache.org/proper/commons-csv/
- Terrier v5.1: http://terrier.org/
- Weka v3.6.6.: https://www.cs.waikato.ac.nz/ml/weka/
- Cloning v1.9.2.: https://github.com/kostaskougios/cloning
- JBLAS v.1.2.5.: http://jblas.org/