Skip to content

Add ontodag-fs to Tools - #41

Merged
crtahlin merged 1 commit into
ethersphere:mainfrom
petfold:add-ontodag-fs
Aug 10, 2026
Merged

Add ontodag-fs to Tools#41
crtahlin merged 1 commit into
ethersphere:mainfrom
petfold:add-ontodag-fs

Conversation

@petfold

@petfold petfold commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Adds ontodag-fs to the Tools section.

[ontodag-fs](https://github.com/petfold/ontodag-fs) - Browse an OntoDAG category lattice as a read-only fsspec and FUSE filesystem where directory paths are queries and file content is stored on Swarm.

What it is. A semantic filesystem in the tradition of Gifford's Semantic File System: directory names are interpreted as queries rather than locations, so /pet/dog means "everything that is a pet and a dog" and /dog/pet is the same place. One file appears under every path it belongs to — no copies, no symlinks. Paths can also carry typed bounds, e.g. ls '/parcel/weight(..5kg)/.all', computed exactly. Ships an odag-fs CLI (ls, tree, cat, info, an interactive prompt, --as-of ROOT for past versions) and a FUSE mount via fusepy.

Swarm relation. File content lives on Swarm, fetched through swarmfs (already listed here); the classification lattice persists through recordstore (also listed) against a Bee node. A file's identity is its Swarm content address, so a classification can never dangle — there is nowhere for the content to move to. The repo owns no state of its own; OntoDAGFileSystem is a plain fsspec backend, so the whole fsspec ecosystem (pandas, pyarrow, DuckDB, …) reads Swarm-backed content through it too. Verified against a live Bee light node on Gnosis mainnet.

Status is stated honestly in the description and the repo: v0 is a read-only view — browsing is complete and tested; filing through the filesystem is in progress.

Checklist

  • One item, one PR.
  • Public, not archived, BSD-3-Clause LICENSE, active (last push 2026-08-06).
  • Link resolves; description is 147 characters, sentence case, matches this repository (not its sibling ontodag).
  • Not already listed in README.md / archived.md, and no open PR or issue for it.

🤖 Generated with Claude Code

crtahlin added a commit that referenced this pull request Aug 10, 2026
* chore: add .gitattributes normalising text files to LF

README.md is the only file in the repository with CRLF endings; it was LF
from the initial commit until a single edit in April 2026 introduced them.
Contributors on normalising editors therefore rewrite all 150 lines, turning
one-line additions into ~150-line diffs (#40, #41) and creating avoidable
conflicts between PRs that append to different sections.

merge=union on the lists keeps both sides when two branches each append a
different entry, matching sindresorhus/awesome.

Refs #42

* chore: normalise README.md line endings to LF

No content change: the file is byte-identical once carriage returns are
stripped. Isolated in its own commit so the one-off 150-line diff is
reviewable here rather than buried in a contributor's feature PR.

Refs #42
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@crtahlin crtahlin left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving — entry checks out.

  • Format: 147 characters, sentence case, link resolves, not already listed.
  • Repository: public, not archived, BSD-3-Clause, actively developed, with tests and a spec.
  • Description matches this repository rather than the sibling ontodag, and is honest that v0 is read-only.
  • Tools works as the section: the odag-fs CLI and the FUSE mount are the user-facing surface, which distinguishes it from swarmfs in Libraries.

I rebased the branch onto main and force-pushed, since #43 normalised the repository to LF line endings and landed between your submission and this review. That turned the diff from +152/−150 into the two lines actually being added; your authorship is unchanged. Apologies for touching your branch — it was our change that caused the conflict, and the fix was already verified locally.

@crtahlin
crtahlin merged commit 599df77 into ethersphere:main Aug 10, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants