#k@ is a dynamic network simulation tool designed to model the growth of and information propagation through an online social network. It is an agent-based, Kinetic Monte Carlo engine capable of simulating online networks such as Facebook, Twitter, LinkedIn, etc.
C++ C HTML Python Lua Shell Other
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
CMakeModules CMake modules Jan 13, 2017
bugs Add enable_query_api to more INFILEs Jul 27, 2016
docs fixed citation Apr 14, 2017
hashkat_visualizations trying 4 stripes image. Jul 6, 2016
reproducers Fixes #167. Only output detailed tweet statistics if full_tweet_stat… Apr 6, 2017
scripts added test function for regions Oct 10, 2015
src removed user demands exit variable from being serialized. This preven… Jan 1, 2018
tests changed DATA_vs_TIME to generate in OUTPUT directory, tests passed Jan 30, 2016
yaml Don't track PYC files May 17, 2015
.gitignore Fix graphical tests Jan 13, 2017
.travis.yml Fixes for travis-ci Jan 13, 2017
API_INFILE.yaml Allow for tweets to be streamed with api.py. TODO: use either C++ api… Jul 29, 2016
API_plans.md Update api_plans.md. Add starter code for an API that can signal hash… Jul 22, 2016
CITATION.md added citation file May 18, 2018
CMakeLists.txt Fixes #38 (crash in tests/referencefiles/test99). De-duplicate unfol… Aug 4, 2016
DEFAULT.yaml Fixes #167. Only output detailed tweet statistics if full_tweet_stat… Apr 6, 2017
INSTALL.md Update and rename INSTALL to INSTALL.md Oct 23, 2016
INTERACT.lua Towards network serialization tests May 8, 2014
LICENSE.md Update and rename LICENSE to LICENSE.md Oct 30, 2016
README.md Updating README headers Jul 7, 2017
ROADMAP.md Update ROADMAP.md Jul 26, 2016
api.py Allow for tweets to be streamed with api.py. TODO: use either C++ api… Jul 29, 2016
build.sh Fixes for travis-ci Jan 13, 2017
deluxe.INFILE.yaml changed agent_type names to match documentation Mar 28, 2016
hashkat_pre.py Ensure tweet distro and retweet distro output is normalized correctly… Jan 31, 2017
mkdocs.yml changed index for site Mar 28, 2016
quickstart_INFILE.yaml added no_comment_INFILE & quickstart_INFILE Nov 18, 2015
run.sh Support alternate build directories Jan 13, 2017
tests.sh changed DATA_vs_TIME to generate in OUTPUT directory, tests passed Jan 30, 2016
verify.py Fixed error in tests script Jul 31, 2015
visualize.py Cleaned up visualize.py Sep 9, 2015

README.md

#k@ (hashkat) : Kinetic Analysis of Twitter-like networks

Build Status: Build Status


Description

#k@ is a dynamic network simulation tool designed to model the growth of and information propagation through an online social network. It is an agent-based, Kinetic Monte Carlo engine capable of simulating online networks such as Facebook, Twitter, LinkedIn, etc.

#k@ incorporates all elements of online social networks including multiple user profiles (e.g. standard users, organizations, celebrities, and bots), user messaging, trending topics, and advertising. Agents within the network make decisions (e.g. follow, unfollow, broadcast, and rebroadcast) based on a variety of user defined constraints on signal propagation to model language, region, ideology, musical interests, and humour.

#k@ allows for simulation of a realistic online social network, enabling users to test hypotheses for growth mechanisms and scenarios for information propagation. As it solves the forward problem, #k@ can be used with Big Data analytics tools to test data collection protocols and ensure inverse model validity.

#k@ is a fully cross-platform tool: it works natively on Windows 10, OS X, and Linux platforms.

Download the latest version of Hashkat


How do I quickly build #k@ and run #k@ simulations ?

Build Requirements:

  • CMake
  • C++ Compiler (for instance: gcc/g++ etc.)

Run Requirements:

  • Python 2.x

Data Visualization Requirements (optional):

  • Gnuplot
  • Gephi
  • Networkx

  1. Clone the hashkat reositry locally
    git clone https://github.com/hashkat/hashkat
  2. Go inside the hashkat folder (using cd hashkat) after you are sure of all the requirements being fulfilled.
  3. Build hashkat using ./build.sh -O
  4. Create simulations using the DEFAULT.yaml variable values by running the command ./run.sh

A sample script can be seen as:

jigyasa@spin:~/temp$ git clone https://github.com/hashkat/hashkat
...
Checking connectivity... done.
jigyasa@spin:~/temp$ cd hashkat/
jigyasa@spin:~/temp/hashkat$ ./build.sh -O
.....
[100%] Built target hashkat
jigyasa@spin:~/temp/hashkat$ ./run.sh
.....
Simulation Completed: desired simulation time reached
Analysis complete!

For elaborate runs, refer docs.hashkat.org and for visualizing the output, refer docs.hashkat.org/visualization


Documentation

#k@ has built-in documentation web pages. Find detailed information, instructions and tutorials at docs.hashkat.org
Documentation Status: Documentation Status
Check out the hashkat/docs directory for the source code of the documentation.


Contributing to #k@

#k@ is a community project. We appreciate your enhancement requests as issues and bug-fixes.
Feel free to open new ones or fix the existing ones (hashkat/issues).


The Road ahead....

#K@ community welcomes all to be a part of it and help us enhance our product. The ROADMAP is a list of things we wish to fulfill in the near future.


LICENSE

#K@ is a free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License v3 along with this program. If not, see gnu.org/licenses.

GNU GPL