In our framework, we include a program that simplifies measuring the structural properties of a given network. This program can be executed as follows, once the binary for the library has been generated:
java -jar RELISON.jar sna network multigraph directed weighted selfloops metrics output (-communities comm1,comm2,...,commN --distances)
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.metrics
: a configuration file for reading the structural properties we want to measure (see Configuration file below).- :code:
output
: a directory in which to store the structural properties. - Optional parameters:
-communities comm1,comm2,...,commN
: a comma-separated list of files containing community partitions of the users.--distances
: indicates that we want to pre-compute the distance-based metrics in the network (recommended if more than one is used).
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:
metrics:
metric_name1:
type: vertex/edge/pair/graph/indiv. community/global community
params:
param_name1:
type: int/double/boolean/string/long/orientation/object
values: [value1,value2,...,valueN] / value
range:
- start: startingValue
end: endingValue
step: stepValue
- start: ...
objects:
name_of_the_object:
param_name1:
type: int/double/boolean/string/long/orientation/object
...
param_name2:
type: int/double/boolean/string/long/orientation/object
...
metric_name2:
...
In this configuration file, we identify each metric by each name, and, afterwards, we identify its type. We differentiate between six groups of metrics:
- Vertex metrics: Properties of individual nodes in the network (e.g. degree, local clustering coefficient).
- Edge/Pair metrics: Properties of pairs of users in the network. If they are selected with the "edge" identifier, the metrics are only computed over the set of links in the network.
- Graph metrics: Global properties of the network (e.g. global clustering coefficient).
- Individual community metrics: Properties of a single community in the partition (e.g. community size, degree).
- Global community metrics: Global metrics depending on the community partition (e.g. modularity).