Skip to content
/ RELISON Public

A framework for REcommending LInks in SOcial Networks

License

Notifications You must be signed in to change notification settings

ir-uam/RELISON

Repository files navigation

Java CI with Maven GitHub license Documentation Status

RELISON logo

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.

Creators

This framework has been created by the Information Retrieval Group at Universidad Autónoma de Madrid. The main contributors to this library are:

Citation

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}
}

Packages

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.

System Requirements

  • 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.

Instalation

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:

Option A: Maven Central:

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>

Option B: Manual installation

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: