Roadmap#
+What things do we build and in what order?
+Phase 1: Format Sandbox#
+Goals
+-
+
Experimenting with needs for format translation
+Encoding of triple graphs + hashed binary files
+
In this phase we are using NWB as a naturalistic development case of a complex format with an idiosyncratic implementation (ie. written in its own schema language, with its own I/O API, etc.)
+See nwb-linkml
+Phase 2: Simple Transfer#
+Goals
+-
+
Simplest possible peer model: self-sharing between devices owned by peer
+Share, query, and download data
+
A peer
has a public identity
that is represented by one or multiple machines
that host the graphs
associated with that identity. Each graph has some collection of triples
which are identified relative to the IRI of the parent graph. A triple can refer to a binary
file that is not stored in the graph itself by its hash, encoding, and other metadata needed to use the file. The (semantic) metadata that describes that binary
file can point to it without needing to encode arrays/etc. in RDF-like graphs.
The MVP for simple transfer is to have a single peer be able to transfer subgraphs and binary files between multiple machines keyed to their public identity.
+Phase 3: Schema Manipulation#
+Goals
+-
+
Make custom schema
+Declare and resolve sameness relations
+Dataset versioning
+
Phase 4: Peer Federation#
+Goals
+-
+
Ontology for determining access
+Pinning and mirroring
+
Phase 5: External Resources#
+Goals
+-
+
Treat external resources as peers
+HTTP, S3 mirroring
+
Phase 6: Discoverability#
+Goals
+-
+
Use external sources of identity to connect to peer
+Bootstrap servers
+