{"id":22901745,"url":"https://github.com/eguven/erlsna","last_synced_at":"2025-05-08T02:08:28.203Z","repository":{"id":142197034,"uuid":"5878731","full_name":"eguven/erlsna","owner":"eguven","description":"Social Network Analysis application written in Erlang","archived":false,"fork":false,"pushed_at":"2012-09-19T22:20:29.000Z","size":132,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-03-12T18:15:41.536Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eguven.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-09-19T22:09:25.000Z","updated_at":"2023-03-12T18:21:30.996Z","dependencies_parsed_at":"2023-03-13T10:14:17.340Z","dependency_job_id":null,"html_url":"https://github.com/eguven/erlsna","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eguven%2Ferlsna","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eguven%2Ferlsna/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eguven%2Ferlsna/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eguven%2Ferlsna/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eguven","download_url":"https://codeload.github.com/eguven/erlsna/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229636737,"owners_count":18102351,"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":[],"created_at":"2024-12-14T01:40:43.749Z","updated_at":"2024-12-14T01:40:44.174Z","avatar_url":"https://github.com/eguven.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"## erlsna ##\n\n### About ###\nerlsna is a proof-of-concept application for my Computer Scince undergraduate\nthesis: Social Network Analysis software for longitudinal node experience\nanalysis on dynamic networks. [paper](https://dl.dropbox.com/u/17449254/erlsna_thesis.pdf)\n\nerlsna follows Agent-based model where individuals (vertices on graph) are mapped\nto agent processes.\n\nThough not highlighed in detail in the paper, erlsna provides a **PubSub** mechanism\nfor real-time notifications on individuals. See below.\n\n[Eren Güven](https://twitter.com/cyberfart)\n\n### Status ###\nerlsna has limited functionality and lacks documentation. Feel free to reach out to me\nif you need assistance. I intend to improve on this subject whenever I can.\n\n### Requirements ###\n+ Erlang R13B03 or newer (not tested with older releases)\n+ [Rebar](https://github.com/basho/rebar) (not mandatory but advised)\n\n+ TCP port 8082 (configurable in erlsna.app.src)\n\n#### Optional Requirements ####\nPython3 (for python driver and nntp_collector)\nMongoDB (for nntp_collector storage)\nR (for some charts) \u0026 [zoo](http://cran.r-project.org/web/packages/zoo/index.html) package (I think)\n\n### Running erlsna ###\n\n    ./autorebar # rebar clean, compile and generate\n    ./rel/mynode/bin/mynode console\n\nFor info on **TCP message syntax**, see the paper, APPENDIX B.\nFor information on *analyses and example graphs*, see the paper, Chapter 5.\n\n### erlsna Python3 driver ###\n\n    import os\n    import erlsna\n    api = erlsna.ERLSNA(live=True)\n    png_path = os.path.expanduser(\"~/engagement_graph.png\")\n    api.engagement_analysis(\"foo@bar.com\", with_graph_png=png_path)\n\nFor available keywords and further driver uses, refer to the **erlsna.py** source code.\n\n### PubSub and real time capabilities ###\nThis was developed for a demo. Currently PubSub is only available for **Closeness Centrality**\nmetric. One can subscribe to an agent (through Python driver or raw TCP message over Telnet)\nwith a condition and get notified whenever it holds true. An example:\n\n#### Telnet ####\n    # Telnet\n    subscribe abc@example.com \u003e 0.123\n\nWill notify the Telnet client whenever the agent's (\"abc@example.com\") closeness centrality\n**goes over** 0.123. The publish will only happen once per **going over threshold**.\n\n#### Python ####\n    api = ERLSNA()\n    api.subscribe(\"abc@example.com\", \"\u003c\", 0.02)\n\n+ \u003e : goes over given value\n+ \u003c : goes below given value\n+ = : becomes equal to given value\n+ * : every time a change happens (a dummy value is expected after eg: `subscribe abc@example.com * 0`)\n\n### nntp_collector ###\nUsed to collect data from NNTP servers for testing and demonstration, requires\n[MongoDB](http://www.mongodb.org/) to be running.\n\n**collect:** collect (from where it left off) new articles from given server \u0026 group\n**emailfixer:** to fix dual-line \"From:\" header issue in NNTP responses, will prompt user for fixes\n**livedump:** push data to running erlsna node\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feguven%2Ferlsna","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feguven%2Ferlsna","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feguven%2Ferlsna/lists"}