Example:
#format http://ns.nuke24.net/Formats/TSVFileManifestV1 foo/bar/helloworld.txt urn:bitprint:SQ5HALIG6NCZTLXB7DNI56PXFFQDDVUZ.276TET7NAXG7FVCDQWOENOX4VABJSZ4GBV7QATQ data:,Hello,%20world! # Same, but without giving a name: urn:bitprint:SQ5HALIG6NCZTLXB7DNI56PXFFQDDVUZ.276TET7NAXG7FVCDQWOENOX4VABJSZ4GBV7QATQ data:,Hello,%20world! # Provide metadata about some blob; # by convention, bz:fileLength = http://bitzi.com/xmlns/2002/01/bz-core#fileLength. # Conventional prefixes TBD, but 'whatever ContentCouch uses # for xmlns prefixes' is a reasonable guess. urn:bitprint:SQ5HALIG6NCZTLXB7DNI56PXFFQDDVUZ.276TET7NAXG7FVCDQWOENOX4VABJSZ4GBV7QATQ : bz:fileLength @ 13 # Path components should be URI encoded even if a relative path: # A file named 'hello world.txt' would be represented like: hello%20world.txt data:,Hello,%20world! : bz:fileLength @ 13 : dc:modified @ 1646098188
Tokens are tab separated, hence 'TSV' in the name.
Each token is either a URI (if it starts with a valid URI scheme+":"), metadata (if it starts with ":"), or, if the first token, a relative path, with components URI-encoded.
Blank and comment lines (defined by the HashFormat format) can be ignored.
Tokens beginning with ':' indicate metadata using SchemaSchema syntax, i.e. `: property name @ property value : another @ ...`, where property values may be abstract identifiers or JSON-style number or string literals.
Compatible with M3U if only one column!
A standard dialect for recording snapshots of filesystems is that the first column contains a relative path, the second a URI, and the third, if it's there, metadata.
Chosen to match the conventional xmlns namespace names as used by CCouch's XML/RDF format.
Later versions of this format, or the parent 'line-based hash format metaformat',
may provide a way to do the equivalent of a xmlns
declaration
(see Scratch38-S0001/HashFormats.md, if you know where to find that),
but these specific cases can be assumed to have the following meanings:
http://purl.org/dc/terms/modified
.
Modification time, probably represented as an integer unix timestamp (seconds).http://bitzi.com/xmlns/2002/01/bz-core#fileLength
.
Length of content, in bytes.http://ns.nuke24.net/ContentCouch/fileNodeId
.
Filesystem-specific identifier of the node at which the file is stored
(inode number on most unix filesystems, a long 'file key' string on NTFS).