Mounting
tie can mount two different things, both over FUSE:
tie mount <dir-hash> ~/snapshot # one immutable tiedir, read-only
tie mount --db ~/mnt # the live tag-derived filesystemThe live tree has three top-level directories:
~/mnt/
query/ every path is a tag query
files/ the writable virtual tree
tags/ tags as text filesquery/
A path under query/ is a tag expression:
ls "mnt/query/jazz" # all jazz
ls "mnt/query/jazz mellow" # AND
ls "mnt/query/jazz mellow -live" # exclude
ls "mnt/query/tags" # the whole tag vocabularyThe space-separated components are intersected. A leading type: scopes by
dir-type (type:audio-dir). Saved queries from the config’s [Queries] table
appear as named paths.
files/
The writable virtual tree. mv, mkdir, copy, create and edit are reflected in
the triples. Re-importing a changed file creates a new version; tie versions
lists them and tie versions restore puts one back.
tags/
Each file has a text file of its tags: one tag per line, editable in place.
Directories expose .tags and .type, which is how a dir-type is set without
the CLI.
Caching
Both mounts share a single-flight, LRU blob cache:
tie mount --db ~/mnt --cache 8 # 8 GB cache
tie mount --db ~/mnt --cache 8 --verifyThe cache streams to disk, so memory stays bounded regardless of file size. The FUSE and SMB views of the same store stay in sync because both re-read the store on every operation.
Requirements
- Linux with
/dev/fuseandfusermount(orfusermount3). - A writable cache directory; defaults are under the user cache.
- The triplestore and filehost must be reachable, or use
tie -ffor the serverless variant.
tie mount --db ~/mnt &
ls ~/mnt/files/music
fusermount -u ~/mntSee tie-smb for sharing the same tree with Windows and macOS.