Zoeken van kengegevens binnen een bepaalde periode
Inleiding
Bij de uitgifte van kengegevens kan in de kenmerken (criteria) een periode worden opgegeven waarbinnen de waarde van een attribuut van een registratieobject moet liggen, opdat de kengegevens van het registratieobject zal worden uitgegeven. Daarbij kan het atribuut een van de volgende datatypes zijn:
Datum
DatumTijd (datum en tijdstip)
OnvolledigeDatum (de waarde is een volledige datum, of alleen en jaartal en maand, of alleen een jaartal, of de waarde is onbekend)
Enkele voorbeelden:
RO | Attribuut | Definitie |
---|---|---|
brocommon | registrationPeriod | Het datuminterval waarbinnen de datum van het tijdstip registratie van het registratieobject moet liggen. N.B. Datatype van objectRegistrationTime is DatumTijd. |
EPL | expiryDatePeriod | De periode waarbinnen de vervaldatum van de vergunning moet liggen. N.B. Datatype van expiryDate is Datum. |
EPC | boreholeSegmentDrillingStartPeriod | Het datuminterval waarbinnen de datum, die het begin aangeeft van de periode dat het boortraject is aangelegd, ligt. N.B. Datatype van drillingStartDate is OnvolledigeDatum. |
Deze kenmerken hebben Datuminterval (DatePeriod) als datatype. Dit datatype is gedefinieerd in brocommon.xsd als een gegevensgroep met 2 datums: begindatum en eindDatum, beide van het type Datum.
De volgende drie paragrafen beschrijven voor de drie datatypes hoe gecontroleerd wordt of de waarde van een attribuut met dat datatype ligt binnen de zoek periode.
Gezocht attribuut is van type Datum
Als het datatype van het te vergelijken attribuut een Datum (Date) is, dan is de vergelijking eenvoudig.
Regel
Een attribuut in de BRO voldoet aan het kenmerk als de waarde van het attribuut:
groter of gelijk is aan de beginDatum van de periode.
en kleiner of gelijk is aan de eindDatum van de periode.
Voorbeelden
Voorbeeld 1: Attribuut (Datum) moet worden vergeleken met een door de gebruiker opgegeven periode van 10-11-2024 tot en met 07-01-2025.
Voorbeeld 2: Attribuut (Datum) moet worden vergeleken met een door de gebruiker opgegeven periode van 1 dag, namelijk vanaf en tot en met 05-12-2024.
Motivatie
Het kenmerk definieert een periode vanaf de begindatum tot en met de einddatum, beiden inclusief. De begindatum en de einddatum van de periode en het te vergelijken attribuut zijn allen van het type Datum. Omdat de datatypes van de begindatum, de einddatum en het te vergelijken attribuut hetzelfde zijn, kunnen de waarden ervan rechtstreeks met elkaar worden vergeleken.
Gezocht attribuut is van type DatumTijd
Als het datatype van het te vergelijken attribuut een DatumTijd (DateTime) is, dan is de vergelijking iets minder eenvoudig. Dit wordt veroorzaakt doordat het datatype van de begindatum en de einddatum van de opgegeven periode anders is dan het datatype van het te vergelijken attribuut. De datum met een tijdstip van het te vergelijken attribuut moet worden vergeleken met een datum zonder tijdstip voor het begin en het einde van de periode. Daarbij spelen onder anderen de volgende vragen een rol:
Wat als het tijdstip ongelijk is aan 00:00:00?
Hoe om te gaan met een tijdzone (overigens: in de BRO is het gebruik van tijdzone verplicht bij het aanleveren van DatumTijd gegevens; zie Handreiking aanleveren BRO-gegevens | 7.6.-DatumTijd)?
Regel
Een attribuut in de BRO voldoet aan het kenmerk als de waarde van het attribuut na conversie naar lokale tijd (Nederlandse tijdzone met datumafhankelijke zomertijd/wintertijd):
groter of gelijk is aan de beginDatum van de periode.
en kleiner is dan de (eindDatum + 1 dag) van de periode.
Voorbeelden
Voorbeeld 1: Attribuut (DatumTijd) moet worden vergeleken met een door de gebruiker opgegeven periode van 10-11-2024 tot en met 07-01-2025.
Om datums zonder tijdstip te kunnen vergelijken met datums met tijdstip wordt de einddatum door het systeem van de LV één dag verder gelegd. Merk op dat de nieuwe einddatum 08-01-2025 dan buiten de door de gebruiker opgegeven periode valt. Bij toepassing van de hierboven genoemde regels valt de datum met tijdstip 07-01-2025 23:59:59 nog net binnen de geldige period en 08-01-2025 00:00:00 valt net buiten de geldige periode.
Motivatie
Als het attribuut van het type DatumTijd is, dan geldt het volgende:
Als de waarde van het te vergelijken attribuut bestaat uit een datumdeel dat gelijk is aan de begindatum van de periode en een tijdstip anders dan 00:00:00, dan ligt de waarde van het attribuut na (vanaf) de begindatum.
Als de waarde van het te vergelijken attribuut bestaat uit een datumdeel dat gelijk is aan de einddatum van de periode en een tijdstip anders dan 00:00:00, dan ligt de waarde van het attribuut op (tot en met) de einddatum.
Volgens de hierboven genoemde regel wordt de waarde van het te vergelijken attribuut eerst geconverteerd naar lokale (Nederlandse) tijd en daarna vergeleken met de begindatum en einddatum van de periode. Omdat het tijdsdeel ongelijk aan 00:00:00 kan zijn, leidt dit voor de vergelijking met de einddatum van de periode tot de uitdrukking ‘kleiner dan (einddatum + 1 dag)’ in plaats van 'kleiner of gelijk aan de eindDate'.
Gezocht attribuut is van type OnvolledigeDatum
Als het datatype van het te vergelijken attribuut een OnvolledigeDatum (PartialDate) is, dan is de vergelijking niet triviaal. Dit wordt veroorzaakt door de variabele nauwkeurigheid van de waarde van het attribuut dat moet worden vergelijken met de periode in het zoekkenmerk.
In tegenstelling tot de situatie waarbij het datatype van het te vergelijken attribuut een DatumTijd is, waarbij de nauwkeurgheid van het tijdsdeel van de DatumTijd niet bekend is, is bij het datatype OnvolledigeDatum de nauwkeurigheid wel bekend. Dit maakt de volgende regel mogelijk.
Regel
Een attribuut in de BRO voldoet aan het kenmerk als de waarde van dit attribuut:
onbekend is
of een volledige datum (jaartal + maand + dag) is:
en groter of gelijk is aan de beginDatum van de periode.
en kleiner is dan de (eindDatum + 1 dag) van de periode.
of een jaartal en maand is:
en groter of gelijk is aan het jaartal en maand van de beginDatum van de periode.
en kleiner is dan de het jaartal en maand van de (eindDatum + 1 dag) van de periode.
of een jaartal is:
en groter of gelijk is aan het jaartal van de beginDatum van de periode.
en kleiner is dan het jaartal van de (eindDatum + 1 dag) van de periode.
Voorbeelden
Voorbeeld 1: Een attribuut van het type OnvolledigeDatum in de BRO moet worden vergeleken met een periode vanaf 10-11-2024 tot en met 07-01-2025.
Als eerste stap wordt de ‘vanaf-tot-en-met’ periode geconverteerd naar een ‘vanaf-tot’ periode door de einddatum van de gezochte periode te verhogen met één dag. In dit voorbeeld wordt 07-01-2025 dus omgezet naar 08-01-2025. Daarna worden voor zowel de begindatum als de einddatum van deze periode drie varianten berekend, namelijk met een nauwkeurigheid van een volledige datum, een jaartal en maand en alleen een jaartal (08-01-2025, 02-2025 en 2026). Merk op dat in dit geval de geconverteerde einddatum 8-1-2025 c.q. 02-2025 cq 2026 van de periode buiten de geldige periode valt.
Daarna kan voor alle relevante objecten afhankelijk van de nauwkeurigheid van het attribuut de waarde ervan worden vergeleken met de bijpassende varianten van de begindatum en einddatum van de periode.
Motivatie
De waarde ‘onbekend’ heeft een uitzonderlijke betekenis: het gegeven is aanwezig maar de waarde ervan is niet bekend. In lijn met de definitie van het datatype Onvolledige datum (PartialDate) in de Handreiking aanleveren BRO-gegevens voldoet het attribuut aan het kenmerk als dit attribuut de waarde onbekend heeft. Bijvoorbeeld:
We zoeken naar boorgaten waarvan de startdatum ligt in een bepaalde periode.
Een bepaald boorgat heeft de waarde onbekend voor de startDate van het primaire traject.
Omdat we weten dat het boren is begonnen, voldoet het boorgat aan het kenmerk, ondanks dat we niet precies weten wanneer het boren is begonnen.
Uitsluiten van de waarde onbekend zou tot gevolg hebben dat objecten met deze waarde nooit voldoen aan het kenmerk en een afnemer deze objecten nooit zou vinden. Bij de gestipuleerde regel verschijnen objecten met de waarde onbekend altijd in het zoekresultaat, waarbij de afnemer de mogelijkheid heeft objecten met de waarde onbekend te negeren.
Voor de overige drie gevallen, waarin de waarde van het attribuut niet onbekend is, worden de begindatum en einddatum van de periode geconverteerd naar waardes die een zelfde nauwkeurigheid hebben als de waarde van het attribuut in de registratie en vervolgens vergeleken.