Strictly schematic and keeping track of different pieces. Not indicative of code structure and definitely not final
Enough to get us to SfN for now…
Triple Data Model#
content_hash- hash of contained triple graph, after resolution
container_hash- original hash of
content_hashand metadata of container when first created
version_hash- the version of this particular instance of the container, excluding
container_hash- should be equal to container_hash when first instantiating.
Types of references and means of identifying
Absolute (hash of a container): Containers are the only uniquely identifiable thing in the network. Everything else has to be done relative to them.
Relative (resolve against the containing context)
. -> pred -> obj- links that describe the container.
External: How to refer to some external but otherwise identifiable thing? eg. How do I identify that I am making a translation layer for
numpywhen they aren’t involved with p2p-ld at all? I should be able to use a variety of tactics - eg. I should be able to say
pypi:numpyand then in turn identify
pypiby URI. If someone else declares it by saying
url:numpyand referring to their homepage, for example, then later we can declare those things as equal
The identity is the root node of the graph, so do a breath-first
How do we go from an external hash to another object? Our peer should be able to hydrate every content hash into an
author:hash pair so that our downloading peer knows who to ask about shit. Or if we are the owner of that thing they know they can ask us for an additional container.
Just a stub to check if mermaid works
Graph Data Model#