GNOWSYS and Gstudio


Introduction to GNOWSYS

GNOWSYS is a specification for a generic distributed graph based data/memory/knowledge management. Typically computer memory is managed as a tree, or as nested arrays. Our attempt in this project is to represent all forms of declarative and procedural knowledge as a network, and then develop network processing methods to create and publish knowledge as a network.


Node orientated computing

Just as the language LISP provides list oriented computing framework, we try to model the knowledge as nodes in a network. The interpretation (meaning) of a node depends on the links the node has with other nodes, and the interpretation of the other neighbouring nodes in turn depends on their network and so on. The nodes are organized and processed according to a complex data structure called the neighborhood, akin to a frame.

The network is constructed by interlinking all things to those whose interpretation is implicitly available to the computing system. Those nodes whose interpretation is known to the computing system may be called as primitive nodes since they are made available as the initial condition of the evolving semantic system. They may be also called as the factory nodes. Such nodes become the meaning mediators in the semantic system.

These primitives can be further devided into logical types and data types. The most commonly used semantic relations like "type of" and "member of" are the logical types, while the character set, numbers and other models of structured symbol sets with known interpretation are the data types. Thus the nodes in a network will be constructed with the known logical and data types.

New nodes obtain their meaning due to their relations with the primitives. That is by linking unknown symbols with known symbols GNOWSYS provides a mechanism to define new meaning from the already available meaning. The variety of possible meaning space depends entirely on the chosen primitive set of nodes.

The Structure of the Network Memory

The network construction uses the following principles:

  1. Everything is a node. The memory in GNOWSYS is a set of nodes with all nodes with a unique NID (Node ID). The NID with the address locator gives rise to a unique URI in the cyberspace.
  2. A node links with the neighborhood nodes through relations, and some predefined name and value pairs called attributes.
  3. Every node is described/interpreted by neighborhood, which is nothing but the set of relations and attributes a node possesses. This can be rendered as a context graph.
  4. A network can be obtained by merging the neighborhood of all the nodes as a graph.
  5. The set of all attributes and relations is the full set of knowledge represented in the network in the form of propositions.
  6. Each attribute or relation constitutes one RDF triple expressing one proposition.
  7. The representation of network memory can be completely encoded in any of the RDF notations.

The Dynamics (change management) of the Network Memory

  1. Insertion of new relations and attributes changes the neighborhood of the nodes concerned, and such changes can be tracked by holding the snapshots of the node's neighborhood at each instance of change.
  2. Being a collaborative space, the system records who did what change and at what time.
  3. Delinking is the preferred way of removing data elements from the network, and no node can be removed without prior removal of the links the node may have with others.
  4. Each Node's neighborhood at a given time becomes the state space of the node.
  5. Changing state of nodes can be recorded, and described as process nodes that record the prior-state and post-state of the nodes invovled.

Node types

Based on the type of attributes and relations, we can distinguish some widely repeated kind of patterns as node types for convenience. These node types can be used for managing the data of computing applications. New nodetypes can be defined as and when required, though minimalism is encouraged for ensuring generality of processing engines and maintaining parsimony. Currently GNOWSYS has the following node types:

  1. Type Nodes:
    • Metatype
    • System Type
    • Attribute Type
    • Relation Type
    • Process Type
  2. Token Nodes:
    • Systems
    • Processes
  3. Triples:
    • Relations
    • Attributes
  4. Special Derivative Nodes (to be implemented):
    • Union
    • Complement
    • Intersection
  5. Complex Expressions:
    • Node Specification
    • Relation Specification
    • Attribute Specification
    • Expression


GNOWSYS is an acronym for Gnowledge Networking and Organizing SYStem. The 'G' in GNOWSYS is pronounced hard just as the 'G' in GNU.

Features Implemented

NROER, metaStudio, CLIx

The specification is implemented currently in Python. The current implementation used Django framework.

Older implementations were done as a product of ZOPE (Zee Object Publishing Environment), a free web application framework. These are archived, and no further development from the main team is expected.

The currently available version (bleeding-edge) of GNOWSYS is availableas gstudio (short for gnowsys-studio) be obtained from the git repository. No stable version is released as yet. Docker composer files are available on gitrepo.

If you want to see live implementations, please visit:

Features of GNOWSYS

Possible Applications

Consider using GNOWSYS if you want a distributed database, your data model is evolving (not yet frozen), you are a semantic web engineer and wants to develop an ontology, or publish several ontologies in one networked memory, you want a distributed triple store with frame and graph based views, if you are doing structured content management application, etc.

You may use GNOWSYS:


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

GNOWSYS is conceived and authored by Nagarjuna G. Most of the code to GNOWSYS was a contribution by several staff members and students who worked under his guidance at Homi Bhabha Centre for Science Education, TIFR, Mumbai. Shashank Ashtikar and Harshad Bahere were the initial contributors to the code and later on by Prasanta Baruah, Debarshi Ray and Rakesh Pandit. Bipin Apandkar, Rajiv Nair, Alpesh Gajbe, Dinesh Joshi, Vihan Pandey, Saurabh Shelar, Krishnakant Mane, Shaswat Chakravorty, Divya, Jay Mehta, Kabir, Johnson, Anuja, Supriya, and Ganesh Gajre, Anuja, Supriya, Dhiru, Krishna, Avadoot, Johnson, Arun, Kedar, Rachana, Sunny, Kabir and Amit.

The current active contributors include Siddhu, Mahesh, Surendra and Amit and some student interns of the gnowledge lab.

GNOWSYS development is currently supported by Homi Bhabha Centre for Science Education (HBCSE), TIFR, and is mostly executed by undergraduate students as a part of their projects. Please remember that GNOWSYS is a GNU project and is dedicated to the free software community. If you like to be a volunteer, you can also contribute to its development. This project is managed from savannah site. You can place a request to be a developer from there. For information about contributing to other GNU Projects, please read How to help GNU.

A GNU Project

GNOWSYS is an official GNU project since December 2004. Its development is currently supported by the gnowledge lab of HBCSE, TIFR.