gml encoding of nadm c1 connecting geosciences to international standards eric boisvert (gsc) bruce...
TRANSCRIPT
GML encoding of NADM C1
Connecting geosciences to international standards
Eric Boisvert (GSC)Bruce R. Johnson (USGS)Boyan Brodaric (GSC)Simon Cox (CSIRO)
What is GML ? Geography Markup Language XML encoding of ISO standard for
representation of geographic features Building blocks, providing…
Feature model Points, lines, polygons (geometries) Projection definitions Dictionary structures Topology, Time, and more..
What is GML ? GML by itself has little use Need to define a GML application Extend the provided building blocks
and assign domain (community) specific meaning. gml:_GML
gml:_Feature
gml:_GML
gml:_Geometry
gml:_PropertyValue
Street
Why GML ? International standard (Open GIS
Consortium) Opens the possibility to connect with
other communities WFS (Web Feature Service)
Can be used with GML enabled tools
Why GML ?
GML client
NADM-GML
XMML-GML
NADM-GML
USGS WFS
WFSGSC
Etc. WFS
inte
rnet
USGS schema
GSC schema
other schema
inte
rnet
GML is XML Uses XML to define the building blocks Defined with standard XML Schema XML Schema is then used to extend GML Constraints and restrictions defined the
same way in all XML Schemas GML document must validate against an
XML Schema (GML Schema + domain specific Schema)
GML is not any XML GML has rules (conceptual model) Features must derive from core GML
features GML also has syntax rules Class->property->Class->property Mandatory ids Provides ‘design patterns’
Example
<app:RoadSegment gml:id= "RS1">
<app:name>Handbury Road North</app:name>
<gml:centerLineOf>
<gml:LineString gml:id="L1">
<gml:posList>1 2 2 3 3 4 4 0</gml:posList>
</gml:LineString>
</gml:centerlineOf>
<app:numberOfLanes>2</app:numberOfLanes>
<app:surfaceType>Asphalt</app:surfaceType>
</app:RoadSegment>
Mandatory ID
Features have 0 or more
geometries
RoadSegment
- name: string- numberOfLane: int- surfaceType: string
gml:_GML
gml:_Geometry
0..*
+centerLineOf
pro
pert
ies
Example<app:RoadSegment gml:id= "RS1">
<app:name>Handbury Road North</app:name>
<gml:centerLineOf href= "#L1" />
<app:numberOfLanes>2</app:numberOfLanes>
<app:surfaceType>Asphalt</app:surfaceType>
</app:RoadSegment>
…
…
<gml:LineString gml:id="L1">
<gml:posList>1 2 2 3 3 4 4 0</gml:posList>
</gml:LineString>
options
Encoding NADM C1 in GML Start from conceptual model Create a GML friendly
implementation model in UML Turn association classes into ‘bridge’
classes Define which elements can contain
which other elements Define properties and name them
{Must be part of current CM}
_CompoundMaterial
- consolidationDegree: string
Mineral OrganicMaterial Void
InorganicFluid
Rock UnconsolidatedMaterial
Glass
EMConstituent
- proportion: double- emcRole: string
GeologicRelation
0..1
+emFabric
0..*
0..*
1
1 1
+emConstituentMaterial
1..* +emConstituentProperty
1
_GeologicFeature
_EarthMaterial
- metamorphicGrade: string- color: string
0..*
0..*
+emcRelation
Con
cep
tual
GM
L Frie
nd
ly
Fabric
- pervasiveness: string
_GeologicFeature
_EarthMaterial
- metamorphicGrade: string- color: string
0..*
_CompoundMaterial
- consolidationDegree: string
0..1
+emFabric
Fabric
- pervasiveness: string
Rock
_GeologicEvent
Genesis
0..1+emGenesis
0..*
EMConstituent
- proportion: double- emcRole: string
+emConstituentProperty
1..*
1
+emConstituentMaterial
International effort GML encoding is done within an
international effort to improve interoperability of geoscience
First meeting in Edinburgh (Nov. 2003)
Next meeting Florence (August 2004)
Testbed planned