Скачать презентацию Constraints in geo-information models and their implementations in Скачать презентацию Constraints in geo-information models and their implementations in

134b50cf7af650c6faf8b023b900ce99.ppt

  • Количество слайдов: 67

Constraints in geo-information models and their implementations in systems Peter van Oosterom GIS technology, Constraints in geo-information models and their implementations in systems Peter van Oosterom GIS technology, OTB 1

Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape design VR system Constraints in a cadastral data set (topology) Constraints in a topographic base data set Constraints in web feature service transactions Classification of constraints Support for constraints Conclusions and further research 2

Introduction Geo-information models • OMG’s Model Driven Architecture (MDA): the model forms the foundation Introduction Geo-information models • OMG’s Model Driven Architecture (MDA): the model forms the foundation for further system development • The data aspect of the model is often described in a UML class diagram (Unified Modeling Language), which defines for a class: • Attributes (names and types) • Methods • Associations (generalization, aggregation) • However, often constraints are ignored 3

4 4

Introduction Constraints • Constraints are conditions, which always have to be fulfilled by the Introduction Constraints • Constraints are conditions, which always have to be fulfilled by the user and/or by the data processing operators of the system • Constraints can be related to properties of the object itself and/or to relationships between the objects Example: Tree must never stand in the water 5

Introduction • • • More attention for constraints needed as they add meaning/semantics to Introduction • • • More attention for constraints needed as they add meaning/semantics to the model Constraints enable further consistency checking Constraints should be explicitly modeled, specified once and used throughout system: 1. Create/edit objects (in GIS/CAD editor) 2. Storage/manage objects (in geo-DBMS) 3. Exchange objects (in communication, XML) 6

Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape design VR system Constraints in a cadastral data set (topology) Constraints in a topographic base data set Constraints in web feature service transactions Classification of constraints Support for constraints Conclusions and further research 7

The SALIX-2 system • Landscape architectural design • Interactive planting trees, bushes • Growing The SALIX-2 system • Landscape architectural design • Interactive planting trees, bushes • Growing simulation Constraints to improve the interactivity! Originally developed by Wageningen University Adding constraints: MSc-thesis project of Jildou Louwsma 8

The SALIX-2 system: User Interface 9 The SALIX-2 system: User Interface 9

UML class diagram for SALIX-2 • Three classes objects: trees, bushes and ground surface UML class diagram for SALIX-2 • Three classes objects: trees, bushes and ground surface • Trees and bushes: Cor. Ave, Cor. MAs, Frax. Exc, Que. Rob, Ros. CAn • Ground surface: water, paving, grass and bridge. 10

11 11

12 12

Constraints in SALIX-2 (1) • Direction: A bush always has to placed south of Constraints in SALIX-2 (1) • Direction: A bush always has to placed south of a tree • Topology: Bushes always have to be disjoint or meet water; A bush always has to meet or be disjoint paved areas (also thematic constraint) • Metric: Trees always have to be positioned > 1 meter from paving • Temporal: An oak always grows for 70 years • Quantity: There must always be at least 10 trees on the specified ground surface 13

Constraints in SALIX-2 (2) • Thematic: A bush always has to meet or be Constraints in SALIX-2 (2) • Thematic: A bush always has to meet or be disjoint paved areas (also topological constraint) • Complex: The distance between trees inside water always is > 8 m AND the distance between the tree and the edge of the water always has to be < 0, 5 meter AND the species must be a salix; Trees of type 1 always have to be placed west of trees of type 2 AND the distance between trees of type 1 and trees of type 2 must always be 7 meters (pattern) 14

All SALIX-2 constraints specified as assertions (SQL 92 standard) CREATE ASSERTION <assertion_name> CHECK <constraint_body> All SALIX-2 constraints specified as assertions (SQL 92 standard) CREATE ASSERTION CHECK Bushes never lie inside water: create assertion constraint_1 check (not exists ( select * from prcv_treesrd_point t, prcv_gvkrd_poly g where t. treetype in (‘Cor. Ave’, ‘Cor. Mas’, ‘Ros. Can’) AND g. descript = ‘water’ AND sdo_relate (g. geom. , t. geom. , ‘mask=inside, querytype=window’) =’TRUE’)) However, not available in any mainstream DBMS 15

