2023-06-07 01:31:03 +00:00
<!doctype html>
< html class = "no-js" lang = "en" >
< head > < meta charset = "utf-8" / >
< meta name = "viewport" content = "width=device-width,initial-scale=1" / >
< meta name = "color-scheme" content = "light dark" > < meta name = "generator" content = "Docutils 0.19: https://docutils.sourceforge.io/" / >
2023-06-19 19:04:24 +00:00
< link rel = "index" title = "Index" href = "genindex.html" / > < link rel = "search" title = "Search" href = "search.html" / > < link rel = "next" title = "6. Vocabulary" href = "vocabulary.html" / > < link rel = "prev" title = "4. Discovery" href = "discovery.html" / >
2023-06-07 01:31:03 +00:00
< link rel = "canonical" href = "/docs/data_structures.html" / >
<!-- Generated with Sphinx 6.2.1 and Furo 2023.05.20 -->
2023-06-19 19:04:24 +00:00
< title > 5. Data Structures - p2p-ld 0.1.0 documentation< / title >
2023-06-07 01:31:03 +00:00
< link rel = "stylesheet" type = "text/css" href = "_static/pygments.css" / >
< link rel = "stylesheet" type = "text/css" href = "_static/styles/furo.css?digest=e6660623a769aa55fea372102b9bf3151b292993" / >
2023-06-28 04:35:44 +00:00
< link rel = "stylesheet" type = "text/css" href = "_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" / >
2023-06-07 01:31:03 +00:00
< link rel = "stylesheet" type = "text/css" href = "_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" / >
< style >
body {
--color-code-background: #f8f8f8;
--color-code-foreground: black;
}
@media not print {
body[data-theme="dark"] {
2023-07-01 06:59:21 +00:00
--color-code-background: #0d1117;
--color-code-foreground: #e6edf3;
2023-06-07 01:31:03 +00:00
}
@media (prefers-color-scheme: dark) {
body:not([data-theme="light"]) {
2023-07-01 06:59:21 +00:00
--color-code-background: #0d1117;
--color-code-foreground: #e6edf3;
2023-06-07 01:31:03 +00:00
}
}
}
< / style > < / head >
< body >
< script >
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
< / script >
< svg xmlns = "http://www.w3.org/2000/svg" style = "display: none;" >
< symbol id = "svg-toc" viewBox = "0 0 24 24" >
< title > Contents< / title >
< svg stroke = "currentColor" fill = "currentColor" stroke-width = "0" viewBox = "0 0 1024 1024" >
< path d = "M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z" / >
< / svg >
< / symbol >
< symbol id = "svg-menu" viewBox = "0 0 24 24" >
< title > Menu< / title >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu">
< line x1 = "3" y1 = "12" x2 = "21" y2 = "12" > < / line >
< line x1 = "3" y1 = "6" x2 = "21" y2 = "6" > < / line >
< line x1 = "3" y1 = "18" x2 = "21" y2 = "18" > < / line >
< / svg >
< / symbol >
< symbol id = "svg-arrow-right" viewBox = "0 0 24 24" >
< title > Expand< / title >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right">
< polyline points = "9 18 15 12 9 6" > < / polyline >
< / svg >
< / symbol >
< symbol id = "svg-sun" viewBox = "0 0 24 24" >
< title > Light mode< / title >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="feather-sun">
< circle cx = "12" cy = "12" r = "5" > < / circle >
< line x1 = "12" y1 = "1" x2 = "12" y2 = "3" > < / line >
< line x1 = "12" y1 = "21" x2 = "12" y2 = "23" > < / line >
< line x1 = "4.22" y1 = "4.22" x2 = "5.64" y2 = "5.64" > < / line >
< line x1 = "18.36" y1 = "18.36" x2 = "19.78" y2 = "19.78" > < / line >
< line x1 = "1" y1 = "12" x2 = "3" y2 = "12" > < / line >
< line x1 = "21" y1 = "12" x2 = "23" y2 = "12" > < / line >
< line x1 = "4.22" y1 = "19.78" x2 = "5.64" y2 = "18.36" > < / line >
< line x1 = "18.36" y1 = "5.64" x2 = "19.78" y2 = "4.22" > < / line >
< / svg >
< / symbol >
< symbol id = "svg-moon" viewBox = "0 0 24 24" >
< title > Dark mode< / title >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon">
< path stroke = "none" d = "M0 0h24v24H0z" fill = "none" / >
< path d = "M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" / >
< / svg >
< / symbol >
< symbol id = "svg-sun-half" viewBox = "0 0 24 24" >
< title > Auto light/dark mode< / title >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
< path stroke = "none" d = "M0 0h24v24H0z" fill = "none" / >
< circle cx = "12" cy = "12" r = "9" / >
< path d = "M13 12h5" / >
< path d = "M13 15h4" / >
< path d = "M13 18h1" / >
< path d = "M13 9h4" / >
< path d = "M13 6h1" / >
< / svg >
< / symbol >
< / svg >
< input type = "checkbox" class = "sidebar-toggle" name = "__navigation" id = "__navigation" >
< input type = "checkbox" class = "sidebar-toggle" name = "__toc" id = "__toc" >
< label class = "overlay sidebar-overlay" for = "__navigation" >
< div class = "visually-hidden" > Hide navigation sidebar< / div >
< / label >
< label class = "overlay toc-overlay" for = "__toc" >
< div class = "visually-hidden" > Hide table of contents sidebar< / div >
< / label >
< div class = "page" >
< header class = "mobile-header" >
< div class = "header-left" >
< label class = "nav-overlay-icon" for = "__navigation" >
< div class = "visually-hidden" > Toggle site navigation sidebar< / div >
< i class = "icon" > < svg > < use href = "#svg-menu" > < / use > < / svg > < / i >
< / label >
< / div >
< div class = "header-center" >
< a href = "index.html" > < div class = "brand" > p2p-ld 0.1.0 documentation< / div > < / a >
< / div >
< div class = "header-right" >
< div class = "theme-toggle-container theme-toggle-header" >
< button class = "theme-toggle" >
< div class = "visually-hidden" > Toggle Light / Dark / Auto color theme< / div >
< svg class = "theme-icon-when-auto" > < use href = "#svg-sun-half" > < / use > < / svg >
< svg class = "theme-icon-when-dark" > < use href = "#svg-moon" > < / use > < / svg >
< svg class = "theme-icon-when-light" > < use href = "#svg-sun" > < / use > < / svg >
< / button >
< / div >
< label class = "toc-overlay-icon toc-header-icon" for = "__toc" >
< div class = "visually-hidden" > Toggle table of contents sidebar< / div >
< i class = "icon" > < svg > < use href = "#svg-toc" > < / use > < / svg > < / i >
< / label >
< / div >
< / header >
< aside class = "sidebar-drawer" >
< div class = "sidebar-container" >
< div class = "sidebar-sticky" > < a class = "sidebar-brand" href = "index.html" >
< span class = "sidebar-brand-text" > p2p-ld 0.1.0 documentation< / span >
< / a > < form class = "sidebar-search-container" method = "get" action = "search.html" role = "search" >
< input class = "sidebar-search" placeholder = "Search" name = "q" aria-label = "Search" >
< input type = "hidden" name = "check_keywords" value = "yes" >
< input type = "hidden" name = "area" value = "default" >
< / form >
< div id = "searchbox" > < / div > < div class = "sidebar-scroll" > < div class = "sidebar-tree" >
2023-06-07 02:11:30 +00:00
< p class = "caption" role = "heading" > < span class = "caption-text" > Introduction< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "overview.html" > Overview< / a > < / li >
2023-12-12 05:37:50 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "roadmap.html" > Roadmap< / a > < / li >
2023-06-09 04:19:31 +00:00
< li class = "toctree-l1 has-children" > < a class = "reference internal" href = "comparison/index.html" > Comparison< / a > < input class = "toctree-checkbox" id = "toctree-checkbox-1" name = "toctree-checkbox-1" role = "switch" type = "checkbox" / > < label for = "toctree-checkbox-1" > < div class = "visually-hidden" > Toggle navigation of Comparison< / div > < i class = "icon" > < svg > < use href = "#svg-arrow-right" > < / use > < / svg > < / i > < / label > < ul >
2023-06-20 02:21:17 +00:00
< li class = "toctree-l2 has-children" > < a class = "reference internal" href = "comparison/p2p/index.html" > P2P< / a > < input class = "toctree-checkbox" id = "toctree-checkbox-2" name = "toctree-checkbox-2" role = "switch" type = "checkbox" / > < label for = "toctree-checkbox-2" > < div class = "visually-hidden" > Toggle navigation of P2P< / div > < i class = "icon" > < svg > < use href = "#svg-arrow-right" > < / use > < / svg > < / i > < / label > < ul >
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/p2p/bittorrent.html" > BitTorrent< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/p2p/ipfs.html" > IPFS< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/p2p/hypercore.html" > Dat/Hypercore< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/p2p/spritely.html" > Spritely/Goblin< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l2 has-children" > < a class = "reference internal" href = "comparison/social/index.html" > Social< / a > < input class = "toctree-checkbox" id = "toctree-checkbox-3" name = "toctree-checkbox-3" role = "switch" type = "checkbox" / > < label for = "toctree-checkbox-3" > < div class = "visually-hidden" > Toggle navigation of Social< / div > < i class = "icon" > < svg > < use href = "#svg-arrow-right" > < / use > < / svg > < / i > < / label > < ul >
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/social/activitypub.html" > ActivityPub< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/social/ssb.html" > Secure Scuttlebutt< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/social/matrix.html" > Matrix< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/social/at_protocol.html" > AT Protocol/Bluesky< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/social/nostr.html" > Nostr< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/social/xmpp.html" > XMPP< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l2 has-children" > < a class = "reference internal" href = "comparison/ld/index.html" > Linked Data< / a > < input class = "toctree-checkbox" id = "toctree-checkbox-4" name = "toctree-checkbox-4" role = "switch" type = "checkbox" / > < label for = "toctree-checkbox-4" > < div class = "visually-hidden" > Toggle navigation of Linked Data< / div > < i class = "icon" > < svg > < use href = "#svg-arrow-right" > < / use > < / svg > < / i > < / label > < ul >
2023-06-28 04:35:44 +00:00
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/ld/rdf.html" > RDF and Friends< / a > < / li >
2023-06-20 02:21:17 +00:00
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/ld/solid.html" > SOLID< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/ld/ld_fragments.html" > Linked Data Fragments< / a > < / li >
2023-07-01 06:59:21 +00:00
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/ld/hdt.html" > HDT< / a > < / li >
2023-06-20 02:21:17 +00:00
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/ld/ld_platform.html" > Linked Data Platform< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/ld/nanopubs.html" > NanoPubs< / a > < / li >
2024-02-24 06:00:02 +00:00
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/ld/webid.html" > WebID< / a > < / li >
2023-06-20 02:21:17 +00:00
< / ul >
< / li >
< li class = "toctree-l2 has-children" > < a class = "reference internal" href = "comparison/data/index.html" > Data Structures< / a > < input class = "toctree-checkbox" id = "toctree-checkbox-5" name = "toctree-checkbox-5" role = "switch" type = "checkbox" / > < label for = "toctree-checkbox-5" > < div class = "visually-hidden" > Toggle navigation of Data Structures< / div > < i class = "icon" > < svg > < use href = "#svg-arrow-right" > < / use > < / svg > < / i > < / label > < ul >
2023-07-01 06:59:21 +00:00
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/data/datalad.html" > DataLad< / a > < / li >
2023-06-20 02:21:17 +00:00
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/data/dmc.html" > DMC< / a > < / li >
2023-07-01 06:59:21 +00:00
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/data/eris.html" > ERIS< / a > < / li >
2023-11-28 07:26:49 +00:00
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/data/graphdb.html" > Graph Databases< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "comparison/data/sqlite.html" > SQLite< / a > < / li >
2023-06-20 02:21:17 +00:00
< / ul >
< / li >
2023-06-09 04:19:31 +00:00
< / ul >
< / li >
2023-06-07 02:11:30 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "p2p_concepts.html" > P2P Concepts< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "out_of_scope.html" > Out of Scope< / a > < / li >
< / ul >
< p class = "caption" role = "heading" > < span class = "caption-text" > Protocol< / span > < / p >
< ul class = "current" >
2023-06-09 04:19:31 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "definitions.html" > 1. Definitions< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "protocol.html" > 2. Protocol< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "identity.html" > 3. Identity< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "discovery.html" > 4. Discovery< / a > < / li >
2023-06-19 19:04:24 +00:00
< li class = "toctree-l1 current current-page" > < a class = "current reference internal" href = "#" > 5. Data Structures< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "vocabulary.html" > 6. Vocabulary< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "querying.html" > 7. Querying< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "encryption.html" > 8. Encryption< / a > < / li >
2023-11-28 07:26:49 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "federation.html" > 9. Federation< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "backwards_compatibility.html" > 10. Backwards Compatibility< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "evolvability.html" > 11. Evolvability< / a > < / li >
2023-06-07 02:11:30 +00:00
< / ul >
< p class = "caption" role = "heading" > < span class = "caption-text" > Ecosystem< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "triplets.html" > Triplets< / a > < / li >
2023-07-01 06:59:21 +00:00
< li class = "toctree-l1 has-children" > < a class = "reference internal" href = "codecs/index.html" > Codecs< / a > < input class = "toctree-checkbox" id = "toctree-checkbox-6" name = "toctree-checkbox-6" role = "switch" type = "checkbox" / > < label for = "toctree-checkbox-6" > < div class = "visually-hidden" > Toggle navigation of Codecs< / div > < i class = "icon" > < svg > < use href = "#svg-arrow-right" > < / use > < / svg > < / i > < / label > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "codecs/hdf5.html" > HDF5< / a > < / li >
< / ul >
< / li >
2023-06-19 19:04:24 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "translation/index.html" > Translation< / a > < / li >
2023-06-07 02:11:30 +00:00
< / ul >
< p class = "caption" role = "heading" > < span class = "caption-text" > Drafting< / span > < / p >
< ul >
2023-06-09 04:19:31 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "design.html" > Design Decisions< / a > < / li >
2023-06-07 02:11:30 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "sketchpad.html" > Sketchpad< / a > < / li >
< / ul >
< p class = "caption" role = "heading" > < span class = "caption-text" > Meta< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "genindex.html" > Index< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "references.html" > References< / a > < / li >
2023-11-28 07:26:49 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "todo.html" > TODO< / a > < / li >
2023-06-07 02:11:30 +00:00
< / ul >
2023-06-07 01:31:03 +00:00
< / div >
< / div >
< / div >
< / div >
< / aside >
< div class = "main" >
< div class = "content" >
< div class = "article-container" >
< a href = "#" class = "back-to-top muted-link" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" >
< path d = "M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z" > < / path >
< / svg >
< span > Back to top< / span >
< / a >
< div class = "content-icon-container" >
< div class = "theme-toggle-container theme-toggle-content" >
< button class = "theme-toggle" >
< div class = "visually-hidden" > Toggle Light / Dark / Auto color theme< / div >
< svg class = "theme-icon-when-auto" > < use href = "#svg-sun-half" > < / use > < / svg >
< svg class = "theme-icon-when-dark" > < use href = "#svg-moon" > < / use > < / svg >
< svg class = "theme-icon-when-light" > < use href = "#svg-sun" > < / use > < / svg >
< / button >
< / div >
< label class = "toc-overlay-icon toc-content-icon" for = "__toc" >
< div class = "visually-hidden" > Toggle table of contents sidebar< / div >
< i class = "icon" > < svg > < use href = "#svg-toc" > < / use > < / svg > < / i >
< / label >
< / div >
< article role = "main" >
< section id = "data-structures" >
2023-06-19 19:04:24 +00:00
< h1 > < span class = "section-number" > 5. < / span > Data Structures< a class = "headerlink" href = "#data-structures" title = "Permalink to this heading" > #< / a > < / h1 >
2023-06-07 01:07:35 +00:00
< p > Triplet graphs similar to linked data fragments with envelopes. decoupling content addressing from versioning< / p >
2023-06-07 01:31:03 +00:00
< ul class = "simple" >
< li > < p > Merkel DAGs< / p > < / li >
< li > < p > Envelopes< / p > < / li >
< li > < p > Versioning< / p > < / li >
< li > < p > Typed objects with formatting< / p > < / li >
2023-06-07 01:07:35 +00:00
< / ul >
2023-06-07 01:31:03 +00:00
< section id = "containers" >
2023-06-19 19:04:24 +00:00
< span id = "id1" > < / span > < h2 > < span class = "section-number" > 5.1. < / span > Containers< a class = "headerlink" href = "#containers" title = "Permalink to this heading" > #< / a > < / h2 >
2023-06-28 04:35:44 +00:00
< div class = "admonition important" >
< p class = "admonition-title" > Important< / p >
< p > Ya this seems like the right set of ideas to build on< / p >
< ul class = "simple" >
< li > < p > < a class = "reference external" href = "https://www.w3.org/TR/json-ld11-framing/" > https://www.w3.org/TR/json-ld11-framing/< / a > < / p > < / li >
< li > < p > < a class = "reference external" href = "https://w3c.github.io/rdf-canon/spec/#introduction" > https://w3c.github.io/rdf-canon/spec/#introduction< / a > < / p > < / li >
< / ul >
< / div >
2023-06-07 01:31:03 +00:00
< ul class = "simple" >
< li > < p > Packets of LD-triplets that contain< / p >
2023-06-07 01:07:35 +00:00
< ul >
2023-06-07 01:31:03 +00:00
< li > < p > Hash of triplets< / p > < / li >
< li > < p > Encryption Info (if applicable)< / p > < / li >
< li > < p > Permissions scope< / p > < / li >
< li > < p > Signature< / p > < / li >
2023-06-07 01:07:35 +00:00
< / ul >
< / li >
2023-06-07 01:31:03 +00:00
< li > < p > Anything that can be directly referenced without local qualifier is a container.< / p >
2023-06-07 01:07:35 +00:00
< ul >
2023-06-09 04:19:31 +00:00
< li > < p > Triplets within a container can be referenced with the < a class = "reference internal" href = "querying.html#qlocation" > < span class = "std std-ref" > query syntax< / span > < / a > < / p > < / li >
2023-06-07 01:07:35 +00:00
< / ul >
< / li >
2023-06-07 01:31:03 +00:00
< li > < p > Containers also behave like “feeds”< / p >
2023-06-07 01:07:35 +00:00
< ul >
2023-06-07 01:31:03 +00:00
< li > < p > Eg. one might put their blog posts in < code class = "docutils literal notranslate" > < span class = "pre" > @ user:blog< / span > < / code > or< / p > < / li >
2023-06-07 01:07:35 +00:00
< / ul >
< / li >
2023-06-07 01:31:03 +00:00
< li > < p > The account identifier is the top-level container.< / p > < / li >
< li > < p > Ordering:< / p >
2023-06-07 01:07:35 +00:00
< ul >
2023-06-07 01:31:03 +00:00
< li > < p > Every triple within a scope is ordered by default by the time it is declared< / p > < / li >
2023-06-09 04:19:31 +00:00
< li > < p > A container can declare its ordering (see < a class = "reference internal" href = "definitions.html#term-Container" > < span class = "xref std std-term" > Container< / span > < / a > )< / p > < / li >
2023-06-07 01:07:35 +00:00
< / ul >
< / li >
2023-06-07 01:31:03 +00:00
< li > < p > Naming:< / p >
2023-06-07 01:07:35 +00:00
< ul >
2023-06-07 01:31:03 +00:00
< li > < p > Each container intended to be directly referenced SHOULD contain a < code class = "docutils literal notranslate" > < span class = "pre" > name< / span > < / code > so it can be referenced w.r.t its parent: < code class = "docutils literal notranslate" > < span class = "pre" > @ < ACCOUNT> :< name> < / span > < / code > < / p > < / li >
< li > < p > Each container can also be indicated numerically< / p > < / li >
2023-06-07 01:07:35 +00:00
< / ul >
< / li >
2023-06-07 01:31:03 +00:00
< li > < p > Identity: Each container is uniquely identified by the hash of its contents and the hash of the account identifier.< / p > < / li >
< li > < p > Format: A container can specify one or several ways it can be displayed< / p > < / li >
< li > < p > Capabilities: A container can specify different capabilities that another account can take (eg. “Like”, “Upvote”, “Reply”)< / p >
2023-06-07 01:07:35 +00:00
< ul >
2023-06-07 01:31:03 +00:00
< li > < p > Capabilities should also contain a permissions scope, if none is present, the global scope is assumed.< / p > < / li >
2023-06-09 04:19:31 +00:00
< li > < p > Since Identities are just a special form of container, they too can advertise different actions that they support with capabilities.< / p > < / li >
2023-06-07 01:07:35 +00:00
< / ul >
< / li >
2023-06-19 19:04:24 +00:00
< li > < p > Basically a container is a merkle DAG with binary data at its leaves a la the < span class = "target" id = "index-0" > < / span > Linked Data; Platform< / p > < / li >
< li > < p > Re: Ordering - < a class = "reference external" href = "https://github.com/ssbc/ssb-tangle" > https://github.com/ssbc/ssb-tangle< / a > < / p > < / li >
2023-06-07 01:07:35 +00:00
< / ul >
2023-06-19 19:04:24 +00:00
< p > Re hashing a graph: the container always has one root node that is the container’ s identity from which a graph traversal starts. A < span class = "target" id = "index-1" > < / span > Merkle DAG is then constructed starting from the leaves.< / p >
2023-06-07 01:31:03 +00:00
< / section >
< section id = "triplets" >
2023-06-19 19:04:24 +00:00
< h2 > < span class = "section-number" > 5.2. < / span > Triplets< a class = "headerlink" href = "#triplets" title = "Permalink to this heading" > #< / a > < / h2 >
2023-06-07 01:31:03 +00:00
< ul class = "simple" >
< li > < p > Triplet format< / p >
2023-06-07 01:07:35 +00:00
< ul >
2023-06-07 01:31:03 +00:00
< li > < p > Objects require a shortname that can be hierarchically indexed from< / p > < / li >
2023-06-07 01:07:35 +00:00
< / ul >
< / li >
2023-06-07 01:31:03 +00:00
< li > < p > Types/Schema< / p > < / li >
< li > < p > Including intrinsic notion of nesting< / p >
2023-06-07 01:07:35 +00:00
< ul >
2023-06-07 01:31:03 +00:00
< li > < p > every object can have blank/positionally indexed children< / p > < / li >
< li > < p > every triple can have blank/positionally indexed “qualifiers” like RDF-star or wikidata’ s qualifiers.< / p > < / li >
2023-06-07 01:07:35 +00:00
< / ul >
< / li >
< / ul >
2023-06-07 01:31:03 +00:00
< / section >
< section id = "schema" >
2023-06-19 19:04:24 +00:00
< h2 > < span class = "section-number" > 5.3. < / span > Schema< a class = "headerlink" href = "#schema" title = "Permalink to this heading" > #< / a > < / h2 >
2023-06-07 01:31:03 +00:00
< / section >
< section id = "codecs" >
2023-06-19 19:04:24 +00:00
< h2 > < span class = "section-number" > 5.4. < / span > Codecs< a class = "headerlink" href = "#codecs" title = "Permalink to this heading" > #< / a > < / h2 >
2023-06-07 01:07:35 +00:00
< p > See IPLD Codecs and Linked Data Platform spec< / p >
2023-06-07 01:31:03 +00:00
< p > Means of interacting with binary data.< / p >
2023-06-07 01:07:35 +00:00
< p > Describes< / p >
2023-06-07 01:31:03 +00:00
< ul class = "simple" >
< li > < p > Format< / p > < / li >
2023-06-07 01:07:35 +00:00
< li > < / li >
< / ul >
2023-06-07 01:31:03 +00:00
< / section >
< section id = "versioning" >
2023-06-19 19:04:24 +00:00
< h2 > < span class = "section-number" > 5.5. < / span > Versioning< a class = "headerlink" href = "#versioning" title = "Permalink to this heading" > #< / a > < / h2 >
2023-06-07 01:31:03 +00:00
< ul class = "simple" >
< li > < p > A given container has an identity hash from its first packing< / p > < / li >
< li > < p > A given triple can be contained by< / p > < / li >
2023-06-07 01:07:35 +00:00
< / ul >
2023-06-07 01:31:03 +00:00
< / section >
2023-06-28 04:35:44 +00:00
< section id = "canonicalization" >
< h2 > < span class = "section-number" > 5.6. < / span > Canonicalization< a class = "headerlink" href = "#canonicalization" title = "Permalink to this heading" > #< / a > < / h2 >
< ul class = "simple" >
< li > < p > < a class = "reference external" href = "https://w3c.github.io/rdf-canon/spec/#introduction" > https://w3c.github.io/rdf-canon/spec/#introduction< / a > < / p > < / li >
< li > < p > < a class = "reference external" href = "https://json-ld.org/spec/ED/rdf-graph-normalization/20111016/" > https://json-ld.org/spec/ED/rdf-graph-normalization/20111016/< / a > < / p > < / li >
< li > < p > < a class = "reference external" href = "https://www.w3.org/TR/json-ld11-framing/" > https://www.w3.org/TR/json-ld11-framing/< / a > < / p > < / li >
< / ul >
< / section >
< section id = "compare-to" >
< h2 > < span class = "section-number" > 5.7. < / span > Compare to:< a class = "headerlink" href = "#compare-to" title = "Permalink to this heading" > #< / a > < / h2 >
< ul class = "simple" >
< li > < p > < span class = "target" id = "index-2" > < / span > CORAL - < a class = "reference external" href = "https://github.com/jmchandonia/CORAL" > https://github.com/jmchandonia/CORAL< / a > < / p >
< ul >
< li > < p > 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.< / p > < / li >
< / ul >
< / li >
< / ul >
< / section >
2023-06-07 01:31:03 +00:00
< / section >
2023-06-07 01:07:35 +00:00
2023-06-07 01:31:03 +00:00
< / article >
< / div >
< footer >
< div class = "related-pages" >
2023-06-07 02:11:30 +00:00
< a class = "next-page" href = "vocabulary.html" >
< div class = "page-info" >
< div class = "context" >
< span > Next< / span >
< / div >
2023-06-19 19:04:24 +00:00
< div class = "title" > < span class = "section-number" > 6. < / span > Vocabulary< / div >
2023-06-07 02:11:30 +00:00
< / div >
< svg class = "furo-related-icon" > < use href = "#svg-arrow-right" > < / use > < / svg >
< / a >
< a class = "prev-page" href = "discovery.html" >
< svg class = "furo-related-icon" > < use href = "#svg-arrow-right" > < / use > < / svg >
< div class = "page-info" >
< div class = "context" >
< span > Previous< / span >
< / div >
2023-06-09 04:19:31 +00:00
< div class = "title" > < span class = "section-number" > 4. < / span > Discovery< / div >
2023-06-07 02:11:30 +00:00
< / div >
< / a >
2023-06-07 01:31:03 +00:00
< / div >
< div class = "bottom-of-page" >
< div class = "left-details" >
< div class = "copyright" >
Copyright © 2023, Jonny Saunders
2023-06-07 01:07:35 +00:00
< / div >
2023-06-07 01:31:03 +00:00
Made with < a href = "https://www.sphinx-doc.org/" > Sphinx< / a > and < a class = "muted-link" href = "https://pradyunsg.me" > @pradyunsg< / a > 's
< a href = "https://github.com/pradyunsg/furo" > Furo< / a >
< / div >
< div class = "right-details" >
< / div >
2023-06-07 01:07:35 +00:00
< / div >
2023-06-07 01:31:03 +00:00
< / footer >
2023-06-07 01:07:35 +00:00
< / div >
2023-06-07 01:31:03 +00:00
< aside class = "toc-drawer" >
< div class = "toc-sticky toc-scroll" >
< div class = "toc-title-container" >
< span class = "toc-title" >
On this page
< / span >
< / div >
< div class = "toc-tree-container" >
< div class = "toc-tree" >
< ul >
2023-06-19 19:04:24 +00:00
< li > < a class = "reference internal" href = "#" > 5. Data Structures< / a > < ul >
< li > < a class = "reference internal" href = "#containers" > 5.1. Containers< / a > < / li >
< li > < a class = "reference internal" href = "#triplets" > 5.2. Triplets< / a > < / li >
< li > < a class = "reference internal" href = "#schema" > 5.3. Schema< / a > < / li >
< li > < a class = "reference internal" href = "#codecs" > 5.4. Codecs< / a > < / li >
< li > < a class = "reference internal" href = "#versioning" > 5.5. Versioning< / a > < / li >
2023-06-28 04:35:44 +00:00
< li > < a class = "reference internal" href = "#canonicalization" > 5.6. Canonicalization< / a > < / li >
< li > < a class = "reference internal" href = "#compare-to" > 5.7. Compare to:< / a > < / li >
2023-06-07 01:31:03 +00:00
< / ul >
< / li >
< / ul >
< / div >
< / div >
< / div >
< / aside >
< / div >
< / div > < script data-url_root = "./" id = "documentation_options" src = "_static/documentation_options.js" > < / script >
< script src = "_static/doctools.js" > < / script >
< script src = "_static/sphinx_highlight.js" > < / script >
< script src = "_static/scripts/furo.js" > < / script >
2023-06-28 04:35:44 +00:00
< script src = "_static/design-tabs.js" > < / script >
2023-06-07 01:07:35 +00:00
< / body >
2023-06-07 01:31:03 +00:00
< / html >