Associative memory and categories based on a directed acyclic graph data structure
- User Guide — installation, tutorial, Python API, command line, web app/REST, file formats, troubleshooting. Start here.
- How It Works Inside — the design in plain language (canonical form, query planning, content-addressed persistence).
- Roadmap — delivered, queued, parked, and research horizon.
docs/SWARM_DESIGN.md,docs/SEMANTIC_CODES.md— engineering design documents.
See also ontodag-fs: any OntoDAG
store can be browsed as a filesystem — paths are category queries, files are
classified objects stored on Swarm, FUSE-mountable (odag-fs, which shares
odag's store settings).
A Directed Acyclic Graph (DAG) associative storage and category manager in Python. You can store items into a ontodag and recall items from it. To store or "put" an item into a ontodag, you give it a name and a set of other names of already existing items that are its supercategories. To recall or "get", you specify a set of item names to get all items that are subcategories of all these items; alternatives are one word away (odag get Dog Pet or Cat, get_any in Python).
Categories can also carry typed values: declare weight as a dimension
and weight(3kg) becomes an ordinary category whose ordering OntoDAG
computes — odag get 'weight(..5kg)' finds the 3 kg parcel with no edge ever
stored between them, at any threshold, with exact integer arithmetic. Ranges
(1kg..5kg), timestamps and date ranges, hierarchical codes like geohash
cells, and does-it-fit size tuples all work the same way. See
User Guide §4.7 and the design record
docs/DIMENSIONS.md.
The roadmap — what is done, what is queued next, what is parked and why — is in
docs/ROADMAP.md.
Longer-term goals for the database direction (and the features deliberately not
built yet) are in docs/DATABASE_DIRECTION.md; the
day-to-day task list is in CLAUDE.md.
- Using the ontology graph for content categorization instead of folders
- Replace content tags with a more structured ontology
- Access control (ACT) groups
- Memberships in organizations and gate content based on membership
- Communication channel groups defined by the ontology
- Fostering deals within a universal marketplace for services and goods