SALIX-2 constraints hand-coded in Oracle Triggers/Procedures CREATE OR REPLACE TRIGGER ast_salix AFTER INSERT ON SALIX-2 constraints hand-coded in Oracle Triggers/Procedures CREATE OR REPLACE TRIGGER ast_salix AFTER INSERT ON prcv_treesrd_point BEGIN -- constraint 1: a bush must never be placed inside water the existing -- table with all objects has no bushes inside the water, so only -- after each update or insert a check has to take place if -- the new location of a bush is inside water. This can be -- an after statement trigger. IF pck_salix. treetype_io IN ('Cor. Mas', 'Ros. Can', 'Cor. Ave') THEN -- the object is a bush, so all constraints concerning -- bushes must be run. DBMS_OUTPUT. PUT_LINE('the involved object is a bush'); pck_salix. pr_topology_c 1; ELSE raise_application_error(-20099, 'the object is a tree, no constraints have to be checked. '); END IF; END; 16

Triggers/Procedures in SALIX-2 PROCEDURE pr_topology_c 1 IS description varchar 2(15); xrd_io number; yrd_io number; Triggers/Procedures in SALIX-2 PROCEDURE pr_topology_c 1 IS description varchar 2(15); xrd_io number; yrd_io number; bush_in_water EXCEPTION; BEGIN SELECT g. descript, t. geom. sdo_point. x, t. geom. sdo_point. y INTO description, xrd_io, yrd_io FROM prcv_gvkrd_poly g, prcv_treesrd_point t WHERE t. treeid = pck_salix. treeid_io AND sdo_relate(g. geom, t. geom, 'mask=anyinteract, querytype=window') ='TRUE' GROUP BY g. descript, t. geom. sdo_point. x, t. geom. sdo_point. y; IF description = 'water' THEN raise bush_in_water; ELSE DBMS_OUTPUT. PUT_LINE('1: the bush is not placed in water'); END IF; EXCEPTION WHEN bush_in_water THEN raise_application_error (-20001, '1: The bush (x='||to_char(xrd_io)||', y='||to_char(yrd_io)||') is placed inside water, but a bush may never be placed in water. 17 Place the bush on another location. ') END pr_topology_cl;

Never in Water (example) 18 Never in Water (example) 18

Some lessons, VR landscape design • Constraints occurs at different places: VR user interface Some lessons, VR landscape design • Constraints occurs at different places: VR user interface and data storage • When designing: immediate feedback to user is important • DBMS support of assertions is non existent! • Simulation adds an other ‘dimension’ to constraints: when creating an initial plantation layout everything may be correct, but after 5 years of simulated growth there may be conflicts; trees get too close 19

Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape design VR system Constraints in a cadastral data set (topology) Constraints in a topographic base data set Constraints in web feature service transactions Classification of constraints Support for constraints Conclusions and further research 20

Netherlands Cadastral map (1: 1000) • Based on winged edge topology stored in DBMS Netherlands Cadastral map (1: 1000) • Based on winged edge topology stored in DBMS • Redundancy in references; e. g. both object_id left/right and parcel_number left/right • Considered as a topological very clean data set • Hard coded topology checks build in editor and checkin software; at DBMS server sided, but not in DBMS • Data set with history 1997 -2004: • Boundaries/polylines: total 67. 000 (22. 000) • Parcels/faces: total 28. 000 (7. 000 actual) 21

Topology references l_obj_id ll_line_id lr_line_id fl_line_id r_obj_id fr_line_id 22 Topology references l_obj_id ll_line_id lr_line_id fl_line_id r_obj_id fr_line_id 22

Spatial types, topology references (boundary: polyline, or circular arc) 23 Spatial types, topology references (boundary: polyline, or circular arc) 23

Some, of the about 50, constraints (‘create assertion’ part skipped) • find closed ‘arcs’ Some, of the about 50, constraints (‘create assertion’ part skipped) • find closed ‘arcs’ (circles not allowed, not l/r side) SELECT object_id, numpoints(shape), anypoint(shape, 1), anypoint(shape, 2), anypoint(shape, 3) FROM xfio_boundary WHERE numpoints(shape)=3 and interp_cd=3 and tmax = 0 and ogroup = 6 and (anypoint(shape, 1) = anypoint(shape, 3)); • find straight ‘arcs’ • parcel reference point not in bbox SELECT object_id from lki_parcel WHERE inside(location, geo_bbox) != 1; 24

