Skip to content

Latest commit

 

History

History
94 lines (84 loc) · 3.2 KB

README.md

File metadata and controls

94 lines (84 loc) · 3.2 KB

Watch Complexity · GitHub license PRs Welcome

WatchComplexity is a package to understand and analyze complex networks and more in general complex data. It is a collection of clustering techniques inspired by social science and communication theories.

Documentation

All useful informations can be found in the wiki documentation:

Algorithms

The tool provides the following algorithms.

Getting started

Install

npm install watch-complexity

How to use it

const watchcomplexity = require('watch-complexity');

Example of use:

// The list of edges
const edges = [
  {from: "Napoleon", to: "Myriel", weight: 1},
  {from: "Mme.Magloire", to: "Myriel", weight: 10},
  {...}
];
// Measure the influence score and detect the influence roles
const nodes = watchcomplexity.influence.typology(edges);

That will return as result:

{
 ranking: 
   [
      {node: "Marius", role: "Hub", score: 100},
      {node: "Courfeyrac", role: "Amplifier", score: 93.68029739776952},
      {node: "Enjolras", role: "Reducer", score: 92.93680297397769},
      {node: "Fantine", role: "Amplifier", score: 89.96282527881041},
      ...,
      {node: "Mme.Hucheloup", role: "Emitter", score: 39.405204460966544},
      {node: "Anzelma", role: "Low emitter", score: 34.94423791821562},
      {node: "Pontmercy", role: "Reducer", score: 33.08550185873605},
      ...
      {node: "OldMan", role: "Emitter branch", score: 1.4869888475836461},
      {node: "Napoleon", role: "Emitter branch", score: 0}
   ],
  nodes: 77,
  edges: 254,
  distribution:  {
    Blackhole: 0,
    Vulcano: 0,
    Channeler: 0,
    Chain: 0,
    Bridge: 1,
    Connector: 3,
    'Emitter branch': 15,
    'Receiver branch': 2,
    Receiver: 2,
    Emitter: 4,
    'Low emitter': 9,
    Idle: 0,
    Transceiver: 5,
    Tophub: 0,
    Hub: 1,
    Dam: 6,
    Reducer: 12,
    Megamplifier: 7,
    Amplifier: 10
  }
}

Tests

Unit tests are inside the folder /test, included test coverage through nyc.

To run all unit tests, type:

npm test

Motivation

Our main goal is to do experimental research with practical applications.

License

WatchComplexity is an open source project available under the MIT license.