Contents
Repository for the Trust Manager Module (T4.5).
Trust is a very important aspect of Social Media platforms nowadays, and will become a crucial in the near future. Indeed humans often base their relationships based on how much they trust other people. Indeed, meaningful relationships are characterized by a certain level of trust between the two parties. An individual that has a trustful relationship with another one will be likely to have a positive and frequent communication. Moreover, one will be probably willing to share some social information and content that is made unavailable to others (the relationship with whom lacks of trustfulness).
In this module we implement a privacy-preserving trust evaluation model, which is based on the most relevant features used for trust computation, such as interaction between users, and computes the trust values between the ego and each of its alters. The computation is supported by the Contextual Ego Network, which provides the friendship relationships and the contexts of the ego. Other HELIOS modules can utilize the calculated trust value thanks to the Trust module extremely intuitive APIs, and make decisions, e.g., what part of the profile can be shared, how urgent the message from an alter is to the ego, and so on.
The Trust Manager is a multithreaded module that periodically computes a new trust value for each node in each active context, and then updates the Contextual Ego Network with the newly computed trust value by storing it onto the corresponding edge.
Each running thread of the Trust Manager corresponds to an active context; whenever a context becomes inactive, the respective thread is put to a wait state through a condition variable.
The Trust Manager depends on the following HELIOS modules:
This module provides APIs to get trust scores related to the relationship between the ego and each alter in the Contextual Ego Network, differentiating them based on the context of reference. For each new alter, the module computes an initial trust value that only takes into consideration the information that is available at that stage; each trust value is then updated every set interval of time by also taking into account the information that can be derived from a sentimental analysis of the interactions, performed by the Neurobehavioural module.
To manage project dependencies developed by the consortium, the approach proposed is to use a private Maven repository with Nexus. To avoid clone all dependencies projects in local, to compile the "father" project. Otherwise, a developer should have all the projects locally to be able to compile. Using Nexus, the dependencies are located in a remote repository, available to compile, as described in the next section. Also to improve the automation for deploy, versioning and distribution of the project.
Similar to other dependencies available in Maven Central, Google or others repositories. In this case we specify the Nexus
repository provided by Atos: https://builder.helios-social.eu/repository/helios-repository/
This URL makes the project dependencies available.
To access, we simply need credentials, that we will define locally in the variables heliosUser
and heliosPassword
.
The build.gradle
of the project define the Nexus repository and the credential variables in this way:
repositories {
...
maven {
url "https://builder.helios-social.eu/repository/helios-repository/"
credentials {
username = heliosUser
password = heliosPassword
}
}
}
And the variables of Nexus's credentials are stored locally at ~/.gradle/gradle.properties
:
heliosUser=username
heliosPassword=password
To request Nexus username and password, contact with: jordi.hernandezv@atos.net
To use the dependency in build.gradle
of the "father" project, you should specify the last version available in Nexus, related to the last Jenkins's deploy.
For example, to declare the dependency on the videocall module and the respective version:
implementation 'eu.h2020.helios_social.core.trustmanager:trustmanager:1.0.19'
For more info review: https://scm.atosresearch.eu/ari/helios_group/generic-issues/blob/master/multiprojectDependencies.md
To start the Trust Manager, it is necessary to instantiate a TrustManager
object, by calling the constructor method, and then call the startModule()
method. The manager will automatically instantiate all the threads related to the active contexts.
To get the trust value computed between the user and one of its alters, the method getTrust
must be called on the TrustManager
object. The arguments required by the function should be retrieved from the same Contextual Ego Network instance passed to the constructor of the TrustManager
object.
The following methods are invoked automatically by the Trust Manager whenever precise events take place in the Contextual Ego Network. Such methods are invoked automatically by some callbacks that are registered on the Contextual Ego Network.
This project is structured as follows:
License: Apache License 2.0
© 2020 helios. platform
This project has received funding from the European Union’s Horizon 2020 Research and Innovation Programme under Grant Agreement N° 825585