<https://docs.linkeddatahub.com/reference/migrating-from-5x/#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\">What 6.0.0 changes for an application stylesheet, a deployment and an API client</p>\n    <div class=\"ac-alert va-negative\" role=\"status\">\n        <span class=\"ac-alert-ic\"><span aria-hidden=\"true\" class=\"msi outline\">warning</span></span>\n        <div class=\"ac-alert-body\">\n            <p class=\"ac-alert-text\">There is no data migration. An existing deployment re-seeds: its dataspace descriptions and every document in its stores are\n                typed in namespaces this release no longer reads.</p>\n        </div>\n    </div>\n    <div>\n        <h2 id=\"stylesheets\">Stylesheets</h2>\n        <p>The platform stylesheet is <samp>xsl/layout.xsl</samp>. An <code>xsl:import</code> of <samp>xsl/bootstrap/2.3.2/layout.xsl</samp> fails to compile, which is\n            the first error an application stylesheet hits.</p>\n        <div>\n            <h3 id=\"class-vocabulary\">Class vocabulary</h3>\n            <p>Legacy Bootstrap buttons (<samp>btn</samp>, <samp>btn-primary</samp>, <samp>btn-large</samp>) become the <samp>ac-btn</samp> intent, appearance and size\n                vocabulary: <samp>ac-btn in-primary ap-solid sz-md</samp>. The <a href=\"../stylesheets/#css\">stylesheets</a> page lists the axes and the classes on each.</p>\n            <p><samp>pull-left</samp> and <samp>pull-right</samp> have no replacement, because the design system lays out with flex and grid. A stylesheet that extends\n                the removed vocabulary can be diffed against <samp>ldh.css</samp>, the one app layer LinkedDataHub loads over the vendored design kits.</p>\n        </div>\n        <div>\n            <h3 id=\"template-modes\">Template modes</h3>\n            <p>Every <code>bs2:</code> mode takes its design-system component name. This is the change that makes the release a major one: an override of a\n                <code>bs2:</code> mode still compiles, never fires, and reports nothing.</p>\n            <table>\n                <caption class=\"ac-vh\">Template modes renamed in 6.0.0</caption>\n                <thead>\n                    <tr>\n                        <th scope=\"col\">5.x</th>\n                        <th scope=\"col\">6.0.0</th>\n                    </tr>\n                </thead>\n                <tbody>\n                    <tr><td><code>bs2:Row</code></td><td><code>ldh:BlockRow</code></td></tr>\n                    <tr><td><code>bs2:Header</code></td><td><code>ac:BlockHeader</code></td></tr>\n                    <tr><td><code>bs2:PropertyList</code></td><td><code>ac:PropertyEditor</code></td></tr>\n                    <tr><td><code>bs2:Form</code></td><td><code>ac:ResourceForm</code></td></tr>\n                    <tr><td><code>bs2:NavBar</code></td><td><code>ac:Header</code></td></tr>\n                    <tr><td><code>bs2:Lookup</code></td><td><code>ldh:Combobox</code></td></tr>\n                    <tr><td><code>ac:ModeList</code></td><td><code>ac:ModeSwitcher</code></td></tr>\n                    <tr><td><code>ldh:LeftSidebar</code></td><td><code>ldh:DataspaceDrawer</code></td></tr>\n                </tbody>\n            </table>\n        </div>\n        <div>\n            <h3 id=\"parameters-and-functions\">Parameters and functions</h3>\n            <p>The <code>$ac:langs</code> and <code>$ac:lang</code> parameters become the <code>ac:langs()</code> and <code>ac:langs()[1]</code> functions. An\n                <code>xsl:with-param</code> left behind is silently ignored. A stylesheet still declaring <code>xmlns:lapp</code> compiles and silently binds nothing.</p>\n            <table>\n                <caption class=\"ac-vh\">Stylesheet parameters and functions renamed in 6.0.0</caption>\n                <thead>\n                    <tr>\n                        <th scope=\"col\">5.x</th>\n                        <th scope=\"col\">6.0.0</th>\n                    </tr>\n                </thead>\n                <tbody>\n                    <tr><td><code>$lapp:origin</code></td><td><code>$lds:origin</code></td></tr>\n                    <tr><td><code>$lapp:Context</code></td><td><code>$lds:Context</code></td></tr>\n                    <tr><td><code>lapp:origin()</code></td><td><code>lds:origin()</code></td></tr>\n                    <tr><td><code>lapp:base()</code></td><td><code>lds:base()</code></td></tr>\n                    <tr><td><code>lapp:application-description()</code></td><td><code>lds:dataspace-description()</code></td></tr>\n                    <tr><td><code>ldt:base()</code></td><td><code>lds:base()</code></td></tr>\n                    <tr><td><code>$ldt:base</code></td><td>removed</td></tr>\n                </tbody>\n            </table>\n        </div>\n        <div>\n            <h3 id=\"removed-libraries\">Removed libraries</h3>\n            <p>Overrides depending on <samp>bootstrap.js</samp>, jQuery, WYMEditor or the sprite icons need rewriting. IXSL templates drive the dropdowns and modals,\n                the <samp>msi</samp> font draws the icons, and the <a href=\"../user-interface/\">RDFa editor</a> edits <code>rdf:XMLLiteral</code> content.</p>\n        </div>\n    </div>\n    <div>\n        <h2 id=\"namespaces\">Namespaces</h2>\n        <p>Every namespace LinkedDataHub defines now lives under <samp>https://w3id.org/atomgraph/linkeddatahub</samp>. Stylesheets and stored data are both affected.</p>\n        <table>\n            <caption class=\"ac-vh\">Namespace URIs in 5.x and 6.0.0</caption>\n            <thead>\n                <tr>\n                    <th scope=\"col\">Prefix</th>\n                    <th scope=\"col\">5.x</th>\n                    <th scope=\"col\">6.0.0</th>\n                </tr>\n            </thead>\n            <tbody>\n                <tr>\n                    <td><code>dh:</code></td>\n                    <td><samp>https://www.w3.org/ns/ldt/document-hierarchy#</samp></td>\n                    <td><samp>https://w3id.org/atomgraph/linkeddatahub/document-hierarchy#</samp></td>\n                </tr>\n                <tr>\n                    <td><code>lapp:</code> becomes <code>lds:</code></td>\n                    <td><samp>https://w3id.org/atomgraph/linkeddatahub/apps#</samp></td>\n                    <td><samp>https://w3id.org/atomgraph/linkeddatahub/dataspaces#</samp></td>\n                </tr>\n                <tr>\n                    <td><code>ldt:</code></td>\n                    <td><samp>https://www.w3.org/ns/ldt</samp></td>\n                    <td>removed</td>\n                </tr>\n                <tr>\n                    <td><code>ct:</code>, <code>c:</code></td>\n                    <td>sibling namespaces of <code>ldt:</code></td>\n                    <td>removed</td>\n                </tr>\n            </tbody>\n        </table>\n        <p>The <code>dh:</code> prefix, its class names and <samp>DH.java</samp> are unchanged, but every <code>dh:Container</code> and <code>dh:Item</code> already in a\n            triplestore is typed in the old namespace.</p>\n        <p>The <a href=\"../dataspace/\">dataspace</a> classes are renamed with the prefix: <code>lapp:Application</code> becomes <code>lds:Dataspace</code>,\n            <code>lapp:EndUserApplication</code> becomes <code>lds:EndUserDataspace</code>, <code>lapp:AdminApplication</code> becomes <code>lds:AdminDataspace</code>,\n            and the three constructor individuals follow. The <code>lapp:application</code> <code>Link</code> relation that names the dataspace a response belongs to\n            becomes <code>lds:dataspace</code>. <code>lapp:Dataset</code>, <code>lapp:Package</code> and the remaining properties keep their local names under the new\n            prefix, and <code>lds:prefix</code> and <code>lds:versioningRepository</code> — used in configuration and read in Java, but never declared — are now declared.</p>\n        <p><code>ldt:ontology</code>, <code>ldt:service</code> and <code>ldt:base</code> become <code>lds:ontology</code>, <code>lds:service</code> and\n            <code>lds:base</code>, and the <samp>ldt#ontology</samp> and <samp>ldt#base</samp> <code>Link</code> relations with them, so\n            <samp>config/dataspaces.trig</samp> and <samp>config/system.trig</samp> each need one prefix where they needed two. The Java <code>LDT</code> vocabulary,\n            the bundled <samp>ldt.ttl</samp> and the <code>rdfs:subClassOf ldt:Application</code> on the dataspace class are gone, and <code>lacl:requestAccess</code>\n            now ranges over <code>foaf:Document</code>.</p>\n        <p><code>lapp:frontendProxy</code> is removed with no replacement under the new prefix, having been read by nothing. The frontend (Varnish) proxy used for\n            cache-invalidation requests comes from the <code>ldhc:frontendProxy</code> servlet parameter, set from <samp>FRONTEND_PROXY</samp> by\n            <samp>platform/entrypoint.sh</samp>. <code>lds:backendProxy</code> stays, since a proxied <code>lds:Dataset</code> is read through it.</p>\n    </div>\n    <div>\n        <h2 id=\"deployment\">Deployment</h2>\n        <div>\n            <h3 id=\"triplestore\">Triplestore</h3>\n            <p>One <samp>fuseki</samp> service replaces <samp>fuseki-admin</samp> and <samp>fuseki-end-user</samp>, holding an end-user and an admin TDB2 dataset per\n                dataspace, declared in <samp>config/fuseki/config.ttl</samp> and persisted under <samp>fuseki/&lt;dataset&gt;/</samp>. Datasets are named after the\n                dataspace origin with the deployment host dropped and the role appended: <samp>end-user</samp>, <samp>admin</samp>,\n                <samp>northwind-traders.demo.end-user</samp>.</p>\n            <p>An existing deployment moves its two TDB2 directories under the new dataset names, points every <code>lds:service</code> in\n                <samp>config/system.trig</samp> at <samp>http://fuseki:3030/&lt;dataset&gt;/</samp>, and merges the two stores heap settings and <samp>mem_limit</samp>.\n                <samp>varnish-admin</samp> and <samp>varnish-end-user</samp> stay as they were. The <a href=\"../triplestores/\">triplestores</a> page describes the\n                resulting layout.</p>\n        </div>\n        <div>\n            <h3 id=\"sef-compiler\">Client-side package composition</h3>\n            <p>Composing package stylesheets into the client SEF needs the new <samp>sef-compiler</samp> service. A deployment with its own compose file adds it, the\n                platform service's <code>depends_on</code> on it, and the <samp>./sef</samp> bind mount at <samp>/var/www/linkeddatahub/sef</samp>.\n                <samp>SEF_ROOT</samp> and <samp>SEF_COMPILER</samp> are optional: without them, packages compose server-side only, as in 5.10.0.</p>\n            <p><samp>CLIENT_STYLESHEET</samp> names the client stylesheet the SEF is composed from, and defaults to the platform's <samp>client.xsl</samp>. A deployment\n                bootstrapping its own sets it to that stylesheet's webapp path. Such a stylesheet must import the platform's <samp>client.xsl</samp> directly, and its\n                layout prefers <code>ldh:client-stylesheet()</code> over its own SEF.</p>\n        </div>\n        <div>\n            <h3 id=\"package-root\">Package directory</h3>\n            <p>A deployment with its own compose file adds the <samp>./packages</samp> bind mount at <samp>/var/www/linkeddatahub/packages</samp>\n                (<samp>PACKAGE_ROOT</samp>), where copies of imported package stylesheets survive a redeploy.</p>\n        </div>\n        <div>\n            <h3 id=\"oauth-grants\">OAuth grants</h3>\n            <p>The <samp>oauth2-login</samp> and <samp>oauth2-authorize</samp> grants move from the administration store to the end-user application's\n                <samp>namespace-ontology.trig.template</samp>, as <code>acl:accessTo</code> on the login and callback URLs. An existing deployment re-seeds or migrates\n                them.</p>\n        </div>\n    </div>\n    <div>\n        <h2 id=\"packages\">Packages</h2>\n        <p>A package stylesheet is composed right after <samp>hooks.xsl</samp>. It can specialise an open mode — <code>ldh:RowHook</code>, the tree node, the value\n            leaves in <samp>imports/values.xsl</samp> — and no longer replaces a sealed mode, a typed rule or a global.</p>\n        <p>A package ontology imported before this release is materialized under <samp>admin/ontologies/</samp> on the next request, and is edited there from then on. A\n            later change to the published package reaches the application only after that document is deleted.</p>\n    </div>\n    <div>\n        <h2 id=\"http-api\">HTTP API</h2>\n        <div class=\"ac-alert va-negative\" role=\"status\">\n            <span class=\"ac-alert-ic\"><span aria-hidden=\"true\" class=\"msi outline\">warning</span></span>\n            <div class=\"ac-alert-body\">\n                <p class=\"ac-alert-text\">A write to a document that already exists must be conditional: <code>If-Match</code> with the document's current\n                    <code>ETag</code>, or <code>If-None-Match: *</code> to create. An unconditional write is answered <code>428 Precondition Required</code>.</p>\n            </div>\n        </div>\n        <p>A client that wrote unconditionally now reads the tag first, as the <a href=\"../command-line-interface/\"><samp>ldh</samp> CLI</a> does for you. An entity tag\n            identifies a negotiated variant, so the read supplying the validator must send the same <code>Accept</code> as the write quoting it, or the write is refused\n            <code>412</code>. The <a href=\"../http-api/\">HTTP API</a> page has the request shapes.</p>\n        <p>The access control query fails closed on a typeless resource, so a request for a URL that does not exist is answered <code>403</code> rather than\n            <code>404</code> unless the agent is the owner.</p>\n        <p><code>ldh:container</code> leaves the ontology, the <code>ldh:ViewConstructor</code> form and the view query. A view's <dfn>Create</dfn> button determines the\n            container from the view's own solutions.</p>\n    </div>\n    <div>\n        <h2 id=\"java-api\">Java API</h2>\n        <p>Server-side extensions move with the model. The names below changed together; nothing else in the API did.</p>\n        <table>\n            <caption class=\"ac-vh\">Java packages, classes and accessors renamed in 6.0.0</caption>\n            <thead>\n                <tr>\n                    <th scope=\"col\">5.x</th>\n                    <th scope=\"col\">6.0.0</th>\n                </tr>\n            </thead>\n            <tbody>\n                <tr><td><code>com.atomgraph.linkeddatahub.apps</code></td><td><code>com.atomgraph.linkeddatahub.dataspaces</code></td></tr>\n                <tr><td><code>Application</code>, <code>AdminApplication</code>, <code>EndUserApplication</code></td><td><code>Dataspace</code>, <code>AdminDataspace</code>, <code>EndUserDataspace</code></td></tr>\n                <tr><td><code>LAPP</code></td><td><code>LDS</code></td></tr>\n                <tr><td><code>getApplication()</code>, <code>getAdminApplication()</code>, <code>getEndUserApplication()</code></td><td><code>getDataspace()</code>, <code>getAdminDataspace()</code>, <code>getEndUserDataspace()</code></td></tr>\n            </tbody>\n        </table>\n    </div>\n</div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> .

<https://docs.linkeddatahub.com/reference/migrating-from-5x/>
        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/migrating-from-5x/#content>;
        <http://purl.org/dc/terms/created>
                "2026-09-29T09:52:24.097Z"^^<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>
                "What 6.0.0 changes for an application stylesheet, a deployment and an API client";
        <http://purl.org/dc/terms/title>
                "Migrating from 5.x";
        <http://rdfs.org/sioc/ns#has_container>
                <https://docs.linkeddatahub.com/reference/>;
        <http://www.w3.org/ns/auth/acl#owner>
                <https://admin.linkeddatahub.com/acl/agents/5ba81960-d511-4a3b-8b9a-cb5bb278dd95/#this> .
