-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Modelleren van metagegevens en historie op attribuutniveau #14
Comments
Achtergrond: In de SOR wordt niet meer gesproken over formele en materiële historie. Reden hiervoor is dat de betekenis van deze eigenschappen momenteel op verschillende manieren wordt geïnterpreteerd in de registraties. Daarom wordt in de context van het SOR gesproken over tijdslijn ‘registratie’ en ‘geldigheid’. Het gaat hierbij om het moment dat een gegeven wordt opgenomen in de registratie, en het moment dat het is geconstateerd in de werkelijkheid. Deze constatatie komt dus niet altijd overeen met wanneer veranderingen in de werkelijkheid zijn opgetreden (dit lijkt nog wel het geval te zijn voor materiële historie zoals beschreven in de MIM/NEN 3610 2011). Definities terzijde, in de MIM wordt op het metaniveau een mechanisme hiervoor gebruikt - Voor deze use cases, waarbij historie/metagegevens op attribuutniveau moeten worden bijgehouden, is een gestandaardiseerde oplossing nodig. Het model voor de SOR moet beheersbaar en begrijpelijk blijven, terwijl het registreren van deze gegevens dus ook mogelijk moet zijn. Oplossingsrichtingen: modelconstruct introduceren voor het registreren van ‘gegevens over gegevens’ (mogelijke metamodel extensie voor MIM)*, complexiteit vermijden door verschillende modellen te creëren, richtlijnen opzetten voor het omgaan met historie tijdens uitwisseling van gegevens. *Het MIM vocabulaire kan ook uitgedrukt worden in Linked Data. In de NTA-8035 worden mogelijkheden behandeld voor het verwerken van metagegevens op attribuutniveau in de modellering (Bekend RDF-issue: triple level data). Het is nu nog onduidelijk of, met de gesuggereerde workarounds, nog kan worden voldaan aan de minimale eisen die worden gesteld aan MIM vocabulaires. |
Relevante passages uit het DiS Geo eisen document (Werkversie 05 oktober 2020):
|
Relevante passages uit DiS Geo: Architectuurbeschrijving Voorzieningen Samenhangende Objectenregistratie (Consultatieversie 15 november 2020):
|
Relevante passages/stellingen uit Notitie uitwerking historiemodel voor SOR versie 0.6:
|
Relevante passages/stellingen uit Notitie uitwerking metainformatie voor SOR versie 0.7:
|
We hebben de werkgroep inhoud gevraagd om voorbeelden van use cases waarvoor metadata op attribuutniveau nodig is. Deze drie ontvangen: 1.
2.
3.
|
Er is een belangrijk verschil tussen:
Er zijn immers zeker koppelvlakken denkbaar waarin je deze functionele vraag gewoon kan beantwoorden, ook al kent de registratie alleen historie op het niveau van voorkomens. Tot nu toe is mijn ervaring ook dat vrijwel niemand historie op attribuut niveau vraagt. Ik krijg dus de indruk dat de 10% van de gevallen minder dan 10% is, en dat de voorziening die de functionele vraag beantwoord gewoon dat antwoord hoort te geven. Dus de waarde van het attribuut leveren, bij een tijdreis. Bij dit antwoord hoeft dan niet eens historie informatie te worden geleverd, dat wil de afnemer vermoedelijk ook niet, die wil vrijwel altijd gewoon de waarde op het tijdreis moment. Deze behoefte lijkt dus meer te zijn: hoe modelleer je historie op attribuutniveau in hele specifieke use cases in concrete koppelvlakken, die ervoor kiezen om niet de vraag van de afnemer te beantwoorden, maar die ervoor kiezen om data leveren zodat de gebruiker dit zelf kan. Mijn standpunt hierin: prima om daar een modellering voor te bedenken, maar dat hoort niet bij het informatiemodel van een informatiedomein en dus niet in de SOR. |
Ik kwam deze historie van het van Gogh huis in Drenthe tegen. Moest aan de use case voor historie van gegevens denken:
Geschiedenis van het Van Gogh Huis
* Rond 1870 liet Mr J.A. Willinge Gratama, procureur te Assen, het logement/tapperij op de hoek van de Schooldijk bouwen. Wat dit logement zo bijzonder maakte was dat het uit twee verdiepingen bestond en ook nog over een balkon beschikte.
* In 1876 werd het pand verkocht aan Hendrik Scholte, logementhouder tijdens het verblijf van Vincent van Gogh (1883)
* In 1880 kreeg het pand tevens de bestemming veerhuis
* In 1904 verkoopt Scholte het pand aan zijn schoonzoon Andries Mol. Het pand wordt voorzien van een witte pleisterlaag.
* In 1926 koopt Kruimink het pand en deze heeft het pand zo’n 40 jaar in bezit. De heer Wams is korte tijd eigenaar en vanaf 1965 tot aan de afgifte van de sloopvergunning is de heer Valke eigenaar.
* In 1997 is de Stichting Van Gogh & Drenthe opgericht en begonnen met de restauratieplannen
* In 1998 werd het achterste deel gesloopt ten behoeve van een nieuw appartementencomplex
* Maandag 27 maart 2000 beginnen de restauratiewerkzaamheden
* Donderdag 30 maart stort een deel van het pand in. Er ontstond grote vertraging bij de bouw door het instorten van een deel van de oostelijke zijgevel.
* De officiële opening van het Van Gogh Huis was 30 maart 2003. Extern ziet het gebouw er uit zoals in het begin van de 20e eeuw.
|
Een ander voorbeeld is de eis dat verschillende bronhouders verschillende attributen van hetzelfde object beheren. |
Pano werkt een use case uit tot scenario. @dkrijtenburg-GNM kun jij ons helpen aan nog meer use cases? Alternatief is om fictieve use cases te bedenken. Het gaat erom dat we een paar voorbeeld cases hebben om uit te werken. |
Tot nu toe zie ik hele goede terechte wensen, die een informatievoorziening in moet en ook kan vullen, maar die niks (of maximaal heel weinig) met een informatiemodel te maken hebben. |
Via Dick:
|
In de laatste meeting hebben we verschillende uitwerkingen van de fictieve IM Boom casus besproken. Dit is nu verder uitgewerkt op https://geonovum.github.io/disgeo-imsor/casus/imboom/ In deze uitwerking zijn een aantal aanpassingen gedaan aan de verschillende uitwerkingen om ze zo vergelijkbaar mogelijk te maken:
|
Ik merk dat dit respec doc beperkingen heeft in google chrome, maar niet in FireFox.
De (handige) tabs werken niet in chrome (bij mij).
|
@PalmJanssen inderdaad. Dit merkte Niels ook al op. Als je een ctrl+F5 doet werkt het wel. Het ligt aan het stukje javascript wat ik snel in elkaar had gehackt om de tabjes werkend te krijgen. Ik moet nog even kijken hoe ik het netjes op kan lossen zodat het overal goed werkt. |
naar aanleiding van de discussie ben ik het MIM document nog nader gaan lezen en ik denk dat ik het eens ben met de suggestie van Paul dat je scenario B inderdaad van LD naar MIM terug kunt vertalen met behulp van GegevensgroepType. Daarmee komt het model volgens mij heel dicht tegen de andere twee modellen aan te liggen. |
@NielsHoffmann hoe zou een uitgewerkt instantiedata voorbeeld obv een modellering met GegevensgroepType eruit zien in bijv. Turtle volgens jou? |
poeh.. Volgens mij als je het MIM document leest vertaald een Gegevensgroeptype zich naar een Class die via een blank node aan het object gekoppeld is. In het 'metamodel' wordt dit dan extra getypeerd met een sh:nodekind 'GegevensgroepType', maar in een vertaling naar 'gewone' instantiedata verlies je die duiding en komt er een 'standaard' blanknode constructie uit? (die je met rdf* compacter zou kunnen maken) maar dat is dan toch iets zoals:
in het simpele model zou je dat 'plat' kunnen slaan naar:
|
Dit is inderdaad de uitwerking die ik ook verwacht bij een GegevensgroepType. Daarmee is er in mijn optiek weinig tot geen verschil met uitwerking B. Misschien is deze er wel (subtiel) op MIM niveau, maar zodra je dit vertaalt naar bijv. linked data, of software objecten, raak je dat kwijt. Je geeft aan dat je de rdfs:Resource kunt platslaan. Hoe kan ik zien dat dat kan? Of bedoel je dat we twee modellen nodig hebben? Een met metadata op gegevens en een zonder ("het simpele model"). |
Ter info. Een gegevensgroep in MIM is een groepje van kenmerken (attributen, relaties) van een object. Een object heeft bv. 5 kenmerken en kenmerk 3, 4 en 5 horen bij elkaar. Daarom heb je ze gegroepeerd . Meer is het niet. Zoals adresgegevens, of geboortegegevens. In feite zijn alle kenmerken in de groep geen kenmerken van de groep (class), het zijn en blijven kenmerken van het object. Ze zijn alleen gemodelleerd in een groepje met een naam. Soms is dat enkel en alleen om de groep als geheel een kardinaliteit * te kunnen geven (zonder semantiek). Soms is dat omdat het groepje semantisch betekenis heeft. Dit groepje mag kan je dan aanvullend ook semantiek geven, dit is overigens ook de bedoeling is als je er als zodanig over praat. Belangrijk om te constateren is dus dat de gegevensgroep nooit zelf kan bestaan, de gegevensgroep hoort altijd bij een objecttype. Een modelleur kan dus ook best los, zonder groepen te gebruiken, modelleren. Dat is dan prima, het object verliest daarmee geen attributen en relaties, en dus geen data. Dit zal de reden zijn dat het een blank node is geworden. |
@pmaria @lennartvanbergen-kadaster Ik denk dat we inderdaad misschien wel toe moeten naar een 'generiek' logisch model wat 'alle' complexiteit bevat (omdat je ander niet kan generaliseren) en een of meerdere 'aspect' modellen die de typische use cases afdekken. Anders blijf je 'hinken op twee gedachten' zoals in A dan toch een beetje het geval is. Daarmee zou je dan ook expliciet kunnen maken hoe je van complex => simpel gaat. Anders zou je daar weer allerlei 'custom logica' voor moeten bedenken en uitleggen hoe men dat moet interpreteren... |
In RDF is een ding die geduid wordt met een blank node niet anders dan een ding die geduid wordt met een URI. Het verschil tussen de twee is alleen maar dat je naar de ene (blank node) niet kunt verwijzen buiten de context van een document en de andere wel. Op informatiemodelniveau kun je niet zien of iets wel of niet een blank node krijgt. |
Ik denk ook dat dit nodig is. Maar ik zou dit willen bereiken zonder het simpele / conceptuele model aan te passen. Het add-on principe wat Lennart ook noemt vind ik cruciaal voor interoperabiliteit over datasets heen. |
De uitleg van @lennartvanbergen-kadaster over gegevensgroeptype nog eens goed lezend en de beschrijving in https://docs.geostandaarden.nl/mim/mim/#gegevensgroep ook weer goed lezend, denk ik niet dat een gegevensgroep de uitkomst is.
Als de eigenschappen in een gegevengsroeptype nog steeds eigenschappen van het object zijn dan past metadata over gegevens over dat object daar niet in. Daarnaast is dan de vertaling naar LD in https://docs.geostandaarden.nl/mim/mim/#transformatie-gegevensgroeptype dan in mijn optiek toch niet correct. Er zou in dat geval geen |
Maar wat is dan nu de gangbare manier om dat in MIM uit te drukken? Het is op zich geen nieuwe requirement, dus ik zou verwachten dat er dan al wel een constructie voor bestaat in MIM? |
Die is er nog niet. Vandaar ook dit issue / deze discussie. In RDF heb je RDF reification en straks RDF*. Property Graphs kunnen dit van nature al. In een relationeel / object georienteerd paradigma zou je het verschillende manieren kunnen oplossen. |
DisGeo Eisen aan model samenhangende objectenregistratie bevat de eis dat metagegevens en historie op attribuutniveau worden bijgehouden. Dit is nodig voor (schatting) 10% van de use cases, waaronder WOZ, waar men per gegeven de historie en andere metagegevens wil kunnen zien.
Maar het zorgt voor een complexer semantisch model en datastructuur – hoe hou je dit weg bij de andere 90% van het gebruik? (i.e. hoe zorg je ervoor dat het, wanneer het niet nodig is, ook niet in de weg zit).
Hoe kunnen we dit, zoveel mogelijk aansluitend op MIM+NEN3610+NTA8035/ISO2660, het beste modelleren?
The text was updated successfully, but these errors were encountered: