openEngiadina: Research into data model
This is a high-level overview of research into a data model conducted as part of the openEngiadina project.
The research is split into multiple (reusable) parts:
- Content-addressable RDF
- A scheme for making RDF data content-addressable by defining a grouping of RDF terms as well as a canonical serialization of the grouping.
- RDF Signify
- A RDF vocabulary for cryptographically signing content-addressed content using the ED25519 algorithm.
- Encoding for Robust Immutable Storage (ERIS)
- An encoding that allows secure and robust content-addressing.
- ERIS Cache
- An extension to the W3C PROVenance Interchange Ontology to describe the Activity of content-addressed caching with the ERIS encoding.
- Distributed Mutable Containers
- Distributed Containers based on CRDTs that allow mutation by holders of appropriate secret-keys.
Most parts have a reference (and experimental) Guile implementation and can be used as Guile libraries. There are also two general-purpose Guile libraries:
- A Guile wrapper to the libsodium cryptography library.
- A Guile library for RDF and Semantic Web.
- A Datalog implementation in Guile (currently embedded in guile-schemantic).
Following graph describes the dependencies (solid edge denotes "is dependency of", dotted edge "is optional dependency of"):