IMPORTANT NOTE: we're currently re-structuring the project repo, documentation etc. So directory structure, documentation files, etc may be outdated or somehow messy.
DAS consists of several components. Below is a list of these components, categorized by whether they are part of this repository or exist in external repositories.
The following components are included in this repository:
-
Attention Broker A DAS component that tracks atom importance values in different contexts and updates those values based on user queries using context-specific Hebbian networks.
Documentation: Read more
-
Query Agent
C++ server which perform Pattern Matching queries.
Documentation: Read more
-
Link Creation Agent A C++ server that performs pattern-matching queries and creates new links in the Atomspace based on the results.
Documentation: Read more
-
Inference Control C++ server which perform Inference Queries.
Link creation engine searches the atom space for patterns and creates new links based on the results. Both the pattern and the layout of the new links to be created are specified by the caller.
Pattern matching results are not exhaustively used to create new links. DAS query engine return results considering importance values of atoms in each result so link creation engine iterates only through the first N results, which have a greater probability of having the most interesting atoms.
Documentation: Coming Soon
-
Query Engine A data manipulation API for Distributed Atomspace (DAS). It allows queries with pattern matching capabilities and traversal of the Atomspace hypergraph.
Documentation: Read more
-
Atom DB A Python library required by Hyperon DAS to interface with DBMSs and other data storage structures.
Documentation: Read more
The following components are part of external repositories and are not included in this repository. You can find them in their respective locations:
-
DAS Server
A server listening on a port. Essentially, this is what we currently call DAS Server which is OpenFaas running das-query-engine function (basically our DistributedAtomSpace class python class).
Documentation: Read more
-
DAS MeTTa Parser A simplified MeTTa parser used to feed knowledge bases into DAS.
Documentation: Read more
-
DAS Server Toolbox
This CLI provides a set of commands to manage containerized services, OpenFaaS functions, and Metta operations. It includes functionalities to start and stop db services, manage OpenFaaS functions, load Metta files, and validate Metta file syntax.
Documentation: Read more
-
Infrastructure Setup
Tools for provisioning and setting up servers on cloud providers.
Documentation:
git clone [email protected]:singnet/das.git
cd das
To build the agents, run the command:
make build
This process will generate the binaries for all components in the das/src/bin
directory.
Some of the components require an existing knowledge base and a properly configured environment with Redis and MongoDB. You can set up this environment using the das-cli
. For detailed instructions, refer to the das-toolbox documentation.
For detailed information about each component, please refer to the documentation provided for each component in the Components section above.
To execute the unit tests, simply run the following command from the project root:
make tests
This will run all the tests for the project.
- DAS API - Documentation for the DAS API.
- DAS User's Guide (Jupyter Notebook) (Markdown) - Document with code snippets showing how to use DAS.
- DAS Overview - Description of the main DAS components and deployment architecture.
- DAS Toolbox User's Guide - A guide with detailed instructions to use the DAS Server Toolbox.
- Release Notes - Release notes for all DAS components.
- Public board - GitHub project board used to track bug reports, feature requests, and major new features planning. Use this board to report bugs or request new features.
- Development board - Used internally by the DAS Team to track issues and tasks.
- Contribution guidelines