Enlarged (cell=5 mm) 25 Closed ‘circular arc’ & geometric 1 mm gap Enlarged (cell=5 mm) 25 Closed ‘circular arc’ & geometric 1 mm gap

Enlarged (cell=5 m) 26 Straight line coded as circular arc Enlarged (cell=5 m) 26 Straight line coded as circular arc

Topology reference exist • Boundary: left or right parcel obj_id does not exist SELECT Topology reference exist • Boundary: left or right parcel obj_id does not exist SELECT l_obj_id FROM lki_boundary WHERE l_obj_id not in (select object_id from lki_parcel); • Boundary-boundary reference does not exist SELECT object_id, fl_line_id FROM lki_boundary WHERE abs(fl_line_id) not in (select object_id from lki_boundary) • Parcel: outer boundary reference does not exist SELECT object_id, line_id 1 FROM lki_parcel WHERE abs(line_id 1) not in (select object_id from lki_boundary); • Parcel: island boundary reference does not exist or wrong number of island references, l_num-1 27

28 Island reference is missing 28 Island reference is missing

Topology reference correct • Two consecutive boundaries must have same parcels at the side; Topology reference correct • Two consecutive boundaries must have same parcels at the side; 8 combinations SELECT s. object_id, s. fl_line_id FROM xfio_boundary s, xfio_boundary r WHERE s. fl_line_id > 0 and s. fl_line_id=r. object_id and s. tmax=0 and s. ogroup=6 and r. tmax=0 and r. ogroup=6 and s. r_obj_id <> r. l_obj_id; • End point of one boundary is start of next; 8 comb SELECT s. object_id, s. fl_line_id FROM xfio_boundary s, xfio_boundary r WHERE s. fl_line_id > 0 and s. fl_line_id=r. object_id and s. tmax=0 and s. ogroup=6 and r. tmax=0 and r. ogroup=6 and (anypoint(s. shape, 1) <> anypoint(r. shape, 1)); • Check if island boundary has parcel at the right side, check if first coordinate of island is within bbox parcel 29

30 Parcel refers to wrong island boundary 30 Parcel refers to wrong island boundary

More consistency checks… • Boundary Parcel references not consistent SELECT s. object_id, s. line_id More consistency checks… • Boundary Parcel references not consistent SELECT s. object_id, s. line_id 1 FROM xfio_parcel s, xfio_boundary r WHERE s. line_id 1 > 0 and s. line_id 1=r. object_id and s. tmax=0 and s. ogroup=46 and r. tmax=0 and r. ogroup=6 and (s. object_id <> r. r_obj_id); • Redundant double references, via object_id and parcel_number, not consistent • Geometric/survey and admin/right/owners side of parcel not consistent SELECT count(*), municip FROM mo_object WHERE pp_i_ltr='G' and x_akr_objectnummer not in (select x_akr_objectnummer from lki_parcel) GROUP BY municip; 31

Some lessons, cadastral data • Never trust on front-end and/or middle ware alone for Some lessons, cadastral data • Never trust on front-end and/or middle ware alone for consistency checking check within DBMS • Even if the errors may not be noticed in the production environment, they may be harmful in the environments of others; e. g. straight ‘circular arcs’ • Not yet all aspects checked; e. g. 1. time intervals of two consecutive versions of an object should touch 2. the complete domain is covered with parcels 3. at one moment in time no (straight line or circular arc) boundary may cross, only touch at end points is allowed 32

Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape design VR system Constraints in a cadastral data set (topology) Constraints in a topographic base data set Constraints in web feature service transactions Classification of constraints Support for constraints Conclusions and further research 33

Designed with constraints included in one single source model • • • New topographic Designed with constraints included in one single source model • • • New topographic product TOP 10 NL (from 1 jan 2006) New production system: from files to DBMS New exchange format: GML 3 -based and NEN 3610 -v 2 Initially constraints designed for validating conversion However, same constraints will be used during future production editing • Constraints specified in one source in own XML-format (by Vertis and Topographic Service) 34

