Mapping your business Du domaine métier à l'informatique Mapping your business The Model Driven...
Transcript of Mapping your business Du domaine métier à l'informatique Mapping your business The Model Driven...
Map
pin
g y
ou
r b
usi
nes
s
Du domaine métier à l'informatique
Mapping your business
The Model Driven ApproachJeff Konnen
FME User ConferenceSeptember 22ndVancouver, BC
Map
pin
g y
ou
r b
usi
nes
s
http://ilix.inser.ch
The Idea
• Exchange Data between several GIS Software Packages (e.g. for cadastral data)
• Impose the data format and model for data exchange
• Use a Neutral Language to describe the Data Model
• Let everyone implement the Data Model like he wants
• Let everyone implement its own interface to the mandatory data exchange format
Map
pin
g y
ou
r b
usi
nes
s
http://ilix.inser.ch
INTERLIS – The GeoLanguage
• INTERLIS is a data exchange format, allowing you:– To DESCRIBE a data model including
• Tables• Constraints• Relationships• Generalization / Polymorphismin a VENDOR – NEUTRAL language
– To EXCHANGE data based on this Model
Map
pin
g y
ou
r b
usi
nes
s
http://ilix.inser.ch
INTERLIS - EXAMPLES• DATA MODEL
– Object Oriented– Text based description– Can be edited visually with
the OSS UML EditorobjectOriginType=(AV,BFS,DGN_AG,DGN_BE,DGN_LU,DGN_SO,DGN_VD,
DGN_ZH,GG25,GN_BL,LK100,LK200,LK25,LK50,LK500,NDB,Photo,GN25,BWG,Kanton,Ausland,GN200,undefined);
gebObject=(Z_Gebaeude,Z_Innenhof,Z_Gasthof,Z_Huette,Z_Kirche,Z_Kuehlturm,Z_Lagertank,Z_Perron,Z_Schiessstand,Z_Schloss,Z_Station,Z_Treibhaus,Z_WBecken,undefined);
CLASS geb = ATTRIBUTE ObjectId: MANDATORY INTEGER4; ObjectOrigin: MANDATORY objectOriginType; ObjectVal: MANDATORY gebObject; YearOfChange: MANDATORY Jahr; Geometrie: MANDATORY SURFACE WITH (STRAIGHTS) VERTEX
LKoord; END geb;
CLASS geb_zentroid = ATTRIBUTE Geometry: MANDATORY LKoord; END geb_zentroid;
ASSOCIATION geb_zentroidObjectId = geb_zentroid -- {*} geb_zentroid; ObjectId -- {1} geb; END geb_zentroidObjectId;
• DATA– XML DATA
<VECTOR25.Strassennetz.str TID="x8335"><ObjectId>8335</ObjectId><ObjectOrigin>12</ObjectOrigin><ObjectVal>6</ObjectVal><YearOfChange>1991</YearOfChange><StradaId></StradaId><Geometrie><POLYLINE><COORD><C1>784946.3</C1><C2>153374.2</C2></COORD><COORD><C1>784946.5</C1><C2>153367.9</C2></COORD><COORD><C1>784950.7</C1><C2>153354.1</C2></COORD><COORD><C1>784955.7</C1><C2>153345.6</C2></COORD><COORD><C1>784960.2</C1><C2>153340.1</C2></COORD></POLYLINE></Geometrie><FromNode REF="x "></FromNode><ToNode REF="x "></ToNode></VECTOR25.Strassennetz.str>
<VECTOR25.Strassennetz.str TID="x8336"><ObjectId>8336</ObjectId><ObjectOrigin>12</ObjectOrigin><ObjectVal>9</ObjectVal><YearOfChange>1998</YearOfChange><StradaId></StradaId><Geometrie><POLYLINE><COORD><C1>785603.9</C1><C2>153327.4</C2></COORD><COORD><C1>785611.4</C1><C2>153340.9</C2></COORD><COORD><C1>785621.6</C1><C2>153353.1</C2></COORD><COORD><C1>785639.643</C1><C2>153368.513</C2></COORD></POLYLINE></Geometrie><FromNode REF="x "></FromNode><ToNode REF="x "></ToNode></VECTOR25.Strassennetz.str>
<VECTOR25.Strassennetz.str TID="x8337"><ObjectId>8337</ObjectId><ObjectOrigin>12</ObjectOrigin><ObjectVal>10</ObjectVal><YearOfChange>1998</YearOfChange><StradaId></StradaId><Geometrie><POLYLINE><COORD><C1>785808.4</C1><C2>153488.7</C2></COORD><COORD><C1>785787.0</C1><C2>153470.5</C2></COORD><COORD><C1>785766.0</C1><C2>153455.5</C2></COORD><COORD><C1>785751.0</C1><C2>153448.2</C2></COORD><COORD><C1>785744.0</C1><C2>153447.0</C2></COORD><COORD><C1>785735.9</C1><C2>153448.1</C2></COORD><COORD><C1>785686.0</C1><C2>153407.0</C2></COORD><COORD><C1>785669.5</C1><C2>153391.5</C2></COORD><COORD><C1>785663.5</C1><C2>153384.5</C2></COORD><COORD><C1>785658.7</C1><C2>153375.2</C2></COORD><COORD><C1>785651.5</C1><C2>153361.5</C2></COORD><COORD><C1>785646.0</C1><C2>153349.5</C2></COORD><COORD><C1>785630.7</C1><C2>153333.2</C2></COORD><COORD><C1>785615.9</C1><C2>153319.9</C2></COORD></POLYLINE></Geometrie><FromNode REF="x "></FromNode><ToNode REF="x "></ToNode></VECTOR25.Strassennetz.str>
Map
pin
g y
ou
r b
usi
nes
s
http://ilix.inser.ch
Implementing the Model Driven Approach
• We implemented the Model Driven Approach for the ESRI Geodatabase: iliX (just as others did for other vendors)
• What does it mean?– Generate a Geodatabase Schema based on an
INTERLIS Data Model• Containing all the Constraints, Rules …
– Generate an INTERLIS-Model based on an existing Geodatabase
– AND: Generate FME Files for data exchange between the Geodatabase and INTERLIS
Map
pin
g y
ou
r b
usi
nes
s
http://ilix.inser.ch
The Data Model
• In the Geodatabase, the INTERLIS Schema looks like this:
Map
pin
g y
ou
r b
usi
nes
s
http://ilix.inser.ch
The FME Files• FME includes Readers and Writers for the Geodatabase• There exists a free FME Plugin for Reading and Writing INTERLIS Data• During the creation of the geodatabase schema, 4 simple « mapping –
tables » are created from the INTERLIS DATAMODEL.• We then programatically generate WORKBENCH-Files based on these
mapping-tables allowing the user to exchange data with his geodatabase
Map
pin
g y
ou
r b
usi
nes
s
http://ilix.inser.ch
Conclusion
• The Model Driven Approach allows you to efficiently exchange data
• FME is the right tool to do the conversion• You can generate schemas and scripts
automatically to improve the process A similar approach could be taken with
GML! If you got questions regarding INTERLIS or the
generating of Workbench-Files, you can send them to [email protected]