{"id":21842776,"url":"https://github.com/davidemiceli/watch-complexity","last_synced_at":"2025-04-14T12:04:59.035Z","repository":{"id":127561284,"uuid":"156099589","full_name":"davidemiceli/watch-complexity","owner":"davidemiceli","description":"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.","archived":false,"fork":false,"pushed_at":"2021-04-06T07:15:22.000Z","size":1133,"stargazers_count":5,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-14T12:04:53.580Z","etag":null,"topics":["ai","artificial-intelligence","clustering-methods","communication-science","computational-social-science","datascience","humanities","machine-intelligence","machine-learning","ml","network-analysis","research","socialsciences","sociology"],"latest_commit_sha":null,"homepage":"https://davidemiceli.github.io/watch-complexity","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidemiceli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-11-04T16:02:48.000Z","updated_at":"2023-08-07T16:20:24.000Z","dependencies_parsed_at":"2023-04-05T10:01:38.514Z","dependency_job_id":null,"html_url":"https://github.com/davidemiceli/watch-complexity","commit_stats":{"total_commits":24,"total_committers":1,"mean_commits":24.0,"dds":0.0,"last_synced_commit":"3fa725b2328eb9dab7b7f1a6ecbf71d00be0d743"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidemiceli%2Fwatch-complexity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidemiceli%2Fwatch-complexity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidemiceli%2Fwatch-complexity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidemiceli%2Fwatch-complexity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidemiceli","download_url":"https://codeload.github.com/davidemiceli/watch-complexity/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248877983,"owners_count":21176243,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","artificial-intelligence","clustering-methods","communication-science","computational-social-science","datascience","humanities","machine-intelligence","machine-learning","ml","network-analysis","research","socialsciences","sociology"],"created_at":"2024-11-27T22:13:06.548Z","updated_at":"2025-04-14T12:04:59.007Z","avatar_url":"https://github.com/davidemiceli.png","language":"JavaScript","readme":"# Watch Complexity  \u0026middot; [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/davidemiceli/watch-complexity/blob/master/LICENSE) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/davidemiceli/watch-complexity/pulls)\n\nWatchComplexity 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.\n\n## Documentation\n\nAll useful informations can be found in the wiki documentation:\n- [**Introduction**](https://github.com/davidemiceli/watch-complexity/wiki)\n- [**Installation**](https://github.com/davidemiceli/watch-complexity/wiki/Installation)\n- [**Algorithms**](https://github.com/davidemiceli/watch-complexity/wiki/algorithms)\n- [**Testing**](https://github.com/davidemiceli/watch-complexity/wiki/testing)\n\n## Algorithms\nThe tool provides the following algorithms.\n\n- [**Ranked influence typology**](https://github.com/davidemiceli/watch-complexity/wiki/Ranked-influence-typology)  \u003cbr\u003e*Detect the type of influence that each node holds within a network.*\n- [**Network Similarity**](https://github.com/davidemiceli/watch-complexity/wiki/Network-similarity)\u003cbr\u003e*Measures the similarity between different networks.*\n\n## Getting started\n### Install\n```shell\nnpm install watch-complexity\n```\n### How to use it\n```javascript\nconst watchcomplexity = require('watch-complexity');\n```\nExample of use:\n```javascript\n// The list of edges\nconst edges = [\n  {from: \"Napoleon\", to: \"Myriel\", weight: 1},\n  {from: \"Mme.Magloire\", to: \"Myriel\", weight: 10},\n  {...}\n];\n// Measure the influence score and detect the influence roles\nconst nodes = watchcomplexity.influence.typology(edges);\n```\nThat will return as result:\n```javascript\n{\n ranking: \n   [\n      {node: \"Marius\", role: \"Hub\", score: 100},\n      {node: \"Courfeyrac\", role: \"Amplifier\", score: 93.68029739776952},\n      {node: \"Enjolras\", role: \"Reducer\", score: 92.93680297397769},\n      {node: \"Fantine\", role: \"Amplifier\", score: 89.96282527881041},\n      ...,\n      {node: \"Mme.Hucheloup\", role: \"Emitter\", score: 39.405204460966544},\n      {node: \"Anzelma\", role: \"Low emitter\", score: 34.94423791821562},\n      {node: \"Pontmercy\", role: \"Reducer\", score: 33.08550185873605},\n      ...\n      {node: \"OldMan\", role: \"Emitter branch\", score: 1.4869888475836461},\n      {node: \"Napoleon\", role: \"Emitter branch\", score: 0}\n   ],\n  nodes: 77,\n  edges: 254,\n  distribution:  {\n    Blackhole: 0,\n    Vulcano: 0,\n    Channeler: 0,\n    Chain: 0,\n    Bridge: 1,\n    Connector: 3,\n    'Emitter branch': 15,\n    'Receiver branch': 2,\n    Receiver: 2,\n    Emitter: 4,\n    'Low emitter': 9,\n    Idle: 0,\n    Transceiver: 5,\n    Tophub: 0,\n    Hub: 1,\n    Dam: 6,\n    Reducer: 12,\n    Megamplifier: 7,\n    Amplifier: 10\n  }\n}\n```\n\n## Tests\nUnit tests are inside the folder `/test`, included test coverage through `nyc`.\n\nTo run all unit tests, type:\n```shell\nnpm test\n```\n\n# Motivation\nOur main goal is to do experimental research with practical applications.\n\n# License\nWatchComplexity is an open source project available under the [MIT license](https://github.com/davidemiceli/watch-complexity/blob/master/LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidemiceli%2Fwatch-complexity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidemiceli%2Fwatch-complexity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidemiceli%2Fwatch-complexity/lists"}