<https://docs.linkeddatahub.com/user-guide/manage-dataspaces/#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\">Create or change a dataspace, and configure its SPARQL services and XSLT stylesheets</p>\n    <div>\n        <h2 id=\"configuration-files\">Configuration files</h2>\n        <p><a href=\"../../reference/dataspace/\" target=\"_blank\">Dataspaces</a> are configured using RDF configuration files in <a href=\"https://www.w3.org/TR/trig/\" target=\"_blank\">TriG</a> syntax:\n            <samp>config/dataspaces.trig</samp> holds the dataspace metadata, <samp>config/system.trig</samp> the internal service wiring, and <samp>secrets/credentials.trig</samp> the optional\n            service credentials. See the <a href=\"../../reference/configuration/#config-files\" target=\"_blank\">configuration reference</a> for details about these files.</p>\n        <p>The configuration uses the <a href=\"https://w3id.org/atomgraph/linkeddatahub/dataspaces\" target=\"_blank\">dataspace domain ontology</a>. Each dataspace — end-user or administration — is backed by its own SPARQL service and can specify its own <a href=\"../../reference/stylesheets/\" target=\"_blank\">XSLT stylesheet</a>.</p>\n        <p>Dataspace configuration is file-based — there is no <samp>ldh</samp> command for it. The <samp>config/*.trig</samp> files are read at startup, so changes to them require a restart of the LinkedDataHub service.</p>\n        <div class=\"ac-alert va-informative\" role=\"status\">\n            <span class=\"ac-alert-ic\"><span aria-hidden=\"true\" class=\"msi outline\">info</span></span>\n            <div class=\"ac-alert-body\">\n                <p class=\"ac-alert-text\">Dataspace base URIs must be relative to the <a href=\"../../reference/configuration/#system-base-uri\" target=\"_blank\">system base URI</a> configured in <samp>.env</samp>. If you change the system base URI, you must update the dataspace base URIs too, or they will not be reachable.</p>\n            </div>\n        </div>\n        <div>\n            <h3 id=\"create-dataspace\">Create a dataspace</h3>\n            <p>To create a new dataspace:</p>\n            <ol>\n                <li>Add instances of <code>lds:EndUserDataspace</code> and <code>lds:AdminDataspace</code> to <samp>config/dataspaces.trig</samp>, following the default dataspace as a template</li>\n                <li>Declare an <samp>end-user</samp> and an <samp>admin</samp> dataset for the dataspace in <samp>config/fuseki/config.ttl</samp>, named after its origin (deployment host dropped, role appended)</li>\n                <li>Add corresponding <code>sd:Service</code> instances to <samp>config/system.trig</samp>, each pointing at one of those datasets, and bind the dataspaces to them</li>\n            </ol>\n            <p>The relationship between end-user and admin dataspaces is inferred from their origins, and there is nothing to declare. A dataspace whose origin\n            (<code>lds:origin</code>) uses the <samp>admin.</samp> subdomain is recognized as an administration dataspace, and paired with the end-user dataspace on\n            the corresponding bare host.</p>\n            <div class=\"ac-alert va-informative\" role=\"status\">\n                <span class=\"ac-alert-ic\"><span aria-hidden=\"true\" class=\"msi outline\">info</span></span>\n                <div class=\"ac-alert-body\">\n                    <p class=\"ac-alert-text\">Use URIs (for example in the <samp>urn:</samp> scheme) to identify apps and services, not blank nodes. Make sure both files are valid <a href=\"https://www.w3.org/TR/trig/\" target=\"_blank\">TriG</a>, or the setup will not work. You can check the syntax with Apache Jena's <samp>riot --validate</samp>.</p>\n                </div>\n            </div>\n        </div>\n        <div>\n            <h3 id=\"change-stylesheet\">Change stylesheet</h3>\n            <p>Change the value of <code>ac:stylesheet</code> to the URI of your <a href=\"../../reference/stylesheets/\" target=\"_blank\">XSLT stylesheet</a>. Add the property if it is absent. The value has to be an absolute URL on the dataspace's own origin.</p>\n            <p>The stylesheet can either be <a href=\"../upload-file/\" target=\"_blank\">uploaded as a file</a> or <a href=\"https://docs.docker.com/storage/bind-mounts/\" target=\"_blank\">mounted</a> in <samp>docker-compose.yml</samp>, in the <samp>volumes</samp> section of the <samp>linkeddatahub</samp> service. Mounting is useful while developing.</p>\n            <p>It is rarely necessary to change the stylesheet of an admin dataspace, but the procedure is identical.</p>\n        </div>\n    </div>\n    <div>\n        <h2 id=\"manage-services\">Manage services</h2>\n        <p>The LinkedDataHub service, the single <samp>fuseki</samp> triplestore, the <samp>egress</samp> proxy and the <samp>sef-compiler</samp> are defined in <a href=\"https://github.com/AtomGraph/LinkedDataHub/blob/master/docker-compose.yml\" target=\"_blank\"><samp>docker-compose.yml</samp></a>; each runs as a Docker container. One Fuseki server holds an <samp>end-user</samp> and an <samp>admin</samp> dataset per dataspace, declared in <samp>config/fuseki/config.ttl</samp> — so giving a dataspace its own datasets means adding a dataset pair there and a matching pair of <code>sd:Service</code> instances in <samp>config/system.trig</samp>.</p>\n        <p>While LinkedDataHub uses <a href=\"https://jena.apache.org/documentation/fuseki2/\" target=\"_blank\">Apache Jena Fuseki</a> by default, you can configure it to use other SPARQL 1.1-compatible triplestores such as <a href=\"https://github.com/ad-freiburg/qlever\" target=\"_blank\">QLever</a>, <a href=\"https://github.com/dice-group/tentris\" target=\"_blank\">Tentris</a>, or others.</p>\n        <p>See the <a href=\"../../reference/triplestores/\" target=\"_blank\">triplestores reference</a> for step-by-step configuration examples, including QLever setup and troubleshooting.</p>\n    </div>\n    <p class=\"ldh-body-lg\">Read more about <a href=\"../../reference/dataspace/\" target=\"_blank\">dataspaces</a> and the <a href=\"../../reference/configuration/\" target=\"_blank\">configuration</a>.</p>\n</div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> .

<https://docs.linkeddatahub.com/user-guide/manage-dataspaces/>
        a       <https://w3id.org/atomgraph/linkeddatahub/document-hierarchy#Item>;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
                <https://docs.linkeddatahub.com/user-guide/manage-dataspaces/#content>;
        <http://purl.org/dc/terms/created>
                "2026-09-29T09:52:53.827Z"^^<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>
                "Create or change a dataspace, and configure its SPARQL services and XSLT stylesheets";
        <http://purl.org/dc/terms/title>
                "Manage dataspaces";
        <http://rdfs.org/sioc/ns#has_container>
                <https://docs.linkeddatahub.com/user-guide/>;
        <http://www.w3.org/ns/auth/acl#owner>
                <https://admin.linkeddatahub.com/acl/agents/5ba81960-d511-4a3b-8b9a-cb5bb278dd95/#this> .
