5. Data Structures#
Triplet graphs similar to linked data fragments with envelopes. decoupling content addressing from versioning
Typed objects with formatting
Ya this seems like the right set of ideas to build on
Packets of LD-triplets that contain
Hash of triplets
Encryption Info (if applicable)
Anything that can be directly referenced without local qualifier is a container.
Triplets within a container can be referenced with the query syntax
Containers also behave like “feeds”
Eg. one might put their blog posts in
The account identifier is the top-level container.
Every triple within a scope is ordered by default by the time it is declared
A container can declare its ordering (see Container)
Each container intended to be directly referenced SHOULD contain a
nameso it can be referenced w.r.t its parent:
Each container can also be indicated numerically
Identity: Each container is uniquely identified by the hash of its contents and the hash of the account identifier.
Format: A container can specify one or several ways it can be displayed
Capabilities: A container can specify different capabilities that another account can take (eg. “Like”, “Upvote”, “Reply”)
Capabilities should also contain a permissions scope, if none is present, the global scope is assumed.
Since Identities are just a special form of container, they too can advertise different actions that they support with capabilities.
Basically a container is a merkle DAG with binary data at its leaves a la the Linked Data; Platform
Re: Ordering - https://github.com/ssbc/ssb-tangle
Re hashing a graph: the container always has one root node that is the container’s identity from which a graph traversal starts. A Merkle DAG is then constructed starting from the leaves.
Objects require a shortname that can be hierarchically indexed from
Including intrinsic notion of nesting
every object can have blank/positionally indexed children
every triple can have blank/positionally indexed “qualifiers” like RDF-star or wikidata’s qualifiers.
See IPLD Codecs and Linked Data Platform spec
Means of interacting with binary data.
A given container has an identity hash from its first packing
A given triple can be contained by
5.7. Compare to:#
Good idea, also making use of extended context. Very focused on scientific data - ‘units’ are a core part of the model. distinction between static and dynamic data types seems like sort of a hack. data bricks are similar to containers. the source is an absolute mess.