Types of constraints (as defined by Vertis and Topographic Service) • Single entity, single Types of constraints (as defined by Vertis and Topographic Service) • Single entity, single attribute (thematic) 0 < road. num_lanes <= 10 • Single entity, multiple attributes (thematic) road. A-number <> ‘’ then road. type=‘highway’ • Geometry (besides some general rules minimum length of line and minimum size of area) road. width_class ‘<2 m’ then geometry is line else area • Topology (several subtypes: covering_without_gaps, no_overlap, coincide, …) road, water and terrain may not overlap at same height • Relationship every feature must have at least 1 specified source 35

XML encoding of domains, ex. 1 range type (width of water) <Domein> <Naam>d. Water. XML encoding of domains, ex. 1 range type (width of water) d. Water. Breedte J Breedte voor Waterdeel Range int 1 500 6 Duplicate Default. Value 36

XML encoding of domains, ex. 2 enumeration type (type of railroad) <Domein> <Naam>d. Spoor. XML encoding of domains, ex. 2 enumeration type (type of railroad) d. Spoor. Typering J Typeringen voor Spoorbaandeel Coded. Value int 44 verbinding J 45 kruising N Duplicate Default. Value 37

Single entity, multiple attributes constraint ‘att 007 a’ <Attribuut. Regel> <Nummer>att 007 a</Nummer> <Vervolg. Single entity, multiple attributes constraint ‘att 007 a’ att 007 a Als Naam_Aweg is ingevuld, dan Weg. Type moet 'autosnelweg' bevatten Weg. Type bevat niet autosnelweg 1 EDT_WEG_VLAK NAAM_AWEG != "" WEGTYPE MVCONTAINS |autosnelweg| 38

Topology constraint ‘top 04’ <Attribuut. Regel> <Nummer>top 04</Nummer> <Vervolg. Nummer/> <Categorie/> <Beschrijving>Indien Wegvlak overlapt Topology constraint ‘top 04’ top 04 Indien Wegvlak overlapt met Wegvlak dan moet HOOGTENIVEAU verschillend zijn Wegvlak overlapt Wegvlak 1 EDT_WEG_VLAK OBJECTID AREAOVERLAPAREA EDT_WEG_VLAK HOOGTENIVEAU != FEATURE 2. HOOGTENIVEAU 39

Relationship (count) constraint ‘brn 01’ <Attribuut. Regel> <Nummer>brn 01</Nummer> <Vervolg. Nummer/> <Categorie/> <Beschrijving>Iedere feature Relationship (count) constraint ‘brn 01’ brn 01 Iedere feature moet een Bron hebben Geen Bron 1 EDT_WEG_VLAK OBJECTID > = 0 OBJECTID BRONCOUNT> 0 40

1. New feature overlaps with existing features 2. No source for feature 41 1. New feature overlaps with existing features 2. No source for feature 41

Some lessons, topographic base data • • • Own (XML) encoding of constraints, maybe Some lessons, topographic base data • • • Own (XML) encoding of constraints, maybe a standard would have been better; e. g. OCL Same encoding of constraints used in different subsystems: 1. at data storage side/DBMS check-in and 2. at data edit side Constraints not yet included in exchange format: some could possibly included in standard GML/XML; e. g. domains, but more research needed for others 42

Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape design VR system Constraints in a cadastral data set (topology) Constraints in a topographic base data set Constraints in web feature service transactions Classification of constraints Support for constraints Conclusions and further research 43

Constraints in Web Feature Service transactions Applied to case ‘notary drafts Parcel boundary’ MSc-thesis Constraints in Web Feature Service transactions Applied to case ‘notary drafts Parcel boundary’ MSc-thesis project Thijs Brentjens 44

OGC Web Feature Services (WFS) • Defines interface to retrieve and edit geodata • OGC Web Feature Services (WFS) • Defines interface to retrieve and edit geodata • Based on common web technologies: • Hyper. Text Transfer Protocol (HTTP) • e. Xtensible Markup Language (XML) • Geography Markup Language (GML) • Basic WFS: Discovering and querying data • Transactional WFS: Insert, Update, Delete, Lock 45

