issue tijdvakgeldigheid op object- of element-niveau

Dit is een statische kopie van het eerdere discussie.kinggemeenten.nl.
Nieuwe discussies kunnen in de GitHub repository 'StUF standaarden' als issue worden opgevoerd.

3 reacties / 0 nieuw
Ton Timmermans
issue tijdvakgeldigheid op object- of element-niveau

Ik had in de expertgroep al aangekaart dat ik zag dat in StUF 0204 het tijdvakGeldigheid op entiteit-niveau gebaseerd is. Daarnaast merkte ik op dat ik in de mapping van StUF 0204 naar StUF 0301 geen bijzondere afhandeling zie voor tijdvakGeldigheid. Vandaar leg ik de link dat StUF 0301 dus ook objectniveau gebaseerd moet zijn. Ik zou deze stelling nog bij jullie aan kaarten, vandaar deze mail. Onderstaande passage van StUF 0204 geeft volgens mij aan dat er in kennisgevingen op entiteit-niveau wordt gemuteerd. Graag jullie mening in deze! Zie de tekst vanaf Pagina 9 onderaan doorlopend in pagina 10: De historie van attribuutwaarden bij een object kan worden gespecificeerd met behulp van een begin- en einddatum geldigheid voor een waarde. Dit kan op twee manieren worden geïmplementeerd: 1. Door per waarde een begin- en einddatum geldigheid in de berichten op te nemen 2. Door voor alle attribuutwaarden in een object op objectniveau een en dezelfde begin- en einddatum geldigheid op te nemen. Bij de eerste keuze is het mogelijk om in één bericht attribuutwaarden meervoudig op te nemen met elk een eigen tijdvak geldigheid. Het ene attribuut komt één keer voor in het bericht, een andere vijf keer en weer een andere twee keer. Bij de tweede keuze worden meerdere voorkomens van het object in het bericht opgenomen met elk een eigen tijdvak geldigheid. Alle attribuutwaarden zijn geldig gedurende dat tijdvak geldigheid. Als een bericht meerdere voorkomens bevat, dan is er precies één met de actuele waarden. De andere voorkomens bevatten Standaard Uitwisseling Formaat voor applicaties StUF 02.04: EGEM Aanbeveling(versie 02) Datum: 29-03-2012 Pagina: 10 historische waarden. De tweede keuze leidt tot een simpeler berichtverwerking, omdat de actuele gegevens eenvoudig te vinden zijn. De tweede keuze sluit ook beter aan bij de wijze waarop in veel databases met historische gegevens wordt omgegaan. Bij relaties is niet alleen van belang wat het tijdvak geldigheid is van eigenschappen van een relatie, maar ook het bestaanstijdvak gedurende welke een relatie bestaat. Het ontstaan en beëindigen van een relatie zijn op te vatten als wijzigingen in het object. Zowel de begindatum relatie als de einddatum relatie markeren dus een tijdvak geldigheid voor het object. Relaties kunnen op verschillende manieren wijzigen en ze hebben hun eigen bestaanstijdvak en tijdvak geldigheid. De eenvoudigste oplossing is om wijzigingen in relaties onafhankelijk van de wijzigingsdatum voor de attribuutwaarden in kennisgevingen op te nemen. Gegeven dit feit en gegeven het grote aantal manieren waarop een relatie bij een object kan wijzigen, is het verstandig in een templateberichtdefinitie het bestaanstijdvak en de gewenste functionaliteit eromheen te definiëren. In antwoordberichten kan historie het beste worden gecommuniceerd door meerdere voorkomens van een object op te nemen met elk een eigen tijdvak geldigheid. Daarnaast dient de steller van de vraag de mogelijkheid te hebben om te specificeren of hij al dan niet historische gegevens wil ontvangen. Een systeem dat niet geïnteresseerd is in historische gegevens vraagt er niet om en krijgt altijd antwoordberichten met slechts één actueel voorkomen van een object. Voor kennisgevingberichten lijkt een andere keuze eenvoudiger. Neem in kennisgevingberichten bij wijzigingen in de attribuutwaarden één voorkomen van het object op met de waarden geldig tot de wijzigingsdatum (het ‘oude’ voorkomen) en één voorkomen met de waarden geldig vanaf de wijzigingsdatum (het ‘nieuwe’ voorkomen). In het ‘oude’ voorkomen zit zonodig ook de ‘oude’ situatie voor een relatie en in het ‘nieuwe’ voorkomen de ‘nieuwe’ situatie. Het bestaanstijdvak en het tijdvak geldigheid relatie specificeren samen de benodigde informatie ten behoeve van de opbouw van historie. Het tijdvak geldigheid op objectniveau is hiervoor niet relevant. Dit heeft uitsluitend betrekking op de attribuutwaarden.

Han Welmer

In de gewraakte tekst staan normatieve zaken, toelichtingen, onderbouwingen en voorbeelden willekeurig door elkaar, zonder dat aangegeven wordt om welke variant het gaat. Echter, volgens mij is de eerste zin van het citaat duidelijk genoeg: Begin citaat: De historie van attribuutwaarden bij een object kan worden gespecificeerd met behulp van een begin- en einddatum geldigheid voor een waarde. Einde citaat: Mijns inziens is deze eerste zin (De historie … waarde.) normatief. De daarop volgende zinnen (Dit kan … wordt omgegaan. ) zijn onderbouwend voor deze eerste uitspraak. Ik leid hieruit af dat reeds in StUF 02.04 tijdvakgeldigheid op attribuut-niveau werd gespecificeerd en niet op object-niveau. Wel moet ik toegeven dat ik niet blij ben met deze conclusie. In de vergadering bij de waka is een beslissing genomen en daar leg ik me bij neer. Ik wil alleen een reactie geven op de stelling dat historie in StUF 0204 object georienteerd is. En dat is volgens mij niet juist.

Ton Timmermans

Het blijkt maar weer eens dat het beschrijven van een standaard niet zo eenvoudig is. Het gaat juist over de implementatie van de stelling en daar wordt keuze 2 als beste weergegeven. Ook wordt over deze keuze verder uitgeweid in de darropvolgende regels.