<https://docs.linkeddatahub.com/user-guide/create-data/create-resources/>
        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/create-data/create-resources/#content>;
        <http://purl.org/dc/terms/created>
                "2026-09-29T09:53:03.93Z"^^<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>
                "Learn how to create instances of built-in and user-defined classes";
        <http://purl.org/dc/terms/title>
                "Create instances";
        <http://rdfs.org/sioc/ns#has_container>
                <https://docs.linkeddatahub.com/user-guide/create-data/>;
        <http://www.w3.org/ns/auth/acl#owner>
                <https://admin.linkeddatahub.com/acl/agents/5ba81960-d511-4a3b-8b9a-cb5bb278dd95/#this> .

<https://docs.linkeddatahub.com/user-guide/create-data/create-resources/#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\">Learn how to create instances of built-in and user-defined classes</p>\n    <video aria-label=\"Creating resource instances\" controls=\"controls\" preload=\"metadata\" src=\"/uploads/ef27cdff0d6ac5dc2fcf67e116b68454d3d6645c\"></video>\n    <p><a href=\"../../../reference/data-model/resources/#built-in-classes\">Built-in classes</a> (such as <samp>Container</samp>, <samp>Item</samp>, <samp>SELECT</samp> etc.) ship with <a href=\"../../../reference/administration/ontologies/#ontologies\">system ontologies</a> in LinkedDataHub while <dfn>user-defined classes</dfn> come from ontologies imported by the user (see the user guide on <a href=\"../../change-model/\">changing the model</a> on how to do that).</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\">To create class instances, you have to be in <a href=\"../../../reference/user-interface/#layout-modes\">properties mode</a>.</p>\n        </div>\n    </div>\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\">You can only create instances of classes that have <a href=\"../../../reference/administration/ontologies/#constructors\">constructors</a>.</p>\n        </div>\n    </div>\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        <h2 id=\"built-in-classes\">Built-in classes</h2>\n        <p>To create instances of built-in classes, follow these steps:</p>\n        <ol>\n            <li>Click 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</li>\n            <li>In the dropdown list that appears, click on the menu item of the class you want to create an instance for. An editing form will open.</li>\n            <li>Fill out the fields in the form that appears. Mandatory properties are rendered in bold; the form cannot be saved without them.</li>\n            <li>Click <span class=\"ac-btn in-primary ap-solid sz-sm\">Save</span></li>\n            <li>If a value is missing or malformed, an error message appears and the offending property is highlighted. Fix it and save again.</li>\n        </ol>\n        <p>You will be redirected to the document of the newly created instance.</p>\n    </div>\n    <div>\n        <h2 id=\"user-defined-classes\">User-defined classes</h2>\n        <p>To create instances of user-defined classes, follow these steps:</p>\n        <ol>\n            <li>Click 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</li>\n            <li>Click on <samp>Instance</samp> in the dropdown list that appears. An editing form will open.</li>\n            <li>In the form's <samp>Type</samp> field, click the typeahead input, type the class name — for example <samp>Product</samp> on the Northwind dataspace — and select the class from the list</li>\n            <li>Continue as with the <a href=\"#built-in-classes\">built-in classes</a>: fill out the fields and click <span class=\"ac-btn in-primary ap-solid sz-sm\">Save</span></li>\n        </ol>\n        <p>When you create a <samp>Product</samp> this way, its <a href=\"../../change-model/\" target=\"_blank\">constructor</a> renders name and identifier inputs plus category and supplier typeaheads — the form is entirely constructor-driven.</p>\n        <img alt=\"The Product create form generated from the constructor, with category and supplier typeaheads\" src=\"/uploads/b900be2099ee184edd255b5637c849a8a52de233\"></img>\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        <p>Instances are plain RDF, so the CLI equivalent is appending a description to a document with <samp>ldh post</samp>. Creating a new product in its own document — <code>--primary-topic</code> makes the document about the <samp>#this</samp> resource, and the <samp>post</samp> describes it:</p>\n        <pre>doc=$(ldh create item \\\n  --container \"${LDH_BASE}products/\" \\\n  --title \"Masala Chai\" \\\n  --slug 78 \\\n  --primary-topic '#this')\n\nldh post -t text/turtle \"$doc\" &lt;&lt;EOF\n@prefix schema: &lt;https://schema.org/&gt; .\n\n&lt;${doc}#this&gt; a schema:Product ;\n    schema:name \"Masala Chai\" ;\n    schema:identifier \"78\" ;\n    schema:category &lt;${LDH_BASE}categories/1/#this&gt; .\nEOF</pre>\n        <p>The posted data is validated against the class <a href=\"../../../reference/administration/ontologies/#constraints\">constraints</a> the same way form submissions are — leaving out <code>schema:name</code> gets the request rejected with <samp>422 Unprocessable Entity</samp>.</p>\n        </div>\n    </div>\n    <p class=\"ldh-body-lg\"><a href=\"../../../reference/administration/ontologies/#constructors\" target=\"_blank\">Read more about constructors.</a></p>\n</div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> .
