<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://developers.onroerenderfgoed.be/blog</id>
    <title>Onroerend Erfgoed Ontwikkelaarsportaal - Blog</title>
    <updated>2020-11-06T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://developers.onroerenderfgoed.be/blog"/>
    <subtitle>Artikelen over de IT-projecten en technologie van Onroerend Erfgoed</subtitle>
    <icon>https://developers.onroerenderfgoed.be/img/favicon.ico</icon>
    <rights>Copyright © 2026 Onroerend Erfgoed</rights>
    <entry>
        <title type="html"><![CDATA[Atramhasis v0.7.0 uitgebracht]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/atramhasis-0.7.0</id>
        <link href="https://developers.onroerenderfgoed.be/blog/atramhasis-0.7.0"/>
        <updated>2020-11-06T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Er is een nieuwe versie (0.7.0) van Atramhasis uitgebracht, onze open-source, webgebaseerde SKOS-editor.]]></summary>
        <content type="html"><![CDATA[<p>Er is een nieuwe versie (0.7.0) van <a href="https://pypi.org/project/atramhasis/" target="_blank" rel="noopener noreferrer" class="">Atramhasis</a> uitgebracht, onze open-source, webgebaseerde SKOS-editor.</p>
<!-- -->
<p>Deze release bevat weinig zichtbare nieuwe functies voor eindgebruikers; de meeste verbeteringen zijn technisch van aard en verhogen de stabiliteit van de toepassing. Eén nieuwe functie is een <a href="https://thesaurus.onroerenderfgoed.be/conceptschemes/SOORTEN/tree" target="_blank" rel="noopener noreferrer" class="">eenvoudige boomweergave</a> waarmee het afdrukken van een thesaurus haalbaar wordt.</p>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>waarschuwing</div><div class="admonitionContent_BuS1"><p>Deze release bevat een aantal wijzigingen die niet backwards compatible zijn en die een zorgvuldige upgrade met wat manuele tussenkomst vereisen. <strong>De 0.7.x-reeks is ook de laatste die Python 2 ondersteunt.</strong> Ben je nog niet overgestapt naar Python 3, dan is dit het moment.</p></div></div>
<p>De breaking change heeft te maken met hoe en wanneer <code>skosprovider.registry.Registry</code> geïnstantieerd wordt: voorheen gebeurde dit bij het opstarten van de toepassing, nu gebeurt dit per request. De oude manier van werken zorgde voor problemen met SQLAlchemy-providers op een webserver met meerdere threads. Zie de <a href="https://atramhasis.readthedocs.io/en/latest/customisation.html#creating-conceptschemes" target="_blank" rel="noopener noreferrer" class="">customisation-documentatie</a> voor hoe dit nu werkt, en de <a href="https://pyramid-skosprovider.readthedocs.io/en/0.9.0/install.html" target="_blank" rel="noopener noreferrer" class="">documentatie van pyramid_skosprovider</a> voor achtergrond.</p>
<p>Python 2-ondersteuning wordt over de hele softwarestack afgebouwd:</p>
<ul>
<li class=""><a href="https://pypi.org/project/atramhasis/" target="_blank" rel="noopener noreferrer" class="">atramhasis</a> laat dit vallen vanaf <code>1.0.0</code></li>
<li class=""><a href="https://pypi.org/project/skosprovider/" target="_blank" rel="noopener noreferrer" class="">skosprovider</a> vanaf <code>0.8.0</code></li>
<li class=""><a href="https://pypi.org/project/language-tags/" target="_blank" rel="noopener noreferrer" class="">language-tags</a> liet dit al vallen vanaf <code>1.0.0</code></li>
<li class=""><a href="https://pypi.org/project/pyramid_skosprovider/" target="_blank" rel="noopener noreferrer" class="">pyramid_skosprovider</a> vanaf <code>0.10.0</code></li>
<li class=""><a href="https://pypi.org/project/skosprovider-sqlalchemy/" target="_blank" rel="noopener noreferrer" class="">skosprovider_sqlalchemy</a> vanaf <code>0.7.0</code></li>
<li class=""><a href="https://pypi.org/project/skosprovider-atramhasis/" target="_blank" rel="noopener noreferrer" class="">skosprovider_atramhasis</a> liet dit al vallen vanaf <code>0.4.0</code></li>
<li class=""><a href="https://pypi.org/project/skosprovider-getty/" target="_blank" rel="noopener noreferrer" class="">skosprovider_getty</a> vanaf <code>0.6.0</code></li>
<li class=""><a href="https://pypi.org/project/skosprovider-rdf/" target="_blank" rel="noopener noreferrer" class="">skosprovider_rdf</a> vanaf <code>0.9.0</code></li>
<li class=""><a href="https://pypi.org/project/skosprovider_heritagedata/" target="_blank" rel="noopener noreferrer" class="">skosprovider_heritagedata</a> wordt momenteel niet meer onderhouden</li>
</ul>
<p>Ook SKOS-collecties kregen een fix: we gingen er steeds van uit dat concepten in een collectie ook smallere concepten waren van het overkoepelende concept van die collectie, maar de implementatie hiervan was onvolledig en bevatte bugs. Collecties hebben nu een boolean-attribuut <code>infer_concept_relations</code>: staat dit op <code>true</code>, dan worden concepten in de collectie beschouwd als smallere concepten van het overkoepelende concept; staat het op <code>false</code>, dan niet. Dit heeft vooral invloed op de expand-functie van een provider en op hoe <code>thesaurus arrays</code> of <code>node labels</code> geïnterpreteerd worden.</p>
<p>We hebben ook geïnvesteerd in SEO: conceptdetailpagina's bevatten nu HTML-metadata zoals een canonical URL, een Twitter card en OpenGraph-info, en een nieuw script kan een XML-sitemap genereren voor je installatie.</p>
<p><img decoding="async" loading="lazy" alt="Atramhasis admin-interface" src="https://developers.onroerenderfgoed.be/assets/images/atramhasis_admin-6486745f1208c98e062dfacfe2692501.png" width="1851" height="949" class="img_ev3q"></p>
<p><em>De Atramhasis admin-interface</em></p>
<p>Weet je niet goed hoe Atramhasis er uitziet of wat het doet? De documentatie heeft nu een <a href="https://atramhasis.readthedocs.io/en/latest/features.html" target="_blank" rel="noopener noreferrer" class="">aparte sectie</a> die dit uitlegt.</p>
<p>Zoals steeds zijn er bugs opgelost; zie de <a href="https://github.com/OnroerendErfgoed/atramhasis/releases/tag/0.7.0" target="_blank" rel="noopener noreferrer" class="">release notes van 0.7.0</a> voor de volledige lijst van wijzigingen. Bekijk een werkend voorbeeld op <a href="https://thesaurus.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">thesaurus.onroerenderfgoed.be</a>. Vragen of problemen: het <a href="https://groups.google.com/forum/#!forum/atramhasis" target="_blank" rel="noopener noreferrer" class="">forum</a> of onze <a href="https://github.com/OnroerendErfgoed/atramhasis" target="_blank" rel="noopener noreferrer" class="">GitHub tracker</a>.</p>]]></content>
        <author>
            <name>Koen Van Daele</name>
        </author>
        <category label="Atramhasis" term="Atramhasis"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Ook een webpagina kan verhuizen]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/webpagina-verhuizen</id>
        <link href="https://developers.onroerenderfgoed.be/blog/webpagina-verhuizen"/>
        <updated>2020-01-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We staan er niet altijd bij stil, maar ook webpagina's verhuizen. Websites, databanken en andere informatiesystemen zijn geen statische gegevens cool URI's don't change, echte wel. Deal with it. (Voor dit bericht mag je URI en URL gerust als synoniemen lezen.)]]></summary>
        <content type="html"><![CDATA[<p>We staan er niet altijd bij stil, maar ook webpagina's verhuizen. Websites, databanken en andere informatiesystemen zijn geen statische gegevens: ze worden op een bepaald moment gebouwd, met bepaalde verwachtingen en in een bepaalde technologie. In een ideale wereld verandert een URL nooit — <a href="https://www.w3.org/Provider/Style/URI" target="_blank" rel="noopener noreferrer" class="">Cool URIs don't change</a>, weet je wel. In de praktijk verandert er wél iets: cool URI's don't change, echte wel. Deal with it. (Voor dit bericht mag je URI en URL gerust als synoniemen lezen.)</p>
<!-- -->
<p>Binnen het <a href="https://www.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">agentschap Onroerend Erfgoed</a> proberen we al heel lang (sinds 2005 of zo) zo stabiel mogelijke URI's te hebben. Moeten we een URL toch wijzigen of opheffen, dan zetten we op de oude URL een doorverwijzing (redirect) naar een pagina met dezelfde of gelijkaardige informatie. Zo surf je nog steeds naar de inventaris via <a href="https://inventaris.vioe.be/" target="_blank" rel="noopener noreferrer" class="">https://inventaris.vioe.be</a>, ook al is <a href="https://inventaris.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">https://inventaris.onroerenderfgoed.be</a> al jaren de canonieke URL, en stuurt <a href="https://www.erfgoed.net/beschermingen" target="_blank" rel="noopener noreferrer" class="">https://www.erfgoed.net/beschermingen</a> je nog altijd naar het zoekformulier voor beschermd erfgoed, ook al bestaat die oorspronkelijke pagina al bijna tien jaar niet meer.</p>
<p>Nadeel: veel mensen beseffen niet dat URL's gewijzigd zijn, en oude URL's blijven her en der op websites staan, doorverwijzend naar nieuwe. Hoe langer dat duurt, hoe complexer de logica van doorverwijzingen wordt — oude URL's die naar minder oude URL's leiden, die op hun beurt weer naar actuele URL's doorverwijzen. Eens de herinnering aan die oude systemen vervaagt, wordt het ook voor ons moeilijker om alles draaiend te houden. Daarom geven we vandaag een overzicht van een aantal veelvoorkomende oude links, met de focus op beschermd erfgoed (de inventaris zelf komt in een later bericht aan bod).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="informatiesystemen-voor-beschermd-erfgoed">Informatiesystemen voor beschermd erfgoed<a href="https://developers.onroerenderfgoed.be/blog/webpagina-verhuizen#informatiesystemen-voor-beschermd-erfgoed" class="hash-link" aria-label="Direct link naar Informatiesystemen voor beschermd erfgoed" title="Direct link naar Informatiesystemen voor beschermd erfgoed" translate="no">​</a></h2>
<p>Lang voor het internet echt een ding was, bestond er al een eerste informatiesysteem voor beschermd erfgoed: <em>Melanie</em>, voluit <code>Monumenten En LANdschappen InformatiEsysteem</code>. Aanvankelijk helemaal niet verbonden met het internet, kreeg het later een online ontsluiting van de beschermde objecten in een schaduwdatabank. Ondanks het ontbreken van URI's kreeg elk beschermd object toen al een uniek nummer volgens een vast stramien: een <code>O</code> (voor object), een letter per provincie (<code>W</code>, <code>O</code>, <code>A</code>, <code>L</code>, <code>B</code>), en zes cijfers tussen <code>000000</code> en <code>999999</code> — het Melanie Object Nummer, zoals <code>OO003255</code> of <code>OW000678</code>. Dit soort nummers duik je vaak nog op in hedendaagse fiches van aanduidingsobjecten. Daarnaast bestonden er Melanie Dossier Nummers, met dezelfde structuur maar een <code>D</code> in plaats van een <code>O</code> — meerdere objecten konden immers samen in één dossier beschermd worden, zoals <code>DA002378</code>, dat over 4 beschermde monumenten van 1 architect ging.</p>
<p>Toen Monumenten en Landschappen opging in het agentschap Ruimte en Erfgoed, werden ook de informatiesystemen samengevoegd. Melanie werd bedankt voor bewezen diensten, en haar taken werden overgenomen door <em>Bredero</em>, het dossieropvolgingssysteem dat al langer voor Ruimtelijke Ordening gebruikt werd. Ook hier bestonden de concepten object en dossier. Een Bredero-nummer bestaat uit drie delen, gescheiden door schuine strepen: het type document (beschermd monument, stadsgezicht, beschermingsdossier, ...), een 5-cijferige NIS-code voor de gemeente of provincie, en een volgnummer. Een volledig nummer ziet er dan uit als <code>4.01/43005/162.1</code> (een beschermd monument), <code>4.03/40000/107.1</code> (een beschermd landschap) of <code>4.001/30000/2517.1</code> (een beschermingsdossier).</p>
<p>Bij de oprichting van het agentschap Onroerend Erfgoed in 2011 werd al snel duidelijk dat <code>Bredero</code> wel geschikt was voor dossieropvolging, maar niet voor een stabiele omgeving met doorgedreven objectgerelateerde erfgoedinformatie. De bestaande Inventaris Onroerend Erfgoed bood daarvoor veel meer mogelijkheden, en uit die synergie ontstonden de aanduidingsobjecten (zie <a class="" href="https://developers.onroerenderfgoed.be/blog/inventaris-erfgoedobjecten-aanduidingsobjecten">Erfgoedobjecten en aanduidingsobjecten</a>). Bij het opbouwen van die dataset namen we de oude identificatoren maximaal over, waardoor je vandaag op de pagina van een aanduidingsobject onder <code>Beschermingsdossiers</code> nog een lijst van oudere nummers terugvindt. De inventaris zelf leefde altijd al op het web en werkte altijd al met URI's, en sinds het ontstaan van de aanduidingsobjecten volgen we de URI-richtlijnen van de Vlaamse Overheid. Zo vind je de parochiekerk Sint-Petrus en Sint-Paulus te Hansbeke terug onder het oude Melanie-nummer <code>OO001175</code>, het equivalente Bredero-nummer <code>4.01/44049/119.1</code>, én de nieuwe URI <a href="https://id.erfgoed.net/aanduidingsobjecten/10535" target="_blank" rel="noopener noreferrer" class="">https://id.erfgoed.net/aanduidingsobjecten/10535</a>.</p>
<p><img decoding="async" loading="lazy" alt="Zoeken naar Melanie- of Bredero-nummers" src="https://developers.onroerenderfgoed.be/assets/images/andere_nummers_zoeken-4290259c1cd656af25f1f2772de48353.png" width="943" height="777" class="img_ev3q"></p>
<p><em>Zoeken naar Melanie- of Bredero-nummers op het zoekformulier van de aanduidingsobjecten</em></p>
<p>Het project beschermingsdatabank omvatte onder meer het overzetten van beschermde objecten uit Bredero naar de aanduidingsobjecten, met veel aandacht voor datakwaliteit, een herevaluatie van oude gegevens, en het toevoegen van nieuwe informatie zoals locatiegegevens en thesaurustermen. Soms was het nodig om een oud Melanie- of Bredero-nummer op te splitsen in verschillende delen, waardoor één oud nummer vandaag soms door meerdere fiches wordt voorgesteld — eerder uitzondering dan regel. Om het jou makkelijk te maken kan je gewoon zoeken op een oud nummer: ga naar het <a href="https://inventaris.onroerenderfgoed.be/aanduidingsobjecten/zoeken" target="_blank" rel="noopener noreferrer" class="">zoekformulier van de aanduidingsobjecten</a> en tik onderaan bij <code>Ander nummer?</code> het Melanie- of Bredero-nummer in.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="oude-urls">Oude URL's<a href="https://developers.onroerenderfgoed.be/blog/webpagina-verhuizen#oude-urls" class="hash-link" aria-label="Direct link naar Oude URL's" title="Direct link naar Oude URL's" translate="no">​</a></h2>
<p>Heb je nog ergens een oude URL in gebruik, dan zal daarin steeds een Melanie- of Bredero-nummer staan. URL's uit de periode 2012-2016 zien er wellicht zo uit: <code>https://beschermingen.onroerenderfgoed.be/object/id/OO001175</code> of <code>https://beschermingen.onroerenderfgoed.be/object/id/4.01/44049/119.1</code>. Na 2016 stuurden we dat verkeer door naar een pagina op de inventaris zoals <code>https://inventaris.onroerenderfgoed.be/erfgoed/beschermd/OO001175</code>, waar alle gekoppelde aanduidingsobjecten getoond werden (of je werd rechtstreeks doorgestuurd als er maar één was). Vandaag sturen we dat verkeer naar bijvoorbeeld <code>https://inventaris.onroerenderfgoed.be/aanduidingsobjecten?ander_nummer=OO001175</code>, waar je alle aanduidingsobjecten ziet die met dat oude nummer overeenkomen.</p>
<p>Heb je nog oudere URL's zoals <code>http://paola.erfgoed.net/engine/fiche.php?id=000816&amp;pv=O</code>, dan werken die niet meer, maar kan je het Melanie-nummer makkelijk reconstrueren: neem de waarde van <code>pv</code>, gevolgd door een <code>O</code>, gevolgd door de waarde van <code>id</code> — dat geeft <code>OO000816</code>, dat je dan weer kan opzoeken onder <code>ander nummer</code> in de nieuwe inventaris. Zo kom je uiteindelijk uit bij de Motte de Hoge Wal in Ertvelde.</p>
<p>Heb je oude links, dan raden we sterk aan om ze om te zetten naar onze nieuwe URI's. Let op het onderscheid tussen de <code>document-URI</code> (bijvoorbeeld de pagina die je kan lezen over de Hoge Wal) en de <code>concept-URI</code> (die het concept van de Hoge Wal als tastbaar object voorstelt). We garanderen enkel persistentie op die laatste: de document-URI hangt vast aan onze domeinnaam <code>onroerenderfgoed.be</code>, gebonden aan onze organisatienaam, terwijl de concept-URI's op <code>erfgoed.net</code> daar geen last van hebben.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="zeg-het-met-een-script">Zeg het met een script<a href="https://developers.onroerenderfgoed.be/blog/webpagina-verhuizen#zeg-het-met-een-script" class="hash-link" aria-label="Direct link naar Zeg het met een script" title="Direct link naar Zeg het met een script" translate="no">​</a></h2>
<p>Heb je veel links naar onze site, dan is het best wat werk om die één voor één op te zoeken. Daarom bieden we een kort Python-script aan waarmee je in één keer van heel wat oude Melanie- of Bredero-nummers de bijhorende URI's te weten komt: bewaar het script, voorzie een csv-bestand met een lijst oude identificatoren, en laat het script lopen. Het volledige script vind je terug in de bronrepository van deze blog op <a href="https://github.com/OnroerendErfgoed/OnroerendErfgoed.github.io" target="_blank" rel="noopener noreferrer" class="">GitHub</a>.</p>]]></content>
        <author>
            <name>Koen Van Daele</name>
        </author>
        <author>
            <name>Bram Goessens</name>
        </author>
        <author>
            <name>Sam Kuylen</name>
        </author>
        <category label="Inventaris" term="Inventaris"/>
        <category label="Aanduidingsobjecten" term="Aanduidingsobjecten"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Wij zijn de Hypermedia!]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/vioe-hypermedia-api</id>
        <link href="https://developers.onroerenderfgoed.be/blog/vioe-hypermedia-api"/>
        <updated>2019-12-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Binnen de Vlaamse Overheid coördineert een centraal orgaan het beleid rond Informatie en ICT. Onder die koepel zijn er verschillende werkgroepen actief, waaronder de werkgroep OSLO-datastandaarden, die standaarden, semantische modellen en tools ontwikkelt voor Vlaamse overheidsdiensten en partners. Eén van hun projecten in 2018 was een Generieke Hypermedia API-standaard taal, CRUD en paginering.]]></summary>
        <content type="html"><![CDATA[<p>Binnen de Vlaamse Overheid coördineert een centraal orgaan het beleid rond Informatie en ICT. Onder die koepel zijn er verschillende werkgroepen actief, waaronder de werkgroep <a href="https://informatievlaanderen.github.io/handreikingOslo/" target="_blank" rel="noopener noreferrer" class="">OSLO-datastandaarden</a>, die standaarden, semantische modellen en tools ontwikkelt voor Vlaamse overheidsdiensten en partners. Eén van hun projecten in 2018 was een <a href="https://github.com/Informatievlaanderen/generieke-hypermedia-api" target="_blank" rel="noopener noreferrer" class="">Generieke Hypermedia API</a>-standaard: richtlijnen en bouwstenen om REST-services meer hypermedia-gedreven, en dus interoperabeler, te maken. De eerste versie, goedgekeurd op 8 november 2018, bevat drie bouwstenen: taal, CRUD en paginering.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="paginering-op-webschaal">Paginering op webschaal<a href="https://developers.onroerenderfgoed.be/blog/vioe-hypermedia-api#paginering-op-webschaal" class="hash-link" aria-label="Direct link naar Paginering op webschaal" title="Direct link naar Paginering op webschaal" translate="no">​</a></h2>
<p>Bij Onroerend Erfgoed zijn we onze informatiesystemen beginnen afstemmen op deze standaard, vooral op de bouwsteen <code>paginering</code>. Voorlopig kiezen we voor de HTTP <code>Link</code>-header-methode van paginering, zoals <a href="https://github.com/Informatievlaanderen/generieke-hypermedia-api/blob/master/paginering.md#http" target="_blank" rel="noopener noreferrer" class="">hier gespecificeerd</a> en gedetailleerd in <a href="https://tools.ietf.org/html/rfc5988" target="_blank" rel="noopener noreferrer" class="">RFC 5988</a>.</p>
<p>Om dit in actie te zien, kijk je naar de <code>Link</code>-HTTP-header — via een commandolijntool zoals cURL, een browserplug-in of een REST-client. Wij gebruiken cURL, aangezien die meestal al aanwezig of makkelijk te installeren is op Linux en Mac.</p>
<p>Stel dat we geïnteresseerd zijn in boeken en documenten over <code>Knokke</code>, een kustgemeente in Vlaanderen. De REST API-documentatie op <a href="https://bib.onroerenderfgoed.be/api_docs" target="_blank" rel="noopener noreferrer" class="">https://bib.onroerenderfgoed.be/api_docs</a> leert ons dat we <code>https://bib.onroerenderfgoed.be/werken</code> kunnen aanroepen met een parameter <code>titel</code>, dus <code>https://bib.onroerenderfgoed.be/werken?titel=knokke</code> geeft ons werken met <code>Knokke</code> in de titel, of in een hoofdstuktitel:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">$ curl -G -i -H Accept:application/json https://bib.onroerenderfgoed.be/werken?titel=knokke</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">HTTP/1.1 200 OK</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Date: Mon, 16 Dec 2019 19:51:07 GMT</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Server: Apache</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Content-Type: application/json</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Content-Length: 3933</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Access-Control-Expose-Headers: Content-Range, X-Content-Range</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Accept-Ranges: items</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Content-Range: items 0-9/167</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Link: &lt;https://bib.onroerenderfgoed.be/werken?titel=knokke&amp;per_pagina=10&amp;pagina=2&gt;; rel="next", &lt;https://bib.onroerenderfgoed.be/werken?titel=knokke&amp;per_pagina=10&amp;pagina=17&gt;; rel="last", &lt;https://bib.onroerenderfgoed.be/werken?titel=knokke&amp;per_pagina=10&amp;pagina=1&gt;; rel="first"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">X-Content-Type-Options: nosniff</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">Access-Control-Allow-Origin: *</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">X-Permitted-Cross-Domain-Policies: none</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">X-XSS-Protection: 1; mode=block</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">[{"publicatietype": {"url": "http://purl.org/ontology/bibo/Document", "naam": "Document", "id": 1}, "titel": "Het landelijke Knokke", "self": "https://bib.onroerenderfgoed.be/werken/552291", "uri": "https://id.erfgoed.net/infocat/werken/552291", "auteur": "D'hont A.", "id": 552291}, "... nog 9 resultaten ..."]</span><br></div></code></pre></div></div>
<p>Deze <code>curl</code>-aanroep haalt boeken en documenten (<code>werken</code>) op uit onze bibliotheekcatalogus met <code>knokke</code> in de titel, en vraagt om ook de headers af te drukken. De header waar het ons hier om gaat is <code>Link</code>:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">Link: &lt;https://bib.onroerenderfgoed.be/werken?titel=knokke&amp;per_pagina=10&amp;pagina=2&gt;; rel="next", &lt;https://bib.onroerenderfgoed.be/werken?titel=knokke&amp;per_pagina=10&amp;pagina=17&gt;; rel="last", &lt;https://bib.onroerenderfgoed.be/werken?titel=knokke&amp;per_pagina=10&amp;pagina=1&gt;; rel="first"</span><br></div></code></pre></div></div>
<p>We krijgen resultaten terug, maar slechts een gedeeltelijke set. De <code>Link</code>-header vertelt ons dat er een <code>next</code>-pagina, een <code>last</code>-pagina en een <code>first</code>-pagina bestaan — en omdat we op pagina 1 zitten, geen <code>previous</code>. We kunnen deze links volgen om pagina per pagina verder te gaan, of meteen naar het einde springen. Belangrijk: een client mag niets veronderstellen buiten wat de links letterlijk zeggen. Je zou uit "17 pagina's van elk maximaal 10 records" kunnen afleiden dat er tussen de 161 en 170 resultaten zijn, maar de server is niet verplicht om die rekensom te laten kloppen, of om andere informatie in de link te steken. Dit toont meteen een echte beperking van paginering via de <code>Link</code>-header: er is geen manier om te weten hoeveel resultaten er in totaal zijn, of hoeveel pagina's er nog volgen. De client weet enkel of er een <code>next</code>-link is; is die er niet, dan zit je op de laatste pagina, en zijn <code>next</code> en <code>last</code> identiek, dan zit je op de voorlaatste. Het voordeel: de client hoeft niets te weten over de interne structuur van de URL — geen <code>page</code> versus <code>pagina</code>, geen <code>limit</code>/<code>offset</code> — waardoor dezelfde clientcode makkelijk hergebruikt kan worden voor heel verschillende webservices. Het enige wat de client moet weten: is er een <code>next</code>-link, dan is er meer op te halen.</p>
<p>Voor de tweede pagina:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">$ curl -G -i -H Accept:application/json https://bib.onroerenderfgoed.be/werken?titel=knokke\&amp;per_pagina=10\&amp;pagina=2</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="al-jullie-data-is-van-ons">Al jullie data is van ons!<a href="https://developers.onroerenderfgoed.be/blog/vioe-hypermedia-api#al-jullie-data-is-van-ons" class="hash-link" aria-label="Direct link naar Al jullie data is van ons!" title="Direct link naar Al jullie data is van ons!" translate="no">​</a></h2>
<p>Om dit te demonstreren schreven we een klein Python-script dat verschillende van onze informatiesystemen bevraagt en de paginering via de <code>Link</code>-header automatisch afhandelt. In Python is de bibliotheek <a href="https://requests.readthedocs.io/en/master/" target="_blank" rel="noopener noreferrer" class="">requests</a> de standaard voor REST-aanroepen, en handig genoeg heeft die al ingebouwde ondersteuning voor de <code>Link</code>-header, waardoor het triviaal wordt om over alle resultaten te itereren. Voor dit voorbeeld halen we alle afbeeldingen (<a class="" href="https://developers.onroerenderfgoed.be/blog/beeldbank-zoeken">Zoeken in de beeldbank</a>), thema's (<a class="" href="https://developers.onroerenderfgoed.be/blog/inventaris-themas-personen-gebeurtenissen">Thema's, personen en gebeurtenissen</a>), erfgoed- en aanduidingsobjecten (<a class="" href="https://developers.onroerenderfgoed.be/blog/inventaris-erfgoedobjecten-aanduidingsobjecten">Erfgoedobjecten en aanduidingsobjecten</a>) op voor de gemeente <code>Knokke-Heist</code>. Het is een kort scriptje dat een berg URI's aan je voeten legt, door de verschillende API's te doorlopen en telkens de <code>next</code>-link te volgen.</p>
<p>Als je het script uitvoert, krijg je een lange lijst URI's te zien — functioneel, maar niet meteen bevredigend: een URI is fijn voor een machine, maar zegt een mens op zich weinig.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="geen-context-geen-informatie">Geen context, geen informatie<a href="https://developers.onroerenderfgoed.be/blog/vioe-hypermedia-api#geen-context-geen-informatie" class="hash-link" aria-label="Direct link naar Geen context, geen informatie" title="Direct link naar Geen context, geen informatie" translate="no">​</a></h2>
<p>Een andere interessante techniek in de Linked Data-wereld is <a href="https://json-ld.org/" target="_blank" rel="noopener noreferrer" class="">JSON-LD</a> (JSON for Linking Data), dat gewone JSON omzet naar linked data door ze via een <code>context</code> te koppelen aan RDF — je definieert daarin welke JSON-sleutels met welke RDF-eigenschappen overeenkomen. Hier is een eenvoudige context die je zou kunnen gebruiken op ons beeldbank-endpoint:</p>
<div class="language-json-ld codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json-ld codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">{</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "dct": "http://purl.org/dc/terms/",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "title": "dct:title",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "description": "dct:description",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "uri": "@id"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div></code></pre></div></div>
<p>Dit definieert een naamruimte-afkorting <code>dct</code> voor de Dublin Core Terms-naamruimte, zodat <code>dct:title</code> staat voor het volledige <code>http://purl.org/dc/terms/title</code>, en koppelt <code>uri</code> aan <code>@id</code>, de manier waarop JSON-LD de unieke identificator van een record aanduidt. Pas je deze context toe op een afbeelding uit onze beeldbank, dan krijg je:</p>
<div class="language-json-ld codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json-ld codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">{</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "@id": "https://id.erfgoed.net/afbeeldingen/392715",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "http://purl.org/dc/terms/title": "Villa Cools met kinesistenpraktijk",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "http://purl.org/dc/terms/description": ""</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div></code></pre></div></div>
<p>Dit vertelt ons dat er een resource is met identificator <code>https://id.erfgoed.net/afbeeldingen/392715</code>, te beschrijven met een Dublin Core <code>title</code>. In JSON-LD is het gebruikelijk om ook een <code>@type</code> toe te kennen, een URI die verwijst naar een klasse in een RDF-vocabulaire, zodat records uit verschillende bronnen onderscheidbaar blijven eens samengevoegd:</p>
<div class="language-json-ld codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-json-ld codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">{</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "@id": "https://id.erfgoed.net/afbeeldingen/392715",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "@type": "http://purl.org/dc/dcmitype/Image",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "http://purl.org/dc/terms/title": "Villa Cools met kinesistenpraktijk",</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    "http://purl.org/dc/terms/description": ""</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">}</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="nog-eens-met-gevoel">Nog eens, met gevoel<a href="https://developers.onroerenderfgoed.be/blog/vioe-hypermedia-api#nog-eens-met-gevoel" class="hash-link" aria-label="Direct link naar Nog eens, met gevoel" title="Direct link naar Nog eens, met gevoel" translate="no">​</a></h2>
<p>Laten we JSON-LD gebruiken om ons script te verbeteren. We willen een homogene dataset met alles wat we weten over <code>Knokke-Heist</code>, waarbij elk record dezelfde structuur deelt — dus bouwden we twee JSON-LD-contexten, één voor de beeldbank en één gedeeld door de drie nauw verwante inventarisdatasets. Omdat geen van deze datasets standaard hun eigen resourcetype meegeven, voegen we dat zelf toe. Ons inventarissysteem heeft ook een veld <code>locatie_samenvatting</code> dat de geografische locatie van een object samenvat — de onderliggende samenvattingslogica kan behoorlijk complex zijn (sommige dingen liggen in meer dan één straat, gemeente of zelfs provincie), maar is erg handig voor een mens die snel door resultaten bladert. De beeldbank heeft zo'n veld niet, dus berekenen we er zelf een eenvoudig equivalent voor (de locatie van afbeeldingen is veel eenvoudiger dan die van erfgoedobjecten).</p>
<p>Het script haalt alles op zoals voorheen, voegt het recordtype en een locatiesamenvatting voor afbeeldingen toe, en expandeert alles naar JSON-LD met de Python-bibliotheek <a href="https://pypi.org/project/PyLD/" target="_blank" rel="noopener noreferrer" class="">pyLD</a>. Dat levert geldige, maar onhandige JSON-LD op — elke sleutel is nu een URI. Dus comprimeren we opnieuw, met een derde context gebaseerd op Dublin Core Terms, en drukken we het resultaat af.</p>
<p>Om dit script te draaien, installeer je eerst <code>requests</code> en <code>pyLD</code>. Voor grotere gemeenten zoals <code>Gent</code> of <code>Antwerpen</code> kan het wel even duren. Als extraatje schreven we ook een variant die de resulterende dataset naar een csv wegschrijft in plaats van af te drukken — pas gerust één van beide scripts aan om je eigen dataset voor een andere gemeente op te bouwen.</p>
<p>Interesseren Hypermedia API's en Linked Data je? Op <a href="https://data.vlaanderen.be/" target="_blank" rel="noopener noreferrer" class="">https://data.vlaanderen.be/</a> vind je veel meer achtergrond en verwijzingen naar de relevante standaarden en documenten, en er is een hele community van Linked Data-mensen die je vragen graag beantwoordt — een aantal van hen vind je op <a href="https://twitter.com/koenedaele/lists/linked-data" target="_blank" rel="noopener noreferrer" class="">Twitter</a>. Zoals steeds, <a href="mailto:ict@onroerenderfgoed.be" target="_blank" rel="noopener noreferrer" class="">neem gerust contact op</a> met verdere vragen.</p>]]></content>
        <author>
            <name>Koen Van Daele</name>
        </author>
        <category label="API" term="API"/>
        <category label="Hypermedia" term="Hypermedia"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Geoportaal Onroerend Erfgoed: alles samen!]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/geoportaal-architectuur</id>
        <link href="https://developers.onroerenderfgoed.be/blog/geoportaal-architectuur"/>
        <updated>2019-11-28T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Onroerend Erfgoed heeft al sinds 2013 een geoportaal. Het is sindsdien flink gegroeid en veranderd, maar de basisdoelstellingen en de architectuur zijn grotendeels hetzelfde gebleven.]]></summary>
        <content type="html"><![CDATA[<p><a href="https://www.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">Onroerend Erfgoed</a> heeft al sinds 2013 een <a href="https://geo.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">geoportaal</a>. Het is sindsdien flink gegroeid en veranderd, maar de basisdoelstellingen en de architectuur zijn grotendeels hetzelfde gebleven.</p>
<!-- -->
<p><img decoding="async" loading="lazy" alt="Het geoportaal van Onroerend Erfgoed in 2014" src="https://developers.onroerenderfgoed.be/assets/images/geoportaal_2014-e75249399a9e2d02dd027ef4778bd9b0.png" width="1609" height="964" class="img_ev3q"></p>
<p><em>Het geoportaal van Onroerend Erfgoed in 2014</em></p>
<p>Onze eerste en belangrijkste vereiste was iets dat makkelijk te gebruiken is voor een breed publiek. We merkten dat andere geoportalen vaak vooral GIS-professionals bedienden, en zo eigenlijk een online desktop-GIS bouwden: veelzijdig en krachtig voor wie al met GIS werkt, maar ontoegankelijk voor iedereen anders. Wij wilden een ervaring dichter bij Google Maps, specifiek toegespitst op mensen die informatie over cultureel erfgoed in Vlaanderen zoeken. We wilden ook dat het geoportaal aanvoelde als onderdeel van onze online informatiesystemen, niet als een aparte geodata-silo, en bouwden daarom rapporten die teruglinken naar onze online bronnen via hun persistente URI's. Die URI's zitten als metadata in al onze geografische data, en koppelen elke feature terug aan de authentieke bron waar de ruwe data (inclusief geodata) leeft — zo kan je altijd doorklikken naar de volledige set attributen en alles wat we over een resource weten.</p>
<p><img decoding="async" loading="lazy" alt="Het geoportaal van Onroerend Erfgoed in 2019" src="https://developers.onroerenderfgoed.be/assets/images/geoportaal_2019-be33d33483fd17e6774afc9ae9a48f29.png" width="1853" height="953" class="img_ev3q"></p>
<p><em>Het geoportaal van Onroerend Erfgoed in 2019</em></p>
<p>Een tweede vereiste kwam voort uit de data zelf. Onroerend Erfgoed maakt en publiceert geodata over onroerend erfgoed, maar geen andere geodata, en dat wilden we niet apart gaan doen voor het geoportaal — dus steunen we sterk op publiek beschikbare webservices. <a href="https://informatie.vlaanderen.be/" target="_blank" rel="noopener noreferrer" class="">Informatie Vlaanderen</a> (vroeger AGIV) is al sinds het begin onze partner voor achtergrondkaarten en niet-erfgoedlagen, en we namen ook lagen op van andere partijen, zoals <a href="https://mercator.vlaanderen.be/" target="_blank" rel="noopener noreferrer" class="">Mercator</a> of buitenlandse instanties (bv. de Nederlandse <a href="https://www.cultureelerfgoed.nl/" target="_blank" rel="noopener noreferrer" class="">Rijksdienst voor het Cultureel Erfgoed</a>). Informatie Vlaanderen levert ook alfanumerieke diensten om kaarten te navigeren: de <a href="https://overheid.vlaanderen.be/informatie-vlaanderen/producten-diensten/centraal-referentieadressenbestand-crab" target="_blank" rel="noopener noreferrer" class="">CRAB-dienst</a> met alle adresgegevens in Vlaanderen, de <a href="https://overheid.vlaanderen.be/capakey-rest-service" target="_blank" rel="noopener noreferrer" class="">CAPAKEY-dienst</a> met kadastrale percelen, en een <a href="https://loc.geopunt.be/Help" target="_blank" rel="noopener noreferrer" class="">geolocatiedienst</a> voor vrije-tekst adreszoekopdrachten. We wilden deze diensten gebruiken zonder hun data volledig te kopiëren, zoals tien jaar eerder misschien wel gebeurd was — we bewaren er zo weinig mogelijk van, hoogstens een cache hier en daar, zodat wat we tonen altijd overeenkomt met de bron.</p>
<p>Tot slot wilden we, vanuit technisch oogpunt, met open source software werken (kostenefficiënt, en een goede match met onze stack) en een portaal dat eenvoudig te onderhouden is, maar toch fijn configureerbaar — eenvoudige zaken (een nieuwe databron toevoegen) moeten eenvoudig zijn, moeilijke zaken (bepaalde requests optimaliseren) moeten mogelijk zijn. Die filosofie werkt goed: een vrij lichte codebase bedient onze bezoekers al jaren.</p>
<p><img decoding="async" loading="lazy" alt="Softwarearchitectuur van het geoportaal" src="https://developers.onroerenderfgoed.be/assets/images/geoportaal_architectuur-4ed0d0076a305ad5f95731f38e7eecff.png" width="1081" height="641" class="img_ev3q"></p>
<p><em>Softwarearchitectuur van het geoportaal</em></p>
<p>Waar bracht dat ons? Zoals elke moderne toepassing bestaat het geoportaal uit een back- en een frontend. De frontend is het grootste deel van de code (ongeveer 98% JavaScript, HTML en CSS): de kaartlay-out, UI/UX en algemene presentatie. Omdat die code al enkele jaren geleden geschreven werd, draait ze nog op een ouder JavaScript-framework, <a href="https://dojotoolkit.org/" target="_blank" rel="noopener noreferrer" class="">Dojo</a>, met <a href="https://openlayers.org/" target="_blank" rel="noopener noreferrer" class="">OpenLayers</a> (en <a href="http://proj4js.org/" target="_blank" rel="noopener noreferrer" class="">PROJ4</a>) voor de kaartinterface, en HTML/CSS gebouwd op de Vlaamse huisstijl met het <a href="https://foundation.zurb.com/" target="_blank" rel="noopener noreferrer" class="">Zurb Foundation-framework</a>. De frontend communiceert uitsluitend via services, met onze eigen geoportaal-backend of met andere webservices.</p>
<p>Die andere services zijn grotendeels INSPIRE-conforme WMS-, WMTS- en WFS-diensten, gehost door verschillende partijen:</p>
<ul>
<li class=""><a href="https://informatie.vlaanderen.be/" target="_blank" rel="noopener noreferrer" class="">Informatie Vlaanderen</a> host een groot aantal referentiedatasets — achtergrondkaarten, luchtfoto's, historische kaarten, adresgegevens, kadastrale percelen — via de officiële <a href="https://www.geopunt.be/" target="_blank" rel="noopener noreferrer" class="">Vlaamse INSPIRE-node</a>.</li>
<li class=""><a href="https://mercator.vlaanderen.be/" target="_blank" rel="noopener noreferrer" class="">Mercator</a> is een INSPIRE-subnode voor datasets binnen het beleidsdomein Omgeving, een cluster van Vlaamse overheidsentiteiten rond thema's als milieu, vervuiling, energie, erfgoed en ruimtelijke ordening. Onroerend Erfgoed publiceert zijn eigen INSPIRE-conforme erfgoeddata via deze subnode.</li>
<li class="">Terwijl eindgebruikers onze lagen doorgaans via Mercator ophalen, draaien we voor ons eigen geoportaal een eigen <a href="http://geoserver.org/" target="_blank" rel="noopener noreferrer" class="">Geoserver</a>-instantie, wat ons meer controle geeft over de presentatie en toelaat om een aantal interne of enkel-geauthenticeerde lagen niet te publiceren.</li>
<li class="">We namen ook Nederlandse INSPIRE-erfgoedlagen op van onze collega's bij de <a href="https://www.cultureelerfgoed.nl/" target="_blank" rel="noopener noreferrer" class="">Rijksdienst voor het Cultureel Erfgoed</a> — erfgoed houdt zich niet aan politieke grenzen, dus is het nuttig voor onze gebruikers om ook over de grens te kijken, en een gepubliceerde WMS-dienst van een andere partij is makkelijk te integreren.</li>
</ul>
<p>We gebruiken ook een paar niet-INSPIRE-lagen: <a href="https://www.openstreetmap.org/" target="_blank" rel="noopener noreferrer" class="">OpenStreetMap</a> als degelijke algemene achtergrondkaart, de NGI-topografische kaart voor wie daarin geïnteresseerd is, en, vooral voor de fun, de <a href="https://dare.ht.lu.se/" target="_blank" rel="noopener noreferrer" class="">Pelagios-kaart van het Romeinse Rijk</a>.</p>
<p>De backend van het geoportaal is een eenvoudige Python-toepassing gebouwd op het <a href="https://trypyramid.com/" target="_blank" rel="noopener noreferrer" class="">Pyramid-framework</a>. Naast het serveren van de statische bestanden voor de frontend, is haar voornaamste taak het proxyen van een aantal locatiediensten van Informatie Vlaanderen:</p>
<ul>
<li class=""><a href="https://loc.geopunt.be/Help" target="_blank" rel="noopener noreferrer" class="">Geolocatie</a>, die adressen suggereert op basis van vrije tekst en coördinaten teruggeeft — een snelle manier om op de kaart te navigeren.</li>
<li class=""><a href="https://overheid.vlaanderen.be/informatie-vlaanderen/producten-diensten/centraal-referentieadressenbestand-crab" target="_blank" rel="noopener noreferrer" class="">CRAB</a>, een uitgebreidere dienst met volledige adresgegevens (gemeenten, straten, huisnummers en hun locatie). We gebruiken deze dienst in vrijwel al onze systemen om binnenkomende data te valideren; in het geoportaal dient ze als navigatiehulp, waarmee gebruikers van provincie naar gemeente, straat en adres kunnen doorklikken.</li>
<li class=""><a href="https://overheid.vlaanderen.be/capakey-rest-service" target="_blank" rel="noopener noreferrer" class="">CAPAKEY</a>, een REST-service met perceelgegevens (gemeenten, kadastrale afdelingen, secties en perceelnummers), die op een gelijkaardige manier gebruikers door het Belgische kadastersysteem naar een specifiek perceel leidt.</li>
</ul>
<p>Deze drie diensten zijn vandaag vrij en open beschikbaar, waardoor het proxyen ervan minder vanzelfsprekend lijkt dan toen we in 2013 begonnen:</p>
<ul>
<li class="">Aanvankelijk waren zowel CRAB als CAPAKEY SOAP-diensten, moeilijk of onmogelijk rechtstreeks vanuit browser-JS aan te spreken. CAPAKEY is intussen overgeschakeld naar REST, maar CRAB is nog steeds SOAP. Beide vereisten in het begin ook authenticatie, waardoor we via een proxy de inloggegevens konden afschermen.</li>
<li class="">Het bespaart ons gedoe met CORS-headers — we gebruiken CORS al veel, maar alles goed op elkaar afgestemd krijgen kan lastig zijn, en de geolocatiedienst ondersteunt CORS helemaal niet, wat ons anders zou dwingen tot iets als JSON-P.</li>
<li class="">Het beschermt ons tegen wijzigingen aan de bovenliggende API's: omdat onze toepassingen altijd onze eigen proxies aanspreken, moet enkel de proxy een upstream-wijziging (zoals de overstap van CAPAKEY van SOAP naar REST) opvolgen, waardoor de impact op onze systemen minimaal en beperkt blijft.</li>
<li class="">De proxies voor CRAB en CAPAKEY dienen ook als cache, wat het aantal oproepen naar de bovenliggende diensten sterk vermindert.</li>
<li class="">We breidden deze diensten op een paar punten uit voor onze eigen noden — met een lijst van Vlaamse provincies (die noch CRAB noch CAPAKEY bevat), en met een <a href="https://pypi.org/project/pycountry/" target="_blank" rel="noopener noreferrer" class="">lijst van landcodes</a> voor adresvalidatie.</li>
</ul>
<p>Heb je zelf Vlaamse adres- of perceelgegevens nodig en werk je met Python, gebruik dan gerust onze <a href="https://pypi.org/project/crabpy/" target="_blank" rel="noopener noreferrer" class="">CRABpy</a>-bibliotheek; werk je met <a href="https://trypyramid.com/" target="_blank" rel="noopener noreferrer" class="">Pyramid</a>, dan vereenvoudigt <a href="https://pypi.org/project/crabpy_pyramid/" target="_blank" rel="noopener noreferrer" class="">CRABpy_pyramid</a> de integratie en voegt het een reeks kant-en-klare JSON-views toe.</p>
<p>De andere grote backend-component is een open source project genaamd <a href="https://mapproxy.org/" target="_blank" rel="noopener noreferrer" class="">Mapproxy</a>, dat een tijdlang het lastigste aspect van het bouwen van het geoportaal oploste: omgaan met niet-publiek toegankelijke ruimtelijke data. Ons belangrijkste voorbeeld is een databank van archeologische vindplaatsen die, om verschillende redenen, niet publiek is — de data maakt geen deel uit van INSPIRE, maar heeft wel WMS/WFS-diensten op onze eigen Geoserver, beveiligd met gebruikersnaam en wachtwoord. Deze dienst rechtstreeks in onze frontend opnemen zou die inloggegevens blootstellen aan clients; Mapproxy lost dit op door de dienst te proxyen op onze geoportaal-server en zelf authenticatie en autorisatie af te handelen, waardoor we dezelfde Pyramid-authenticatie- en autorisatiebeleidsregels die we in al onze webtoepassingen gebruiken, kunnen vertalen naar regels over wie welke GIS-lagen mag zien.</p>
<p>Naast dit veiligheidsgerelateerde proxyen, routeren we ook WMS GetFeatureInfo-requests via Mapproxy om CORS-problemen te vermijden, en overwegen we op termijn ook de cachingfunctionaliteit ervan te gebruiken, al deden we dat tot nu toe nog niet.</p>
<p>Al bij al is ons <a href="https://geo.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">geoportaal</a> een belangrijk platform gebleken, gebruikt door zo'n 12.000 mensen per maand in vrij intensieve sessies, en toch goedkoop om te bouwen en te onderhouden — het portaal zelf vraagt weinig middelen, want het zware werk gebeurt door onderliggende diensten die ook voor andere toepassingen en processen gebruikt worden. Interesse in onze opzet? Bekijk het geoportaal, onze bibliotheken op <a href="https://github.com/onroerenderfgoed" target="_blank" rel="noopener noreferrer" class="">GitHub</a>, lees meer berichten met de tag <a class="" href="https://developers.onroerenderfgoed.be/blog/tags/geoportaal">geoportaal</a>, of stuur ons een mail naar <a href="mailto:ict@onroerenderfgoed.be" target="_blank" rel="noopener noreferrer" class="">ict@onroerenderfgoed.be</a>.</p>]]></content>
        <author>
            <name>Koen Van Daele</name>
        </author>
        <category label="Geoportaal" term="Geoportaal"/>
        <category label="Geoserver" term="Geoserver"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Welkom op de Ilucidare Playground]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/ilucidare</id>
        <link href="https://developers.onroerenderfgoed.be/blog/ilucidare"/>
        <updated>2019-11-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Het agentschap Onroerend Erfgoed is een overheidsagentschap en wetenschappelijke instelling, bevoegd voor bouwkundig, archeologisch, landschappelijk en varend erfgoed. Vandaag nemen we deel aan de Ilucidare Playground: Cracking the future of heritage. We combineren nieuwe technologieën en denkkaders met onze verantwoordelijkheid voor erfgoed, om de bewaring te verbeteren, besluitvorming en beheer te ondersteunen en het publiek te informeren. Hier zijn een paar concrete resultaten van die innovatiegedreven aanpak.]]></summary>
        <content type="html"><![CDATA[<p>Het <a href="https://www.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">agentschap Onroerend Erfgoed</a> is een overheidsagentschap en wetenschappelijke instelling, bevoegd voor bouwkundig, archeologisch, landschappelijk en varend erfgoed. Vandaag nemen we deel aan de <a href="https://ilucidare.eu/" target="_blank" rel="noopener noreferrer" class="">Ilucidare Playground: Cracking the future of heritage</a>. We combineren nieuwe technologieën en denkkaders met onze verantwoordelijkheid voor erfgoed, om de bewaring te verbeteren, besluitvorming en beheer te ondersteunen en het publiek te informeren. Hier zijn een paar concrete resultaten van die innovatiegedreven aanpak.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="geen-innovatie-zonder-verspreiding">Geen innovatie zonder verspreiding<a href="https://developers.onroerenderfgoed.be/blog/ilucidare#geen-innovatie-zonder-verspreiding" class="hash-link" aria-label="Direct link naar Geen innovatie zonder verspreiding" title="Direct link naar Geen innovatie zonder verspreiding" translate="no">​</a></h2>
<p>Bij innovatie denk je snel aan technologie, maar ook de samenleving zelf innoveert voortdurend — soms als motor, soms als volger van technologische vooruitgang. Eén van de duidelijkste evoluties van het voorbije decennium is de beweging naar openheid: open source software, open data en open access staan centraal in de hedendaagse informatiemaatschappij. Zowel Onroerend Erfgoed als de Vlaamse Overheid ondersteunen open data en open access. Op het vlak van open data onderschrijft de overheid het <a href="https://smart.flanders.be/" target="_blank" rel="noopener noreferrer" class="">Smart Flanders Open Data Charter</a>; Onroerend Erfgoed publiceerde al verschillende open datasets, zoals onze <a href="https://thesaurus.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">thesauri en gecontroleerde vocabulaires</a>, onder de Vlaamse open data-licentie, en we publiceren ook de <a href="https://atramhasis.readthedocs.io/en/latest" target="_blank" rel="noopener noreferrer" class="">software waarmee we ze onderhouden</a> als <a href="https://github.com/onroerendErfgoed" target="_blank" rel="noopener noreferrer" class="">open source</a>.</p>
<p>Op het vlak van wetenschappelijke open access willen we al onze publicaties gratis toegankelijk maken. Vrijwel al onze onderzoeksoutput verschijnt via <a href="https://oar.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">OAR, ons Open Access Repository</a>. De voorbije jaren investeerden we in het digitaliseren van publicaties van onze voorgangers, en we hebben nu een online archief dat teruggaat tot de jaren tachtig, volledig vrij te downloaden. Digitaliseren klinkt misschien triviaal — scannen en online zetten — maar auteursrecht en het opstellen van goede metadata maken het bewerkelijker dan het lijkt. Het loont wel: sinds we onze back catalogue digitaliseerden en publiceerden, verdubbelde het aantal downloads per maand, en raadplegen intussen zo'n 15.000 publicaties per maand digitaal geraadpleegd worden.</p>
<p><img decoding="async" loading="lazy" alt="Aantal downloads per maand via OAR" src="https://developers.onroerenderfgoed.be/assets/images/ilucidare_oar_downloads_per_month-2747bf1973050c83360ffee041d4fa58.png" width="1600" height="480" class="img_ev3q"></p>
<p><em>Aantal downloads per maand via OAR</em></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="beelden-zeggen-meer-dan-woorden">Beelden zeggen meer dan woorden<a href="https://developers.onroerenderfgoed.be/blog/ilucidare#beelden-zeggen-meer-dan-woorden" class="hash-link" aria-label="Direct link naar Beelden zeggen meer dan woorden" title="Direct link naar Beelden zeggen meer dan woorden" translate="no">​</a></h2>
<p>Onze publicaties blijven een belangrijk geschreven informatiekanaal, maar visuele informatie wint alsmaar aan belang. Erfgoedprofessionals documenteren erfgoed en zijn toestand al sinds het bestaan van de camera, en digitale camera's — recenter smartphones met goede camera's — hebben dat proces alleen maar versneld. We schatten dat er enkele miljoenen foto's circuleren binnen ons agentschap, zowel analoog als digitaal. In 2019 lanceerden we een nieuwe online <a href="https://beeldbank.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">beeldbank</a> met zo'n 280.000 afbeeldingen van erfgoed in Vlaanderen, deels recent, deels gedigitaliseerd uit analoge archieven. Ook hier was hergebruik belangrijk: waar mogelijk publiceren we onder een open licentie die hergebruik toelaat, zelfs commercieel, zolang de bron vermeld wordt.</p>
<p><img decoding="async" loading="lazy" alt="Een reeks afbeeldingen in de beeldbank, gevonden via de zoekterm &amp;quot;Bijloke&amp;quot;" src="https://developers.onroerenderfgoed.be/assets/images/ilucidare_images_bijloke-834767a3621959add299e94f5b39c6b4.png" width="1837" height="949" class="img_ev3q"></p>
<p><em>Een reeks afbeeldingen in de beeldbank, gevonden via de zoekterm "Bijloke"</em></p>
<p>Het systeem draait nu al een tijdje en onze basisbehoeften blijken gedekt, dus pakken we nu complexere problemen aan. Eerst en vooral AVG en privacy: onze foto's worden weliswaar op openbaar toegankelijke plekken genomen, maar zaken als nummerplaten en gezichten gelden als gevoelige data. We hebben manuele controleprocedures, maar die zijn traag en arbeidsintensief, dus onderzoeken we automatische detectie en vervaging van nummerplaten en gezichten met <a href="https://opencv.org/" target="_blank" rel="noopener noreferrer" class="">OpenCV</a>. Voor nummerplaten zijn de resultaten goed; voor gezichten wisselvalliger, wellicht omdat nummerplaten een eenvoudig, voorspelbaar formaat volgen, terwijl gezichtsherkenning nogal gretig is en de neiging heeft om ook schilderijen, beeldhouwwerken of billboards als gezicht te herkennen. Er is nog verfijning nodig voor grootschalig gebruik.</p>
<p><img decoding="async" loading="lazy" alt="De nummerplaat links werd automatisch vervaagd met OpenCV" src="https://developers.onroerenderfgoed.be/assets/images/ilucidare_plate_censor-8115d2eb5cd391c6fe0de4045163a983.jpg" width="4230" height="3096" class="img_ev3q"></p>
<p><em>De nummerplaat links werd automatisch vervaagd met OpenCV</em></p>
<p>Een ander spoor is automatische detectie van dubbele afbeeldingen. Zoals in elke grote organisatie worden bestanden gekopieerd, verspreid en gemaild, en zo komt een afbeelding op meerdere plaatsen terecht — wat opslagruimte kost en, omdat elke afbeelding metadata nodig heeft, ook die inspanning verdubbelt. We onderzoeken automatische detectie van duplicaten; <a href="https://www.pyimagesearch.com/2017/11/27/image-hashing-opencv-python/" target="_blank" rel="noopener noreferrer" class="">image hashing</a> blijkt veelbelovend, en we zullen wellicht voor het <code>dHash</code>-algoritme kiezen. We zoeken nu uit hoe we dit netjes kunnen integreren in onze archiveringsworkflows, zodat collega's er de vruchten van plukken zonder met de technische details geconfronteerd te worden — innovatie wordt pas echt productief als ze samengaat met bruikbaarheid.</p>
<p>Als overheidsagentschap dat met onroerend erfgoed werkt, heeft vrijwel alles wat we verzamelen een ruimtelijke component, en onze afbeeldingen vormen daarop geen uitzondering. Bijna elke foto die we nemen toont een vorm van onroerend erfgoed — een archeologische site, een cultuurlandschap, een gebouw, een begraafplaats, ... — dus investeerden we flink in het geolokaliseren van de afbeeldingen in onze beeldbank. Oudere afbeeldingen koppelen we aan de <a href="https://inventaris.onroerenderfgoed.be/erfgoedobjecten_info" target="_blank" rel="noopener noreferrer" class="">erfgoedobjecten</a> die ze tonen en erven zo hun locatie; nieuwere afbeeldingen steunen op de automatische geolocatie van moderne smartphones en camera's. De resulterende GIS-laag met puntlocaties kan je bekijken op ons <a href="https://geo.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">geoportaal</a> of <a href="https://geo.onroerenderfgoed.be/downloads" target="_blank" rel="noopener noreferrer" class="">downloaden</a> voor eigen gebruik, en elke foto linkt door naar de beeldbank voor meer info, download en hergebruik — mits je de licentie respecteert.</p>
<p><img decoding="async" loading="lazy" alt="Een zicht op de Bijloke-site in Gent met alle gekende afbeeldingen van deze omgeving" src="https://developers.onroerenderfgoed.be/assets/images/ilucidare_geoportal_images-a0df7e2ccdb0c8c1428d565883cda466.png" width="1852" height="950" class="img_ev3q"></p>
<p><em>Een zicht op de Bijloke-site in Gent met alle gekende afbeeldingen van deze omgeving</em></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="geef-me-een-kaart-en-ik-verdwaal-nooit-meer">Geef me een kaart en ik verdwaal nooit meer<a href="https://developers.onroerenderfgoed.be/blog/ilucidare#geef-me-een-kaart-en-ik-verdwaal-nooit-meer" class="hash-link" aria-label="Direct link naar Geef me een kaart en ik verdwaal nooit meer" title="Direct link naar Geef me een kaart en ik verdwaal nooit meer" translate="no">​</a></h2>
<p>Bijna alles wat we doen heeft een ruimtelijke component, en dus zijn kaarten essentieel voor ons. Als overheidsagentschap publiceren we INSPIRE-conforme datasets, verspreid via het <a href="https://inspire.ec.europa.eu/" target="_blank" rel="noopener noreferrer" class="">INSPIRE-netwerk in heel Europa</a> — vooral gericht op professionele GIS-gebruikers met eigen desktopsoftware. Maar we voelden dat we een deel van ons doelpubliek misten: mensen die snel willen weten wat er gekend is over hun buurt, hun eigendom, of een plek uit hun kindertijd. Daarom bouwden we ons eigen <a href="https://geo.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">Geoportaal</a>, een website waar een gewone, niet-GIS-gebruiker een (hopelijk) intuïtieve kaart van Vlaanderen kan raadplegen — zowat "Google Maps voor Erfgoed". Niet meer nieuw, maar nog steeds erg populair, en omdat het specifiek geoptimaliseerd is voor erfgoeddata, werkt het daarvoor beter dan een algemeen portaal. Voor algemene ruimtelijke data verwijzen we graag naar <a href="https://geopunt.be/" target="_blank" rel="noopener noreferrer" class="">Geopunt</a>, het geoportaal van de Vlaamse Overheid voor alle ruimtelijke data — dat bevat veel meer data dan wij nodig hebben, maar is niet specifiek geoptimaliseerd voor erfgoedinformatie.</p>
<p><img decoding="async" loading="lazy" alt="De hedendaagse stad Zottegem en haar beschermd erfgoed op de Villaretkaart (1745-1748)" src="https://developers.onroerenderfgoed.be/assets/images/ilucidare_geoportal_sotteghem-ceb2eeb62920cd8e8cc1800481f5bfbb.png" width="1852" height="952" class="img_ev3q"></p>
<p><em>De hedendaagse stad Zottegem en haar beschermd erfgoed op de Villaretkaart (1745-1748)</em></p>
<p>Bezoek je het <a href="https://geo.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">Geoportaal</a> voor het eerst, dan kies je uit twee profielen — vaste combinaties van kaartlagen, één een goede standaardkeuze voor de meeste mensen, de andere afgestemd op gebruikers die vooral in de juridische kant van erfgoed geïnteresseerd zijn (notarissen, vastgoedmakelaars, projectontwikkelaars, andere overheden, ...). Je kan altijd andere lagen laden. Sommige verwijzen naar onze andere systemen, zoals de eerder genoemde beeldbank, of naar archeologische rapporten die archeologen indienen. Onder de achtergrondlagen zitten verschillende orthofotolagen, maar ook historische kaarten, sommige daterend uit de 18e en 19e eeuw — deels geleverd door <a href="https://overheid.vlaanderen.be/informatie-vlaanderen" target="_blank" rel="noopener noreferrer" class="">Informatie Vlaanderen</a>, andere, zoals de <a href="https://www.onroerenderfgoed.be/nieuws/oudste-kaart-van-belgie-als-gratis-open-data" target="_blank" rel="noopener noreferrer" class="">Villaretkaart (1745-1748)</a>, door onszelf gedigitaliseerd in samenwerking met hen.</p>
<p>Bekijk <a href="https://geo.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">ons portaal</a>, surf over de kaart en verdiep je in de plekken en beelden die je er vindt.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="wanneer-punten-wolken-van-informatie-worden">Wanneer punten wolken van informatie worden<a href="https://developers.onroerenderfgoed.be/blog/ilucidare#wanneer-punten-wolken-van-informatie-worden" class="hash-link" aria-label="Direct link naar Wanneer punten wolken van informatie worden" title="Direct link naar Wanneer punten wolken van informatie worden" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="De stad Damme en haar verdedigingswerken op de multidirectionele hillshade" src="https://developers.onroerenderfgoed.be/assets/images/ilucidare_geoportal_damme-737a8419e88266fd899c873c0d47ed80.png" width="1851" height="953" class="img_ev3q"></p>
<p><em>De stad Damme en haar verdedigingswerken op de multidirectionele hillshade</em></p>
<p>Tot slot nog een laatste project rond kaarten. Onze collega's bij <a href="https://overheid.vlaanderen.be/informatie-vlaanderen" target="_blank" rel="noopener noreferrer" class="">Informatie Vlaanderen</a> creëerden het <a href="https://overheid.vlaanderen.be/informatie-vlaanderen/producten-diensten/digitaal-hoogtemodel-dhmv" target="_blank" rel="noopener noreferrer" class="">Digitaal Hoogtemodel Vlaanderen (DHMV)</a>, een <a href="https://en.wikipedia.org/wiki/Lidar" target="_blank" rel="noopener noreferrer" class="">LIDAR</a>-dataset bestaande uit een Digital Surface Model en een Digital Terrain Model, die samen hoogtegegevens geven waarmee je het Vlaamse terrein op verschillende manieren kan visualiseren. De ruwe data is open, maar er nuttige visualisaties van maken vraagt heel wat expertise, dus bestaan er al een tijdje enkele standaardweergaves. We wisten dat er <a href="https://oar.onroerenderfgoed.be/item/452" target="_blank" rel="noopener noreferrer" class="">visualisaties mogelijk waren die beter geschikt zijn voor archeologen</a>, en die het makkelijker maken om archeologische sites te detecteren op basis van micro-topografie. Daarom werkten Onroerend Erfgoed en Informatie Vlaanderen samen aan <a href="https://www.onroerenderfgoed.be/blog/vlaanderen-onder-de-scanner-twee-hoge-resolutie-verwerkingen-van-het-dhm-vlaanderen-ii-online" target="_blank" rel="noopener noreferrer" class="">twee nieuwe verwerkingen van het DHMV</a> en <a href="https://www.onroerenderfgoed.be/nieuws/hoge-resolutie-verwerkingen-van-het-digitale-hoogtemodel-vlaanderen-online-beschikbaar" target="_blank" rel="noopener noreferrer" class="">publiceerden die</a>. Elke verwerking gebruikt andere technieken en parameters, dus welke het meest helpt hangt af van wat je zoekt.</p>
<p><img decoding="async" loading="lazy" alt="Loopgraven en een fort bij Kapellen op de skyview factor" src="https://developers.onroerenderfgoed.be/assets/images/ilucidare_geoportal_trenches-8494b7af94967d54b3636330f2885b06.png" width="1854" height="952" class="img_ev3q"></p>
<p><em>Loopgraven en een fort bij Kapellen op de skyview factor</em></p>
<p>Het resultaat is erg nuttig gebleken voor archeologen in hun dagelijkse werk — met een blik op deze twee lagen, op het Geoportaal of gedownload in hun eigen GIS, kunnen ze snel het potentieel van een site of locatie inschatten. Wil je het zelf uitproberen, ga dan naar het <a href="https://geo.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">Geoportaal</a> en kies onder <code>Lagen &gt; Achtergrondlagen &gt; Digitaal Hoogtemodel &gt; DHMV II, multidirectionele hillshade of DHMV II, skyview factor</code>. Dit project bleek succesvoller dan verwacht, en de impact reikte verder dan archeologie of erfgoed alleen — het werd zelfs genomineerd voor een <a href="https://datanewscio.be/" target="_blank" rel="noopener noreferrer" class="">Datanews ICT Project of the Year</a> en een <a href="https://www.agoria.be/nl/Agoria-e-Gov-Awards-2019-And-the-nominees-are" target="_blank" rel="noopener noreferrer" class="">Agoria e-Gov Award Open Data</a>.</p>
<p>We hopen dat dit toont dat er een echte synergie bestaat tussen erfgoed en technologie, nu we verder de 21e eeuw intrekken. Zoals bij elke organisatie is technologie diep verweven geraakt met onze dagelijkse werking. Satya Nadella, CEO van Microsoft, zei het ooit zo: "Every company is now a software company" — en dat geldt evengoed voor een overheidsagentschap of een cultureel-erfgoedinstelling. Software is overal, digitaal is overal, en hoewel ons cultureel erfgoed nog grotendeels analoog is, zijn de instrumenten en informatiebronnen waarmee we het bestuderen dat allang niet meer, en zullen ze dat ook nooit meer worden.</p>
<p>Vragen? <a href="mailto:ict@onroerenderfgoed.be" target="_blank" rel="noopener noreferrer" class="">Neem contact op</a>, blader door de rest van deze blog, bekijk onze <a href="https://github.com/onroerendErfgoed" target="_blank" rel="noopener noreferrer" class="">open source projecten</a> of bezoek onze <a href="https://www.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">website</a>.</p>]]></content>
        <author>
            <name>Koen Van Daele</name>
        </author>
        <category label="Innovation" term="Innovation"/>
        <category label="Geoportaal" term="Geoportaal"/>
        <category label="Beeldbank" term="Beeldbank"/>
        <category label="OAR" term="OAR"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Zoeken in de beeldbank]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/beeldbank-zoeken</id>
        <link href="https://developers.onroerenderfgoed.be/blog/beeldbank-zoeken"/>
        <updated>2019-10-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We hadden het de laatste tijd al vaak over de nieuwe inventaris (Tien jaar inventaris), maar in 2019 lanceerden we ook een nieuwe beeldbank. Die vervangt zowel een oude module van de inventaris als de vroegere beeldbank van het VIOE, en bevat intussen zo'n 277.000 afbeeldingen, waarvan een grote meerderheid vrij herbruikbaar is zolang je de gebruiksvoorwaarden volgt. Vandaag leggen we uit hoe je de zoekfuncties het best benut.]]></summary>
        <content type="html"><![CDATA[<p>We hadden het de laatste tijd al vaak over de nieuwe inventaris (<a class="" href="https://developers.onroerenderfgoed.be/blog/inventaris-nieuw">Tien jaar inventaris</a>), maar in 2019 lanceerden we ook een nieuwe <a href="https://beeldbank.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">beeldbank</a>. Die vervangt zowel een oude module van de inventaris als de vroegere beeldbank van het VIOE, en bevat intussen zo'n 277.000 afbeeldingen, waarvan een grote meerderheid vrij herbruikbaar is zolang je de <a href="https://beeldbank.onroerenderfgoed.be/hergebruik" target="_blank" rel="noopener noreferrer" class="">gebruiksvoorwaarden</a> volgt. Vandaag leggen we uit hoe je de zoekfuncties het best benut.</p>
<!-- -->
<p><img decoding="async" loading="lazy" alt="De homepagina van de beeldbank" src="https://developers.onroerenderfgoed.be/assets/images/beeldbank_home-a2bd2a6b401406430be4eb47449ff1a2.png" width="1838" height="953" class="img_ev3q"></p>
<p><em>De homepagina van de beeldbank</em></p>
<p>Op de <a href="https://beeldbank.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">homepagina van de beeldbank</a> vind je bovenaan een eenvoudige zoekbalk, waarmee je zoals bij elke typische zoekmachine op één of meerdere termen kan zoeken. Zoek je bijvoorbeeld naar <code>Knokkestraat</code>, dan krijg je 18 resultaten, gesorteerd op relevantie — net als bij de inventaris (<a class="" href="https://developers.onroerenderfgoed.be/blog/inventaris-zoeken-full-text">Full text zoeken in de inventaris</a>) staat het meest "Knokkestraat-achtige" resultaat bovenaan: een aantal afbeeldingen van huizen in de Knokkestraat te Knokke-Heist, waar de straatnaam zowel in de titel als in het adres voorkomt. Daarna volgen afbeeldingen uit de Knokkestraat in Diksmuide, Zwevegem en Wachtebeke, waar de naam wel in de titel maar niet in het adres staat.</p>
<p><img decoding="async" loading="lazy" alt="Afbeeldingen met de zoekterm Knokkestraat en enkele facetten" src="https://developers.onroerenderfgoed.be/assets/images/beeldbank_knokkestraat-132162865066e59338e81d18436210af.png" width="1837" height="953" class="img_ev3q"></p>
<p><em>Afbeeldingen waarin de zoekterm knokkestraat voorkomt, met enkele facetten</em></p>
<p>Op deze zoekpagina kan je het resultaat verfijnen met facetten: filters op de bestaande dataset, zoals <code>Provincie</code>, <code>Gemeente</code>, <code>Jaar</code>, <code>Maker</code> en <code>Licentie</code>. Elk facet toont alle mogelijke waarden met hun aantal — zo zie je meteen dat er 8 afbeeldingen uit Knokke-Heist zijn en maar 1 uit Diksmuide. Het facet <code>Licentie</code> toont onder welke voorwaarden een afbeelding hergebruikt mag worden.</p>
<p>Het vrije tekstveld ondersteunt dezelfde full-text zoekoperatoren als de inventaris:</p>
<ul>
<li class="">Meerdere zoektermen worden impliciet als EN gecombineerd: <code>molen knokke</code> is gelijk aan <code>molen &amp; knokke</code>.</li>
<li class="">Voor OF gebruik je het <code>|</code>-teken: <a href="https://beeldbank.onroerenderfgoed.be/images?text=molen+%7C+knokke" target="_blank" rel="noopener noreferrer" class=""><code>molen | knokke</code></a>.</li>
<li class="">Voor NIET gebruik je een <code>-</code> vlak voor de term: <a href="https://beeldbank.onroerenderfgoed.be/images?text=molen+-knokke" target="_blank" rel="noopener noreferrer" class=""><code>molen -knokke</code></a>.</li>
<li class="">Meerdere termen als één laten gelden kan met aanhalingstekens: zoek je naar <code>van daele</code>, dan krijg je 7 afbeeldingen met zowel <code>van</code> als <code>daele</code>, maar zoek je naar <a href="https://beeldbank.onroerenderfgoed.be/images?text=%22van+daele%22" target="_blank" rel="noopener noreferrer" class=""><code>"van daele"</code></a>, dan vind je enkel afbeeldingen van de fotograaf met die naam.</li>
<li class="">Met een postfix-wildcard <code>*</code> zoek je op een deel van een woord (enkel aan het einde): <a href="https://beeldbank.onroerenderfgoed.be/images?text=roze*" target="_blank" rel="noopener noreferrer" class=""><code>roze*</code></a> vindt zowel <code>rozendale</code>, <code>rozeveldstraat</code> als <code>rozebeekstraat</code>.</li>
<li class="">Haakjes <code>()</code> groeperen operatoren: <a href="https://beeldbank.onroerenderfgoed.be/images?text=dorp*+%28knokke-heist%7Cbrugge%29" target="_blank" rel="noopener noreferrer" class=""><code>dorp* (knokke-heist | brugge)</code></a> zoekt afbeeldingen met een term die begint met <code>dorp</code>, gekoppeld aan <code>knokke-heist</code> of <code>brugge</code>.</li>
</ul>
<p>Denk eraan dat het algemene zoekveld op woorden zoekt, wat zowel naar "een gemeente" als "iets anders" kan verwijzen — een zoekopdracht naar <code>brugge*</code> vindt zowel afbeeldingen van bruggen als afbeeldingen uit de gemeente Brugge. Onze zoekmachine rangschikt standaard op relevantie: een afbeelding waarin een term vaker voorkomt weegt zwaarder, en bepaalde velden (titel, locatie, beschrijving) wegen meer door dan andere. Wil je dat niet, dan kan je op de resultatenpagina het veld <code>Sorteren op</code> aanpassen naar titel of opnamedatum.</p>
<p>Full-text zoeken combineert perfect met facetten: zoek je naar <code>brugge*</code> en vink je het jaar <code>2019</code> aan, dan zie je alle afbeeldingen uit 2019 met een term die begint met <code>brugge</code>.</p>
<p><img decoding="async" loading="lazy" alt="Een erfgoedobject in de inventaris met links naar de beeldbank" src="https://developers.onroerenderfgoed.be/assets/images/beeldbank_erfgoedobject_met_afbeeldingen-2f571354889008dc3865a30af6604f78.png" width="1841" height="952" class="img_ev3q"></p>
<p><em>Een erfgoedobject in de inventaris onroerend erfgoed met links naar de beeldbank</em></p>
<p>Naast het zoekformulier zijn er nog andere manieren om afbeeldingen te vinden. De meeste afbeeldingen zijn gekoppeld aan de <a href="https://inventaris.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">inventaris onroerend erfgoed</a>: zoek je daar een erfgoedobject op, dan zie je er een aantal afbeeldingen, met een link om ze allemaal te bekijken.</p>
<p><img decoding="async" loading="lazy" alt="Afbeeldingen uit de beeldbank op het geoportaal" src="https://developers.onroerenderfgoed.be/assets/images/beeldbank_geoportaal-a700940c76c5f2889459b65b0f492dc1.png" width="1852" height="953" class="img_ev3q"></p>
<p><em>De afbeeldingen uit de beeldbank bekijken op het geoportaal</em></p>
<p>Je kan ook gebruikmaken van ons <a href="https://geo.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">geoportaal</a>, waar een optionele laag <code>Beeldbank</code> bestaat (standaard uit, aan te vinken onder <code>Lagen</code>). Eens aangevinkt verschijnen er camera-icoontjes zodra je ver genoeg inzoomt; klik erop om alle afbeeldingen op die locatie te zien. Deze laag kan je ook <a href="https://geo.onroerenderfgoed.be/downloads" target="_blank" rel="noopener noreferrer" class="">downloaden</a> en integreren in je eigen GIS-werking — de attributentabel bevat telkens de downloadlink voor alle beschikbare formaten.</p>
<p>Er zijn dus meerdere manieren om afbeeldingen terug te vinden in onze beeldbank. Denk er wel steeds aan de licentievoorwaarden te respecteren en iedereen correct te erkennen voor het geleverde werk. Vragen of suggesties zijn welkom via <a href="mailto:ict@onroerenderfgoed.be" target="_blank" rel="noopener noreferrer" class="">ict@onroerenderfgoed.be</a>.</p>]]></content>
        <author>
            <name>Koen Van Daele</name>
        </author>
        <category label="Beeldbank" term="Beeldbank"/>
        <category label="Search" term="Search"/>
        <category label="Full-text" term="Full-text"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Thema's, personen en gebeurtenissen]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/inventaris-themas-personen-gebeurtenissen</id>
        <link href="https://developers.onroerenderfgoed.be/blog/inventaris-themas-personen-gebeurtenissen"/>
        <updated>2019-09-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Op 13 mei lanceerden we een gloednieuwe Inventaris Onroerend Erfgoed, met vijf datasets: erfgoedobjecten, aanduidingsobjecten, personen, thema's en gebeurtenissen. In Erfgoedobjecten en aanduidingsobjecten bespraken we al de kern van de inventaris; deze keer gaan we dieper in op de drie ondersteunende datasets.]]></summary>
        <content type="html"><![CDATA[<p>Op 13 mei <a href="https://www.onroerenderfgoed.be/nieuws/inventaris-onroerend-erfgoed-vernieuwd" target="_blank" rel="noopener noreferrer" class="">lanceerden we</a> een gloednieuwe <a href="https://inventaris.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">Inventaris Onroerend Erfgoed</a>, met vijf datasets: erfgoedobjecten, aanduidingsobjecten, personen, thema's en gebeurtenissen. In <a class="" href="https://developers.onroerenderfgoed.be/blog/inventaris-erfgoedobjecten-aanduidingsobjecten">Erfgoedobjecten en aanduidingsobjecten</a> bespraken we al de kern van de inventaris; deze keer gaan we dieper in op de drie ondersteunende datasets.</p>
<!-- -->
<p>De dataset <strong>personen en collectieven</strong> bestaat al sinds de lancering van de eerste inventaris in mei 2009. Ze bevat personen en organisaties die belangrijk waren bij het tot stand komen van het erfgoed: architecten, aannemers, bouwmeesters, opdrachtgevers, kunstenaars, beeldhouwers, ... De dataset ontstond in 2007-2009 tijdens het toekennen van thesaurustermen aan erfgoedobjecten. Tot dan waren erfgoedobjecten vooral documenten, wat het zoeken bemoeilijkte — zeker bij veelvoorkomende namen was het lastig om bijvoorbeeld "alle gebouwen van een bepaalde architect" te vinden. (Wist je trouwens dat er een architect <a href="https://inventaris.onroerenderfgoed.be/personen/7927" target="_blank" rel="noopener noreferrer" class="">Baksteen</a> bestond?) Daarom bouwden we naast de thesauri ook een authority file op met canonieke versies van betrokken ontwerpers en andere personen. Voor het agentschap is deze dataset, net als onze thesauri, geen kerndataset op zich — zonder de inventaris zouden we er geen nood aan hebben.</p>
<p>Over de jaren groeide de dataset uit tot een mooie staalkaart van ontwerpers, kunstenaars en architecten die een rol speelden voor ons Vlaamse erfgoed. Waar mogelijk vullen we elke persoon aan met andere gekende namen, geboorte- en sterfdata (of oprichtingsdata bij organisaties), woon- en werkplaatsen, beroepen, opleidingen en een korte biografie, en koppelen we elke persoon of elk collectief aan de erfgoedobjecten waarmee ze een band hebben als ontwerper, uitvoerder of opdrachtgever. Zo vind je via onze personendataset snel een who's who van het Vlaamse onroerend erfgoed.</p>
<p>De dataset <strong>gebeurtenissen</strong> bestaat eveneens sinds mei 2009, al was ze lange tijd enkel intern raadpleegbaar. Een gebeurtenis is een actie of handeling, uitgevoerd op een bepaald moment door één of meerdere personen of organisaties — in de praktijk beperkt tot handelingen op of over onroerend erfgoed. Dat kan een korte handeling zijn zoals de opmeting van een boom, een opgraving of een werfcontrole, tot een groot project zoals een <a href="https://inventaris.onroerenderfgoed.be/gebeurtenissen/921" target="_blank" rel="noopener noreferrer" class="">inventarisatiecampagne</a>. Steeds komt het neer op: X en Y voerden werk van het type A uit op locatie L, van datum I tot J. Soms voegen we een uitgebreide tekstuele beschrijving toe met links naar verdere bronnen, met als doel informatie te kunnen duiden en te tonen hoe ze ontstond. Zo kan je bij een erfgoedobject zien in welke inventarisatiecampagne het voor het eerst werd opgenomen, wanneer het opnieuw geïnventariseerd werd, en wanneer het adres laatst gecontroleerd werd.</p>
<p>De derde dataset, <strong>thema's</strong>, bestaat uit twee subtypes: één dat er al was bij de inventaris van 2009, en één dat vrij recent toegevoegd werd. Een thema omvat kaderende informatie over erfgoedobjecten, zodat bepaalde informatie niet telkens opnieuw aan individuele objecten moet toegevoegd worden. De eerste thema's, toegevoegd in 2014, vallen onder het subtype <code>inhoudelijke thema's</code> — vaak een combinatie van typologie, stijl of periode en locatie, zoals <a href="https://inventaris.onroerenderfgoed.be/themas/37" target="_blank" rel="noopener noreferrer" class="">Militaire verdedigingswerken uit de Eerste Wereldoorlog in de frontzone</a>, <a href="https://inventaris.onroerenderfgoed.be/themas/79" target="_blank" rel="noopener noreferrer" class="">Welkomstbomen</a> of <a href="https://inventaris.onroerenderfgoed.be/themas/17271" target="_blank" rel="noopener noreferrer" class="">Prehistorische grafheuvelcomplexen en urnenvelden</a>. Bij de lancering van de nieuwe inventaris werden oudere beschrijvingen van geografische gehelen omgezet naar <code>geografische thema's</code> — de oude gemeente- en straatinleidingen uit de reeks <code>Bouwen door de Eeuwen Heen</code>, die net als de inhoudelijke thema's context bieden, maar dan puur op basis van locatie. Zo kan je meer lezen over de historische kern van Gent, <a href="https://inventaris.onroerenderfgoed.be/themas/7250" target="_blank" rel="noopener noreferrer" class="">de Lippenslaan te Knokke</a> of <a href="https://inventaris.onroerenderfgoed.be/themas/13659" target="_blank" rel="noopener noreferrer" class="">de haven van Antwerpen</a>. Sommige van deze themateksten behoren tot onze meest geraadpleegde pagina's, en worden ook vaak door externen gebruikt als historisch kader.</p>
<p>Geen van deze drie datasets vormt de essentie van de inventaris onroerend erfgoed, maar samen maken ze de inventaris interessanter en nuttiger. Wil je meer weten over de nieuwe inventaris, lees dan <a class="" href="https://developers.onroerenderfgoed.be/blog/inventaris-nieuw">Tien jaar inventaris</a>. Vragen of suggesties zijn welkom via <a href="mailto:ict@onroerenderfgoed.be" target="_blank" rel="noopener noreferrer" class="">ict@onroerenderfgoed.be</a>.</p>]]></content>
        <author>
            <name>Koen Van Daele</name>
        </author>
        <category label="Inventaris" term="Inventaris"/>
        <category label="Thema's" term="Thema's"/>
        <category label="Personen" term="Personen"/>
        <category label="Gebeurtenissen" term="Gebeurtenissen"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Tien jaar inventaris]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/inventaris-nieuw</id>
        <link href="https://developers.onroerenderfgoed.be/blog/inventaris-nieuw"/>
        <updated>2019-08-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Sinds 13 mei staat er een gloednieuwe inventaris op https de gegevens zijn nog steeds hetzelfde erfgoed waar Vlaanderen rijk aan is. Achter de schermen is er wel heel wat veranderd — de onderliggende technologie werd volledig herschreven. Vandaag blikken we terug op de technologische evolutie van de inventaris in de voorbije tien jaar.]]></summary>
        <content type="html"><![CDATA[<p>Sinds 13 mei staat er een <a href="https://www.onroerenderfgoed.be/nieuws/inventaris-onroerend-erfgoed-vernieuwd" target="_blank" rel="noopener noreferrer" class="">gloednieuwe inventaris</a> op <a href="https://inventaris.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">https://inventaris.onroerenderfgoed.be</a>. Ze ziet er heel anders uit, maar wie de vorige versie kende herkent veel: de gegevens zijn nog steeds hetzelfde erfgoed waar Vlaanderen rijk aan is. Achter de schermen is er wel heel wat veranderd — de onderliggende technologie werd volledig herschreven. Vandaag blikken we terug op de technologische evolutie van de inventaris in de voorbije tien jaar.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="wat-toen-nieuw-was-is-nu-oud">Wat toen nieuw was, is nu oud<a href="https://developers.onroerenderfgoed.be/blog/inventaris-nieuw#wat-toen-nieuw-was-is-nu-oud" class="hash-link" aria-label="Direct link naar Wat toen nieuw was, is nu oud" title="Direct link naar Wat toen nieuw was, is nu oud" translate="no">​</a></h2>
<p>De nieuwe inventaris volgt de technologische principes en architectuur die het agentschap Onroerend Erfgoed hanteert sinds 2014, na de samensmelting van het <code>Vlaams Instituut voor het Onroerend Erfgoed</code> (VIOE) en het agentschap <code>Ruimte en Erfgoed</code>. Op dat moment beschikte het agentschap over een erg divers technologisch landschap, en werd al snel beslist over te gaan tot een nieuwe technology stack.</p>
<p>Er bestond bij het VIOE al lang een sterke voorkeur voor open source software, een keuze die behouden bleef: qua systeembeheer bleven we werken met *nix-servers (Debian of Ubuntu), en op het vlak van databanken bleef <a href="https://www.postgresql.org/" target="_blank" rel="noopener noreferrer" class="">PostgreSQL</a> de evidente keuze — geen licentiekost, ruim voldoende volumecapaciteit, en met de <a href="https://postgis.net/" target="_blank" rel="noopener noreferrer" class="">PostGIS</a>-plugin een uitstekende GIS-motor.</p>
<p>De grootste wijziging was de keuze van programmeertaal. Waar het VIOE in PHP ontwikkelde en <code>Ruimte en Erfgoed</code> met Java en .NET werkte, koos het nieuwe agentschap voor <code>Python</code>. Van de drie grote Python-webframeworks van dat moment (<a href="https://www.djangoproject.com/" target="_blank" rel="noopener noreferrer" class="">Django</a>, <a href="https://flask.pocoo.org/" target="_blank" rel="noopener noreferrer" class="">Flask</a> en <a href="https://trypyramid.com/" target="_blank" rel="noopener noreferrer" class="">Pyramid</a>) werd uiteindelijk voor <code>Pyramid</code> gekozen. Daarnaast kwam er <a href="https://www.elastic.co/" target="_blank" rel="noopener noreferrer" class="">Elasticsearch</a> bij voor performant zoeken in grote datasets, en <a href="https://redis.io/" target="_blank" rel="noopener noreferrer" class="">Redis</a> voor caches en queues bij asynchrone opdrachten.</p>
<p>Onze frontends gebruiken sindsdien een CSS-framework zoals <a href="https://foundation.zurb.com/" target="_blank" rel="noopener noreferrer" class="">Foundation</a>, en net als veel andere webontwikkelaars zetten we de stap naar Single Page Applications (SPA's) — webtoepassingen die grotendeels op JavaScript draaien en continu via REST-services met de backend communiceren. Die zetten we intensief in voor beheersomgevingen en complexe toepassingen zoals ons <a href="https://geo.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">geoportaal</a>; voor publieke pagina's houden we het bewust functioneel met weinig JavaScript, zodat ze goed werken op oudere toestellen en goed indexeerbaar zijn voor zoekmachines. Onze eerste SPA's gebruikten nog <a href="https://dojotoolkit.org/" target="_blank" rel="noopener noreferrer" class="">Dojo</a>, recentere toepassingen gebruiken <a href="https://aurelia.io/" target="_blank" rel="noopener noreferrer" class="">Aurelia</a>.</p>
<p>Waar de oude inventaris begon met klassieke HTML-forms en HTTP POST-requests, evolueerde ze de voorbije tien jaar steeds meer naar een systeem waarin REST-services een centrale rol spelen. In de nieuwe inventaris, zoals in al onze hedendaagse toepassingen, trokken we die kaart resoluut door: we ontwikkelden een Resource Oriented Architecture waarin we overstappen van enkele grote, monolithische toepassingen naar een netwerk van kleinere, meer gefocuste toepassingen met elk hun eigen specialisatie. De nieuwe inventaris vormt vandaag de centrale component van dat netwerk.</p>
<p>Ook op het vlak van uitrol en beheer evolueerden we sterk: waar we tien jaar geleden nog manueel ingrepen op enkele servers in één datacenter, werken we nu met geautomatiseerde deploys in twee datacenters, met <code>Ansible</code> voor het opzetten van basis servers, <code>fabric</code> voor het uitrollen van toepassingen, en <code>Alembic</code> voor het beheer van databankschema's onder versiecontrole.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="niet-enkel-de-technologie-wijzigt">Niet enkel de technologie wijzigt<a href="https://developers.onroerenderfgoed.be/blog/inventaris-nieuw#niet-enkel-de-technologie-wijzigt" class="hash-link" aria-label="Direct link naar Niet enkel de technologie wijzigt" title="Direct link naar Niet enkel de technologie wijzigt" translate="no">​</a></h2>
<p>Niet alleen de technologie veranderde, ook de inhoud en focus evolueerden sterk. Toen we in 2009 de inventaris lanceerden, was het <code>Vlaams Instituut voor het Onroerend Erfgoed</code> net opgericht als wetenschappelijke instelling die voor het eerst al het onderzoek naar archeologie, bouwkundig erfgoed en landschappen verenigde. Verschillende inventarissen en informatiesystemen (databanken, maar ook boeken zoals <code>Bouwen door de Eeuwen Heen</code>) kwamen voor het eerst samen in beheer. Omdat die systemen elk hun eigen invalshoek hadden, werd de eerste versie van de <a href="https://inventaris.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">Inventaris Onroerend Erfgoed</a> opgevat als een portaal, met één look-and-feel maar elk inventaris met een eigen datamodel. Bij de lancering in mei 2009 bevatte het portaal de inventaris bouwkundig erfgoed en de inventaris wereldoorlogerfgoed, met ondersteunende modules voor afbeeldingen, gebeurtenissen en thesaurustermen.</p>
<p>Tussen 2009 en 2015 kwamen nieuwe modules bij: orgels, archeologische zones, historische tuinen en parken, houtige beplantingen met erfgoedwaarde, ankerplaatsen uit de landschapsatlas, en varend erfgoed. Al snel bleek dat die inventarissen, ondanks methodologische verschillen (een gebouw wordt gesloopt, een boom wordt gerooid), in essentie hetzelfde deden: beschrijven welk erfgoed zich waar bevindt, gedocumenteerd met afbeeldingen, beschrijvingen en thesaurustermen. Elke nieuwe module kreeg dan ook de vorm van een aangepaste versie van de inventaris bouwkundig erfgoed, met als voornaamste verschil de locatiecomponent: precieze adresgegevens voor kleine elementen versus grotere erfgoedgehelen voor de andere modules.</p>
<p>Toen het VIOE in 2012 samenging met het agentschap Ruimte en Erfgoed, kwam ook de databank van het beschermd erfgoed mee. Die bleek vooral juridische gegevens te bevatten en weinig inhoudelijke informatie, dus werd ze toegevoegd aan de inventaris als een aparte module die grotendeels hetzelfde datamodel deelde. Dit mondde uiteindelijk uit in de dataset van de aanduidingsobjecten (zie <a class="" href="https://developers.onroerenderfgoed.be/blog/inventaris-erfgoedobjecten-aanduidingsobjecten">Erfgoedobjecten en aanduidingsobjecten</a>), publiek gemaakt in juni 2016.</p>
<p>Naarmate de inventaris evolueerde, werd steeds duidelijker dat al die verschillende inventarissen helemaal niet zo verschillend waren, en gingen we ze meer als één geïntegreerde inventaris beschouwen — wat ook leidde tot meer communicatie en samenwerking tussen de verschillende erfgoedonderzoekers. Samen met de lancering van de aanduidingsobjecten voerden we ook de term erfgoedobjecten in: elk object uit de wetenschappelijke inventarissen kreeg een erfgoedobject met een eigen URI. In 2016 waren dit grotendeels cosmetische aanpassingen — de verschillende detailpagina's werden samengevoegd tot één pagina, maar achterliggend bleven het nog aparte datasets met een eigen datamodel. Op dat moment werd duidelijk dat de oude inventaris zo ver gebracht was als mogelijk binnen haar oorspronkelijke opzet.</p>
<p>Dus startten de voorbereidingen voor wat uiteindelijk de nieuwe inventaris zou worden — enerzijds omdat onze visie op de wetenschappelijke inventarissen sterk gewijzigd was, van losse silo's naar één grote inventaris van erfgoedobjecten, en anderzijds omdat de technologische componenten aan vervanging toe waren. Nu de nieuwe inventaris er is, blijven we schaven tot ze helemaal doet wat we willen binnen de huidige mogelijkheden.</p>
<p>Meer weten over de inventaris? Nog wat andere blogs op een rijtje:</p>
<ul>
<li class=""><a href="https://www.onroerenderfgoed.be/nieuws/inventaris-onroerend-erfgoed-vernieuwd" target="_blank" rel="noopener noreferrer" class="">Algemene informatie</a> over de nieuwe inventaris</li>
<li class=""><a class="" href="https://developers.onroerenderfgoed.be/blog/inventaris-erfgoedobjecten-aanduidingsobjecten">Erfgoedobjecten en aanduidingsobjecten</a>: wat zijn ze en waarom bestaan ze?</li>
<li class=""><a class="" href="https://developers.onroerenderfgoed.be/blog/inventaris-themas-personen-gebeurtenissen">Thema's, personen en gebeurtenissen</a>: waarvoor dienen de drie ondersteunende modules?</li>
<li class=""><a class="" href="https://developers.onroerenderfgoed.be/blog/inventaris-zoeken-inleiding">Van zoeken naar vinden op de nieuwe inventaris</a>: hoe zijn de zoekmogelijkheden opgebouwd?</li>
<li class=""><a class="" href="https://developers.onroerenderfgoed.be/blog/inventaris-zoeken-full-text">Full text zoeken in de inventaris</a>: hoe werkt full-text zoeken, met voorbeelden bij de erfgoedobjecten?</li>
</ul>
<p>De IT-wereld evolueert nog steeds snel. Onze corebusiness is misschien het verleden, maar we willen dat verleden op een toekomstgerichte manier beheren — met een continue, adaptieve aanpak die openstaat voor nieuwe inzichten, zowel over ons erfgoed zelf als over de technologie waarmee we het beheren en ontsluiten. Vragen hierover mag je <a href="mailto:ict@onroerenderfgoed.be" target="_blank" rel="noopener noreferrer" class="">altijd stellen</a>.</p>]]></content>
        <author>
            <name>Koen Van Daele</name>
        </author>
        <category label="Inventaris" term="Inventaris"/>
        <category label="Technology stack" term="Technology stack"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Full text zoeken in de inventaris]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/inventaris-zoeken-full-text</id>
        <link href="https://developers.onroerenderfgoed.be/blog/inventaris-zoeken-full-text"/>
        <updated>2019-07-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Sinds 13 mei staat er een gloednieuwe inventaris op https://inventaris.onroerenderfgoed.be. Vorige keer (Van zoeken naar vinden op de nieuwe inventaris) gaven we een aantal algemene principes mee; vandaag verdiepen we ons in full-text zoeken. We gebruiken de erfgoedobjecten als voorbeeld, maar onze andere modules ondersteunen dezelfde syntax.]]></summary>
        <content type="html"><![CDATA[<p>Sinds 13 mei staat er een <a href="https://www.onroerenderfgoed.be/nieuws/inventaris-onroerend-erfgoed-vernieuwd" target="_blank" rel="noopener noreferrer" class="">gloednieuwe inventaris</a> op <a href="https://inventaris.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">https://inventaris.onroerenderfgoed.be</a>. Vorige keer (<a class="" href="https://developers.onroerenderfgoed.be/blog/inventaris-zoeken-inleiding">Van zoeken naar vinden op de nieuwe inventaris</a>) gaven we een aantal algemene principes mee; vandaag verdiepen we ons in full-text zoeken. We gebruiken de erfgoedobjecten als voorbeeld, maar onze andere modules ondersteunen dezelfde syntax.</p>
<!-- -->
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>waarschuwing</div><div class="admonitionContent_BuS1"><p>Omdat de nieuwe inventaris nog vers is, kunnen er nog kleine verschuivingen optreden.</p></div></div>
<p>Full-text zoeken werkt zoals een grote internetzoekmachine: je bent op zoek naar een vrij specifiek object of document, en de zoekmachine probeert het best passende resultaat bovenaan te zetten. Zoek je naar <code>Gravensteen</code>, dan krijg je het meest "Gravensteenige" object te zien.</p>
<p>Om te bepalen wat het meest relevante object is, spelen meerdere factoren mee: hoe vaker je zoekterm in een object voorkomt, hoe relevanter; hoe kleiner het veld waarin de term voorkomt, hoe relevanter; en hoe vaker de term over alle objecten heen voorkomt, hoe minder relevant. Bepaalde velden wegen ook zwaarder door dan andere — een titel telt zwaarder dan de tekst van een fiche. Zoek je naar <code>Gravensteen</code>, dan scoort een object met die titel hoger dan een object waarin de term slechts één keer in de tekst voorkomt.</p>
<p>Typ je <code>Gravensteen</code> in het veld <code>Algemeen</code> van het <a href="https://inventaris.onroerenderfgoed.be/erfgoedobjecten/zoeken" target="_blank" rel="noopener noreferrer" class="">zoekformulier voor erfgoedobjecten</a>, dan krijg je <a href="https://inventaris.onroerenderfgoed.be/erfgoedobjecten?tekst=gravensteen" target="_blank" rel="noopener noreferrer" class="">https://inventaris.onroerenderfgoed.be/erfgoedobjecten?tekst=gravensteen</a>, met het Gravensteen uit Gent bovenaan. Hoofdletters maken daarbij geen verschil.</p>
<p>Wil je iets weten over het Gravensteen in Aalst specifiek? Zoek je naar <code>Gravensteen Aalst</code>, dan krijg je maar 2 resultaten: objecten waarin zowel <code>Gravensteen</code> als <code>Aalst</code> voorkomen. Standaard wordt elk woord dus als aparte term gezien, gecombineerd met AND (EN) — voorgesteld met een <code>+</code>, dus <code>Gravensteen Aalst</code> is gelijk aan <code>Gravensteen+Aalst</code>. Zoek je liever naar het één óf het ander, gebruik dan de OR (OF)-operator, het pipe-teken <code>|</code>: <code>Gravensteen|Aalst</code>. De derde operator is NOT (NIET), een <code>-</code>-teken: <code>Gravensteen -Aalst</code> geeft je alles met <code>Gravensteen</code>, maar niet <code>Aalst</code>.</p>
<p>Standaard splitst de zoekmachine je zoekterm op spaties. Zoek je naar <code>Grote Markt Aalst</code>, dan krijg je best wat resultaten, waaronder helemaal achteraan <a href="https://inventaris.onroerenderfgoed.be/erfgoedobjecten/1996" target="_blank" rel="noopener noreferrer" class="">Paviljoen De Notelaer</a> — de woorden <code>grote</code>, <code>markt</code> en <code>aalst</code> komen er wel in voor, maar niet naast elkaar. Wil je expliciet naar de exacte frase zoeken, gebruik dan aanhalingstekens: <code>"Grote Markt" Aalst</code> zoekt naar twee termen in plaats van drie, en levert minder (en relevantere) resultaten op.</p>
<p>Voor complexere combinaties kan je haakjes gebruiken om de volgorde van operatoren te sturen. Zoek je naar <code>vismarkt brugge gent</code>, dan zoek je naar objecten waarin alle drie de termen voorkomen — niet wat je bedoelde. <code>vismarkt + brugge | gent</code> levert dan weer te veel resultaten op, want operatoren hebben een vaste voorrang. De oplossing: groepeer met haakjes, <code>vismarkt + (brugge|gent)</code>, om fiches te vinden over de vismarkt met daarbij Brugge óf Gent.</p>
<p>Je kan ook op een deel van een woord zoeken met een postfix-wildcard: <code>gedenk*</code> vindt onder meer <code>gedenksteen</code>, <code>gedenkplaat</code> en gelijkaardige woorden. Dit werkt enkel op het einde van een term — <code>*linde</code> levert dus niets op voor <code>herdenkingslinde</code>. Alles combineren kan ook: <code>visgraat* (oost-vlaanderen|west-vlaanderen) -brugge</code> zoekt naar objecten met een woord dat begint met <code>visgraat</code>, in Oost- of West-Vlaanderen, maar niet in Brugge.</p>
<p>Welke velden worden nu precies full-text doorzocht, en in welke volgorde van belang? De tekst, de titel van de tekst, de korte beschrijving (die je in een zoekresultaat ziet), provincie, gemeente, deelgemeente en straatnamen, thesaurustermen en de naam van het object zelf. We tonen alle objecten waarin je term voorkomt, tenzij er meer dan 10.000 zijn (het maximum aantal zoekresultaten).</p>
<p>Kort samengevat, deze operatoren kan je gebruiken:</p>
<ul>
<li class="">Meerdere termen worden impliciet gecombineerd met AND; expliciet kan met <code>+</code></li>
<li class="">OR-combinatie via <code>|</code></li>
<li class="">Een term uitsluiten met NOT via <code>-</code></li>
<li class="">Meerdere woorden tot één term maken met aanhalingstekens <code>"</code></li>
<li class="">Volgorde van operatoren aanpassen met haakjes <code>()</code></li>
<li class="">Zoeken op een prefix met een postfix-wildcard <code>*</code></li>
</ul>
<p>Veel zoekplezier! Vragen over zoeken mag je altijd <a href="mailto:ict@onroerenderfgoed.be" target="_blank" rel="noopener noreferrer" class="">aan ons stellen</a>.</p>]]></content>
        <author>
            <name>Koen Van Daele</name>
        </author>
        <category label="Inventaris" term="Inventaris"/>
        <category label="Search" term="Search"/>
        <category label="Full-text" term="Full-text"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Erfgoedobjecten en aanduidingsobjecten]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/inventaris-erfgoedobjecten-aanduidingsobjecten</id>
        <link href="https://developers.onroerenderfgoed.be/blog/inventaris-erfgoedobjecten-aanduidingsobjecten"/>
        <updated>2019-06-18T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Op 13 mei lanceerden we een gloednieuwe Inventaris Onroerend Erfgoed. Wie de nieuwe inventaris al gebruikte, zag dat er vijf datasets zijn: erfgoedobjecten, aanduidingsobjecten, personen, thema's en gebeurtenissen. Erfgoed- en aanduidingsobjecten vormen samen de kern van de inventarisdatabank; de andere drie datasets komen in een later bericht aan bod.]]></summary>
        <content type="html"><![CDATA[<p>Op 13 mei <a href="https://www.onroerenderfgoed.be/nieuws/inventaris-onroerend-erfgoed-vernieuwd" target="_blank" rel="noopener noreferrer" class="">lanceerden we</a> een gloednieuwe <a href="https://inventaris.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">Inventaris Onroerend Erfgoed</a>. Wie de nieuwe inventaris al gebruikte, zag dat er vijf datasets zijn: erfgoedobjecten, aanduidingsobjecten, personen, thema's en gebeurtenissen. Erfgoed- en aanduidingsobjecten vormen samen de kern van de inventarisdatabank; de andere drie datasets komen in een later bericht aan bod.</p>
<!-- -->
<p>De <strong>erfgoedobjecten</strong> zijn het kloppend hart van de inventaris: de dingen die wij en jullie als erfgoed beschouwen, van de Onze-Lieve-Vrouwekathedraal en het Gravensteen tot het Zwin, een kapel, een boom, een schip of een orgel. De focus ligt niet op de juridische gevolgen, maar op de wetenschappelijke informatie: wat is het, hoe groot, waar, hoe oud, hoe ziet het eruit, wie was betrokken, waar vind je meer info? De afbakening van zo'n erfgoedobject is in de praktijk vaak wat vaag — bij <code>het Gravensteen</code> zal de ene enkel de burcht zien, een andere ook de gracht, en nog een derde het Sint-Veerleplein erbij rekenen. We kiezen telkens één afbakening, zonder die als heel exact te beschouwen.</p>
<p>De <strong>aanduidingsobjecten</strong> zijn daarentegen het erfgoed zoals het juridisch verankerd is: de bescherming of vaststelling van een erfgoedobject. Waar de grens van een erfgoedobject wat vaag mag zijn, moet die van een aanduidingsobject onbetwistbaar zijn, want ze bepaalt welke rechtsgevolgen gelden op een stuk Vlaanderen. Sinds het nieuwe Onroerenderfgoeddecreet bakenen we ook vastgesteld erfgoed <a href="https://www.onroerenderfgoed.be/nieuws/update-datalagen-onroerend-erfgoed-1" target="_blank" rel="noopener noreferrer" class="">af met een polygoon in plaats van punten</a>. Bij een aanduidingsobject draait het om: hoe groot precies, welk type aanduiding, waarom heeft dit erfgoedwaarde, en welk besluit of document onderbouwt die beslissing? Eén erfgoedobject kan trouwens meerdere keren verankerd zijn onder verschillende statuten.</p>
<p><img decoding="async" loading="lazy" alt="De Onze-Lieve-Vrouwekathedraal, erfgoedobject en zijn aanduidingen" src="https://developers.onroerenderfgoed.be/assets/images/erfgoedobject_olv_kathedraal-1c2fe3d4ae1a05c4a8f04a897c99927d.png" width="1851" height="952" class="img_ev3q"></p>
<p><em>De Onze-Lieve-Vrouwekathedraal, een erfgoedobject en zijn aanduidingen</em></p>
<p>Bekijk je bijvoorbeeld de <a href="https://inventaris.onroerenderfgoed.be/erfgoedobjecten/4092" target="_blank" rel="noopener noreferrer" class="">Onze-Lieve-Vrouwekathedraal</a>, dan zie je vier aanduidingen: een vaststelling als bouwkundig erfgoed, een aanduiding als Unesco-werelderfgoed, een bescherming als monument, en een bijkomende bescherming van een stukje muur als monument. Het erfgoedobject "de kathedraal" vertelt je wat het is; de aanduidingsobjecten vertellen je in detail wat er met de verschillende onderdelen ervan kan.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="kon-het-niet-eenvoudiger">Kon het niet eenvoudiger?<a href="https://developers.onroerenderfgoed.be/blog/inventaris-erfgoedobjecten-aanduidingsobjecten#kon-het-niet-eenvoudiger" class="hash-link" aria-label="Direct link naar Kon het niet eenvoudiger?" title="Direct link naar Kon het niet eenvoudiger?" translate="no">​</a></h2>
<p>Dit onderscheid lijkt op het eerste gezicht complex en arbitrair. Het ontstond bij het project van de beschermingsdatabank, kort na de samensmelting van het agentschap <code>Ruimte en Erfgoed</code> en het <code>Vlaams Instituut voor het Onroerend Erfgoed</code>. Het eerste beheerde de beschermingsdatabank, het tweede de inventarisdatabank, die toen bestond uit een aantal aparte inventarissen (bouwkundig erfgoed, tuinen en parken, houtige beplantingen, ...), elk met een eigen fiche per element.</p>
<p>Omdat de beschermingsdatabank op dat moment veel minder mogelijkheden bood dan de inventarisdatabank, werd al het beschermde erfgoed toegevoegd aan de inventarisdatabank, meteen voorzien van afbeeldingen, thesaurustermen en uitgebreide beschrijvingen. In dat eerste datamodel werd beschermd erfgoed identiek beschreven als geïnventariseerd erfgoed: een fiche voor een kerk in de inventaris bouwkundig erfgoed, een aparte fiche voor diezelfde kerk als beschermd monument, en mogelijk nog een fiche als onderdeel van een dorpsgezicht. Die fiches herhaalden grotendeels dezelfde inhoud, met soms lichte verschillen door een afwijkende afbakening — een nachtmerrie om te onderhouden zodra er nieuwe inzichten over een gebouw aan het licht kwamen.</p>
<p>Een gelijkaardig probleem speelde tussen de verschillende inventarissen zelf. Toen ze nog op papier verschenen (zoals de reeksen <code>M&amp;L Cahiers</code> en <code>Bouwen door de Eeuwen Heen</code>), was overlap tussen bijvoorbeeld een historische tuin en het bijhorende bouwkundig erfgoed nog behapbaar; online bleek dat minder evident, met soms tegensprekelijke fiches.</p>
<p>Uiteindelijk gooiden we het roer om door twee zaken strikt te scheiden. Enerzijds de inhoudelijke informatie, die we op zo weinig mogelijk plaatsen tegelijk willen bijhouden: elk erfgoedobject krijgt nu één of meerdere disciplines (archeologisch, bouwkundig, landschappelijk, varend), en we brengen zo veel mogelijk informatie samen in één fiche, ongeacht welk deel ervan beschermd is. Anderzijds de juridische informatie, die we los willen kunnen behandelen — een bescherming kan bijvoorbeeld ophouden te bestaan zonder dat het erfgoed zelf verdwijnt. Zo herwerkten we de beschermingsdatabank tot een databank van aanduidingsobjecten, een term die we ontleenden aan <a href="https://historicengland.org.uk/" target="_blank" rel="noopener noreferrer" class="">Historic England</a>, waar men spreekt van <em>designation</em> voor het formeel toekennen van rechtsgevolgen aan erfgoed.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="alles-is-verbonden">Alles is verbonden<a href="https://developers.onroerenderfgoed.be/blog/inventaris-erfgoedobjecten-aanduidingsobjecten#alles-is-verbonden" class="hash-link" aria-label="Direct link naar Alles is verbonden" title="Direct link naar Alles is verbonden" translate="no">​</a></h2>
<p>Ons erfgoed is groot en verscheiden, en elke fiche zet maar een klein stukje van de werkelijkheid in de schijnwerper — stukjes die met elkaar verbonden zijn. Daarom leggen we al een tiental jaar relaties tussen objecten. Waar erfgoed vroeger vooral puntsgewijs beheerd werd, is er al jaren een beweging naar grotere gehelen en contexten die even belangrijk zijn als de kleine elementen. Vroegere <code>bouwkundige gehelen</code>, <code>archeologische zones</code> en <code>ankerplaatsen</code> zijn intussen allemaal erfgoedobjecten geworden, met een consequent onderscheid tussen <code>gehelen</code> (grote oppervlaktes) en <code>elementen</code> (kleinschalige stukjes erfgoed). Sinds 2009 koppelen we erfgoedobjecten met drie relaties:</p>
<ul>
<li class=""><strong>is gerelateerd aan</strong>: een verband tussen twee objecten, zonder dat het ene het andere omvat — bijvoorbeeld een kolenmijn en een mijnwerkerscité.</li>
<li class=""><strong>omvat</strong>: het ene erfgoedobject omvat het andere, zoals een kasteeldomein dat het koetshuis omvat, of een kerk die een apart beschreven orgel bevat.</li>
<li class=""><strong>is deel van</strong>: het omgekeerde van <code>omvat</code> — het orgel is deel van de kerk, het koetshuis deel van het domein.</li>
</ul>
<p>Voor de interactie tussen erfgoed- en aanduidingsobjecten onderscheiden we drie relaties:</p>
<ul>
<li class=""><strong>is aangeduid als</strong>: het erfgoedobject en het aanduidingsobject zijn (quasi) identiek qua afbakening — het erfgoedobject is dus (ongeveer) volledig beschermd of vastgesteld.</li>
<li class=""><strong>omvat de aanduiding als</strong>: het erfgoedobject is groter dan het aanduidingsobject, bijvoorbeeld een kerk waarvan enkel de toren beschermd is.</li>
<li class=""><strong>is deel van de aanduiding als</strong>: het erfgoedobject is kleiner dan het aanduidingsobject, bijvoorbeeld een individuele boom in een beschermd landschap.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="help-ik-zoek-iets">Help, ik zoek iets!<a href="https://developers.onroerenderfgoed.be/blog/inventaris-erfgoedobjecten-aanduidingsobjecten#help-ik-zoek-iets" class="hash-link" aria-label="Direct link naar Help, ik zoek iets!" title="Direct link naar Help, ik zoek iets!" translate="no">​</a></h2>
<p>Wanneer gebruik je nu welke dataset? Je kan <a href="http://inventaris.onroerenderfgoed.be/erfgoedobjecten/zoeken" target="_blank" rel="noopener noreferrer" class="">zoeken naar erfgoedobjecten</a> of <a href="https://inventaris.onroerenderfgoed.be/aanduidingsobjecten" target="_blank" rel="noopener noreferrer" class="">zoeken naar aanduidingsobjecten</a>, en beide formulieren bieden filters die met rechtsgevolgen te maken hebben. Bij de erfgoedobjecten zoek je primair op inhoudelijke kenmerken — de eenheid van informatie is erfgoed. Bij de aanduidingsobjecten zoek je op kenmerken van de aanduiding zelf — de eenheid van informatie is een juridische beslissing over erfgoed.</p>
<p>Zoek je bijvoorbeeld naar <code>beschermde bibliotheken</code>, dan geeft <code>typologie=bibliotheken</code> + <code>rechtsgevolgen=beschermd</code> bij de erfgoedobjecten <a href="https://inventaris.onroerenderfgoed.be/erfgoedobjecten?typologie=bibliotheken&amp;rechtsgevolgen=beschermd" target="_blank" rel="noopener noreferrer" class="">17 resultaten</a>, terwijl <code>typologie=bibliotheken</code> + <code>categorie=beschermingen</code> + <code>geldig=true</code> bij de aanduidingsobjecten <a href="https://inventaris.onroerenderfgoed.be/aanduidingsobjecten?typologie=bibliotheken&amp;categorie=beschermingen&amp;geldig=true" target="_blank" rel="noopener noreferrer" class="">22 resultaten</a> oplevert — niet helemaal hetzelfde. In het eerste geval gaat het om 17 erfgoedobjecten die (deels) een bibliotheek zijn en waarop een bescherming rust; in het tweede om 22 beschermde objecten die iets met een bibliotheek te maken hebben. Zo is het <a href="https://inventaris.onroerenderfgoed.be/erfgoedobjecten/209986" target="_blank" rel="noopener noreferrer" class="">Kasteeldomein van Loppem</a> tweemaal beschermd: als landschap in zijn geheel, en het landhuis met bijgebouwen apart als monument.</p>
<p>Door onze informatie op te delen in erfgoedobjecten en aanduidingsobjecten kunnen we flexibel omgaan met inhoudelijke informatie en aanvullingen doen, zonder te raken aan de wettelijk verankerde gegevens. Heb je zelf nog suggesties om onze informatie begrijpelijker te maken, <a href="mailto:ict@onroerenderfgoed.be" target="_blank" rel="noopener noreferrer" class="">neem dan contact met ons op</a>.</p>]]></content>
        <author>
            <name>Koen Van Daele</name>
        </author>
        <category label="Inventaris" term="Inventaris"/>
        <category label="Erfgoedobjecten" term="Erfgoedobjecten"/>
        <category label="Aanduidingsobjecten" term="Aanduidingsobjecten"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Van zoeken naar vinden op de nieuwe inventaris]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/inventaris-zoeken-inleiding</id>
        <link href="https://developers.onroerenderfgoed.be/blog/inventaris-zoeken-inleiding"/>
        <updated>2019-05-15T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Sinds 13 mei staat er een gloednieuwe inventaris op https sommige bleven hetzelfde, andere veranderden licht of grondig. Om die overgang wat te vergemakkelijken zetten we op deze blog de belangrijkste zoekmogelijkheden op een rij. Vandaag beginnen we met een aantal algemene principes; latere berichten gaan dieper in op specifieke onderdelen.]]></summary>
        <content type="html"><![CDATA[<p>Sinds 13 mei staat er een <a href="https://www.onroerenderfgoed.be/nieuws/inventaris-onroerend-erfgoed-vernieuwd" target="_blank" rel="noopener noreferrer" class="">gloednieuwe inventaris</a> op <a href="https://inventaris.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">https://inventaris.onroerenderfgoed.be</a>. Zoals bij elke vernieuwing is het even wennen, en dat geldt zeker voor de zoekmogelijkheden: sommige bleven hetzelfde, andere veranderden licht of grondig. Om die overgang wat te vergemakkelijken zetten we op deze blog de belangrijkste zoekmogelijkheden op een rij. Vandaag beginnen we met een aantal algemene principes; latere berichten gaan dieper in op specifieke onderdelen.</p>
<!-- -->
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>waarschuwing</div><div class="admonitionContent_BuS1"><p>Omdat de nieuwe inventaris nog vers is, kunnen er nog kleine verschuivingen optreden — mogelijk is nog niet alles definitief.</p></div></div>
<p>De inventaris bevat momenteel vijf grote datasets: erfgoedobjecten, aanduidingsobjecten, personen, thema's en gebeurtenissen. Veel zoekmogelijkheden en principes worden gedeeld tussen die datasets — zoeken naar erfgoedobjecten of aanduidingsobjecten in een bepaalde gemeente verloopt bijvoorbeeld identiek, net als zoeken met thesaurustermen.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="user-interface-vs-rest-service">User interface vs. REST-service<a href="https://developers.onroerenderfgoed.be/blog/inventaris-zoeken-inleiding#user-interface-vs-rest-service" class="hash-link" aria-label="Direct link naar User interface vs. REST-service" title="Direct link naar User interface vs. REST-service" translate="no">​</a></h2>
<p>Bij zoeken maken we een onderscheid tussen de zoekservice zelf en de UI (user interface) die er gebruik van maakt. Zoeken is complexe materie: meerdere parameters, booleaanse combinaties (dit EN dat, dit OF dat, NIET dit), zoeken op id of op tekst, wildcards, ... en dat moet allemaal simpel en eenduidig blijven. In de praktijk bestaat de perfecte zoek-UI niet — die hangt altijd af van de gebruiker, en dat is moeilijk te voorspellen. Daarom bieden onze zoekservices vaak méér mogelijkheden dan wat de standaard-UI ontsluit: die laatste bouwen we voor de doorsnee gebruiker, de service zelf richt zich op ontwikkelaars en ervaren gebruikers.</p>
<p>Onder de UI verstaan we de zoekformulieren zelf, zoals <a href="https://inventaris.onroerenderfgoed.be/erfgoedobjecten/zoeken" target="_blank" rel="noopener noreferrer" class="">https://inventaris.onroerenderfgoed.be/erfgoedobjecten/zoeken</a>, waar je op een begeleide manier zoekparameters kan ingeven (met bijvoorbeeld suggestielijstjes voor gemeente- en straatnamen). Nadeel: een UI is duur om te ontwikkelen, en complexe zoekopdrachten passen er niet altijd goed in.</p>
<p><img decoding="async" loading="lazy" alt="Zoeken via de user interface" src="https://developers.onroerenderfgoed.be/assets/images/erfgoedobjecten_zoeken-c9ce39a733d2a928383f86b2d76c5ee7.png" width="1854" height="991" class="img_ev3q"></p>
<p><em>Via de user interface kan je vlot eenvoudige zoekopdrachten ingeven</em></p>
<p>De service zelf is een door machines bevraagbare REST-dienst die JSON gebruikt om informatie door te sturen. Een zoekresultaat in de nieuwe inventaris kan je zowel als HTML doorbladeren als downloaden als JSON of CSV — door dezelfde URL simpelweg met een andere <code>Accept</code>-header op te vragen, bijvoorbeeld <code>application/json</code>. Dat kan met een command-line tool zoals <code>curl</code>, met een REST-client, of met je favoriete programmeertaal:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">$ curl -X GET -H "Accept: application/json" https://inventaris.onroerenderfgoed.be/erfgoedobjecten?gemeente=278</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="full-text-zoeken-vs-filteren">Full-text zoeken vs. filteren<a href="https://developers.onroerenderfgoed.be/blog/inventaris-zoeken-inleiding#full-text-zoeken-vs-filteren" class="hash-link" aria-label="Direct link naar Full-text zoeken vs. filteren" title="Direct link naar Full-text zoeken vs. filteren" translate="no">​</a></h2>
<p>De zoekformulieren ondersteunen zowel full-text zoeken (kortweg "zoeken") als filteren. Dat klinkt gelijkaardig, maar dient een heel ander doel — al zorgen beide ervoor dat je niet-relevante gegevens niet hoeft te zien.</p>
<p>Filteren is een zwart/wit-verhaal: een object voldoet aan een criterium of niet. Je wil bijvoorbeeld al het erfgoed in een gemeente of straat, of alle kerken, of alle kerken in een bepaalde gemeente — vaak ben je niet op zoek naar één specifiek object, soms wil je enkel weten hoeveel er zijn.</p>
<p>Full-text zoeken is een grijs verhaal: de zoekmachine probeert het meest relevante resultaat te geven. Zoek je naar <code>Gravensteen</code> of <code>Sint-Veerle</code>, dan ben je meestal op zoek naar een klein aantal objecten, en wil je vooral het meest relevante bovenaan — net zoals grote internetzoekmachines zoals Google dat doen.</p>
<p>Je kan beide uiteraard combineren. Full-text zoeken naar het <a href="https://inventaris.onroerenderfgoed.be/erfgoedobjecten?tekst=gravensteen" target="_blank" rel="noopener noreferrer" class="">Gravensteen</a> geeft tien objecten, met het Gravensteen in Gent bovenaan — het laatste object is de archeologische zone van Aalst, omdat ook daar "gravensteen" in de beschrijving voorkomt. Filter je bijkomend op de gemeente Gent, dan blijven er nog <a href="https://inventaris.onroerenderfgoed.be/erfgoedobjecten?tekst=gravensteen&amp;gemeente=278" target="_blank" rel="noopener noreferrer" class="">zeven resultaten</a> over, met het Gravensteen nog steeds bovenaan.</p>
<p>Zolang je een full-text zoekactie uitvoert via het veld <code>Algemeen</code>, sorteert de toepassing standaard op relevantie; zonder full-text zoeken wordt op locatie gesorteerd. Bij full-text zoeken kan je de sorteervolgorde nog wijzigen, al is dat zelden aangewezen.</p>
<p>In een volgend bericht leggen we uit hoe je gerichter full-text kan zoeken (<a class="" href="https://developers.onroerenderfgoed.be/blog/inventaris-zoeken-full-text">Full text zoeken in de inventaris</a>), en hoe we precies bepalen wat de meest relevante fiche is voor een bepaalde vraag.</p>]]></content>
        <author>
            <name>Koen Van Daele</name>
        </author>
        <category label="Inventaris" term="Inventaris"/>
        <category label="Search" term="Search"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Een Atramhasis demo-omgeving draaien met Docker]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/atramhasis-docker</id>
        <link href="https://developers.onroerenderfgoed.be/blog/atramhasis-docker"/>
        <updated>2018-01-11T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Atramhasis is onze online SKOS-editor: iedereen met een browser kan er een online thesaurus (zie Wat is een thesaurus?) of vocabularium mee raadplegen, aanmaken en bewerken, volgens de SKOS-specificatie.]]></summary>
        <content type="html"><![CDATA[<p><a href="http://atramhasis.readthedocs.io/" target="_blank" rel="noopener noreferrer" class="">Atramhasis</a> is onze online SKOS-editor: iedereen met een browser kan er een online thesaurus (zie <a class="" href="https://developers.onroerenderfgoed.be/blog/whats-a-thesaurus">Wat is een thesaurus?</a>) of vocabularium mee raadplegen, aanmaken en bewerken, volgens de <a href="http://www.w3.org/TR/skos-reference/" target="_blank" rel="noopener noreferrer" class="">SKOS-specificatie</a>.</p>
<!-- -->
<p>Vroeger vroeg het opzetten van een demo-omgeving wat manueel werk. We bieden nu een <a href="https://hub.docker.com/r/atramhasis/demo/" target="_blank" rel="noopener noreferrer" class="">Docker-image</a> aan dat zowel een demo-toepassing als de bijhorende <a href="http://linkeddatafragments.org/" target="_blank" rel="noopener noreferrer" class="">Linked Data Fragments</a>-server bundelt, zodat je in enkele minuten een werkende instantie hebt.</p>
<p>Na het <a href="https://docs.docker.com/engine/installation/#supported-platforms" target="_blank" rel="noopener noreferrer" class="">installeren van Docker</a> (de CE-editie volstaat ruimschoots) haal en start je de image:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">$ sudo docker pull atramhasis/demo</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">$ sudo docker run -p 6543:6543 -p 3000:3000 atramhasis/demo</span><br></div></code></pre></div></div>
<p>De demo-toepassing is dan beschikbaar op <a href="http://localhost:6543/" target="_blank" rel="noopener noreferrer" class="">http://localhost:6543</a>, en de meegeleverde Linked Data Fragments-server op <a href="http://localhost:3000/" target="_blank" rel="noopener noreferrer" class="">http://localhost:3000</a>.</p>
<p>Je kan ook een specifieke versie kiezen (vanaf Atramhasis 0.6.4):</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">$ sudo docker pull atramhasis/demo:0.6.4</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">$ sudo docker run -p 6543:6543 -p 3000:3000 atramhasis/demo:0.6.4</span><br></div></code></pre></div></div>
<p>Houd er rekening mee dat dit vooral bedoeld is om snel kennis te maken met de toepassing: wijzigingen die je aanbrengt gaan verloren zodra je de container stopt. Heb je nood aan persistentie, maar wil je toch met Docker werken, dan kan je de <a href="https://github.com/OnroerendErfgoed/atramhasis-demo-docker/" target="_blank" rel="noopener noreferrer" class="">Dockerfile</a> aanpassen naar je eigen noden.</p>]]></content>
        <author>
            <name>Maarten Vermeyen</name>
        </author>
        <author>
            <name>Koen Van Daele</name>
        </author>
        <category label="Atramhasis" term="Atramhasis"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Erfgoed geprint op een kaart]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/erfgoed-geprint-op-kaart</id>
        <link href="https://developers.onroerenderfgoed.be/blog/erfgoed-geprint-op-kaart"/>
        <updated>2017-10-03T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Via het Geoportaal (Waar ligt ons Erfgoed?) kan je makkelijk zien waar ons erfgoed ligt, en via de Geozoekdiensten (Geozoekdiensten. Wat ligt er hier?) kan een machine opvragen welk erfgoed in een bepaald gebied ligt. Maar wat doe je dan met die informatie? Sinds kort kan je zelf makkelijker kaartjes maken van het gevonden erfgoed.]]></summary>
        <content type="html"><![CDATA[<p>Via het Geoportaal (<a class="" href="https://developers.onroerenderfgoed.be/blog/waar-ligt-ons-erfgoed">Waar ligt ons Erfgoed?</a>) kan je makkelijk zien waar ons erfgoed ligt, en via de Geozoekdiensten (<a class="" href="https://developers.onroerenderfgoed.be/blog/geozoekdiensten">Geozoekdiensten. Wat ligt er hier?</a>) kan een machine opvragen welk erfgoed in een bepaald gebied ligt. Maar wat doe je dan met die informatie? Sinds kort kan je zelf makkelijker kaartjes maken van het gevonden erfgoed.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="static-map-generator">Static map generator<a href="https://developers.onroerenderfgoed.be/blog/erfgoed-geprint-op-kaart#static-map-generator" class="hash-link" aria-label="Direct link naar Static map generator" title="Direct link naar Static map generator" translate="no">​</a></h2>
<p>Om dit soort kaarten te genereren gebruik je de <code>statische kaartgenerator</code>, een module ontwikkeld voor het agentschap Onroerend Erfgoed in samenwerking met externe partners. Het doel: statische kaarten samenstellen uit verschillende geografische formaten (zoals GeoJSON), een achtergrondlaag (zoals WMS) en lay-out-overlays zoals tekst en schaal. Op basis van een configuratiebestand voegt de generator alle lagen samen tot één afbeelding met schaalbalk, terug te geven als foto of in base64-formaat.</p>
<p>De generator is zowel als Python-module als als REST-service te gebruiken, en dus makkelijk in je eigen project in te bouwen — als bibliotheek als je met Python werkt, of als losse toepassing op een server als je dat niet doet.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="de-erfgoedatlas-van-een-gemeente">De erfgoedatlas van een gemeente<a href="https://developers.onroerenderfgoed.be/blog/erfgoed-geprint-op-kaart#de-erfgoedatlas-van-een-gemeente" class="hash-link" aria-label="Direct link naar De erfgoedatlas van een gemeente" title="Direct link naar De erfgoedatlas van een gemeente" translate="no">​</a></h2>
<p>De inventaris is een prima werkinstrument om ons erfgoed te leren kennen, maar soms is een lokale kopie handig — bijvoorbeeld om de baan op te gaan zonder internetverbinding. Door een paar van onze diensten te combineren, maak je zo je eigen erfgoedatlas.</p>
<p>Als voorbeeld gebruiken we de gemeente Edegem. Eerst worden alle erfgoedobjecten en aanduidingsobjecten binnen de gemeente opgevraagd via de geozoekdiensten. Dan stel je een basisconfiguratie op voor de afbeelding: achtergrondlaag, tekst, breedte en hoogte. De geometrie van elk object wordt als aparte laag toegevoegd, en tot slot geef je de configuratie mee aan de statische kaartgenerator, die de afbeelding teruggeeft. De afbakening van Edegem zelf komt uit een GeoJSON-bestand op basis van gegevens van Informatie Vlaanderen. Het volledige scriptje staat op <a href="https://github.com/OnroerendErfgoed/static_map_generator" target="_blank" rel="noopener noreferrer" class="">Github</a>.</p>
<p>Zo bekom je een kaart van al het erfgoed dat we kennen in Edegem:</p>
<p><img decoding="async" loading="lazy" alt="Kaart van erfgoed in Edegem" src="https://developers.onroerenderfgoed.be/assets/images/Edegem-acd7dcb59176940cad561065a5281cc2.png" width="1000" height="1000" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="inzoomen-op-de-objecten-op-kaart">Inzoomen op de objecten op kaart<a href="https://developers.onroerenderfgoed.be/blog/erfgoed-geprint-op-kaart#inzoomen-op-de-objecten-op-kaart" class="hash-link" aria-label="Direct link naar Inzoomen op de objecten op kaart" title="Direct link naar Inzoomen op de objecten op kaart" translate="no">​</a></h2>
<p>Je kan ook per erfgoedobject afzonderlijk een kaartje genereren, met bijvoorbeeld een andere achtergrondlaag en de naam van het object er telkens bij. Zo bekom je een kaartje per object uit de inventaris, klaar om af te drukken of verder te verwerken. Ook hier geldt: zowel onze gegevens als die van Informatie Vlaanderen zijn open data, dus vrij te gebruiken.</p>
<p><em>Fort 5</em></p>
<p><img decoding="async" loading="lazy" alt="Fort 5" src="https://developers.onroerenderfgoed.be/assets/images/Fort_5-23fa3ba669116f95a890fc7b802b6f4e.png" width="1000" height="1000" class="img_ev3q"></p>
<p><em>Hazeschranshoeven</em></p>
<p><img decoding="async" loading="lazy" alt="Hazeschranshoeven" src="https://developers.onroerenderfgoed.be/assets/images/Hazeschranshoeven-9d12dab36c8707c5072970b9623d769a.png" width="1000" height="1000" class="img_ev3q"></p>
<p><em>Kasteel Hof ter Linden</em></p>
<p><img decoding="async" loading="lazy" alt="Kasteel Hof ter Linden" src="https://developers.onroerenderfgoed.be/assets/images/Kasteel_Hof_ter_Linden-dae0c395e10ace6b119c3f144bf196d7.png" width="1000" height="1000" class="img_ev3q"></p>
<p><em>Garden City Elsdonk</em></p>
<p><img decoding="async" loading="lazy" alt="Garden City Elsdonk" src="https://developers.onroerenderfgoed.be/assets/images/Garden_City_Elsdonk-6431f0fc98ede4063db4ed0f8fc94553.png" width="1000" height="1000" class="img_ev3q"></p>
<p>Wil je zelf aan de slag met de kaartgenerator? Kijk dan naar de <a href="https://github.com/OnroerendErfgoed/static_map_generator" target="_blank" rel="noopener noreferrer" class="">statische kaartgenerator</a> op Github, of bekijk de levende API-documentatie op <a href="https://geo.onroerenderfgoed.be/zoekdiensten/api_doc" target="_blank" rel="noopener noreferrer" class="">https://geo.onroerenderfgoed.be/zoekdiensten/api_doc</a>.</p>]]></content>
        <author>
            <name>Tinne Cahy</name>
        </author>
        <category label="Static map generator" term="Static map generator"/>
        <category label="Geozoekdiensten" term="Geozoekdiensten"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Wat is een thesaurus?]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/whats-a-thesaurus</id>
        <link href="https://developers.onroerenderfgoed.be/blog/whats-a-thesaurus"/>
        <updated>2017-09-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We brachten onlangs een nieuwe versie uit van Atramhasis, onze webgebaseerde thesaurus-editor. Maar wat is een thesaurus nu eigenlijk, en waarom zou een erfgoedorganisatie er één willen?]]></summary>
        <content type="html"><![CDATA[<p>We brachten onlangs een nieuwe versie uit van <a class="" href="https://developers.onroerenderfgoed.be/blog/atramhasis-0.7.0">Atramhasis</a>, onze webgebaseerde thesaurus-editor. Maar wat is een thesaurus nu eigenlijk, en waarom zou een erfgoedorganisatie er één willen?</p>
<!-- -->
<p>Onze collega's bij <a href="http://www.historicengland.org.uk/" target="_blank" rel="noopener noreferrer" class="">Historic England</a> omschrijven een thesaurus als <em>een gestructureerde woordenlijst die gebruikt wordt om terminologie te standaardiseren, en die helpt bij het indexeren en terugvinden van informatie in databanken die dezelfde terminologie gebruiken</em>. Het structureren van verwante termen op deze manier biedt een aantal voordelen.</p>
<p>Ten eerste kan je zo equivalenties uitdrukken. In plaats van te zeggen dat twee termen "synoniemen" zijn, zeggen we dat beide een verbale uitdrukking zijn van hetzelfde onderliggende concept — dus in plaats van te stellen dat <em>Jugendstil</em> gelijk is aan <em>Art Nouveau</em>, zeggen we dat er één concept bestaat voor die artistieke stijl, met beide termen als label. Een subtiel verschil, maar het verandert hoe je met de thesaurus omgaat.</p>
<p>Ten tweede zijn er hiërarchische relaties: de ene term is breder dan de andere, die op zijn beurt smaller is. Een kathedraal is een kerk, een kerk is een religieus gebouw, dus een kathedraal is ook een religieus gebouw. Niet alle hiërarchische relaties zijn strikt "is een" — ook "is deel van" en "is een instantie van" komen voor, en die maken het er niet eenvoudiger op. Zie <a href="https://link.springer.com/article/10.1007/s00799-015-0162-2" target="_blank" rel="noopener noreferrer" class="">On the composition of ISO 25964 hierarchical relations (BTG, BTP, BTI)</a> voor hoe deze op elkaar inwerken.</p>
<p>Ten derde is er de associatieve relatie — de "zachtste" van de drie, die enkel aangeeft dat twee termen of concepten verwant zijn. <em>Steenkoolmijn</em> is verwant met <em>mijnwerkershuizen</em>, omdat in Vlaanderen elke steenkoolmijn zijn eigen kleine woonwijk had waar de mijnwerkers samen leefden.</p>
<p>Thesauri laten je ook toe om een scope note toe te voegen: een geschreven definitie van een concept en hoe het gebruikt moet worden. Dit blijkt in de praktijk erg belangrijk — experts vragen om concepten te definiëren die ze als vanzelfsprekend beschouwden, heeft al meer dan eens tot verhitte discussies geleid. Zonder definitie gebruikt iedereen een concept zoals het hen uitkomt, zonder rekening te houden met andersdenkenden.</p>
<p>Thesauri helpen ons dus om tot een consensus te komen over wat concepten betekenen, en die kennis te delen met de buitenwereld (vandaar dat we ze als open data publiceren). Maar er is ook een heel praktische reden om ze te bouwen en te onderhouden: indexering. Wanneer iemand zoekt naar <a href="https://inventaris.onroerenderfgoed.be/erfgoedobjecten?typologie=fonteinen" target="_blank" rel="noopener noreferrer" class="">fonteinen</a> in ons inventarissysteem, wordt de thesaurus geraadpleegd. Is <em>fontein</em> geen gekende term, dan wordt er niets onder geïndexeerd en stopt de zoekopdracht daar. Is het dat wel, dan controleert het systeem ook op smallere termen — in dit geval is <em>bedriegertje</em> een gedefinieerde smallere term voor een type fontein — waardoor een zoekopdracht naar fonteinen zowel records met <em>fontein</em> als met <em>bedriegertje</em> teruggeeft.</p>
<p>Die <em>bedriegertjes</em> tonen meteen nog een handige functie. Bekijk het record voor <a href="https://id.erfgoed.net/thesauri/erfgoedtypes/1524" target="_blank" rel="noopener noreferrer" class="">bedriegertjes</a> en je ziet dat we er zelf nooit een Engels label voor gemaakt hebben. Gelukkig hebben we ons concept van <em>bedriegertje</em> gekoppeld aan hetzelfde concept in de <a href="http://www.getty.edu/research/tools/vocabularies/aat/" target="_blank" rel="noopener noreferrer" class="">Art &amp; Architecture Thesaurus</a>, die ons vertelt dat de Engelse termen <em>water tricks</em> of <em>joke fountains</em> zijn — en zelfs de Duitse en Spaanse equivalenten geeft. Dat opent heel wat mogelijkheden om met andere systemen te interageren.</p>
<p>Uiteindelijk zijn thesauri een middel, geen doel op zich — onze kerntaak is het beheren van erfgoed, niet het bouwen van thesauri. Maar ze helpen ons enorm om te bepalen wat dat erfgoed precies is, erdoorheen te zoeken en het te linken van ons lokale niveau naar het transnationale niveau. Wil je meer weten over hoe we onze thesauri gebouwd hebben, inclusief een aantal do's en don'ts: de oorspronkelijke post verwees hiervoor naar een bibliografische referentie (Mortier e.a., 2017) die we hier niet exact konden overnemen.</p>]]></content>
        <author>
            <name>Koen Van Daele</name>
        </author>
        <category label="Vocabulary" term="Vocabulary"/>
        <category label="Indexing" term="Indexing"/>
        <category label="Search" term="Search"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Geozoekdiensten. Wat ligt er hier?]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/geozoekdiensten</id>
        <link href="https://developers.onroerenderfgoed.be/blog/geozoekdiensten"/>
        <updated>2017-08-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Zoals beloofd in Waar ligt ons Erfgoed? vertellen we je graag meer over onze Geozoekdiensten. Deze bestaan vandaag uit één webservice, gebouwd om exact één vraag te beantwoorden: wat ligt er in een bepaald gebied? Je stuurt een geometrie naar de service, en die antwoordt welk erfgoed er geheel of gedeeltelijk in ligt, als een eenvoudige JSON-structuur met voor elk object een id, een uri, een type en de volledige geometrie.]]></summary>
        <content type="html"><![CDATA[<p>Zoals beloofd in <a class="" href="https://developers.onroerenderfgoed.be/blog/waar-ligt-ons-erfgoed">Waar ligt ons Erfgoed?</a> vertellen we je graag meer over onze Geozoekdiensten. Deze bestaan vandaag uit één webservice, gebouwd om exact één vraag te beantwoorden: <em>wat ligt er in een bepaald gebied?</em> Je stuurt een geometrie naar de service, en die antwoordt welk erfgoed er geheel of gedeeltelijk in ligt, als een eenvoudige JSON-structuur met voor elk object een <code>id</code>, een <code>uri</code>, een <code>type</code> en de volledige <code>geometrie</code>.</p>
<!-- -->
<p>Een voorbeeld zegt meer dan duizend woorden. Stel dat we al het erfgoed willen kennen binnen honderd meter van een punt in Vlaanderen:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">$ curl -X GET --header 'Accept: application/json' 'https://geo.onroerenderfgoed.be/zoekdiensten/afbakeningen?categorie=aanduidingsobjecten&amp;geometrie=%7B%22type%22%3A%20%22Point%22%2C%20%22coordinates%22%3A%20%5B4.7676665601685%2C50.985228897907%5D%7D&amp;buffer=100'</span><br></div></code></pre></div></div>
<p>Dat geeft een lijst resultaten terug, elk een JSON-object met de attributen <code>id</code>, <code>uri</code>, <code>categorie</code>, <code>type</code>, <code>naam</code> en <code>geometrie</code>. Het attribuut <code>naam</code> is een korte omschrijving. De <code>id</code> identificeert het object uniek binnen de dataset waar het uit komt; de <code>uri</code> is gegarandeerd uniek over alle datasets heen — een globale identificator die eigenlijk gewoon een link is naar meer informatie. Vraag je bijvoorbeeld <code>https://inventaris.onroerenderfgoed.be/erfgoedobjecten/134454</code> op via de browser, dan land je op een pagina over het object in de <a href="https://inventaris.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">Inventaris Onroerend Erfgoed</a>. Wil je liever de ruwe data in JSON, stuur dan een <code>Accept: application/json</code> header mee:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">$ curl -L -X GET --header 'Accept: application/json' 'https://id.erfgoed.net/erfgoedobjecten/134454'</span><br></div></code></pre></div></div>
<p>In dit voorbeeld vinden we een erfgoedobject uit de wetenschappelijke inventaris van tuinen en parken — af te leiden uit het attribuut <code>type</code>, een object met een <code>uri</code> en een <code>label</code>. Die uri verwijst naar een term in een thesaurus van <code>inventaristypes</code> of <code>aanduidingstypes</code>; volg de uri voor meer info, bijvoorbeeld dat deze inventaris intern soms ook <code>ile_park</code> genoemd wordt.</p>
<p>De geometrie zelf komt als GeoJSON mee, en omdat die nogal groot kan zijn en niet altijd relevant is, kan je de service vragen die weg te laten:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">$ curl -X GET https://geo.onroerenderfgoed.be/zoekdiensten/afbakeningen?&amp;buffer=100&amp;geef_geometrie=0</span><br></div></code></pre></div></div>
<p>Standaard doorzoekt de service alle soorten objecten, maar je kan filteren met de parameter <code>categorie</code>:</p>
<ul>
<li class=""><strong>Erfgoedobjecten</strong>: de inhoudelijke objecten die met erfgoed te maken hebben — de <code>wetenschappelijke inventarissen</code>.</li>
<li class=""><strong>Aanduidingsobjecten</strong>: de juridische verankeringen van erfgoedobjecten, zowel <code>beschermd</code> als <code>vastgesteld</code> (af te leiden uit de URI van het type), inclusief <code>erfgoedlandschappen</code>, <code>Unesco kernzones</code> en <code>Unesco bufferzones</code>.</li>
<li class=""><strong>Plannen</strong>: momenteel enkel <code>beheersplannen</code>, later uit te breiden met <code>erfgoedrichtplannen</code>.</li>
</ul>
<p>Wil je bijvoorbeeld enkel de aangeduide objecten zien:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">$ curl -X GET https://geo.onroerenderfgoed.be/zoekdiensten/afbakeningen?&amp;buffer=100&amp;geef_geometrie=0&amp;categorie=aanduidingsobjecten</span><br></div></code></pre></div></div>
<p>Voor simpele vragen zoals "geef me al het erfgoed rond een punt" volstaat bovenstaande. Je bent daarbij niet beperkt tot punten — (multi-)polygonen en lijnen kunnen ook, al wordt het dan snel onhandig om de volledige GeoJSON-geometrie in de URL te stoppen. Daarom ondersteunt de service ook een <code>POST</code>-request, waarbij je de vraag in de body van het verzoek meegeeft.</p>
<p>De service is vrij toegankelijk en hergebruik wordt aangemoedigd. Om snel te zien wat ze kan, raden we onze levende API-documentatie aan op <a href="https://geo.onroerenderfgoed.be/zoekdiensten/api_doc" target="_blank" rel="noopener noreferrer" class="">https://geo.onroerenderfgoed.be/zoekdiensten/api_doc</a>.</p>
<p>We hopen dat deze vrij eenvoudige webservice voor jullie even nuttig is als voor ons. Opmerkingen, vragen of extra noden mag je altijd sturen naar <a href="mailto:ict@onroerenderfgoed.be" target="_blank" rel="noopener noreferrer" class="">ict@onroerenderfgoed.be</a>.</p>]]></content>
        <author>
            <name>Koen Van Daele</name>
        </author>
        <category label="Geozoekdiensten" term="Geozoekdiensten"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Waar ligt ons Erfgoed?]]></title>
        <id>https://developers.onroerenderfgoed.be/blog/waar-ligt-ons-erfgoed</id>
        <link href="https://developers.onroerenderfgoed.be/blog/waar-ligt-ons-erfgoed"/>
        <updated>2017-06-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Eén van de meest kenmerkende eigenschappen van onroerend erfgoed is nu net het onroerende karakter ervan. Onze landschappen, monumenten, archeologische sites, ... hebben allemaal een locatie, en op een paar rare uitzonderingen na hebben ze die altijd al gehad. Verplaats je zo'n object van zijn oorspronkelijke plek, dan houdt het op te bestaan. Maar hoe kom je nu te weten wat waar ligt?]]></summary>
        <content type="html"><![CDATA[<p>Eén van de meest kenmerkende eigenschappen van onroerend erfgoed is nu net het <em>onroerende</em> karakter ervan. Onze landschappen, monumenten, archeologische sites, ... hebben allemaal een locatie, en op een paar <a href="https://besluiten.onroerenderfgoed.be/besluiten?rechtsgevolgen=https%3A%2F%2Fid.erfgoed.net%2Fthesauri%2Fbesluittypes%2F19" target="_blank" rel="noopener noreferrer" class="">rare uitzonderingen</a> na hebben ze die altijd al gehad. Verplaats je zo'n object van zijn oorspronkelijke plek, dan houdt het op te bestaan. Maar hoe kom je nu te weten wat waar ligt?</p>
<!-- -->
<p>Als mens heb je daarvoor verschillende opties. Je kan naar ons <a href="https://geo.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">Geoportaal</a> surfen en inzoomen op de plaats die je interesseert om met een paar muisklikken te zien welk erfgoed daar te vinden is. Geen zin om op een kaart te kijken? Dan kan je via onze <a href="https://inventaris.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">Inventaris</a> met een zoekformulier zoeken naar al het erfgoed in een bepaalde straat of gemeente — minder exact misschien, maar je duikt sneller in de geschiedenis en architectuur van je buurt.</p>
<p><img decoding="async" loading="lazy" alt="Het Geoportaal van Onroerend Erfgoed" src="https://developers.onroerenderfgoed.be/assets/images/geoportaal-77a2f3d8681f593738fd6b9a4ff28804.png" width="1535" height="876" class="img_ev3q"></p>
<p><em>Alle geografische informatie over onroerend erfgoed vind je op <a href="https://geo.onroerenderfgoed.be/" target="_blank" rel="noopener noreferrer" class="">https://geo.onroerenderfgoed.be</a></em></p>
<p>Voor wie liever zelf aan de slag gaat: onze erfgoedinventarissen en de beschermde en vastgestelde aanduidingsobjecten kan je <a href="http://inventaris.onroerenderfgoed.be/portaal/kaarten" target="_blank" rel="noopener noreferrer" class="">downloaden als GIS-bestanden</a>, telkens met een URL naar meer informatie per geometrie. Handig zonder netwerkverbinding, maar wel elke nacht opnieuw gegenereerd — na een dag zijn je bestanden dus alweer verouderd. Wil je steeds de actuele versie, dan kan je in plaats daarvan onze OGC-webservices raadplegen via onze <a href="https://geo.onroerenderfgoed.be/geoserver" target="_blank" rel="noopener noreferrer" class="">Geoserver</a>: die geven je, in tegenstelling tot de downloads, altijd de meest recente stand van zaken.</p>
<p>Wie voldoende technisch onderlegd is en onze data rechtstreeks in eigen systemen wil gebruiken, kan tot slot ook terecht bij onze Geozoekdiensten. Deze bestaan vandaag uit één enkele webservice, gebouwd om exact één vraag te beantwoorden: <em>wat ligt er in een bepaald gebied?</em> Je stuurt een geometrie naar de service, en die geeft je terug welk erfgoed er geheel of gedeeltelijk in die geometrie ligt — als een eenvoudige JSON-structuur met voor elk object een <code>id</code>, een <code>uri</code>, een <code>type</code> en de volledige <code>geometrie</code>. We gebruiken deze zoekdienst zelf al een tijdje intern, en delen ze nu graag met jullie.</p>
<p>In een volgend bericht (<a class="" href="https://developers.onroerenderfgoed.be/blog/geozoekdiensten">Geozoekdiensten. Wat ligt er hier?</a>) leggen we exact uit hoe je deze zoekdienst kan gebruiken.</p>]]></content>
        <author>
            <name>Koen Van Daele</name>
        </author>
        <category label="Geoportaal" term="Geoportaal"/>
        <category label="Geoserver" term="Geoserver"/>
        <category label="Geozoekdiensten" term="Geozoekdiensten"/>
    </entry>
</feed>