Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

कथा (kathaa) : A Visual Programming Framework for NLP Applications

Demo Video :

Kathaa is a Visual Programming Framework for NLP Applications.
Although it was built for Sampark, it is highly flexible, and can accommodate any
practically any other system, as long as you can safely represent the unit-task at hand by a single function which takes some inputs, and spits out some outputs :D.

The goal of this Framework is to empower researchers to design and tinker with complex NLP workflows irrespective of their technical proficiency, and hopefully to bridge the gap between Linguists and Computational Linguists.

The vision of this Framework is to make creation of NLP workflows as easy as creating an online survey like Google Form (which in retrospect was a highly time and resource consuming task just a few years ago).

Kathaa Screenshot


# Note : The whole installation expects Node engine  >= 5.x
# Please install the latest version of node from :
# Its really easy, I promise
# :)

git clone 
cd kathaa
npm install .
grunt build

# Point to your MongoDB instance.
# If you mongo DB instance is running on localhost in default settings,
# then you can ignore this next step
export MONGOHQ_URL="mongodb://"

#Make sure, redis is running on localhost

export NODE_ENV=development
#or NODE_ENV=production, in case of production mode

npm run seed
# this will ask you for the details of the Admin user, and seed the database
# with initial graphs

# Instantiate the module_library from the corresponding public github repos
# (If you want to add custom kathaa-module-groups, feel free to add them in package.json )
npm run install-kathaa-modules

# Copy and Edit environment parameters
cp config/env/env.example.json config/env/env.json

# In production setups, we would strongly recommend to run kue-sweeper
# Kue-sweeper regularly cleans out completed jobs, and makes sure your redis instance
# doesnt store more stuff than we require

npm start

# You can also flush the mongodb database associated with your env by
# npm run flush_database


New Modules can be added by referencing the corresponding module-group in the package.json as shown in :

Inside every module_group, the individual modules must exist as folders, along with a libraries.js file for any shared libraries.

the package.json file in the respective module folder defines the structure of the module, and the main parameter in the package.json tells the module_library_loader where to look for the function that the module is supposed to execute.

Look at examples in and for templates for defining custom modules.

Pull requests for new modules-groups, or modules would be highly appreciated. Please get in touch with, if you have any interesting ideas !!


S.P. Mohanty


A Visual Programming Framework




No releases published


No packages published