Ga naar inhoud

Business Rules Wegwerkzaamheden en Evenementen

Concept

De opzet en inhoud van deze pagina is slechts illustratief

Inleiding

Dit document onderscheidt drie soorten regels:

  1. Door DATEX II XSD-schema's afgedwongen regels.
  2. Algemene DATEX II integriteitsregels.
  3. 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

rule: XSD-VAL-002
scope: datex
enforcedBy: xsd
covers:
  - enumeraties

Voorbeelden:

  • ValidityStatusEnum
  • VehicleUsageEnum
  • CarriagewayEnum
  • DirectionEnum
  • PublicEventTypeEnum

XSD-VAL-003 Cardinaliteiten

rule: XSD-VAL-003
scope: datex
enforcedBy: xsd
covers:
  - minOccurs
  - maxOccurs

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

rule: XSD-VAL-005
scope: datex
enforcedBy: xsd
covers:
  - numerieke bereiken

Voorbeelden:

  • AngleInDegrees = 0..359
  • AlertCLocationCode = 1..63487
  • OffsetDistance ≥ 0

XSD-VAL-006 Uniciteit

rule: XSD-VAL-006
scope: datex
enforcedBy: xsd
covers:
  - unieke identificatie

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

rule: DX-INT-GML-001
scope: datex
description: Een GmlLinearRing is gesloten.

DX-INT-GML-002 Geldig polygon

rule: DX-INT-GML-002
scope: datex
description: Polygonen zijn geometrisch geldig.

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

rule: DX-INT-ITI-002
scope: datex
description: Itinerary-indexen zijn oplopend.

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

rule: DX-INT-OLR-002
scope: datex
description: Referentiepunten vormen één verbonden route.

DX-INT-OLR-003 Geldige offsets

rule: DX-INT-OLR-003
scope: datex
description: Offsets overschrijden de trajectlengte niet.

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.