Case study: Notary drafts parcel boundary • Cadastral transaction: • Transfer • Merge • Case study: Notary drafts parcel boundary • Cadastral transaction: • Transfer • Merge • Split • Notary drafts: • Preliminary boundaries • Annotation • Legal after surveying 46

The WFS protocol • Pose a request (get two types of features): http: //130. The WFS protocol • Pose a request (get two types of features): http: //130. 161. 150. 109: 8080/geoserver/wfs? request= Describe. Feature. Type&type. Name=DRAFT_BOUNDARY, DRAFT_PARCEL • XML/GML (geo-information, 2 -way directions): 106417204, 448719275 106367184, 448675614 341411971 31 47 0

48 48

Evaluation of Transactional WFS • WFS enables sharing & editing in heterogeneous, interoperable environment Evaluation of Transactional WFS • WFS enables sharing & editing in heterogeneous, interoperable environment possible • Functions over the Web, limited to simple editing • Beyond simple editing: application logic? • Integrity constraints only on single features, not between features (XML/GML schema encoded) • Transferring (general) constraint knowledge to client not possible • Also constraints on operations (valid actions)? • WFS-T does not support true transactions, as a transaction may be partially successful 49

Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape design VR system Constraints in a cadastral data set (topology) Constraints in a topographic base data set Constraints in web feature service transactions Classification of constraints Support for constraints Conclusions and further research 50

Classification of constraints, some ‘dimensions’: 1. 2. 3. 4. 5. Number of involved object Classification of constraints, some ‘dimensions’: 1. 2. 3. 4. 5. Number of involved object classes/instances Properties of objects & relationships between objects Spatial-temporal dimension Manner of expression: ‘never may’ or ‘always must’ Nature of constraint: ‘physical impossible’ or ‘design objective’ 51

1. Number of involved object classes/instances • One object instance • One property ´tree 1. Number of involved object classes/instances • One object instance • One property ´tree cannot become older than 50 years’ • Two or more properties ´tree must be Yucca and must not be higher than 10 m’ • Multiple object instances • Same object class ‘two trees may not be closer than 2 m’ • Different object classes ‘tree must be south of river’ 52

2. Properties of objects and relationships between objects • Properties • Spatial, thematic, temporal 2. Properties of objects and relationships between objects • Properties • Spatial, thematic, temporal • Relationships • Topology: no trees and bushes inside water polygons • Metric: no trees inside the water, except if < 1 meter from edge of water • Direction: trees should be always south of paving polygons, so people can walk in the sunshine • Quantity: maximum number of 10 plantation objects in a specified area in the centre of the park 53

3. Spatial-temporal dimension • Upto 2 D objects (in 2 D space) • Upto 3. Spatial-temporal dimension • Upto 2 D objects (in 2 D space) • Upto 3 D objects (in 3 D space) • Upto 4 D Mixed space and time objects Note that the two involved instances may or may not have the same dimension 54

4. Expression and 5. Nature • Expression have meaning for communication between users but 4. Expression and 5. Nature • Expression have meaning for communication between users but only one of the cases is implemented (the ‘cheaper’ one), two types never may or always must ‘a tree never may be in water, or street or house’ = ‘a tree always must be in garden, or park’ • The nature has conceptual meaning • physical impossible ‘tree can not float in the air’ • design objective ‘bush should be south of tree’ 55

Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape design VR system Constraints in a cadastral data set (topology) Constraints in a topographic base data set Constraints in web feature service transactions Classification of constraints Support for constraints Conclusions and further research 56

Support for constraints UML, a good start… • OMG’s UML is a mainly graphic Support for constraints UML, a good start… • OMG’s UML is a mainly graphic language, but includes the non-graphic language for specifying constraints; Object Constraint Language (OCL) has 4 types: 1. 2. 3. 4. • Invariant: condition that must always be true Pre-condition: must be true before operation Post-condition: must be true after operation Guard: must be true before state transition OCL is a formal language 57

