Business Rules Wegwerkzaamheden en Evenementen¶
Concept
De opzet en inhoud van deze pagina is slechts illustratief
Inleiding¶
Dit document onderscheidt drie soorten regels:
- Door DATEX II XSD-schema's afgedwongen regels.
- Algemene DATEX II integriteitsregels.
- Aanvullende business rules voor de toepassing van DATEX II binnen de context van wegwerkzaamheden en evenementen.
Het doel van deze indeling is onderscheid te maken tussen:
- technische validatie;
- DATEX-semantiek;
- domeinspecifieke modelleringsregels.
1. Door XSD afgedekte regels¶
Deze regels worden reeds afgedwongen door de DATEX II XSD-schema's en hoeven niet opnieuw als business rule te worden geïmplementeerd.
XSD-VAL-001 Verplichte elementen en attributen¶
rule: XSD-VAL-001
scope: datex
enforcedBy: xsd
covers:
- verplichte elementen
- verplichte attributen
Voorbeelden:
- publicationTime
- publicationCreator
- validityStatus
- validityTimeSpecification
- sourceName
- latitude
- longitude
- PayloadPublication.lang
- PayloadPublication.modelBaseVersion
XSD-VAL-002 Enumeraties¶
Voorbeelden:
- ValidityStatusEnum
- VehicleUsageEnum
- CarriagewayEnum
- DirectionEnum
- PublicEventTypeEnum
XSD-VAL-003 Cardinaliteiten¶
Voorbeelden:
- maximaal één loadType
- exact één location binnen LocationContainedInItinerary
- minimaal twee locaties in LocationGroupByList
XSD-VAL-004 Datatypes¶
rule: XSD-VAL-004
scope: datex
enforcedBy: xsd
covers:
- integer
- float
- boolean
- datetime
- time
- url
XSD-VAL-005 Waardebereiken¶
Voorbeelden:
- AngleInDegrees = 0..359
- AlertCLocationCode = 1..63487
- OffsetDistance ≥ 0
XSD-VAL-006 Uniciteit¶
Voorbeelden:
- Situation.id uniek binnen payload
- SituationRecord.id + version uniek binnen payload
2. Algemene DATEX Integriteitsregels¶
Deze regels worden niet door de XSD afgedwongen maar volgen uit de betekenis van het DATEX-model.
Validity¶
DX-INT-VAL-001 Geldige overall periode¶
rule: DX-INT-VAL-001
scope: datex
description: Eindtijd ligt niet vóór begintijd.
validation:
overallEndTime >= overallStartTime
DX-INT-VAL-002 Geldig tijdvenster¶
rule: DX-INT-VAL-002
scope: datex
description: Een tijdvenster heeft een logische begin- en eindtijd.
validation:
endTimeOfPeriod > startTimeOfPeriod
DX-INT-VAL-003 Overrunning consistent¶
rule: DX-INT-VAL-003
scope: datex
description: Overrunning wordt alleen gebruikt wanneer een geplande eindtijd bestaat.
validation:
IF overrunning = true
THEN overallEndTime EXISTS
Geometrie¶
DX-INT-GEO-001 Geldige latitude¶
rule: DX-INT-GEO-001
scope: datex
description: Latitude ligt binnen het geografisch geldige bereik.
validation:
-90 <= latitude <= 90
DX-INT-GEO-002 Geldige longitude¶
rule: DX-INT-GEO-002
scope: datex
description: Longitude ligt binnen het geografisch geldige bereik.
validation:
-180 <= longitude <= 180
DX-INT-GML-001 Gesloten ring¶
DX-INT-GML-002 Geldig polygon¶
Itinerary¶
DX-INT-ITI-001 Unieke indexen¶
rule: DX-INT-ITI-001
scope: datex
description: Itinerary-indexen zijn uniek.
validation:
count(distinct index) = count(index)
DX-INT-ITI-002 Oplopende indexen¶
OpenLR¶
DX-INT-OLR-001 Decodeerbare locatie¶
rule: DX-INT-OLR-001
scope: datex
description: Een OpenLR-referentie decodeert naar een valide locatie.
DX-INT-OLR-002 Verbonden referentiepunten¶
DX-INT-OLR-003 Geldige offsets¶
ALERT-C¶
DX-INT-ALT-001 Geldige locatiecode¶
rule: DX-INT-ALT-001
scope: datex
description: ALERT-C locatie bestaat in de gebruikte locatietabel.
DX-INT-ALT-002 Logische richting¶
rule: DX-INT-ALT-002
scope: datex
description: Primaire en secundaire locaties zijn logisch geordend.
Locatieconsistentie¶
DX-INT-LOC-001 Zelfde fysieke locatie¶
rule: DX-INT-LOC-001
scope: datex
description: Meerdere locatie-representaties verwijzen naar dezelfde fysieke locatie.
DX-INT-LOC-002 Eén fysieke weg¶
rule: DX-INT-LOC-002
scope: datex
description: Een SingleRoadLinearLocation beschrijft één fysieke weg.
3. Business Rules Wegwerkzaamheden en Evenementen¶
Situation-opbouw¶
WE-GEN-001 Eén Situation¶
rule: WE-GEN-001
scope: wegwerkzaamheden_en_evenementen
description: Een bericht bevat exact één Situation.
validation:
count(Situation) = 1
WE-GEN-002 Exact één hoofdrecord¶
rule: WE-GEN-002
scope: wegwerkzaamheden_en_evenementen
description: Een Situation bevat exact één ConstructionWorks, MaintenanceWorks of PublicEvent.
validation:
count(
ConstructionWorks
OR MaintenanceWorks
OR PublicEvent
) = 1
WE-GEN-003 Verkeersmaatregelen gekoppeld aan hoofdrecord¶
rule: WE-GEN-003
scope: wegwerkzaamheden_en_evenementen
description: Iedere verkeersmaatregel behoort tot hetzelfde werk of evenement.
WE-GEN-004 Locatiekeuze hoofdrecord¶
rule: WE-GEN-004
scope: wegwerkzaamheden_en_evenementen
description: |
Eén weg of straat wordt beschreven met een lijnlocatie.
Meerdere wegen worden beschreven met een gebied.
Een gebied wordt beschreven met een polygoon.
Indien geen polygoon beschikbaar is wordt een puntlocatie gebruikt.
WE-GEN-005 Totale omvang werkzaamheden¶
rule: WE-GEN-005
scope: wegwerkzaamheden_en_evenementen
description: Het hoofdrecord bevat de optelsom van de locaties van alle verkeersmaatregelen.
WE-GEN-006 Grootschalige werkzaamheden¶
rule: WE-GEN-006
scope: wegwerkzaamheden
description: Grootschalige werkzaamheden gebruiken roadworksScale=major.
WE-GEN-007 Spoedwerkzaamheden¶
rule: WE-GEN-007
scope: wegwerkzaamheden
description: Ongeplande werkzaamheden gebruiken urgentRoadworks=true.
WE-GEN-008 Standaard stationary¶
rule: WE-GEN-008
scope: wegwerkzaamheden_en_evenementen
description: Werkzaamheden en evenementen zijn standaard stationary.
validation:
mobilityType = stationary
WE-GEN-009 Mobiele situatie¶
rule: WE-GEN-009
scope: wegwerkzaamheden_en_evenementen
description: Rijdende afzettingen en mobiele evenementen gebruiken mobilityType=mobile.
WE-GEN-010 Geen afsluiting bij mobiele situatie¶
rule: WE-GEN-010
scope: wegwerkzaamheden_en_evenementen
description: Bij mobiele situaties wordt geen afsluitingsmaatregel gepubliceerd.
validation:
IF mobilityType = mobile
THEN carriagewayClosure NOT ALLOWED
WE-GEN-011 Vastlegging bronorganisatie¶
rule: WE-GEN-011
scope: wegwerkzaamheden_en_evenementen
description: SourceName wordt gevuld volgens de afgesproken schrijfwijze voor gemeente, provincie of Rijkswaterstaat.
WE-GEN-012 Gebruik vrije tekst¶
rule: WE-GEN-012
scope: wegwerkzaamheden_en_evenementen
description: GeneralPublicComment gebruikt uitsluitend internalNote of other.
WE-GEN-013 OV-alternatief¶
rule: WE-GEN-013
scope: wegwerkzaamheden_en_evenementen
description: Een OV-alternatief wordt opgenomen in publicTransportAlternative.
WE-GEN-014 Journalistieke informatie¶
rule: WE-GEN-014
scope: wegwerkzaamheden_en_evenementen
description: Journalistieke gebruikersinformatie wordt opgenomen in een afzonderlijk GeneralInstructionsOrMessageToRoadUsers record.
Verkeersmaatregelen¶
WE-TRF-001 Oorzaak verplicht¶
rule: WE-TRF-001
scope: verkeersmaatregelen
description: Iedere verkeersmaatregel bevat een causeType.
validation:
cause.causeType IS REQUIRED
WE-TRF-002 Geldt voor alle voertuigen¶
rule: WE-TRF-002
scope: verkeersmaatregelen
description: Een maatregel geldt voor alle voertuigen tenzij expliciet beperkt.
WE-TRF-003 AnyVehicle niet toegestaan¶
rule: WE-TRF-003
scope: verkeersmaatregelen
description: AnyVehicle wordt niet gebruikt.
validation:
anyVehicle NOT ALLOWED
WE-TRF-004 Verplicht karakter¶
rule: WE-TRF-004
scope: verkeersmaatregelen
description: Verkeersmaatregelen zijn standaard mandatory.
Snelheidsmaatregelen¶
WE-SPD-001 SpeedManagement¶
rule: WE-SPD-001
scope: snelheidsmaatregelen
description: Tijdelijke maximumsnelheden gebruiken SpeedManagement.
WE-SPD-002 SpeedRestrictionInOperation¶
rule: WE-SPD-002
scope: snelheidsmaatregelen
description: Tijdelijke maximumsnelheden gebruiken speedRestrictionInOperation.
validation:
speedManagementType = speedRestrictionInOperation
WE-SPD-003 Eén snelheidswijziging per record¶
rule: WE-SPD-003
scope: snelheidsmaatregelen
description: Iedere snelheidswijziging wordt als afzonderlijk record gepubliceerd.