mapping the intesagis model to the euroroads model alberto belussi università di verona giuseppe...
TRANSCRIPT
Mapping the IntesaGIS model to the EuroRoads model
Alberto BelussiUniversità di VeronaGiuseppe Pelagatti, Mauro NegriPolitecnico di Milano
ESDI Workshop on Conceptual Schema Languages and Tools ISPRA 13-14 Octobre 2005
Translation exercise and discussion points about CSL
2
Outline of the presentation The role of GeoUML in Italy Translation between the IntesaGIS
model and the EuroRoadS model CSL and Interoperability Conclusion
3
What is GeoUML?GeoUML is a conceptual schema language based on UML and the ISO standards (19109 “Rules for application schema” and 19107 “Spatial schema”) which was defined in the context of the Italian IntesaGIS project.It was used for the content specification of the core national spatial database of the Italian SDI.Interoperability was not the main target of the IntesaGIS project.
4
What is GeoUML?
The main contribution of GeoUML is:the introduction of
graphic constructs to represent a reference set of spatial integrity
constrains (topological and structural constrains) in an application
schema.
5
GeoUML and Interoperability
There are currently some pilot projects in regional agencies
(Lombardy and others) that aim to apply the IntesaGIS specification, focusing in particular on
interoperability.
6
Translation exercise: models manipulationIn the next pilot projects, we plan to develop some prototype tools for supporting the design of application schema in GeoUML and interoperability.We need specific tools since we want to represent graphically spatial integrity constrains.These tools are based on a repository for GeoUML application schemas (models).
GeoUML repository
GeoUML models
Different representation
s
Tools in JAVA
7
Translation exercise: translating models to XMIOn of the Java tools will produce the XMI representation of a GeoUML model.In the XMI representation integrity constraints become OCL expressions, thus allowing the maximal compatibility with XMI tools without loosing information.
GeoUML repository
GeoUML models
with spatial integrity
constrains
GeoUML models in XMI
with OCL constraints
XMI generation
8
Translation exercise: data translation approachIn order to map one model M1 onto another model M2, provided that they share a common meta-model, it is necessary:
to define a semantic mapping between the concepts of M1 and the concepts of M2
and a syntactic mapping between the data structures of M1 and the data structures of M2
Defining the GML representation of a model is very useful for both model and data translation, since tools based on XSL can be used to define a syntactic mapping, so that a XSLT parser can be used for data translation.
9
Problems of the proposed data translation approach
Model M1 in GeoUML
Data structures
Integrity constraints
Common Model in UMLData
structures
xsd files based on GML
M1axsd
M1bxsd
M1xxsd…
…
M1axml
M1bxml
M1xxml…
…xml file containing data
XSLT transf.
XMI M1
XMI CM
Semantic mapping
XSL mapping
Syntactic mappingCMaxsd
CMbxsd
CMxxsd…
…
CMaxml
CMbxml
CMxxml…
…
10
Translation exercise:Common model
ER_IdentifiableObject
id : ER_ObjectId
(from euroRoads)
ER_RoadFeature(from euroRoads)
ER_ObjectId
permanentId : CharacterStringversionId : CharacterStringalternateId : CharacterString
(from euroRoads)
<<DataType>>
ER_FerryLink
level : ER_FerryLinkLevelformOfFerry : ER_FormOfFerry
(from euroRoads)
ER_RoadLink
level : ER_RoadLinkLevelformOfWay : ER_FormOfWaynationalRoadClass : ER_NationaRoadClass
(from euroRoads)
ER_ComplexRoadnetElement
formOfComplexElement : ER_FormOfComplexElement
(from euroRoads)
ER_FerryLinkAttribute(from euroRoads)
ER_RoadNodeAttribute(from euroRoads)
ER_RoadLinkAttribute(from euroRoads)
ER_RoadnetElementAttribute(from euroRoads)
ER_ComplexRoadnetElementAttribute(from euroRoads)
ER_LinkAttribute(from euroRoads)
ER_FormOfComplexElement
ER_Interchange : CharacterStringER_Roundabout : CharacterStringER_AggregatedWay : CharacterString
(from euroRoads)
<<CodeList>>
ER_FormOfFerry
ER_ShipOrHovercraft : CharacterStringER_Train : CharacterString
(from euroRoads)
<<CodeList>>
ER_FormOfWay
ER_Motorway : CharacterStringER_MultiCarriageway : CharacterStringER_SingleCarriageway : CharacterStringER_RoundaboutCircle : CharacterStringER_TrafficSquare : CharacterStringER_EnclosedTrafficArea : CharacterStringER_SlipRoad : CharacterStringER_ServiceRoad : CharacterStringER_EntranceOrExitCarPark : CharacterStringER_EntranceOrExitService : CharacterStringER_UndefinedFormOfWay : CharacterString
(from euroRoads)
<<CodeList>>
ER_NationaRoadClass
MainRoadS : CharacterStringFirstClass : CharacterStringSecondClass : CharacterStringThirdClass : CharacterStringFourthClass : CharacterStringSixthClass : CharacterStringSeventhClass : CharacterStringEighthClass : CharacterStringNinthClass : CharacterStringUndefinedNationalRoadClass : CharacterString
(from euroRoads)
<<Enumeration>>
ER_FormOfNode
ER_Roundabout : CharacterStringER_EnclosedTrafficArea : CharacterStringER_PseudoNode : CharacterStringER_GradeSeparatedCrossing : CharacterString
(from euroRoads)
<<CodeList>>
ER_RoadLinkLevel
ER_RoadElement : CharacterStringER_Road : CharacterString
(from euroRoads)
<<CodeList>>
ER_RoadNodeLevel
ER_Junction : CharacterStringER_Intersection : CharacterString
(from euroRoads)
<<CodeList>>ER_FerryLinkLevel
ER_FerryConnection : CharacterStringER_Ferry : CharacterString
(from euroRoads)
<<CodeList>>
ER_SpeedLimit
speedLimit : Integer
(from euroRoads)
ER_RoadAttribute
val idityFrom : Dateval idityTo : Date
(from euroRoads)ER_RoadnetElement
(from euroRoads)0..n 0..1
+attributes
0..n
+roadnetElement
0..1
ER_RoadnetLink
val idityFrom : Dateval idityTo : Date
(from euroRoads)GM_Curve
(from euroRoads)
1 0..11
+curve
0..1GM_Point
(from euroRoads)
ER_RoadNode
level : ER_RoadNodeLevelformOfNode : ER_FormOfNodelocation : GM_Point
(from euroRoads)0..1 1
+point
0..1 1
StringAttribute
value : CharacterString
(from euroRoads)
EuroRoads
11
Translation exercise: IntesaGIS model
Vincolo_35
tipo = Per Ogni
<<DJ>>
RETE STRADALE LIV.1 (RT_ST 1)
tracciato : GU_CNCurve3D
tracciatotracciato
tracciatotracciato
Vincolo_8<<Partizionato>>
tracciatotracciato
Vincolo_12<<CompostoDa>>
Vincolo_9<<dj-Appartiene>>
tracciatotracciato
ELEMENTO ST RADALE (EL_STR)
tracciato : GU_CPCurve3Dtipo : TY_EL_ST R a Tratti su tracciatofondo : TY_FONDO a Trat ti su tracciatoclasse_di_larghezza : CL_LARGH a Tratt i su tracciatosede : SEDE_VEI a Tratti su t racciatolivello : TY_LIVELLO a Tratti su tracciatoclassifica funzionale : CL_FUNZIONstato : TY_STAT O
tracciato.bndtracciato.bndtracciatotracciato
GIUNZIONE STRADALE (GZ_STR)
posizione : GU_Point3Dtipo[1..*] : TY_GZ_STR
posizioneposizioneposizioneposizione
INT ERSEZIONE ST RADALE (IZ_STR)
posizione : GU_Point2Dtipo[1..*] : TY_IZ_STR
...
...
IzdiEl
...
EldiIz
...
......
IzdiGz
...
GzdiIz
...
TRATTO STRADALE (T R_STR)
tracciato : GU_CPCurve2Dtipo : TY_TR_STRclasse_larghezza : CL_LARGH a Trat ti su tracciatosede : SEDE_VEI a Tratti su t racciatolivello : TY_LIVELLO a Tratti su tracciatoclassifica funzionale : CL_FUNZIONstato : TY_STAT O
......
TrdiEl
...
EldiTr
...
...
...
TrdiGz
...
GzdiTr...
Vincolo_11<<dj-Appartiene>>
posizioneposizione
Vincolo_10<<q-Partizionato>>
tracciatotracciato
Vincolo_36
tipo = Per Ogni
<<DJ>>
RETE STRADALE LIV.2 (RT_ST 2)
tracciato : GU_CNCurve3D
tracciatotracciato
tracciatotracciato
tracciatotracciato
tracciatotracciato
12
Generation of xsd file GML-based from the IntesaGIS model
We developed a prototype of a tool for generating the XML schema (GML based) given a GeoUML model stored in the repository (OGC 02-023r4, ISO 19136)
GeoUML repository
GeoUML models
file xsd XMLschema GML-based
Tool in Java
13
Generation of xsd file GML-based from the IntesaGIS model<!-- Elemento contenitore -->
<element name="IntesaGIS_Road" type="guml:IntesaGIS_RoadType" substitutionGroup="gml:_FeatureCollection"/><!-- Elemento per la classe "Elemento stradale" --><element name="Elemento_stradale" type="guml:Elemento_stradaleType" substitutionGroup="gml:_Feature"/><!-- Elemento per la classe "Giunzione stradale" --><element name="Giunzione_stradale" type="guml:Giunzione_stradaleType" substitutionGroup="gml:_Feature"/><!-- Elemento per la classe "Intersezione stradale" --><element name="Intersezione_stradale" type="guml:Intersezione_stradaleType" substitutionGroup="gml:_Feature"/><!-- Elemento per la classe "Rete stradale" --><element name="Rete_stradale" type="guml:Rete_stradaleType" substitutionGroup="gml:_Feature"/>
14
Generation of xsd file GML-based from the IntesaGIS model
15
Syntactic mapping using XSLT<xsl:template match="/Elemento_stradale"><gml:featureMember>
<b:ER_RoadLink>...<xsl:choose><xsl:when test="classifica_funzionale = 'autostrada'">
<b:nationalRoadClass>MainRoad</b:nationalRoadClass></xsl:when><xsl:when test="classifica_funzionale = 'extraurbana_principale'">
<b:nationalRoadClass>FirstClass</b:nationalRoadClass></xsl:when><xsl:when test="classifica_funzionale = 'extraurbana_secondaria'">
<b:nationalRoadClass>SecondClass</b:nationalRoadClass></xsl:when><xsl:when test="classifica_funzionale = 'urbana_di_scorrimento'">
<b:nationalRoadClass>ThirdClass</b:nationalRoadClass></xsl:when><xsl:otherwise>
<b:nationalRoadClass>FourthClass</b:nationalRoadClass></xsl:otherwise></xsl:choose>...<b:ER_RoadLink>
</xsl:template>
16
Data translation from IntesaGIS to EuroRoad
We could not perform data translation on real data since at the moment we have no available data conforming the IntesaGIS model.
17
Problems arised during translation exercise XMI representation of the EuroRoad
model is focused on data structures, semantics specification is avalable only in additional documents no integreted support for semantic mapping (what is a main road?)
traslation of geometry from one type of GML to another one (for example, translation from Compositecurve to Curve) might require computational geometry algorithms. This is not directly supported by XSLT.
18
Conceptual Schema Language issuesIn our opinion, a CSL should:1. be UML-based and include a set of standard
geometric types2. support specification of spatial data properties
(integrity constraints) and not only data structures.
3. guide the generation of GML schema for the representation of data in XML in order to facilitate XSL trasformations.
4. support different levels of interoperability
19
CSL: support integrity constraints specification
CSL Geometric type
Spatial integrity constraints
UML specific types
specific OCL expressions
UML+ Simple Feature
Access
common types
specific OCL expressions on common types
UML+ Spatial Schema
common types +
complexes
specific OCL expressions on common types + structural constraints
UML + Spatial Schema + OCL
templates
common types +
complexes
common OCL templates (topological and
structural constraints)
20
CSL: guiding the generation of GML schema
CSL XML schema GML-based derivation
UML specific encoding rules
UML + encoding rules for Simple Feature Access
common elements for geometric types (only primitives in XML files)
UML+ encoding rules for Spatial Schema
common elements for geometric types (also
complexes in XML files)
UML + encoding rules for a profile of the Spatial Schema (with or without
complexes, with or without 3D)
common elements for geometric types and less
options in geometric elements
UML + a profile of the Spatial Schema and complete encoding
rules (ISO 19136)
common encoding rules
21
CSL: support different levels of interoperability Pure data exchange (lower
interoperability level) Distributed data access Distributed data update (higher
interoperability level)
A CSL should be able to specify common application schemas for all interoperability levels.
22
Conclusion
A Conceptual Schema Language for supporting interoperability has to contain:
A set of standard geometric types: a profile of the Spatial Schema (a core Spatial Schema).
A set of encoding rules for model translation in GML.
A Conceptual Schema Language should also support the specification of data propeties (e.g. spatial integrity constrains).