Experimental configuration

In our framework, we include a program that simplifies finding the community division of a network. This program can be executed as follows, once the binary for the library has been generated:

java -jar RELISON.jar communities network multigraph directed weighted selfloops algorithms output

where

  • network: a file containing the social network graph to analyze.

  • multigraph: true if the network allows multiple edges between each pair of users, false otherwise.

  • directed: true if the network is directed, false otherwise.

  • weighted: true if we want to use the weights of the links, false otherwise (weights will be binary).

  • selfloops: true if we allow links between a node and itself, false otherwise.

  • algorithms: a Yaml configuration file for reading the community detection algorithms we want to apply (see Configuration file below).

  • output: a directory in which to store the structural properties.

Configuration file

In order to select a suitable set of metrics, the program receives, as input, a configuration file, specifying the different properties we want to measure and analyze. This is a Yaml file with the following format:

algorithms:
  algorithm_name1:
    param_name1:
      type: int/double/boolean/string/long/orientation/object
      value:
      object:
        name_of_the_object:
          param_name1:
            type: int/double/boolean/string/long/orientation/object
            ...
          param_name2:
            type: int/double/boolean/string/long/orientation/object
            ...
  algorithm_name2:
    ...

Output file

Once the community detection algorithm is generated, the community partition is stored into a file. Such file has the following format, where each line is tab-separated:

node-id comm-id

where node-id is the identifier of the user in the network, and comm-id is the community number.