<https://docs.linkeddatahub.com/reference/http-api/linked-data-proxy/>
        a       <https://w3id.org/atomgraph/linkeddatahub/document-hierarchy#Item>;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
                <https://docs.linkeddatahub.com/reference/http-api/linked-data-proxy/#content>;
        <http://purl.org/dc/terms/created>
                "2026-10-17T19:39:30.675Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
        <http://purl.org/dc/terms/creator>
                <https://admin.linkeddatahub.com/acl/agents/5ba81960-d511-4a3b-8b9a-cb5bb278dd95/#this>;
        <http://purl.org/dc/terms/description>
                "Browse, query and write to external Linked Data and other dataspaces";
        <http://purl.org/dc/terms/modified>
                "2026-10-17T19:59:11.485Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
        <http://purl.org/dc/terms/title>
                "Linked Data proxy";
        <http://rdfs.org/sioc/ns#has_container>
                <https://docs.linkeddatahub.com/reference/http-api/>;
        <http://www.w3.org/ns/auth/acl#owner>
                <https://admin.linkeddatahub.com/acl/agents/5ba81960-d511-4a3b-8b9a-cb5bb278dd95/#this> .

<https://docs.linkeddatahub.com/reference/http-api/linked-data-proxy/#content>
        a       <https://w3id.org/atomgraph/linkeddatahub#XHTML>;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n    <p class=\"ldh-body-lg\">Browse, query and write to external Linked Data and other dataspaces</p>\n    <div>\n        <h2 id=\"ld-proxy\">Linked Data proxy</h2>\n        <p>LinkedDataHub works as a <dfn>Linked Data proxy</dfn> (from the end-user perspective, as a <dfn>Linked Data browser</dfn>) when a URL is provided using the <code>uri</code> query parameter.\n            All HTTP methods are supported.</p>\n        <p>If the URL dereferences successfully as RDF, LinkedDataHub forwards its response body (re-serializing it to enable content negotiation).\n            During a write request, the request body is forwarded to the provided URL.</p>\n        <p>If the URL returns an HTML document, LinkedDataHub extracts every embedded <a href=\"https://json-ld.org/\" target=\"_blank\">JSON-LD</a> script\n            (<code>&lt;script type=\"application/ld+json\"&gt;</code>) and parses it as RDF using JSON-LD 1.1. Pages annotated with <a href=\"https://schema.org/\" target=\"_blank\">schema.org</a> markup\n            can therefore be browsed as Linked Data. The schema.org JSON-LD context is bundled with LinkedDataHub and served locally, so no external network request is made to resolve it. A supplier's homepage carrying this markup:</p>\n        <pre>&lt;script type=\"application/ld+json\"&gt;\n{\n    \"@context\": \"https://schema.org/\",\n    \"@type\": \"Corporation\",\n    \"@id\": \"#this\",\n    \"legalName\": \"Exotic Liquids\",\n    \"telephone\": \"(171) 555-2222\"\n}\n&lt;/script&gt;</pre>\n        <p>browses as these triples:</p>\n        <pre>&lt;https://supplier.example/#this&gt; a schema:Corporation ;\n    schema:legalName \"Exotic Liquids\" ;\n    schema:telephone \"(171) 555-2222\" .</pre>\n        <p>An HTML page with no JSON-LD has no RDF representation, so the proxy answers <code>406 Not Acceptable</code>. The user interface then opens the\n            page in a new browser tab, as an ordinary external link would.</p>\n        <p>The proxy only accepts external (non-relative to the current dataspace's base URI) URLs; local URLs have to be dereferenced directly.</p>\n        <p>The proxy forwards the origin's <code>ETag</code> and <code>Last-Modified</code> validators and passes conditional request headers\n            (<code>If-Match</code>, <code>If-None-Match</code>, <code>If-Modified-Since</code>, <code>If-Unmodified-Since</code>) through. Preconditioned\n            writes against proxied documents are therefore evaluated at the origin. Error statuses from the origin reach the client unchanged.</p>\n    </div>\n    <div>\n        <h2 id=\"federation\">Federation</h2>\n        <p>The Linked Data proxy makes dataspaces interoperable across origins: one dataspace's client can browse, query, and write to another\n            origin's dataspace, whether on the same LinkedDataHub instance or a different one.</p>\n        <p>Browsing a UNESCO Thesaurus concept from the Northwind dataspace, for example, the proxy forwards the remote dataspace's hypermedia along\n            with the RDF:</p>\n        <pre>GET /?uri=https%3A%2F%2Funesco-thesaurus.demo.linkeddatahub.com%2Fconcepts%2Fconcept3683%2F HTTP/1.1\nHost: northwind-traders.demo.linkeddatahub.com\nAccept: application/rdf+xml\n\nHTTP/1.1 200 OK\nContent-Type: application/rdf+xml\nLink: &lt;https://unesco-thesaurus.demo.linkeddatahub.com/sparql&gt;; rel=\"http://www.w3.org/ns/sparql-service-description#endpoint\"</pre>\n        <ul>\n            <li>The remote dataspace's SPARQL endpoint is discovered from the <code>Link</code> headers the proxy forwards, so views and charts over\n                remote documents query the <em>remote</em> endpoint</li>\n            <li>Writes are graph-scoped SPARQL updates (<code>PATCH</code>) or appends (<code>POST</code>) sent through the proxy under the origin's\n                <code>If-Match</code> precondition</li>\n            <li>Requests carry the delegated identity of the requesting agent, so the remote dataspace's <a href=\"../../administration/acl/\">access control</a>\n                arbitrates every operation</li>\n        </ul>\n        <p>In the user interface this means you can <a href=\"../../../user-guide/browse-data/\">browse</a> a remote dataspace and\n            <a href=\"../../../user-guide/add-data/\">add data</a> to its documents the same way as to local ones, provided the remote access control allows it.</p>\n        <p>The example above uses the public demo hosts because they are reachable without any setup, but nothing about federation requires a second\n            instance: two <a href=\"../../dataspace/#dataspaces\">dataspaces</a> on one LinkedDataHub are distinct origins, so the same exchange happens between\n            <samp>northwind-traders.demo.localhost:4443</samp> and <samp>unesco-thesaurus.demo.localhost:4443</samp> once both are\n            <a href=\"../../../user-guide/manage-dataspaces/#create-dataspace\">declared</a>.</p>\n    </div>\n</div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> .
