<https://docs.linkeddatahub.com/tutorial/#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\">Build your first Knowledge Graph dataspace, from empty to published</p>\n    <p>This tutorial rebuilds the <a href=\"https://github.com/AtomGraph/LinkedDataHub-Apps/tree/master/demo/northwind-traders\" target=\"_blank\">Northwind Traders demo dataspace</a>: the iconic sample\n        database, reborn as an RDF Knowledge Graph. Every stage ends with a result you can see in the browser. Most steps are shown in two ways: point-and-click in the user interface, and as\n        <a href=\"../reference/command-line-interface/\" target=\"_blank\">CLI commands</a> you can script, version and replay. If you are new to the platform,\n        <a href=\"../about/\" target=\"_blank\">About LinkedDataHub</a> introduces the ideas this tutorial exercises.</p>\n    <p>Before you start, you need a running LinkedDataHub instance and the owner's WebID certificate. The <a href=\"../get-started/\" target=\"_blank\">Get started</a> section covers both.</p>\n    <p>The command line examples use the <a href=\"../reference/command-line-interface/\" target=\"_blank\"><samp>ldh</samp> CLI</a>. Download it from a\n        <a href=\"https://github.com/AtomGraph/LinkedDataHub/releases\" target=\"_blank\">LinkedDataHub release</a> (<samp>ldh-&lt;version&gt;.tar.gz</samp>, needs Java 21),\n        or build it from source with <samp>make cli</samp>. The examples rely on its environment variable defaults, set once per shell session:</p>\n    <pre>export LDH_BASE=\"https://localhost:4443/\"\nexport LDH_CERT_FILE=\"ssl/owner/keystore.p12\"\nexport LDH_CERT_PASSWORD=\"...\"   # the owner_cert_password secret</pre>\n    <div>\n        <h2 id=\"stages\">Stages</h2>\n        <p>Ten stages, each building on the last.</p>\n        <table>\n            <caption class=\"ac-vh\">Tutorial stages in order</caption>\n            <thead>\n                <tr>\n                    <th scope=\"col\">#</th>\n                    <th scope=\"col\">Stage</th>\n                    <th scope=\"col\">What you do</th>\n                </tr>\n            </thead>\n            <tbody>\n                <tr>\n                    <th scope=\"row\">1</th>\n                    <td><a href=\"hello-dataspace/\">Hello dataspace</a></td>\n                    <td>Give your app an identity and a landing page</td>\n                </tr>\n                <tr>\n                    <th scope=\"row\">2</th>\n                    <td><a href=\"structure/\">Structure</a></td>\n                    <td>Lay out the document hierarchy</td>\n                </tr>\n                <tr>\n                    <th scope=\"row\">3</th>\n                    <td><a href=\"model/\">Model</a></td>\n                    <td>Define the vocabulary that describes your domain</td>\n                </tr>\n                <tr>\n                    <th scope=\"row\">4</th>\n                    <td><a href=\"data/\">Data</a></td>\n                    <td>Import CSV data using SPARQL mappings</td>\n                </tr>\n                <tr>\n                    <th scope=\"row\">5</th>\n                    <td><a href=\"media/\">Media</a></td>\n                    <td>Upload files and link them to resources</td>\n                </tr>\n                <tr>\n                    <th scope=\"row\">6</th>\n                    <td><a href=\"insight/\">Insight</a></td>\n                    <td>Turn SPARQL queries into charts and views</td>\n                </tr>\n                <tr>\n                    <th scope=\"row\">7</th>\n                    <td><a href=\"composition/\">Composition</a></td>\n                    <td>Assemble the landing page from content blocks</td>\n                </tr>\n                <tr>\n                    <th scope=\"row\">8</th>\n                    <td><a href=\"publish/\">Publish</a></td>\n                    <td>Grant public access and ship it</td>\n                </tr>\n                <tr>\n                    <th scope=\"row\">9</th>\n                    <td><a href=\"app-as-repository/\">App as a repository</a></td>\n                    <td>Make the app reproducible</td>\n                </tr>\n                <tr>\n                    <th scope=\"row\">10</th>\n                    <td><a href=\"beyond-low-code/\">Beyond low-code</a></td>\n                    <td>Where to go when data alone is not enough</td>\n                </tr>\n            </tbody>\n        </table>\n        <p>In a hurry? <a href=\"app-as-repository/\">Stage 9</a> shows how to replay the finished app with a single <samp>make install</samp>.</p>\n    </div>\n</div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> .

<https://docs.linkeddatahub.com/uploads/4634992ca1715ade5ff9f5a1201c2c18db1a63fb>
        a       <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject>;
        <http://purl.org/dc/terms/format>
                <http://www.sparontologies.net/mediatype/image/webp>;
        <http://purl.org/dc/terms/title>
                "composition-1.webp";
        <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#fileName>
                "composition-1.webp";
        <http://xmlns.com/foaf/0.1/sha1>
                "4634992ca1715ade5ff9f5a1201c2c18db1a63fb" .

