Smart Communities for Smart Cities — with Reputation Systems based on Temporal Graphs

in #reputationlast year

Reposting joint Aigents and SingularityNET publication on Medium.  

The problem of reliable democratic governance is important for the survival of any community, and it will be more and critical over time communities with levels of social connectivity in a society rapidly increasing with speeds and scales of electronic communication.

This might become critically important with the emergence of so-called “Smart Cities” powered by Artificial Intelligence (AI) like it has been presented by Ben Goertzel recently. The core of any city is its human population and if the operations at human-level interactions are broken, any AI running on the basis of broken human interactions ca make things worse rather than improving them.

Over the last few years, In order to face this challenge, different sorts of rating and reputation systems are being developed, like we Social Credit System in China or Amazon Rating System.

However, reputation gaming and manipulation in such systems appear to be a serious problem, like we have shown in a series of our latest publications on resisting reputation gaming in marketplaces. To solve the problem, we are considering the use of an advanced reputation system supporting “liquid democracy” principle. The suggested system is based on “Weighted Liquid Rank” (WLR) algorithm employing different sorts of explicit and implicit ratings being exchanged by members of the society.

For the purpose, in our latest work on “Generalised Reputation Computation Ontology and Temporal Graph Architecture,” we suggest “incremental reputation” design and graph database used for the implementation of the system. The implementation relies on generalised design and underlying ontology fitting different sorts of environments such as social networks, marketplaces, and financial ecosystems such as distributed ledgers and blockchains.

The overall scope of entities and relationships in the ontology is presented in the above picture and can be handled by two independent “reference implementations” of the WLR algorithm. The first one is “research” version of SingularityNET Reputation System in Python. The second “production” one is written in Java and built into Aigents Social Computing Platform.

The Aigents Platform along with SingularityNET Reputation System has been recently presented at HITB CyberWeek UAE in October 2019. The talk was given by Anton Kolonin with lots of practical illustrations of how the solutions can be applied to social networks, marketplaces and blockchains.

The key feature of the Aigents implementation is its temporal graph architecture (presented in our latest paper) enabling the incremental reputation computation option making the WLR algorithm applicable for large-scale transactional systems. The implementation employs an in-memory graph database of Aigents project available in Java as open source.

The first key feature of the Aigents graph database is its ability to store labelled temporal graphs with the possibility to attach any value to an edge between two vertices, so the value can be either numeric value indicating weight or strength of the relationship in a weighted graph or a compound truth value in the probabilistic logic network. In case of the Reputation System implementation, it may keep either single rating assessment or a financial transaction value and currency, or the combination of them all so he ratings may be weighted by financial values as presented in our earlier work. Notably, the edge may contain entire probabilistic distribution or the list of associated transactions along with ratings and financial values.

The second feature of the Aigents graph database is its ability to slice graphs on a temporal basis so that each time period is stored in separate subgraph while the subgraphs can be arbitrary merged, or the subgraphs of multiple temporal subgraphs can be extracted and merged over time. In the case of Reputation System implementation, it has appeared logical to keep all transactions segmented in temporal subgraphs specific to what is called recalculation period or observation period, which is 1 day by default in the current implementation.

The indexing of the data is primarily temporal and secondary based on vertices and types of relationships. During the run-time, temporal ranges of subgraphs being processed on time scale are bound to memory resources available as well, so that amount of storage space limits time range that can be processed simultaneously. However, the incremental nature of the reputation recalculation given the “incremental” design option needs only a few subgraphs to be present in memory at one time.

Specifically, the two types of graphs are purposed for the Reputation System implementation. First, there is “reputation evidence data” with historical data accumulated for each of the observation period such as single day by default. Second, there is a “reputation state” graph keeping current “reputation balance” for each of the periods. That is, for each of the reputation update processes per observation period accordingly to the WLR algorithm specification, the only three subgraphs should be present in physical memory – one “reputation evidence data” for the current period and two “reputation state” subgraphs for current and previous periods.

For more details, if you are developer, refer to implementations of the Graph, GraphCacher and Reputationer classes in Aigents Java Core Platform or SingularityNET reputation_api.

In any case, stay tuned for updates on Aigents Social Computing Platform on Medium, Reddit, Facebook, Twitter and Steemit.


We are working to get the Reputation System available for Steemit now, stay tuned!