docs/comparison/ld/ld_fragments.html

402 lines
No EOL
27 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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/" />
<link rel="index" title="Index" href="../../genindex.html" /><link rel="search" title="Search" href="../../search.html" /><link rel="next" title="HDT" href="hdt.html" /><link rel="prev" title="SOLID" href="solid.html" />
<link rel="canonical" href="/docs/comparison/ld/ld_fragments.html" />
<!-- Generated with Sphinx 6.2.1 and Furo 2023.05.20 -->
<title>Linked Data Fragments - p2p-ld 0.1.0 documentation</title>
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../../_static/styles/furo.css?digest=e6660623a769aa55fea372102b9bf3151b292993" />
<link rel="stylesheet" type="text/css" href="../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
<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"] {
--color-code-background: #0d1117;
--color-code-foreground: #e6edf3;
}
@media (prefers-color-scheme: dark) {
body:not([data-theme="light"]) {
--color-code-background: #0d1117;
--color-code-foreground: #e6edf3;
}
}
}
</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">
<p class="caption" role="heading"><span class="caption-text">Introduction</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../overview.html">Overview</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../roadmap.html">Roadmap</a></li>
<li class="toctree-l1 current has-children"><a class="reference internal" href="../index.html">Comparison</a><input checked="" 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 class="current">
<li class="toctree-l2 has-children"><a class="reference internal" href="../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="../p2p/bittorrent.html">BitTorrent</a></li>
<li class="toctree-l3"><a class="reference internal" href="../p2p/ipfs.html">IPFS</a></li>
<li class="toctree-l3"><a class="reference internal" href="../p2p/hypercore.html">Dat/Hypercore</a></li>
<li class="toctree-l3"><a class="reference internal" href="../p2p/spritely.html">Spritely/Goblin</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../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="../social/activitypub.html">ActivityPub</a></li>
<li class="toctree-l3"><a class="reference internal" href="../social/ssb.html">Secure Scuttlebutt</a></li>
<li class="toctree-l3"><a class="reference internal" href="../social/matrix.html">Matrix</a></li>
<li class="toctree-l3"><a class="reference internal" href="../social/at_protocol.html">AT Protocol/Bluesky</a></li>
<li class="toctree-l3"><a class="reference internal" href="../social/nostr.html">Nostr</a></li>
<li class="toctree-l3"><a class="reference internal" href="../social/xmpp.html">XMPP</a></li>
</ul>
</li>
<li class="toctree-l2 current has-children"><a class="reference internal" href="index.html">Linked Data</a><input checked="" 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 class="current">
<li class="toctree-l3"><a class="reference internal" href="rdf.html">RDF and Friends</a></li>
<li class="toctree-l3"><a class="reference internal" href="solid.html">SOLID</a></li>
<li class="toctree-l3 current current-page"><a class="current reference internal" href="#">Linked Data Fragments</a></li>
<li class="toctree-l3"><a class="reference internal" href="hdt.html">HDT</a></li>
<li class="toctree-l3"><a class="reference internal" href="ld_platform.html">Linked Data Platform</a></li>
<li class="toctree-l3"><a class="reference internal" href="nanopubs.html">NanoPubs</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../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>
<li class="toctree-l3"><a class="reference internal" href="../data/datalad.html">DataLad</a></li>
<li class="toctree-l3"><a class="reference internal" href="../data/dmc.html">DMC</a></li>
<li class="toctree-l3"><a class="reference internal" href="../data/eris.html">ERIS</a></li>
<li class="toctree-l3"><a class="reference internal" href="../data/graphdb.html">Graph Databases</a></li>
<li class="toctree-l3"><a class="reference internal" href="../data/sqlite.html">SQLite</a></li>
</ul>
</li>
</ul>
</li>
<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>
<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>
<li class="toctree-l1"><a class="reference internal" href="../../data_structures.html">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>
<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>
</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>
<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>
<li class="toctree-l1"><a class="reference internal" href="../../translation/index.html">Translation</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Drafting</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../design.html">Design Decisions</a></li>
<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>
<li class="toctree-l1"><a class="reference internal" href="../../todo.html">TODO</a></li>
</ul>
</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="linked-data-fragments">
<span id="index-0"></span><h1>Linked Data Fragments<a class="headerlink" href="#linked-data-fragments" title="Permalink to this heading">#</a></h1>
<p><a class="reference internal" href="../../data_structures.html#containers"><span class="std std-ref">Containers</span></a> are one example of:</p>
<blockquote>
<div><p>However, we envision that different kinds of ldf partitionings will emerge, and that these might even vary dynamically depending on server load. Perhaps a semantic way to express the data, metadata, and hypermedia controls of each fragment will be necessary. -<span id="id1">[<a class="reference internal" href="../../references.html#id20" title="Ruben Verborgh, Sam Coppens, Miel Vander Sande, Erik Mannens, Pieter Colpaert, and Rik Van de Walle. Web-Scale Querying through Linked Data Fragments. In Proceedings of the 7th Workshop on Linked Data on the Web. 2014-04-08.">Verborgh <em>et al.</em>, 2014</a>]</span></p>
</div></blockquote>
<section id="summary">
<h2>Summary<a class="headerlink" href="#summary" title="Permalink to this heading">#</a></h2>
<p><a class="reference external" href="https://linkeddatafragments.org/publications/">Linked data fragments</a> are designed to “fill in the middle” between entirely serverside (<span class="target" id="index-1"></span>SPARQL) or clientside (downloading a triple store) usage of linked data triples. SPARQL queries are notorious for being resource intensive, as queries can become much more complex than typical relational algebra and the server needs to resolve a potentially enormous number of resources. Placing all the logic on the server, rather than the client, is an architectural decision that has a complex history, but descends from the idea that the web should work by having “agents” that work on the web on our behalf<a class="footnote-reference brackets" href="#semwebagents" id="id2" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a>.</p>
<p>Linked data fragments (LDFs) split the difference by placing more of the work on clients, with the server providing <span class="target" id="index-2"></span>pre-computed sets of triples for a given selector. “Selector” is a purposefully general concept, but the LDF authors focus primarily on <a class="reference external" href="https://linkeddatafragments.org/specification/triple-pattern-fragments/">Triple Pattern Fragments</a> that are composed of:</p>
<ul class="simple">
<li><p>A <strong>Triple Pattern</strong>, a <code class="docutils literal notranslate"><span class="pre">?subject</span> <span class="pre">?predicate</span> <span class="pre">?object</span></code> that defines the contents of the fragment</p></li>
<li><p><strong>Metadata</strong>, specifically a <code class="docutils literal notranslate"><span class="pre">triples</span></code> predicate indicating the estimated total number of triples in the fragment since large fragments need to be paginated, and</p></li>
<li><p><strong>Hypermedia Controls</strong> that can be used to retrieve other related fragments. For example, a triple pattern corresponding to <code class="docutils literal notranslate"><span class="pre">s:people</span></code> <code class="docutils literal notranslate"><span class="pre">p:named</span></code> <code class="docutils literal notranslate"><span class="pre">o:tom</span></code> would have links to retrieve all the related combinations including each field being unspecified, eg. any triplet whose subject is a <code class="docutils literal notranslate"><span class="pre">person</span></code>, predicate is <code class="docutils literal notranslate"><span class="pre">named</span></code> and so on.</p></li>
</ul>
<p>The hosting server then partitions all of the triples in a given dataset into all the possible combinations of subjects, predicates, and objects.</p>
</section>
<section id="overlap">
<h2>Overlap<a class="headerlink" href="#overlap" title="Permalink to this heading">#</a></h2>
<p>p2p-ld follows Linked Data Fragments in that it emphasizes clientside logic rather than query logic on the network. Executing distributed queries with as much logic as SPARQL can embed adds substantial complexity to the protocol and would potentially import a lot of the problems with SPARQL like heightened resource requirements and potential for abuse for denial of service.</p>
<p>LDF is a strategy for (pre-)partitioning a dataset of triples into cacheable chunks, rather than having the server query over the entire graph at once. It also emphasizes querying as iteration: do many small queries in sequence rather than one large query and waiting for the entire result.</p>
</section>
<section id="differences">
<h2>Differences<a class="headerlink" href="#differences" title="Permalink to this heading">#</a></h2>
<ul class="simple">
<li><p>Primarily, containers are more generic than LDFs. Where LDFs create a deterministic partitioning of a set of triples (all combinations, including wildcards, of each subject, predicate, and object in the dataset), p2p-ld partitions based on meaning and use. They are not mutually exclusive, though - one could also make containers that correspond to the expected LDF format.</p></li>
<li><p>re: <span class="target" id="index-3"></span>Linked Data Platform, p2p-ld also concerns “leaf” nodes with binary data accessed via codec, rather than represented as triplets. The results of queries are thus not necessarily imagined to be single factual assertions, but datasets, images, documents, posts, etc. -&gt; So the container concept is less rigidly defined than an LDF host with a completely partitioned triplet graph.</p></li>
</ul>
<p>Additionally, by being an explicitly <em>social</em> system, p2p-ld is unconcerned with arbitrary query execution on anonymous data systems - the expectation is that individual peers and <span class="target" id="index-4"></span>peer federations manage their resources and the norms around their use. Accordingly, they would manage a set of containers (or, the partition of its graph) that</p>
<div class="attention admonition">
<p class="admonition-title">To be very clear!</p>
<p>p2p-ld does not attempt to replace or improve SPARQL. There are a number of philosophical and practical differences in the design of the greater semantic web, and particularly its instantiation as bigass corporate knowledge graphs. We will do what we can to integrate with RDF and RDF-like technologies, but p2p-ld is <em>not</em> a distributed SPARQL endpoint.</p>
</div>
</section>
<section id="references">
<h2>References<a class="headerlink" href="#references" title="Permalink to this heading">#</a></h2>
<ul class="simple">
<li><p>Homepage: <a class="reference external" href="https://linkeddatafragments.org/">https://linkeddatafragments.org/</a></p></li>
<li><p>Papers:</p>
<ul>
<li><p>Original conference paper: <span id="id3">[<a class="reference internal" href="../../references.html#id20" title="Ruben Verborgh, Sam Coppens, Miel Vander Sande, Erik Mannens, Pieter Colpaert, and Rik Van de Walle. Web-Scale Querying through Linked Data Fragments. In Proceedings of the 7th Workshop on Linked Data on the Web. 2014-04-08.">Verborgh <em>et al.</em>, 2014</a>]</span></p></li>
<li><p><span id="id4">[<a class="reference internal" href="../../references.html#id19" title="Ruben Verborgh, Miel Vander Sande, Olaf Hartig, Joachim Van Herwegen, Laurens De Vocht, Ben De Meester, Gerald Haesendonck, and Pieter Colpaert. Triple Pattern Fragments: A low-cost knowledge graph interface for the Web. Journal of Web Semantics, 3738:184206, 2016-03. URL: https://linkinghub.elsevier.com/retrieve/pii/S1570826816000214 (visited on 2023-06-08), doi:10.1016/j.websem.2016.03.003.">Verborgh <em>et al.</em>, 2016</a>]</span></p></li>
</ul>
</li>
<li><p>Specification: <a class="reference external" href="https://linkeddatafragments.org/specification/triple-pattern-fragments/">Triple Pattern Fragments</a></p></li>
</ul>
<hr class="footnotes docutils" />
<aside class="footnote-list brackets">
<aside class="footnote brackets" id="semwebagents" role="note">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id2">1</a><span class="fn-bracket">]</span></span>
<p>See the history of the early to middle semantic web, discussed in <span id="id5">[<a class="reference internal" href="../../references.html#id16" title="Jonny L. Saunders. Surveillance Graphs. 2023-04-02T00:00:00+00:00. URL: https://jon-e.net/surveillance-graphs (visited on 2023-06-08), arXiv:hc:54749, doi:10.17613/syv8-cp10.">Saunders, 2023</a>]</span></p>
</aside>
</aside>
</section>
</section>
</article>
</div>
<footer>
<div class="related-pages">
<a class="next-page" href="hdt.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">HDT</div>
</div>
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="solid.html">
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">SOLID</div>
</div>
</a>
</div>
<div class="bottom-of-page">
<div class="left-details">
<div class="copyright">
Copyright &#169; 2023, Jonny Saunders
</div>
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>
</div>
</footer>
</div>
<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>
<li><a class="reference internal" href="#">Linked Data Fragments</a><ul>
<li><a class="reference internal" href="#summary">Summary</a></li>
<li><a class="reference internal" href="#overlap">Overlap</a></li>
<li><a class="reference internal" href="#differences">Differences</a></li>
<li><a class="reference internal" href="#references">References</a></li>
</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>
<script src="../../_static/design-tabs.js"></script>
</body>
</html>