<https://docs.linkeddatahub.com/uploads/bb775f1ede1297d97ccaa12bc19a25e7e38c95ff>
        a       <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject>;
        <http://purl.org/dc/terms/format>
                <http://www.sparontologies.net/mediatype/image/webp>;
        <http://purl.org/dc/terms/title>
                "publish-1.webp";
        <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#fileName>
                "publish-1.webp";
        <http://xmlns.com/foaf/0.1/sha1>
                "bb775f1ede1297d97ccaa12bc19a25e7e38c95ff" .

<https://docs.linkeddatahub.com/uploads/d9615770bda66a9a6eaed0fe5de43c1b8fe6df42>
        a       <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject>;
        <http://purl.org/dc/terms/format>
                <http://www.sparontologies.net/mediatype/image/webp>;
        <http://purl.org/dc/terms/title>
                "structure-1.webp";
        <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#fileName>
                "structure-1.webp";
        <http://xmlns.com/foaf/0.1/sha1>
                "d9615770bda66a9a6eaed0fe5de43c1b8fe6df42" .

<https://docs.linkeddatahub.com/uploads/17d3ac5698dac490f6876adca34839258c070d9e>
        a       <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject>;
        <http://purl.org/dc/terms/format>
                <http://www.sparontologies.net/mediatype/image/webp>;
        <http://purl.org/dc/terms/title>
                "hello-dataspace-2.webp";
        <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#fileName>
                "hello-dataspace-2.webp";
        <http://xmlns.com/foaf/0.1/sha1>
                "17d3ac5698dac490f6876adca34839258c070d9e" .

<https://docs.linkeddatahub.com/tutorial/>
        a       <https://w3id.org/atomgraph/linkeddatahub/document-hierarchy#Container>;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
                <https://docs.linkeddatahub.com/tutorial/#content>;
        <http://purl.org/dc/terms/created>
                "2026-09-29T09:52:10.754Z"^^<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>
                "Build your first Knowledge Graph dataspace, from empty to published";
        <http://purl.org/dc/terms/title>
                "Tutorial";
        <http://rdfs.org/sioc/ns#has_parent>
                <https://docs.linkeddatahub.com/>;
        <http://www.w3.org/ns/auth/acl#owner>
                <https://admin.linkeddatahub.com/acl/agents/5ba81960-d511-4a3b-8b9a-cb5bb278dd95/#this> .

<https://docs.linkeddatahub.com/uploads/0909e7478dad2b48bc095f3f45e2827aa0537caa>
        a       <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject>;
        <http://purl.org/dc/terms/format>
                <http://www.sparontologies.net/mediatype/image/webp>;
        <http://purl.org/dc/terms/title>
                "media-1.webp";
        <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#fileName>
                "media-1.webp";
        <http://xmlns.com/foaf/0.1/sha1>
                "0909e7478dad2b48bc095f3f45e2827aa0537caa" .

<https://docs.linkeddatahub.com/uploads/fb31a34996b415be79d9f6d7b31fff3d4a4f880c>
        a       <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject>;
        <http://purl.org/dc/terms/format>
                <http://www.sparontologies.net/mediatype/image/webp>;
        <http://purl.org/dc/terms/title>
                "hello-dataspace-1.webp";
        <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#fileName>
                "hello-dataspace-1.webp";
        <http://xmlns.com/foaf/0.1/sha1>
                "fb31a34996b415be79d9f6d7b31fff3d4a4f880c" .

<https://docs.linkeddatahub.com/uploads/1e81ef18ab80553992312ea562ea193751903e0d>
        a       <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject>;
        <http://purl.org/dc/terms/format>
                <http://www.sparontologies.net/mediatype/image/webp>;
        <http://purl.org/dc/terms/title>
                "insight-1.webp";
        <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#fileName>
                "insight-1.webp";
        <http://xmlns.com/foaf/0.1/sha1>
                "1e81ef18ab80553992312ea562ea193751903e0d" .

<https://docs.linkeddatahub.com/uploads/db90ffc636cf6b4fc6a5e8d40f0fc3ca8f6b0046>
        a       <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject>;
        <http://purl.org/dc/terms/format>
                <http://www.sparontologies.net/mediatype/image/webp>;
        <http://purl.org/dc/terms/title>
                "data-1.webp";
        <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#fileName>
                "data-1.webp";
        <http://xmlns.com/foaf/0.1/sha1>
                "db90ffc636cf6b4fc6a5e8d40f0fc3ca8f6b0046" .