OCL • • Each OCL expression has ‘context’ Two examples of invariants: 1. Area OCL • • Each OCL expression has ‘context’ Two examples of invariants: 1. Area of parcel is at least 5 m 2 context Perceel inv minimaal. Oppervlak: self. oppervlakte > 5 2. Parcel must have an owner (association context Perceel inv heeft. Eigenaar: self. eigenaar -> not. Empty() • Translate OCL into DDL for DMBS, XML schema documents (xsd), and interaction/edit rules 58

Support for constraints in DBMS: elementary support • Three types of constraints in SQL Support for constraints in DBMS: elementary support • Three types of constraints in SQL 92 standard 1. Domain constraints; e. g. enum or range types 2. General constraints (assertions): any situation 3. Base table constraints: related to table 59

Assertions (SQL 92 standard) Example 1 a: involving aggregation function one table create assertion Assertions (SQL 92 standard) Example 1 a: involving aggregation function one table create assertion size_is_ok check ((select max(height) from tree) < 10); Example 1 b: same functionality, but stated differently create assertion size_is_ok 2 check (not exists (select * from tree where height >= 10)) Example 2: involving relationship between 2 tables create assertion tree_not_in_water check (not exists (select * from tree, water where inside(tree. loc, water. polygon))); Assertions are very powerful: any thematic, temporal, topological and geometric condition can be specified (between any number of tables). However, not available in any mainstream DBMS! 60

Base table constraints (1) • In theory equivalent to assertions (example 2): create table Base table constraints (1) • In theory equivalent to assertions (example 2): create table tree (id integer, height integer, loc point, constraint tree_not_in_water check (not exists (select * from water where inside(loc, water. polygon)))); • However, mainstream DBMSs do not support base table constraints with subselects • What types of base table constraints are supported? 61

Base table constraints (2) 4 types are supported in Ingres 1. Unique constraint create Base table constraints (2) 4 types are supported in Ingres 1. Unique constraint create table ape(name char(10) unique not null, . . ); 2. Referential constraint create table mary(id integer, ape_name char(10) references ape(name)) 3. Primary key constraint create table ape 2(name char(10) primary key, . . ); create table mary 2(id integer, ape_name foreign key (name) references(ape 2)); 4. Check constraint, only one with semantic load create table nut(balance integer check (balance > 0), spending integer); create table nut 2(balance integer, spending integer, constraint not_too_much check (spending < balance)); 62

Work around for general constraint implementation in DBMSs: triggers create trigger not_too_much after insert Work around for general constraint implementation in DBMSs: triggers create trigger not_too_much after insert or update of a_value on a_table DECLARE total number; BEGIN select sum(a_value) into total from a_table; if (total >= 100) then raise_application_error ( num => -20000, msg => 'Cannot add/update "a_value", sum too big'); end if; END; Not pleasant to encode (Oracle example) In practice some parts of code can be generated by CASE tools; e. g. Oracle's CDM Ruleframe 63

Support for constraints in DBMS: specific for topology structures Finally, topology constraints can be Support for constraints in DBMS: specific for topology structures Finally, topology constraints can be better managed within the database (compare to referential integrity): • Oracle 10 g spatial includes some initial support for topological structures (checks topological consistency; e. g. is a loop closed) • Laser. Scan Radius topology is a (Oracle) DBMS solution • Also more ‘middleware’ type of solutions available with support for topology structures; e. g. ESRI geodatabase 64

Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape Contents 1. 2. 3. 4. 5. 6. 7. 8. Introduction Constraints in a landscape design VR system Constraints in a cadastral data set (topology) Constraints in a topographic base data set Constraints in web feature service transactions Classification of constraints Support for constraints Conclusions and further research 65

Conclusions What was shown: • Several GIS applications & models need constraints • Classification Conclusions What was shown: • Several GIS applications & models need constraints • Classification of constraints • Single source formal definition of constraints using OMG’s UML (OCL) • Implementation in DBMS (and in one case also the edit environment) 66

Further research • • Translation of OCL to XML schema; exchange Translation of OCL Further research • • Translation of OCL to XML schema; exchange Translation of OCL to edit environment Visual feedback for the user if a constraint is violated Visual feedback before a constraint is violated: red and green edits areas (or red and green operators) Relationship between consistent data and operations An approach to delete, change and add new constraints and automatic rebuilds of the different subsystems: edits, storage and exchange parts Extending the constraints to space-time/simulation Check for conflicting constraints 67