4. de manier van uitdrukken: 'mag nooit' (struik mag nooit in het water staan) of 'altijd moet' (struik moet altijd op grasveld geplant worden); 5. de aard van de constraint: 'fysiek on mogelijk' (boom kan niet vrij in de lucht zweven) of 'ontwerpdoelstel ling' (struik zou ten zuiden van een boom moeten staan). Nu het belang van constraints in ver schillende cases is aangetoond en nu we ook beschikken over een classifica tie van de verschillende soorten con straints, komt de vraag: hoe nemen we constraints mee in het systeem? Ten eerste zal de specificatie goed toegan kelijk en intuïtief moeten zijn voor de makers van de modellen. De con straints zouden onderdeel van het complete model moeten zijn en zo for meel mogelijk moeten zijn zodat hier later automatisch delen van subsyste men (edit/simulatie, database/opslag, uitwisseling/conversie) uit kunnen worden gegenereerd. Een formele aan pak zorgt er ook voor dat de con straints niet ambigue zijn. De Unified Modelling Language (UML) is thans min of meer de standaard aanpak voor het object-georiënteerd modelleren [OMG, 2002]. UML is een grafische taal die verschillende soorten diagrammen onderscheidt waarvan in onze context het klassendiagram het meest relevant is. Aangevuld met een niet-grafische taal binnen UML, de Object Constraint Language (OCL), kunnen constraints verder formeel worden gespecificeerd. De constraints zijn gespecificeerd en worden beheerd in een 'repository' maar zouden nu ook het fundament voor verdere implementatie moeten vormen in alle subsystemen: edit/simu latie, database/opslag, uitwisselen/con versie. De edit/simulatie-applicatieom- geving (hoewel belangrijk voor interac tie) zal hier niet verder worden uitge werkt. In de context van de uitwisse ling speelt XML een belangrijke rol en kan het XML-schema worden gebruikt voor het beschrijven van het model. Zo als eerder aangegeven is ook hier nog nader onderzoek nodig om de con straints automatisch van UML/OCL om te zetten naar XML-schema. Nu zal verder worden ingegaan op de omzetting van UML/OCL-constraints naar de implementatie hiervan in een database. De redenen hiervoor zijn dat de database naar alle verwachting hier geschikt voor is (flexibiliteit biedt bij specificeren van constraints) én dat de database de plek is waar vanuit meerdere gebruikers toegang heb ben tot dezelfde set consistente gegevens. Sinds SQL92 zijn 'general constraints' (assertions) onderdeel van deze stan daard. Helaas zijn ze niet geïmplementeerd in de gangbare database. De ontwikkelaars worden verwezen naar het ge bruik van 'triggers' (en vaak ook 'procedures') voor de im plementatie van generieke constraints. De soorten con straints die op dit moment wel goed door database worden ondersteund zijn: domein-constraints (specificeren van enumeratie-typen of range-typen) en 'base table con straints' (waaronder ook de referentiële integriteit-con- straints vallen). Assertions vormen echter een handige en compacte SQL-schrijfwijze van constraints en het zou ook mogelijk moeten om zijn deze automatisch uit UML/OCL af te leiden. Ze vormen dan mooie opstapjes die kunnen wor den gebruikt bij het later herschrijven naar de trigger/pro cedure vorm. Het voordeel is dat de trigger/procedure-oplossing echt werkt in de praktijk maar het nadeel is dat deze veel co- deerwerlc oplevert. Er zijn echter ontwikkelomgevingen die de generatie van deze triggers (en procedures) ondersteu nen, zoals Oracle's CDM Ruleframe. Een laatste opmerking over de ondersteuning van constraints door databases: naast standaard domein-constraints en referentiële inte griteit komt er de laatste tijd ook steeds meer standaard ondersteuning voor topologische structuren en/of con straints in de databases: Oracle lOg spatial omvat onder steuning voor topologische structuren (DBMS controleert topologische consistentie), LaserScan Radius topology en er komen ook meer 'middleware'-achtige oplossingen met topologische constraints ondersteuning zoals de ESRI geo- database. Hoewel constraints binnen GIS tot nu toe niet veel aan dacht kregen, blijken ze in de vier cases een belangrijke rol te spelen, steeds op een andere manier. Er is op basis van de cases en de beschikbare literatuur een voorstel voor de clas sificatie van constraints gegeven. Deze kunnen dan meege nomen worden in de formele beschrijving van het model (UML/OCL). Uit dit model moeten dan automatisch de ver schillende subsystemen worden gegenereerd (edit, opslag, uitwisseling) die dan allemaal gebaseerd zijn op dezelfde constraints. Op dit moment is het volledig automatisch af leiden van de verschillende subsystemen uit het model nog onderwerp van onderzoek. De visie zal voor een deel voorlo pig met de hand moeten worden uitgewerkt. Een uitgebreider, Engelstalig, artikel verschijnt binnenkort in: Oosterom, Peter van, Constraints in Spatial Data Models in a Dynamic Context., Chapter 4 in: Drummond, J., Billen, R., Forrest, D. and Joao, E. (editors), Dynamic Mobile GIS: Investigating Change in Space and Time. Taylor Francis, 2006. GEO-INFO 2005-9 Specificeren van constraints Implementatie van constraints Conclusie

Digitale Tijdschriftenarchief Stichting De Hollandse Cirkel en Geo Informatie Nederland

Geo-Info | 2005 | | pagina 53