{"id":1516,"date":"2021-07-26T10:36:30","date_gmt":"2021-07-26T10:36:30","guid":{"rendered":"https:\/\/wetransform.eu\/?post_type=news-and-events&#038;p=1516"},"modified":"2024-03-21T09:40:20","modified_gmt":"2024-03-21T09:40:20","slug":"inspire-codelists","status":"publish","type":"news-and-events","link":"https:\/\/wetransform.to\/de\/news-and-events\/inspire-codelists\/","title":{"rendered":"INSPIRE Codelists: What are they, how to use them, and why do we need them?"},"content":{"rendered":"<p>If you have been creating <a href=\"https:\/\/inspire.ec.europa.eu\/training\/basic-concepts-xml-and-gml\">INSPIRE GML<\/a>, you have almost certainly encountered so-called codelists. They are an important part of <a href=\"https:\/\/inspire.ec.europa.eu\/data-specifications\/2892\">INSPIRE data specifications<\/a> and contribute substantially to interoperability. They are, however, not as straightforward as a simple enumeration is. This post explains what codelists are, how you use them, and why they are important.<\/p>\n<p>In general, a codelist contains several terms whose definitions are universally agreed upon and understood. Codelists support data interoperability and form a shared vocabulary for a community. They can even be multilingual. <\/p>\n<h2>Managing Codelists and Codelist Registries<\/h2>\n<p>INSPIRE Codelists are commonly managed and maintained in <a href=\"https:\/\/inspire.ec.europa.eu\/codelist\">codelist registers<\/a> which provide search capabilities, so that both end users and client applications can easily access codelist values for reference. Registers provide unique and persistent identifiers for the published codelist values and ensure consistent versioning. There are many different INSPIRE registers which manage the identifiers of different resources commonly used in INSPIRE.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wetransform.eu\/wp-content\/uploads\/2022\/05\/CodelistBlog_1.png\" alt=\"Image of INSPIRE codelist registry menu\" \/><\/p>\n<p>Codelists used in INSPIRE are maintained in the INSPIRE code list registry, the codelist registry of a member state, or an acknowledged, external third-party who maintains a domain-specific codelist. <\/p>\n<p>To add a new codelist, you will have to either set up your own registry or work with the administration of one of the existing registries to get your codelist published. This can be a quite an involved process, which is designed to make sure that there is no random growth of codelists.<\/p>\n<h2>Extending Codelists<\/h2>\n<p>One special feature of codelists in INSPIRE is that they may be extensible. If a codelist is extensible, it will only contain a small set of common terms, but you can add your own terms. With respect to extensibility, we differentiate four different types of codelists in INSPIRE:<\/p>\n<ul>\n<li><code>None<\/code> (Not extensible): A codelist that is not extensible includes only the values specified in the <a href=\"https:\/\/inspire.ec.europa.eu\/inspire-implementing-rules\/51763\">INSPIRE Implementing Rules (IR)<\/a>.<\/li>\n<li><code>Narrower<\/code> (Narrower extensible): A codelist that is narrower extensible includes the values specified in the IR and narrower values defined by the data providers.<\/li>\n<li><code>Open<\/code> (Freely extensible): A freely extensible codelist includes the values specified in the IR and additional values defined by data providers.<\/li>\n<li><code>Empty<\/code> (Any values allowed): An empty codelist can contain any values defined by the data providers.<\/li>\n<\/ul>\n<p>You can recognize which type a codelist is by either looking at the UML model, where they appear as tagged values (\u201cextensibility\u201d), or by looking into their definitions in the respective registry. For example, the Anthropogenic Geomorphologic Feature codelist is shown below. <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wetransform.eu\/wp-content\/uploads\/2022\/05\/CodelistBlog_2.png\" alt=\"INSPIRE codelist example\" \/><\/p>\n<p>Codelists have maintenance processes which enable the update of codelist values. Codelists of the type &quot;Not extensible&quot; can also be updated to include new values for inclusion in the next, updated version. Codelists of the type &quot;Freely extensible&quot; can include extended codelist values, however only if they are managed in a register. Codelists of the type \u201cEmpty\u201d often pose a challenge to users as there are not always readily applicable codelists available. In some cases, empty codelists suggest use of a standard external codelist commonly used in the domain. <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wetransform.eu\/wp-content\/uploads\/2022\/05\/CodelistBlog_3.png\" alt=\"INSPIRE consolidated UML model\" \/><\/p>\n<h2>Codelist Encoding<\/h2>\n<p>The conceptual schema language rules in the INSPIRE Generic Conceptual Model contain guidance on how to include codelists in INSPIRE GML application schemas, some of which you may recognize:<\/p>\n<ul>\n<li>Code lists should use the stereotype <code>codeList<\/code>.<\/li>\n<li>The name of the codelist or enumeration should include the suffix <code>Value<\/code><\/li>\n<li>The documentation field of the <code>codeList<\/code> classes in the UML application schemas shall include the<code> -- Name --<\/code>, <code>-- Definition --<\/code>, and <code>-- Description --<\/code> information.<\/li>\n<li>The natural language name of the code list (given in the <code>-- Name --<\/code> section) should not include the term <code>Value<\/code>.<\/li>\n<li>The type of code list shall be specified using the tagged value <code>extensibility<\/code> on the <code>codeList<\/code> class.<\/li>\n<li>For each code list, a tagged value called <code>vocabulary<\/code> shall be specified. The value of the tagged value shall be a persistent URI identifying the values of the code list.<\/li>\n<li>A code list may also be used as a super-class for a number of specific codelists whose values may be used to specify the attribute value.<\/li>\n<li>Values of INSPIRE-governed code lists and enumerations shall be in <code>lowerCamelCase<\/code> notation.<\/li>\n<\/ul>\n<p>In UML, the usage of an extended code list is indicated by substituting the existing code list. The extended codelist is represented by a sub-type of the original codelist.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wetransform.eu\/wp-content\/uploads\/2022\/05\/CodelistBlog_4.png\" alt=\"Best Practices for registers and registries &amp; Technical Guidelines for the INSPIRE register federation\" \/><\/p>\n<p>Codelist values are encoded in GML application schemas using <code>gml:ReferenceType<\/code>, which means that there is no formal link between the new subtype in the GML application schema and the extended codelist. The codelist itself must be published in a register and the register should be published in the INSPIRE register federation, however the application schema does not need to be adapted to use the extended or profiled codelist.<\/p>\n<h2>Using INSPIRE codelists in hale\u00bbstudio<\/h2>\n<p>Both INSPIRE GML as well as the INSPIRE metadata \u2013 which describes harmonized datasets and network services \u2013 include references to codelists in the form of <code>xlinks<\/code>. <code>Xlink<\/code> is a recommendation by the World Wide Web Consortium for the definition of references in or across XML documents. Simple <code>xlinks<\/code>are the standard method for object references in GML. Attributes encoded using<code> xlink<\/code> require a URI to the remote object or internal document reference in <code>xlink:href<\/code>. <\/p>\n<p>It is <a href=\"https:\/\/inspire.ec.europa.eu\/news\/inspire-re3gistry-software-and-inspire-registry-service-update\">standard practice<\/a> to refer to items in the INSPIRE registry using HTTP URIs.<\/p>\n<p>If you are using hale\u00bbstudio to create your harmonization project, you can load INSPIRE codelists directly from the INSPIRE registry for use in your project. The INSPIRE codelists are referenced using http in the exported GML data. <\/p>\n<p>To import an INSPIRE codelist into your hale studio project, select \u201cFile\u201d \u00bb \u201cImport\u201d \u00bb \u201cCodelist\u201d.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wetransform.eu\/wp-content\/uploads\/2022\/05\/CodelistBlog_5.png\" alt=\"Importing an INSPIRE codelist with hale\u00bbstudio\" \/><\/p>\n<p>Next, select \u201cFrom INSPIRE registry\u201d. A list of all INSPIRE codelists will appear and you can either filter by name or search by INSPIRE theme. The selected codelist will be added to your project.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wetransform.eu\/wp-content\/uploads\/2022\/05\/CodelistBlog_6.png\" alt=\"Importing an INSPIRE codelist with hale\u00bbstudio\" \/><\/p>\n<p>If all the target instances in your dataset will use the same codelist value, select the href attribute in the target property and apply the <code>Assign<\/code> function. In the <code>Assign<\/code> function dialog, select the icon with the yellow arrows to assign a codelist value from the codelist you loaded into your project. <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wetransform.eu\/wp-content\/uploads\/2022\/05\/CodelistBlog_7.png\" alt=\"Importing an INSPIRE codelist with hale\u00bbstudio\" \/><\/p>\n<h2>Next steps<\/h2>\n<p>Codelists are a fundamental building block of any INSPIRE implementation: they promote data interoperability through the effective reuse of stable and persistent identifiers for universally defined concepts. INSPIRE harmonization projects can often be stalled by empty codelists and missing values. Wetransform has supported numerous customers with the UML encoding of custom, codelist extensions, and with the development and maintenance of codelist registries. If you are interested in moving ahead with your project and overcoming the obstacles, please get in touch with our support team at <a href=\"mailto:support@wetransform.to\">support@wetransform.to<\/a>.<\/p>\n<p>If you're interested in learning more about such topics, feel free to check out our post on <a href=\"\/news-and-events\/inspireid-best-practices\/\">INSPIRE IDs<\/a> or our <a href=\"\/news-and-events\/\">news page<\/a>!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you have been creating INSPIRE GML, you have almost certainly encountered so-called codelists. They are an important part of INSPIRE data specifications and contribute substantially to interoperability. They are, however, not as straightforward as a simple enumeration is. This post explains what codelists are, how you use them, and why they are important. In [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[48],"tags":[36,35,37,21,18],"class_list":["post-1516","news-and-events","type-news-and-events","status-publish","hentry","category-tutorials","tag-codelists","tag-geodata","tag-gml","tag-halestudio","tag-inspire"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.5 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>INSPIRE Codelists: What are they, how to use them, and why do we need them? - wetransform<\/title>\n<meta name=\"description\" content=\"Codelists are a fundamental building block of any INSPIRE implementation: they promote data interoperability.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wetransform.to\/de\/news-and-events\/inspire-codelists\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"INSPIRE Codelists: What are they, how to use them, and why do we need them?\" \/>\n<meta property=\"og:description\" content=\"Codelists are a fundamental building block of any INSPIRE implementation: they promote data interoperability.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wetransform.to\/de\/news-and-events\/inspire-codelists\/\" \/>\n<meta property=\"og:site_name\" content=\"wetransform\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T09:40:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wetransform.eu\/wp-content\/uploads\/2022\/05\/CodelistBlog_1.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@wetransformto\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"6\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wetransform.to\\\/de\\\/news-and-events\\\/inspire-codelists\\\/\",\"url\":\"https:\\\/\\\/wetransform.to\\\/de\\\/news-and-events\\\/inspire-codelists\\\/\",\"name\":\"INSPIRE Codelists: What are they, how to use them, and why do we need them? - wetransform\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/wetransform.to\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/wetransform.to\\\/de\\\/news-and-events\\\/inspire-codelists\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/wetransform.to\\\/de\\\/news-and-events\\\/inspire-codelists\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wetransform.eu\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/CodelistBlog_1.png\",\"datePublished\":\"2021-07-26T10:36:30+00:00\",\"dateModified\":\"2024-03-21T09:40:20+00:00\",\"description\":\"Codelists are a fundamental building block of any INSPIRE implementation: they promote data interoperability.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wetransform.to\\\/de\\\/news-and-events\\\/inspire-codelists\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wetransform.to\\\/de\\\/news-and-events\\\/inspire-codelists\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/wetransform.to\\\/de\\\/news-and-events\\\/inspire-codelists\\\/#primaryimage\",\"url\":\"https:\\\/\\\/wetransform.eu\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/CodelistBlog_1.png\",\"contentUrl\":\"https:\\\/\\\/wetransform.eu\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/CodelistBlog_1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wetransform.to\\\/de\\\/news-and-events\\\/inspire-codelists\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wetransform.to\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"News & Events\",\"item\":\"https:\\\/\\\/wetransform.to\\\/de\\\/news-and-events\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"INSPIRE Codelists: What are they, how to use them, and why do we need them?\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/wetransform.to\\\/de\\\/#website\",\"url\":\"http:\\\/\\\/wetransform.to\\\/de\\\/\",\"name\":\"wetransform\",\"description\":\"Making environmental data useful and accessible\",\"publisher\":{\"@id\":\"http:\\\/\\\/wetransform.to\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\\\/\\\/wetransform.to\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"http:\\\/\\\/wetransform.to\\\/de\\\/#organization\",\"name\":\"wetransform\",\"url\":\"http:\\\/\\\/wetransform.to\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"http:\\\/\\\/wetransform.to\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/wetransform.to\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/large-logo-whitebg.png\",\"contentUrl\":\"https:\\\/\\\/wetransform.to\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/large-logo-whitebg.png\",\"width\":1024,\"height\":1024,\"caption\":\"wetransform\"},\"image\":{\"@id\":\"http:\\\/\\\/wetransform.to\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/wetransformto\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/wetransform-gmbh\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"INSPIRE Codelists: What are they, how to use them, and why do we need them? - wetransform","description":"Codelists are a fundamental building block of any INSPIRE implementation: they promote data interoperability.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wetransform.to\/de\/news-and-events\/inspire-codelists\/","og_locale":"de_DE","og_type":"article","og_title":"INSPIRE Codelists: What are they, how to use them, and why do we need them?","og_description":"Codelists are a fundamental building block of any INSPIRE implementation: they promote data interoperability.","og_url":"https:\/\/wetransform.to\/de\/news-and-events\/inspire-codelists\/","og_site_name":"wetransform","article_modified_time":"2024-03-21T09:40:20+00:00","og_image":[{"url":"https:\/\/wetransform.eu\/wp-content\/uploads\/2022\/05\/CodelistBlog_1.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_site":"@wetransformto","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"6\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wetransform.to\/de\/news-and-events\/inspire-codelists\/","url":"https:\/\/wetransform.to\/de\/news-and-events\/inspire-codelists\/","name":"INSPIRE Codelists: What are they, how to use them, and why do we need them? - wetransform","isPartOf":{"@id":"http:\/\/wetransform.to\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wetransform.to\/de\/news-and-events\/inspire-codelists\/#primaryimage"},"image":{"@id":"https:\/\/wetransform.to\/de\/news-and-events\/inspire-codelists\/#primaryimage"},"thumbnailUrl":"https:\/\/wetransform.eu\/wp-content\/uploads\/2022\/05\/CodelistBlog_1.png","datePublished":"2021-07-26T10:36:30+00:00","dateModified":"2024-03-21T09:40:20+00:00","description":"Codelists are a fundamental building block of any INSPIRE implementation: they promote data interoperability.","breadcrumb":{"@id":"https:\/\/wetransform.to\/de\/news-and-events\/inspire-codelists\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wetransform.to\/de\/news-and-events\/inspire-codelists\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/wetransform.to\/de\/news-and-events\/inspire-codelists\/#primaryimage","url":"https:\/\/wetransform.eu\/wp-content\/uploads\/2022\/05\/CodelistBlog_1.png","contentUrl":"https:\/\/wetransform.eu\/wp-content\/uploads\/2022\/05\/CodelistBlog_1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/wetransform.to\/de\/news-and-events\/inspire-codelists\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wetransform.to\/de\/"},{"@type":"ListItem","position":2,"name":"News & Events","item":"https:\/\/wetransform.to\/de\/news-and-events\/"},{"@type":"ListItem","position":3,"name":"INSPIRE Codelists: What are they, how to use them, and why do we need them?"}]},{"@type":"WebSite","@id":"http:\/\/wetransform.to\/de\/#website","url":"http:\/\/wetransform.to\/de\/","name":"wetransform","description":"Making environmental data useful and accessible","publisher":{"@id":"http:\/\/wetransform.to\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/wetransform.to\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"http:\/\/wetransform.to\/de\/#organization","name":"wetransform","url":"http:\/\/wetransform.to\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"http:\/\/wetransform.to\/de\/#\/schema\/logo\/image\/","url":"https:\/\/wetransform.to\/wp-content\/uploads\/2022\/07\/large-logo-whitebg.png","contentUrl":"https:\/\/wetransform.to\/wp-content\/uploads\/2022\/07\/large-logo-whitebg.png","width":1024,"height":1024,"caption":"wetransform"},"image":{"@id":"http:\/\/wetransform.to\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/wetransformto","https:\/\/www.linkedin.com\/company\/wetransform-gmbh\/"]}]}},"_links":{"self":[{"href":"https:\/\/wetransform.to\/de\/wp-json\/wp\/v2\/news-and-events\/1516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wetransform.to\/de\/wp-json\/wp\/v2\/news-and-events"}],"about":[{"href":"https:\/\/wetransform.to\/de\/wp-json\/wp\/v2\/types\/news-and-events"}],"author":[{"embeddable":true,"href":"https:\/\/wetransform.to\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wetransform.to\/de\/wp-json\/wp\/v2\/comments?post=1516"}],"version-history":[{"count":4,"href":"https:\/\/wetransform.to\/de\/wp-json\/wp\/v2\/news-and-events\/1516\/revisions"}],"predecessor-version":[{"id":7439,"href":"https:\/\/wetransform.to\/de\/wp-json\/wp\/v2\/news-and-events\/1516\/revisions\/7439"}],"wp:attachment":[{"href":"https:\/\/wetransform.to\/de\/wp-json\/wp\/v2\/media?parent=1516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wetransform.to\/de\/wp-json\/wp\/v2\/categories?post=1516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wetransform.to\/de\/wp-json\/wp\/v2\/tags?post=1516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}