Het EcoGRID Logisch Datamodel voor Release 1
Het EcoGRID Logisch Datamodel voor Release 1
Het EcoGRID Logisch Datamodel voor Release 1
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Het</strong> <strong>EcoGRID</strong> <strong>Logisch</strong> <strong>Datamodel</strong> <strong>voor</strong> <strong>Release</strong> 1<br />
Lourens Veen (L.E.Veen@uva.nl)<br />
Guido van Reenen (G.B.A.vanReenen@uva.nl)<br />
Institute for Biodiversity and Ecosystem Dynamics<br />
Universiteit van Amsterdam<br />
Nieuwe Achtergracht 166<br />
1018 WV, Amsterdam, The Netherlands<br />
Amsterdam<br />
November 2008
Inleiding<br />
<strong>Het</strong> doel van dit document is het vaststellen van een logisch datamodel dat als basis kan dienen <strong>voor</strong><br />
de uitwisselingsstandaarden die gebruikt gaan worden <strong>voor</strong> <strong>EcoGRID</strong> <strong>Release</strong> 1. <strong>Het</strong> is niet<br />
ontworpen <strong>voor</strong> een specifieke technologie, maar is een algemene beschrijving van de resultaten<br />
van veldwaarnemingen van soorten. Technische datamodellen <strong>voor</strong> databases, webservices etcetera<br />
kunnen van dit logisch datamodel afgeleid worden.<br />
Ten opzichte van het <strong>EcoGRID</strong> datamodel versie 1 zijn er enkele veranderingen en verbeteringen<br />
doorgevoerd die in het afgelopen jaar naar voren gekomen zijn. Deze zijn in juni verzameld, en in<br />
de afgelopen weken verder uitgewerkt en in dit document opgenomen.<br />
Dit document is inhoudelijk compleet, maar vanwege de grote haast die er op dit moment is<br />
ontbreken er nog wat <strong>voor</strong>beelden en uitleg die <strong>voor</strong> optimale communicatie toegevoegd moeten<br />
worden. Dit document is dus een prerelease die gevolgd gaat worden door een definitieve versie.<br />
Natuurlijk staat NDFF/<strong>EcoGRID</strong> niet stil. Dit document is dan ook geen einde maar een begin, van<br />
waaruit we verder gaan bouwen aan een uitgebreider systeem <strong>voor</strong> de volgende releases. Ideeën,<br />
op- en aanmerkingen en constructieve kritiek blijven dan ook welkom.<br />
Lourens Veen en Guido van Reenen<br />
17 november 2008
Overzicht<br />
Afbeelding 1: <strong>Het</strong> <strong>EcoGRID</strong> <strong>Datamodel</strong> <strong>voor</strong> <strong>Release</strong> 1
Codes<br />
Afbeelding 2: Module Codes<br />
Een groot deel van de in dit logisch datamodel bij een waarneming gebruikte attributen zijn<br />
gedefinieerd op een nominale, hiërarchische schaal. Dit betekent dat er verschillende<br />
<strong>voor</strong>gedefinieerde waarden kunnen worden ingevuld. Deze waarden, ofwel codes, worden centraal<br />
geregistreerd, maar niet altijd centraal gedefinieerd. Naast de standaardcodes bestaat er de<br />
mogelijkheid om eigen codes toe te voegen.<br />
Bovendien ontwikkelen codesystemen zich in de loop der tijd, waarbij nieuwe codes kunnen<br />
worden toegevoegd, bestaande codes kunnen worden vervangen of codes kunnen worden<br />
verschoven in de hiërarchie.<br />
Codes kunnen op verschillende manieren worden weergegeven. In de taxonomie hebben we<br />
bij<strong>voor</strong>beeld Latijnse en wetenschappelijke namen (Latijnse naam met auteursaanduiding), maar<br />
ook Nederlandse namen. Daarom kunnen er per code verschillende weergaven zijn.
Codedefinities<br />
Naam Attribuut Type Definitie<br />
identity URI De unieke identifier van de code.<br />
name string Een korte naam van de code.<br />
description string Een precieze omschrijving van de code.<br />
Tabel 1: Attributen van de klasse Code<br />
Elke code heeft een identiteit en een omschrijving. De eerste zorgt er<strong>voor</strong> dat de code <strong>voor</strong><br />
computers te onderscheiden is van andere codes, de tweede is een <strong>voor</strong> mensen te begrijpen<br />
aanduiding.<br />
Identiteit<br />
Om verwarring te <strong>voor</strong>komen is het noodzakelijk dat elke code een unieke identiteit heeft. Doordat<br />
het mogelijk is om zelf codes toe te voegen aan de centraal gedefinieerde codes ontstaat er een<br />
situatie waarin de totale verzameling codes door verschillende partijen wordt gedefinieerd. Codes<br />
zijn daarom gegroepeerd in namespaces, één per organisatie. Elke namespace heeft een unieke<br />
aanduiding, en binnen een namespace zijn de codes uniek. Elke code kan zo geïdentificeerd worden<br />
door zijn namespace en zijn eigen aanduiding, die worden samengevoegd tot een URI.<br />
Omschrijving<br />
Naast een (technische) identiteit heeft een code een definitie, bestaande uit een name en een<br />
description. Deze aanduidingen fungeren als de basisdefinitie van de code. Voor weergave in<br />
verschillende talen en notaties is er een aparte <strong>voor</strong>ziening (hieronder beschreven), die meestal<br />
gebruikt zal worden bij het weergeven van waarnemingen aan gebruikers.<br />
Relaties met andere codes<br />
Er zijn twee relaties tussen codes, parent en correct geheten. Parent geeft een ouder-kindrelatie<br />
weer, zodat er een hiërarchie van codes ontstaat. Een correct-relatie van code A naar code B geeft<br />
aan dat elke A een B is, en dat code A niet meer gebruikt behoort te worden en is vervangen door<br />
code B.<br />
Talen en Weergaven<br />
Naam Attribuut Type Definitie<br />
identity URI De unieke identifier van de taal.<br />
name string De naam van de taal in de taal zelf.<br />
Tabel 2: Attributen van de klasse Language<br />
Een code kan op verschillende manieren worden weergegeven. Hiertoe kunnen verschillende talen<br />
en weergaven worden gedefinieerd. Een taal heeft een identiteit (identity) en een naam (name, de<br />
naam van die taal in die taal). Een taal is hier niet alleen een menselijke taal, maar kan ook een<br />
notatiewijze zijn (bijv. de wetenschappelijke schrijfwijze).
Naam Attribuut Type Definitie<br />
displayname string Een korte weergavenaam van de code.<br />
description string Een precieze omschrijving van de code.<br />
Tabel 3: Attributen van de associatieklasse Representation<br />
Een weergave bestaat uit een korte displayname, die bij<strong>voor</strong>beeld geschikt is om in een tabel weer<br />
te geven, en een langere, preciezere description van de code. Deze zijn precieze vertalingen van<br />
respectievelijk de name en description van de code waar dit een weergave van is.<br />
Een weergave is een relatie tussen de code die wordt weergegeven en de taal waarin dat wordt<br />
gedaan. Voor elke combinatie van code en weergave is er maximaal één representatie.<br />
Categorieën<br />
Naam Attribuut Type Definitie<br />
identity URI De unieke identificatie van de<br />
categorie.<br />
name string De naam van de categorie.<br />
Tabel 4: Attributen van de klasse Category<br />
Categorieën bieden de mogelijkheid om codes, waaronder taxa, in willekeurige groepen in te delen.<br />
Groeperen kan op gemeenschappelijke eigenschappen, maar ook op niet-natuurlijke kenmerken<br />
zoals het <strong>voor</strong>komen op een beleidslijst.<br />
Veranderingen<br />
Ten opzichte van het <strong>EcoGRID</strong> datamodel versie 1 hebben de codes een identiteit erbij gekregen die<br />
geschikt is om te gebruiken in de communicatie tussen verschillende systemen, en die aansluit bij<br />
het gebruik van webservices. Er is de mogelijkheid toegevoegd om hiërarchische codesystemen te<br />
gebruiken. Ook het kunnen weergeven van codes in verschillende talen is nieuw, hoewel deze<br />
functionaliteit al bestond <strong>voor</strong> taxa (de common names). Dit is nu gegeneraliseerd en ook<br />
beschikbaar <strong>voor</strong> de codes.
Taxonomie<br />
Eén van de belangrijkste attributen bij elke waarneming is de waargenomen soort. De module<br />
Taxonomy definieert de codes die gebruikt worden om taxa weer te geven. Een groot deel van de<br />
functionaliteit is al in de module Codes gedefinieerd. Deze module voegt daar enkele<br />
taxonomiespecifieke zaken aan toe.<br />
Taxa<br />
Naam Attribuut Type Definitie<br />
identity URI De unieke identifier van het taxon.<br />
name String De supraspecifieke naam van het taxon.<br />
specificEpithet String <strong>Het</strong> specifieke epithet van het taxon.<br />
infraspecificEpithet String <strong>Het</strong> infraspecifieke epithet van het taxon.<br />
description String Een (eventuele) omschrijving van het taxon.<br />
authors String De auteursaanduiding behorende bij het taxon.<br />
Tabel 5: Attributen van de klasse Taxon, inclusief van Code geërfde attributen<br />
In dit model is de klasse taxon afgeleid van de klasse code, omdat ze <strong>voor</strong> de techniek eenzelfde<br />
functie vervullen. Taxa hebben dus net als codes een identiteit. Daarnaast hebben ze ook een naam<br />
en een omschrijving.<br />
De naam van een taxon bestaat uit één of meer elementen, die we apart modelleren. <strong>Het</strong> veld name<br />
van de code gebruiken we <strong>voor</strong> de supraspecifieke naam van het taxon. Voor hogere taxa is dit het<br />
enige deel van de naam. Voor taxa op soortniveau en lager wordt hier de naam van het genus<br />
ingevuld. <strong>Het</strong> specifieke en infraspecifieke epithet komen in dit geval in de velden specificEpithet<br />
en infraspecificEpithet terecht.<br />
De description geeft een precieze omschrijving van de soort, ondersoort, het hogere taxon, etc. dat<br />
met deze naam wordt aangeduid. De auteursaanduiding tot slot staat in het veld author.<br />
Weergaven<br />
Afbeelding 3: Module Taxonomy<br />
Ook in de taxonomie kunnen er meerdere weergaven zijn van een taxon. Hieronder vallen de
Latijnse naam, de wetenschappelijke naam (Latijnse naam inclusief auteursaanduiding), en lokale<br />
(bijv. Nederlandse) namen. Synoniemen, die bij<strong>voor</strong>beeld ontstaan door naamswijzigingen, worden<br />
niet via het weergavemechanisme verwerkt maar via de correct-relatie.<br />
Deze weergaven kunnen deels gegenereerd worden uit de attributen van het taxonobject en de<br />
daarbij aangegeven rangen. Voor zover mogelijk moet dit ook automatisch gebeuren om uit de pas<br />
lopen te <strong>voor</strong>komen. De vertalingen zijn nuttig bij het weergeven van individuele taxa en het<br />
zoeken op naam, de meer structurele representatie komt van pas bij het afhandelen van<br />
ingewikkelder vragen en het weergeven van taxa in de context van de taxonomie.<br />
Rangen<br />
Taxa onderscheiden zich ook van de (overige) codes doordat ze een rang met een naam hebben.<br />
Rangen zijn codes, echter de correct-relatie en de description worden niet gebruikt 1 . <strong>Het</strong> name<br />
attribuut bevat de Latijnse naam van de rang. De parent-relatie geeft de hiërarchie in de rangen<br />
weer. Net als bij de overige codes kunnen verschillende lokale weergaven worden toegevoegd.<br />
Veranderingen<br />
De functionaliteit van de taxonomie is gelijk gebleven, maar de manier waarop taxa worden<br />
opgeslagen is verbeterd. Een enkel taxonobject bevat nu alle informatie die nodig is om de naam<br />
van dat taxon af te leiden, en het is eenvoudiger geworden om codes te zoeken. Rangen kunnen nu<br />
in verschillende talen worden weergegeven, en hun identiteit is gescheiden van hun hiërarchische<br />
relatie. Door taxa te modelleren als uitgebreide codes is de beschrijving eenvoudiger geworden.<br />
1 Merk op dat dit beter anders gemodelleerd kan worden, met een TranslatableEntity klasse waar de representationrelatie<br />
aan hangt, en waar zowel Code als Rank die relatie en het identity-attribuut van overerven. Rank krijgt dan<br />
zelf nog een parent-relatie toegevoegd. Dit is in de diagrammen in dit document niet gedaan om de interdisciplinaire<br />
communicatie te vereenvoudigen, maar kan in afgeleide technische datamodellen beter wel doorgevoerd worden.
Waarnemingen<br />
Afbeelding 4: Module Survey<br />
De module Survey is het hart van dit datamodel. In deze module worden de resultaten van gedane<br />
waarnemingen opgeslagen. Deze module gebruikt alle drie de andere modules als referentie om<br />
waarnemingen tegen te definiëren.<br />
Een soortwaarneming is een gebeurtenis, waarbij een waarnemer de abundantie 2 van een bepaald<br />
object in een bepaalde omgeving vaststelt. Afhankelijk van de onderzoeksmethode wordt een deel<br />
van de aanwezige objecten ook waargenomen. Bij het vastleggen van het resultaat van een<br />
soortwaarneming worden de eigenschappen van de omgeving en het object opgeslagen, en de<br />
vastgestelde hoeveelheid en de manier waarop die is vastgesteld.<br />
Een waarneming wordt altijd gedaan op een bepaalde (geografische) locatie, en tijdens of in een<br />
bepaalde periode. De biotoop waarin de objecten zijn geobserveerd kan ook worden vastgelegd.<br />
Een waarneming wordt gedaan aan een soort, waarvan iets (individuen, kolonies, resten, sporen,<br />
etc.) wordt geteld (dit levert de eenheid behorende bij de telwaarde). <strong>Het</strong> waargenomen object kan<br />
een bepaald geslacht hebben, zich in een bepaald levensstadium bevinden, en gedrag vertonen.<br />
De locatie wordt onderzocht volgens een bepaalde onderzoeksmethode, volgens welke een bepaald<br />
2 Van Dale: mate waarin iets in een bepaald gebied of systeem <strong>voor</strong>komt, bijv. het aantal individuen van een bepaalde<br />
diersoort of het percentage van een element in de natuur.
deel van de aanwezige objecten wordt waargenomen. Deze worden vervolgens gedetermineerd<br />
volgens een determinatiemethode.<br />
De hoeveelheid (aantal, bedekking) objecten wordt vervolgens vastgesteld, en het resultaat geeft de<br />
waargenomen abundantie van het object in de omgeving.<br />
Naam<br />
attribuut<br />
Schaal/Type Definitie<br />
Identiteit identity URI De unieke identifier van de waarneming.<br />
Waar /<br />
Wanneer<br />
Wat<br />
Hoe<br />
location Cartesisch /<br />
Interval<br />
De geografische locatie van de onderzochte omgeving.<br />
period Interval De tijd op of gedurende welke het onderzoek plaatsvond.<br />
biotope Nominaal,<br />
Hiërarchisch<br />
species Nominaal,<br />
Hiërarchisch<br />
unit Nominaal,<br />
Hiërarchisch<br />
sex Nominaal,<br />
Hiërarchisch<br />
lifeStage Nominaal,<br />
Hiërarchisch<br />
activity Nominaal,<br />
Hiërarchisch<br />
surveyMethod Nominaal,<br />
Hiërarchisch<br />
determination<br />
Method<br />
Nominaal,<br />
Hiërarchisch<br />
De biologische omgeving waarin de objecten zich<br />
bevonden.<br />
De taxonomische soort waaraan de waarneming gedaan is<br />
of waarop de waarneming betrekking heeft.<br />
De teleenheid; ofwel wát van de soort er is geteld.<br />
<strong>Het</strong> geslacht van de waargenomen objecten.<br />
<strong>Het</strong> levensstadium waarin het object zich bevindt, zich<br />
bevond toen het doodging, of waarvan een spoor is<br />
gevonden.<br />
<strong>Het</strong> gedrag dat door het object vertoond wordt.<br />
Hoe de omgeving onderzocht is.<br />
<strong>Het</strong> zintuig dat gebruikt is <strong>voor</strong> het waarnemen en<br />
determineren, en eventuele hulpapparatuur.<br />
Hoeveel abundance Absoluut De waargenomen hoeveelheid objecten.<br />
Tabel 6: Een waarneming in <strong>EcoGRID</strong><br />
Voor de attributen die op een nominale, hiërarchische schaal zijn gedefinieerd, zijn in de modules<br />
Codes en Taxonomy overeenkomstige klassen gedefinieerd. Deze attributen worden dus als relaties<br />
gemodelleerd. De attributen location, period en abundance zijn deelklassen, waarin de waarde en<br />
de onzekerheid daarin vastgelegd kunnen worden.<br />
Onzekerheid<br />
Bij het doen van waarnemingen speelt onzekerheid een rol. Soms is een soort in het veld niet<br />
precies te determineren, zijn er teveel individuen om ze precies te tellen, of is niet exact vastgelegd<br />
waar en wanneer de waarneming gedaan is.<br />
Voor alle attributen (met uitzondering van identity, uiteraard) van een waarneming wordt de<br />
onzekerheid in de meting impliciet vastgelegd. Voor de nominale schalen wordt dit gedaan door<br />
codes op diverse detailniveaus te definiëren; door deze onderling in een hiërarchie te verbinden<br />
wordt het zoeken vereenvoudigd.
Voor de attributen period en location wordt er een bereik (minimum en maximum) gegeven, en een<br />
aanduiding van of de gemeten abundantie ergens binnen het bereik is waargenomen (dan is er<br />
sprake van onzekerheid), of dat de werkelijke waarde het hele bereik is (dan is er een heel gebied<br />
afgezocht of heeft men gedurende de hele periode staan tellen).<br />
Naam Attribuut Type Definitie<br />
start datetime <strong>Het</strong> tijdstip waarop de periode begint.<br />
stop datetime <strong>Het</strong> tijdstip waarop de periode eindigt.<br />
fullySampled boolean Geeft aan of de gemeten abundantie over de hele periode gemeten is<br />
(true), of dat het een momentopname ergens gedurende de periode<br />
betreft (false).<br />
Tabel 7: De klasse Period<br />
Naam Attribuut Type Definitie<br />
geometry geometry De geografische locatie waarop of waarbinnen de<br />
waargenomen objecten zich bevonden.<br />
fullySampled boolean Geeft aan of de gemeten abundantie over het hele<br />
gebied gemeten is (true), of dat het ergens binnen het<br />
gebied gemeten is (false).<br />
Tabel 8: De klasse Location<br />
De abundantie wordt weergegeven op een absolute schaal, wederom met een minimum en een<br />
maximum. Die geven hier altijd een onzekerheid aan.<br />
Naam Attribuut Type Definitie<br />
min real De ondergrens van het interval.<br />
max real De bovengrens van het interval.<br />
Tabel 9: De klasse Abundance<br />
In de praktijk is het bij het doen van veldwaarnemingen niet altijd eenvoudig om een precieze<br />
hoeveelheid of bedekkingspercentage vast te stellen. Vooral bij het inventariseren van begroeiing<br />
worden daarom andere, nominale schalen gebruikt, en de daarmee gedane waarnemingen moeten<br />
ook kunnen worden opgeslagen.<br />
Hoewel deze schalen goed aansluiten bij wat men in het veld aantreft, zijn ze niet erg bruikbaar<br />
<strong>voor</strong> kwantitatieve analyse. Omdat we wel kwantitatieve analyses willen maken, moet er een<br />
vertaalslag plaatsvinden. Omdat de waarden op deze ordinale schalen vaak meer bevatten dan alleen<br />
de hoeveelheid van <strong>voor</strong>komen moet ook de oorspronkelijke code bewaard blijven.<br />
Voor elke schaal wordt een Unit-code (object) gedefinieerd waarin de eenheid wordt weergegeven<br />
waarin de kwantitatieve representatie wordt uitgedrukt. De numerieke abundantieattributen worden<br />
gevuld met de numerieke vertaling van de hoeveelheidscode. Omdat deze ordinale schalen niet<br />
algemeen toepasbaar zijn wordt het attribuut <strong>voor</strong> de hoeveelheidscode niet aan het algemene<br />
datamodel toegevoegd, maar als setspecifiek attribuut opgenomen.<br />
Gebiedsonderzoeken<br />
De klasse Survey geeft een gebiedsonderzoek weer. <strong>Het</strong> attribuut area bevat het onderzochte gebied,<br />
Via de relatie results is de DataSet waarin de resultaten van het onderzoek zijn samengebracht te<br />
vinden.
Naam Attribuut Type Definitie<br />
identity URI De unieke identiteit van het onderzoek.<br />
area geometry <strong>Het</strong> onderzochte gebied.<br />
Tabel 10: De klasse Survey<br />
Datasets<br />
Naam Attribuut Type Definitie<br />
identity URI De unieke identifier van de dataset.<br />
name string Een korte naam van de dataset.<br />
description string Een precieze omschrijving van de dataset.<br />
Tabel 11: De klasse DataSet<br />
Waarnemingen worden bij opslag over het algemeen gegroepeerd, zodat er een goed geordende<br />
gegevensverzameling ontstaat. Afhankelijk van hoe de inwinning georganiseerd was kunnen<br />
verschillende manieren van groeperen zinvol zijn.<br />
Waarnemingen worden in <strong>EcoGRID</strong> verzameld in datasets. Een dataset heeft een naam en een<br />
beschrijving. Daarnaast is er een parent-relatie tussen datasets, die het mogelijk maakt datasets<br />
hiërarchisch te groeperen. Verder heeft een dataset een owner- en een maintainer-relatie met een<br />
Contact, waarmee eigenaar en beheerder van de dataset worden vastgelegd.<br />
Kwaliteitsaanduiding<br />
Naam<br />
Attribuut<br />
Type/Schaal Definitie<br />
validatorVersion string <strong>Het</strong> versienummer van de gebruikte validatiedienst.<br />
validationDate datetime De datum waarop de waarneming gevalideerd is.<br />
reliability Nominaal,<br />
Hiërarchisch<br />
probability Nominaal,<br />
Hiërarchisch<br />
In hoeverre de waarnemer volgens de instructies heeft gehandeld,<br />
de determinatie goed gedaan is en de waarneming goed is<br />
ingevoerd.<br />
De a priori kans dat deze waarneming gedaan zou zijn, gegeven<br />
dat een waarnemer in de aangegeven periode de aangegeven<br />
locatie op de aangegeven manier zou onderzoeken.<br />
byExpert boolean Geeft aan of dit validatieresultaat door een expert opgesteld is (in<br />
tegenstelling tot een geautomatiseerd systeem).<br />
Tabel 12: De klasse ValidationResult<br />
De kwaliteitsaanduiding geeft een indicatie van de kwaliteit van een waarneming. Dit is niet<br />
hetzelfde als de geschiktheid <strong>voor</strong> een bepaald doel: die is afhankelijk van het doel en dus geen<br />
eigenschap van de waarneming alleen. Ook is dit geen indicatie van de <strong>voor</strong>tgang in een<br />
validatieproces 3 .<br />
Wel is er een indicatie van de betrouwbaarheid en de waarschijnlijkheid van een waarneming.<br />
Omdat deze waarden nooit exact uitgerekend kunnen worden en we willen <strong>voor</strong>komen dat de<br />
nauwkeurigheid groter is dan ze lijkt, worden deze waarden op een nominale schaal weergegeven.<br />
3 Dit beschouwen we als een interne aangelegenheid van de component(en) die de validatie uitvoeren. De<br />
proces<strong>voor</strong>tgang wordt niet uitgeleverd aan afnemers en is dus niet in dit model opgenomen.
Deze attributen worden hier dus als relaties met de klassen Reliability en Probability gemodelleerd.<br />
<strong>Het</strong> versienummer van de gebruikte validatiedienst wordt opgeslagen om bij versies waarin fouten<br />
zijn ontdekt te kunnen achterhalen wat er opnieuw gevalideerd moet worden. Ook het tijdstip van<br />
validatie wordt vastgelegd.<br />
<strong>Het</strong> attribuut byExpert geeft aan of de validatie door een expert gedaan is. Deze informatie is van<br />
belang om te kunnen <strong>voor</strong>komen dat een waarneming meer dan één keer bij een expert langs komt.<br />
Veranderingen<br />
Ten opzichte van het <strong>EcoGRID</strong> datamodel versie 1 zijn er een aantal verbeteringen en wijzigingen<br />
doorgevoerd. <strong>Het</strong> attribuut sex is afgesplitst van het attribuut life stage. <strong>Het</strong> count type attribuut is<br />
gegeneraliseerd naar het attribuut unit, waardoor waarnemingen van sporen en resten beter<br />
gemodelleerd kunnen worden. Een deel van de functionaliteit van het observation type attribuut is<br />
hierin terecht gekomen. De overige functionaliteit is verdeeld over de nieuwe attributen survey<br />
method en determination method. Hiermee is ook aan een belangrijke informatiebron <strong>voor</strong> de<br />
validatie, namelijk de manier waarop de inventarisatie gedaan is, eenduidig beschikbaar gekomen.<br />
Relaties tussen waarnemingen zijn geheel nieuw, en geven invulling aan een aantal in het afgelopen<br />
jaar naar voren gekomen wensen.<br />
In het datamodel versie 1 worden waarnemingen gegroepeerd in sessies en projecten. Met het<br />
afsplitsen van de administratieve gegevens is de focus van het datamodel volledig komen te liggen<br />
op het modelleren van de resultaten van projecten en sessies. Bovendien bleek dat in sommige<br />
meetnetten een diepere hiërarchie beter zou passen, terwijl <strong>voor</strong> losse waarnemingen met een enkele<br />
groepering kon worden volstaan. Waarnemingen worden hier dus gegroepeerd in datasets, die op<br />
zich weer gegroepeerd kunnen worden in hogere datasets. <strong>Het</strong> beheer van gegevenscollecties met<br />
behulp van een van dit logisch datamodel afgeleid databasemodel wordt zo verbeterd, en de<br />
resultaten van diverse soorten meetmethoden kunnen netjes worden ingepast. Bovendien is het<br />
model eenvoudiger geworden.<br />
<strong>Het</strong> is nu mogelijk om expliciet aan te geven wie de eigenaar en wie de beheerder is van een<br />
dataset. Daarmee komen we tegemoet aan organisaties die waarnemingen van anderen beheren<br />
en/of gegevens willen delen.<br />
Tot slot is er aan de waarneming een kwaliteitsaanduiding toegevoegd. Deze bevat alle gegevens<br />
die nodig zijn om, samen met de overige attributen, afnemers en productontwerpers een beeld te<br />
geven van de bruikbaarheid van een waarneming <strong>voor</strong> hun specifieke probleem.
Contactinformatie<br />
Van de eigenaar en beheerder van een dataset, en de validator van een waarneming worden de<br />
contactgegevens vastgelegd. Hoe dit gebeurt is vastgelegd in de module Contacts. <strong>Het</strong> doel is hier<br />
niet om alle waarnemers te gaan registreren 4 , maar om van enkele organisaties en eventueel<br />
individuen (<strong>voor</strong>al eigenaars van datasets waarschijnlijk) vast te kunnen leggen hoe men contact<br />
met ze kan opnemen.<br />
Naam Attribuut Type Definitie<br />
identity URI De unieke identifier van deze<br />
contactgegevens.<br />
name string De naam van de organisatie.<br />
address string Straat en huisnummer van het postadres.<br />
postalCode string Postcode van het postadres.<br />
town string Plaatsnaam van het postadres.<br />
country string Landnaam van het postadres.<br />
telephone string Telefoonnummer van de organisatie.<br />
email string Emailadres van de organisatie.<br />
worldWideWeb URI Webadres van de organisatie.<br />
Tabel 13: De klasse Contact<br />
Veranderingen<br />
Omdat persoonlijke gegevens van waarnemers niet zomaar uitgewisseld mogen worden, en er<br />
bovendien geen reden is om deze aan een afnemer van gegevens ter beschikking te stellen, zijn deze<br />
uit het model verdwenen. Aanbieders kunnen deze gegevens uiteraard bijhouden als ze dat willen,<br />
maar doen dat in een eigen systeem en zijn geheel vrij in de inrichting daarvan.<br />
In plaats van de observers- en van de organisations-tabel is er een object contact, dat<br />
contactinformatie bevat. Hierdoor kunnen nu ook de contactgegevens van organisaties worden<br />
opgeslagen. Deze constructie is precies genoeg om eigenaar, beheerder en validator vast te kunnen<br />
leggen.<br />
4 Informatie over de waarnemer en andere betrokkenen is nog niet in dit datamodel opgenomen omdat we nog te<br />
weinig inzicht hebben in wat er precies nodig is en hoe we dat het beste kunnen aanpakken. Dit zal dus in de<br />
toekomst worden toegevoegd.
Appendix: Relaties tussen Waarnemingen<br />
Deze appendix beschrijft een geplande uitbreiding die evenwel nog niet in het datamodel <strong>voor</strong><br />
<strong>Release</strong> 1 is opgenomen. De reden om het nog even weg te laten is dat we nog niet weten wat<br />
precies de implicaties zijn van deze constructie. <strong>Het</strong> is de bedoeling om dit in de context van het<br />
project dataconversie verder uit te zoeken, en dan zodra het kan deze uitbreiding toe te voegen.<br />
Complexe Waarnemingen<br />
Soms worden er waarnemingen gedaan die niet eenvoudig in een reeks attributen zijn vast te<br />
leggen. Vooral meetnetten leveren vaak wat complexere waarnemingsscenario's op. In dit model<br />
wordt hierin <strong>voor</strong>zien door ze te splitsen in enkelvoudige waarnemingen, die elk individueel correct<br />
maar onvolledig zijn, en deze enkelvoudige waarnemingen vervolgens te koppelen zodat de<br />
complete informatie af te leiden is.<br />
Zo kan een waarneming van de vorm “gebied X is onderzocht en op de punten p, q en r binnen X<br />
bevond zich een individu” worden gesplitst in een waarneming van drie individuen in gebied X, en<br />
drie waarnemingen van een enkel individu op punten p, q en r. Deze waarnemingen worden<br />
vervolgens gekoppeld via een “is een precisering van”-relatie. De waarneming wordt dan<br />
opgeslagen als “In gebied X bevonden zich drie individuen, en wel op punten p, q en r”. Bovendien<br />
is elk van de vier enkelvoudige waarnemingen op zich correct.<br />
Dubbelingen<br />
Er zijn soms bijzondere situaties waarin door verschillende personen een groot aantal<br />
waarnemingen wordt gedaan van hetzelfde individu. Ook gebeurt het dat er van een enkele<br />
waarneming meerdere records bestaan in een gegevensverzameling. Zeker in het eerste geval (waar<br />
het duplicaat niet zomaar gewist kan worden) is het om misinterpretatie te <strong>voor</strong>komen belangrijk<br />
dat er aangegeven kan worden dat het om een dubbeling gaat.<br />
Ook dit kan worden opgelost door een relatie aan te brengen tussen de observaties, in dit geval een<br />
“zelfde individu(en)”-relatie.<br />
Afgeleide Gegevens<br />
Naast directe waarnemingen worden er door bij<strong>voor</strong>beeld de PGO's ook van waarnemingen<br />
afgeleide gegevens over het <strong>voor</strong>komen van soorten uitgewisseld. Als de primaire gegevens ook<br />
beschikbaar zijn dan kan er een “afgeleid van”-relatie worden gelegd, zodat bij<strong>voor</strong>beeld bij een<br />
correctie van de brongegevens de verwerking opnieuw gedaan kan worden. In dit geval geeft het<br />
survey type attribuut de gebruikte verwerkingsmethode weer.<br />
Observation Relation<br />
De drie bovengenoemde scenario's, en potentieel andere, worden opgelost door het Observation<br />
Relation object. Dit object legt een gerichte relatie van een bepaald relatietype tussen twee<br />
waarnemingen. Voor elk relatietype wordt een code gedefinieerd.<br />
Dit is een flexibele constructie, die geen wijziging van het datamodel vereist als er een nieuw soort<br />
relatie nodig is. <strong>Het</strong> is daarmee ook een risicovolle constructie, omdat het nog niet duidelijk is wat<br />
<strong>voor</strong> soorten relaties er allemaal kunnen zijn, en een grote hoeveelheid relatietypen het correct<br />
interpreteren van gegevens flink bemoeilijkt. <strong>Het</strong> lijkt daarom verstandig om het toevoegen en<br />
wijzigen van relatietypen <strong>voor</strong>af te laten gaan door een breed overleg, waarbij niet alleen de<br />
codecommissie maar ook de datamodelbeheerders, architectuurcommissie en aanbieders van<br />
gegevens betrokken zijn.