<https://docs.linkeddatahub.com/user-guide/change-model/#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=\"lead\">Change the model: create constructors, classes, and constraints</p>\n    <div>\n        <h2 id=\"change-model\">Change the model</h2>\n        <p>In order to be able to manage instances, we need to create <a href=\"../../reference/administration/ontologies/#classes\" target=\"_blank\">classes</a> that represent them in the <a href=\"../../reference/administration/ontologies/\" target=\"_blank\">model</a> of our dataspace. Not only will they serve as RDF types of the instances, but will have <a href=\"../../reference/administration/ontologies/#constructors\" target=\"_blank\">constructors</a> attached that define the default properties and their (data)types for that class.</p>\n        <p>Model is managed in the <a href=\"../../reference/dataspace/#admin-apps\" target=\"_blank\">administration application</a> of a dataspace. Head there by clicking the <span class=\"btn dropdown-toggle btn-settings\"></span> in the <a href=\"../../reference/user-interface/#action-bar\" target=\"_blank\">action bar</a> and then choosing <samp>Administration</samp>.</p>\n        <div class=\"alert alert-info\">\n            <p>In order to manage the <a href=\"../../reference/administration/acl/\" target=\"_blank\">access control</a>, or the <a href=\"../../reference/administration/ontologies/\" target=\"_blank\">model</a> of a dataspace,\n            the agent needs to be a member of the <a href=\"../../reference/administration/acl/#groups\" target=\"_blank\">owners group</a>.</p>\n        </div>\n        <p>We will use the SKOS ontology and its <samp>skos:Concept</samp> class as an example in this guide.</p>\n    </div>\n    <div>\n        <h2 id=\"create-constructor\">Create a constructor</h2>\n        <p>We will use the following SPARQL <code>CONSTRUCT</code> query as a <a href=\"../../reference/administration/ontologies/#constructors\" target=\"_blank\">constructor</a> for our <samp>Concept</samp> class and save it in a file under <samp>queries/construct-concept.rq</samp>.</p>\n        <pre>PREFIX skos: &lt;http://www.w3.org/2004/02/skos/core#&gt;\nPREFIX xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt;\n\nCONSTRUCT\n{\n  $this skos:inScheme [ a skos:ConceptScheme ] ;\n    skos:topConceptOf [ a skos:ConceptScheme ] ;\n    skos:prefLabel [ a xsd:string ] ;\n    skos:altLabel [ a xsd:string ] ;\n    skos:hiddenLabel [ a xsd:string ] ;\n    skos:notation [ a xsd:string ] ;\n    skos:note [ a xsd:string ] ;\n    skos:changeNote [ a xsd:string ] ;\n    skos:definition [ a xsd:string ] ;\n    skos:editorialNote [ a xsd:string ] ;\n    skos:example [ a xsd:string ] ;\n    skos:historyNote [ a xsd:string ] ;\n    skos:scopeNote [ a xsd:string ] ;\n    skos:semanticRelation [ a skos:Concept ] ;\n    skos:broader [ a skos:Concept ] ;\n    skos:narrower [ a skos:Concept ] ;\n    skos:related [ a skos:Concept ] ;\n    skos:broaderTransitive [ a skos:Concept ] ;\n    skos:narrowerTransitive [ a skos:Concept ] ;\n    skos:mappingRelation [ a skos:Concept ] ;\n    skos:broadMatch [ a skos:Concept ] ;\n    skos:narrowMatch [ a skos:Concept ] ;\n    skos:relatedMatch [ a skos:Concept ] ;\n    skos:exactMatch [ a skos:Concept ] ;\n    skos:closeMatch [ a skos:Concept ] .\n}\nWHERE {}</pre>\n        <div class=\"tabbable\">\n            <ul class=\"nav nav-tabs\">\n                <li class=\"active\"><a>User interface</a></li>\n                <li><a>Command line interface</a></li>\n            </ul>\n            <div class=\"tab-content\">\n                <div class=\"tab-pane active\">\n                    <div>\n                        <p>In the administration application, follow these steps:</p>\n                        <ol>\n                            <li>Click the <span class=\"btn btn-primary create-action\">Create <span class=\"caret\"></span></span> dropdown on the bottom of the page</li>\n                            <li>Click on <samp>CONSTRUCT</samp> in the drop-down list that appears</li>\n                            <li>Switch the <samp>Blank node</samp> dropdown to <samp>URI</samp> and enter <samp>https://localhost:4443/ns#ConstructConcept</samp></li>\n                            <li>Fill out the mandatory fields in the form:\n                                <dl>\n                                    <dt>Label</dt>\n                                    <dd>Enter <samp>Construct concept</samp></dd>\n                                    <dd>Select <samp>Domain</samp> from the list — this is the ontology in which the query is defined</dd>\n                                    <dt>Text</dt>\n                                    <dd>Enter the SPARQL <code>CONSTRUCT</code> query string</dd>\n                                </dl>\n                            </li>\n                            <li>Click <span class=\"btn btn-primary btn-save\">Save</span></li>\n                        </ol>\n                    </div>\n                </div>\n                <div class=\"tab-pane\">\n                    <div>\n                            <pre>pwd=$(realpath -s $PWD)\n\ncreate-construct.sh \\\n  -b \"${base}admin/\" \\\n  -f ./ssl/owner/cert.pem \\\n  -p \"$owner_cert_password\" \\\n  --uri \"${base}ns#ConstructConcept\" \\\n  --label \"Construct concept\" \\\n  --slug construct-concept \\\n  --query-file \"${pwd}/queries/construct-concept.rq\" \\\n  \"${base}admin/model/ontologies/namespace/\"</pre>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <p>Follow the same steps for <samp>Concept scheme</samp>.</p>\n        <p class=\"lead\"><a href=\"../../reference/administration/ontologies/#constructors\" target=\"_blank\">Read more about constructors.</a></p>\n    </div>\n    <div>\n        <h2 id=\"create-constraint\">Create a constraint</h2>\n        <p>To control data quality, we probably want to make some of the instance properties mandatory. For example, a <samp>skos:Concept</samp> instance should always have a <code>skos:prefLabel</code> value.</p>\n        <div class=\"tabbable\">\n            <ul class=\"nav nav-tabs\">\n                <li class=\"active\"><a>User interface</a></li>\n                <li><a>Command line interface</a></li>\n            </ul>\n            <div class=\"tab-content\">\n                <div class=\"tab-pane active\">\n                    <div>\n                        <p>In the administration application, follow these steps:</p>\n                        <ol>\n                            <li>Click the <span class=\"btn btn-primary create-action\">Create <span class=\"caret\"></span></span> dropdown on the bottom of the page</li>\n                            <li>Click on <samp>Missing property value</samp> in the drop-down list that appears</li>\n                            <li>Fill out the fields in the form:\n                                <dl>\n                                    <dt>Label</dt>\n                                    <dd>Enter <samp>Missing skos:prefLabel</samp></dd>\n                                    <dt>IsDefinedBy</dt>\n                                    <dd>Type <samp>Domain</samp> into the input (which provides autocomplete)</dd>\n                                    <dd>Select <samp>Domain</samp> from the list — this is the ontology in which the query is defined</dd>\n                                    <dt>Arg1</dt>\n                                    <dd>Enter <samp>http://www.w3.org/2004/02/skos/core#prefLabel</samp></dd>\n                                </dl>\n                            </li>\n                            <li>Click <span class=\"btn btn-primary btn-save\">Save</span></li>\n                        </ol>\n                    </div>\n                </div>\n                <div class=\"tab-pane\">\n                    <div>\n                        <pre>create-property-constraint.sh \\\n  -b \"$base\" \\\n  -f ./ssl/owner/cert.pem \\\n  -p \"$owner_cert_password\" \\\n  --uri \"https://localhost:4443/ns#MissingPrefLabel\" \\\n  --label \"Missing skos:prefLabel\" \\\n  --slug missing-pref-label \\\n  --property \"http://www.w3.org/2004/02/skos/core#prefLabel\" \\\n  \"${base}admin/model/ontologies/namespace/\"</pre>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <p class=\"lead\"><a href=\"../../reference/administration/ontologies/#constraints\" target=\"_blank\">Read more about constraints.</a></p>\n    </div>\n    <div>\n        <h2 id=\"create-classes\">Create classes</h2>\n        <div class=\"tabbable\">\n            <ul class=\"nav nav-tabs\">\n                <li class=\"active\"><a>User interface</a></li>\n                <li><a>Command line interface</a></li>\n            </ul>\n            <div class=\"tab-content\">\n                <div class=\"tab-pane active\">\n                    <div>\n                        <p>In the administration application, follow these steps to create the concept class:</p>\n                        <ol>\n                            <li>Click the <span class=\"btn btn-primary create-action\">Create <span class=\"caret\"></span></span> dropdown on the bottom of the page</li>\n                            <li>Click on <samp>Class</samp> in the drop-down list that appears</li>\n                            <li>Switch the <samp>Blank node</samp> dropdown to <samp>URI</samp> and enter <samp>https://localhost:4443/ns#Concept</samp></li>\n                            <li>Fill out the mandatory fields in the form:\n                                <dl>\n                                    <dt>Label</dt>\n                                    <dd>Enter <samp>Concept</samp></dd>\n                                    <dd>Select <samp>Domain</samp> from the list — this is the ontology in which the class is defined</dd>\n                                    <dt>Constructor</dt>\n                                    <dd>Type <samp>Construct concept</samp> into the input (which provides autocomplete)</dd>\n                                    <dd>Select <samp>Construct concept</samp> from the list — this is the query we created beforehand</dd>\n                                </dl>\n                            </li>\n                            <li>Click <span class=\"btn btn-primary btn-save\">Save</span></li>\n                        </ol>\n                    </div>\n                </div>\n                <div class=\"tab-pane\">\n                    <div>\n                        <pre>create-class.sh \\\n  -b \"$base\" \\\n  -f ./ssl/owner/cert.pem \\\n  -p \"$owner_cert_password\" \\\n  --uri \"http://www.w3.org/2004/02/skos/core#Concept\" \\\n  --label \"Concept\" \\\n  --slug concept \\\n  --constructor \"{$base}ns#ConstructConcept\" \\\n  --constraint \"{$base}ns#MissingPrefLabel\" \\\n  \"${base}admin/model/ontologies/namespace/\"</pre>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <p>Follow the same steps for <samp>Concept scheme</samp>.</p>\n        <p class=\"lead\"><a href=\"../../reference/administration/ontologies/#classes\" target=\"_blank\">Read more about classes.</a></p>\n    </div>\n</div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> .

<https://docs.linkeddatahub.com/user-guide/change-model/>
        a       <https://www.w3.org/ns/ldt/document-hierarchy#Item>;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
                <https://docs.linkeddatahub.com/user-guide/change-model/#content>;
        <http://purl.org/dc/terms/created>
                "2026-06-16T20:33:22.975Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>;
        <http://purl.org/dc/terms/creator>
                <https://admin.linkeddatahub.com/acl/agents/0ab4a0f7-1ab0-4d0c-8efc-63a79a2e9a10/#this>;
        <http://purl.org/dc/terms/description>
                "Change the model: create constructors, classes, and constraints";
        <http://purl.org/dc/terms/title>
                "Change the model";
        <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/0ab4a0f7-1ab0-4d0c-8efc-63a79a2e9a10/#this> .
