<https://docs.linkeddatahub.com/user-guide/import-data/import-rdf-data/>
        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/import-data/import-rdf-data/#content>;
        <http://purl.org/dc/terms/created>
                "2026-10-25T17:35:20.123Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
        <http://purl.org/dc/terms/creator>
                <https://admin.linkeddatahub.com/acl/agents/01fe43e2-f80e-4312-b37e-86063a80e4f9/#this>;
        <http://purl.org/dc/terms/description>
                "Step-by-step guide to importing RDF data";
        <http://purl.org/dc/terms/modified>
                "2026-10-27T12:17:39.923Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
        <http://purl.org/dc/terms/title>
                "Import RDF data";
        <http://rdfs.org/sioc/ns#has_container>
                <https://docs.linkeddatahub.com/user-guide/import-data/>;
        <http://www.w3.org/ns/auth/acl#owner>
                <https://admin.linkeddatahub.com/acl/agents/01fe43e2-f80e-4312-b37e-86063a80e4f9/#this> .

<https://docs.linkeddatahub.com/user-guide/import-data/import-rdf-data/#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\">Step-by-step guide to importing RDF data</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\">This guide is for importing larger amounts of data (e.g. more than a few thousand RDF triples) asynchronously.\n            For smaller data, it is simpler to <a href=\"../../add-data/\" target=\"_blank\">add data</a> synchronously.</p>\n        </div>\n    </div>\n    <p>An RDF import has these components:</p>\n    <dl>\n        <dt>RDF file</dt>\n        <dd>The file containing the RDF data (can be in any RDF syntax)</dd>\n        <dt>Transformation query (optional)</dt>\n        <dd>SPARQL <code>CONSTRUCT</code> query that maps RDF to another RDF representation</dd>\n        <dt>Graph (optional)</dt>\n        <dd>The document that the import results will be stored in, if no transformation query is specified</dd>\n        <dt>RDF import</dt>\n        <dd>Combines the file with the corresponding query</dd>\n    </dl>\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\">Specify either a query or a graph, but not both.</p>\n        </div>\n    </div>\n    <div>\n        <h2 id=\"import-rdf-file\">Import an RDF file</h2>\n        <p>Without a transformation, the import <em>asynchronously</em> appends the RDF data to a document (see <a href=\"../../create-data/create-documents/\">how to create a document</a>).\n            With a transformation, it runs the uploaded RDF through a <code>CONSTRUCT</code> query before storing it, so the import can restructure or re-route the data.</p>\n        <div class=\"ac-tabs or-horizontal\">\n            <div class=\"ac-tablist sz-md va-line\" role=\"tablist\">\n                <button aria-controls=\"user-interface-pane\" aria-selected=\"true\" class=\"ac-tab is-on\" id=\"user-interface-tab\" role=\"tab\" type=\"button\"><span class=\"ac-tab-lbl\">User interface</span></button>\n                <button aria-controls=\"command-line-interface-pane\" aria-selected=\"false\" class=\"ac-tab\" id=\"command-line-interface-tab\" role=\"tab\" type=\"button\"><span class=\"ac-tab-lbl\">Command line interface</span></button>\n            </div>\n            <div aria-labelledby=\"user-interface-tab\" class=\"ac-tabpanel\" id=\"user-interface-pane\" role=\"tabpanel\">\n                    <div>\n                        <p>All the import components can be created from a single dialog, but the steps below create them one at a time:</p>\n                        <ol>\n                            <li>First, create a container for the data to be imported. This will be the import's <dfn>target container</dfn>.</li>\n                            <li>Upload an RDF file. Click on the <span class=\"ac-btn in-primary ap-solid sz-md\">Create <span aria-hidden=\"true\" class=\"msi caret\">expand_more</span></span> dropdown at the bottom of the page and select\n                                    <dfn>File</dfn>. This will open a new form.</li>\n                            <li>Fill out the <dfn>Item</dfn> fields — the document's <samp>Title</samp> (required) and optional <samp>Description</samp>, the same fields used when <a href=\"../../create-data/create-documents/\">creating a document</a>.</li>\n                            <li>\n                                Fill out the mandatory <dfn>File</dfn> fields:\n                                <dl>\n                                    <dt>Filename</dt>\n                                    <dd>Click on <dfn>Choose file</dfn> and select an RDF file from your computer</dd>\n                                    <dt>Title</dt>\n                                    <dd>File title</dd>\n                                </dl>\n                            </li>\n                            <li>Once all the fields have been filled in, click <span class=\"ac-btn in-primary ap-solid sz-sm\">Save</span>.</li>\n                            <li>The browser will open your uploaded file.</li>\n                            <li>\n                                If you are importing with a transformation, create a <a href=\"../../../reference/imports/rdf/#transformation\">transformation query</a> that will\n                                transform the uploaded RDF to a new RDF structure. Click on the <span class=\"ac-btn in-primary ap-solid sz-md\">Create <span aria-hidden=\"true\" class=\"msi caret\">expand_more</span></span> dropdown at the bottom of the page and\n                                select <dfn>CONSTRUCT</dfn>. This will open a new form. Fill out the <samp>Item</samp> fields and the mandatory <dfn>CONSTRUCT</dfn> fields:\n                                <dl>\n                                    <dt>Text</dt>\n                                    <dd>SPARQL <code>CONSTRUCT</code> query string</dd>\n                                    <dd><em>You will not be able to save the query if its syntax is not valid SPARQL 1.1.</em></dd>\n                                    <dt>Title</dt>\n                                    <dd>Query title</dd>\n                                </dl>\n                                Once all the fields have been filled in, click <span class=\"ac-btn in-primary ap-solid sz-sm\">Save</span>. You can find the query saved in the\n                                <dfn>Queries</dfn> container, which you can open from the <a href=\"../../../reference/user-interface/#document-hierarchy\">document tree</a> in the left sidebar.\n                            </li>\n                            <li>Click on the <span class=\"ac-btn in-primary ap-solid sz-md\">Create <span aria-hidden=\"true\" class=\"msi caret\">expand_more</span></span> dropdown button at the bottom of the page and select <dfn>RDF Import</dfn>.\n                                    This will open a new form.</li>\n                            <li>Fill out the <samp>Item</samp> fields.</li>\n                            <li>\n                                Fill out the mandatory <dfn>RDF Import</dfn> fields:\n                                <dl>\n                                    <dt>File</dt>\n                                    <dd>Start typing the name of your RDF file and select it from the typeahead</dd>\n                                    <dt>Title</dt>\n                                    <dd>Import title</dd>\n                                </dl>\n                            </li>\n                            <li>\n                                Select either the target graph or the transformation query — but not both:\n                                <dl>\n                                    <dt>Name</dt>\n                                    <dd>Select the target graph (document) using the typeahead</dd>\n                                    <dt>Query</dt>\n                                    <dd>Select the transformation query using the typeahead</dd>\n                                </dl>\n                            </li>\n                            <li>Click <span class=\"ac-btn in-primary ap-solid sz-sm\">Save</span> and you will be redirected to the newly created import document.</li>\n                            <li>Reload the document after a few moments to see the import progress. On success, the amount of data imported is\n                                    displayed; on failure, the constraint violations or other import errors.</li>\n                            <li>Go back to the target document to see the newly imported data items.</li>\n                        </ol>\n                    </div>\n                </div>\n            <div aria-labelledby=\"command-line-interface-tab\" class=\"ac-tabpanel\" hidden=\"hidden\" id=\"command-line-interface-pane\" role=\"tabpanel\">\n                    <div>\n                        <p>The import is described by a document, which the command takes as its last argument, so create that document first. With the <a href=\"../../../reference/command-line-interface/\">CLI</a> installed and the <samp>LDH_*</samp> variables set:</p>\n                        <pre>doc=$(ldh create item \\\n    --title \"UNESCO category mappings\" \\\n    --container \"${LDH_BASE}categories/\")\n\nldh import rdf \\\n    --title \"UNESCO category mappings\" \\\n    --rdf-file categories/unesco-mappings.ttl \\\n    --content-type \"text/turtle\" \\\n    --graph \"${LDH_BASE}categories/mappings/\" \\\n    \"$doc\"</pre>\n                        <p>Pass either <code>--graph</code> with the target document's URI or <code>--query-file</code> with the path to a transformation query, but not both.\n                            In the Northwind demo, the <a href=\"../../../reference/imports/rdf/#transformation-example\">transformation query</a> routes each mapping into its category's own document.</p>\n                        <p>The command prints the URI of the import it created, a fragment of <samp>$doc</samp>. The import runs in the background; add <code>--wait</code> to return only once it has ended, with exit code <samp>1</samp> and the error if it failed.</p>\n                        <p class=\"exhibit-links\">Source: <a href=\"https://github.com/AtomGraph/LinkedDataHub-Apps/blob/master/demo/northwind-traders/categories/unesco-mappings.ttl\" target=\"_blank\">categories/unesco-mappings.ttl</a> — the mapping file that connects Northwind categories to UNESCO Thesaurus concepts, shown in full in the <a href=\"../../../reference/imports/rdf/\">RDF imports reference</a></p>\n                    </div>\n                </div>\n        </div>\n    </div>\n    <p class=\"ldh-body-lg\"><a href=\"../../../reference/imports/rdf/\" target=\"_blank\">Read more about how RDF imports work.</a></p>\n</div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> .
