Date post: | 17-Jan-2016 |
Category: |
Documents |
Upload: | leon-benson |
View: | 215 times |
Download: | 0 times |
Evaluation of the small subset of EuroRoadS
according to ISO 19109 Rules for application
Schema
ESDI Workshop on Conceptual Schema Languages and Tools
Morten Borrebæk and Geir Myrind (NMA Norway)Steinar Høseggen (Geomatikk AS and project leader and
editor of ISO 19109 Rules for Application Schema)
ISO 19109 Rules for Application SchemasScope (1)
This International Standard defines rules for creating and documenting application schemas, including principles for the definition of features.The scope of this International Standard includes the following:
conceptual modelling of features and their properties from a universe of discourse;
definition of application schemas;
use of the conceptual schema language for application schemas;
transition from the concepts in the conceptual model to the data types in the application schema;
integration of standardized schemas from other ISO geographic information standards with the application schema.
ISO 19109 Rules for Application Schemas Scope (2)
The following are outside the scope:
choice of one particular conceptual schema language for application schemas;
definition of any particular application schema;
representation of feature types and their properties in a feature catalogue;
representation of metadata;
rules for mapping one application schema to another;
implementation of the application schema in a computer environment;
computer system and application software design;
programming.
From ’reality’ to geographic data (1)
Reality: phenomena
Universe ofDiscoursesubset
:
perceived in context of
feature instances
classified into
feature types
geographic application
defining 0:ndata capture
From ’reality’ to geographic data (2)
Universe of Discourse
Data
ApplicationSchema
FeatureCatalogue
Conceptual model
Data structured in accordance to theapplication schema
Model based onfeature types andtheir properties
Conceptual modellexpressed by aconceptual schemalanguage
Reality: phenomena
Universe ofDiscoursesubset
:
perceived in context of
feature instances
classified into
feature types
geographic application
defining 0:ndata capture
ISO 19109ISO 19109
Purpose of General Feature Model(GFM)
The GFM is a model of the concepts required to classify a view of the real world. It is expressed in a CSL, that is in UML class diagrams, but it could be in any CSL. UML has its own model of concepts (metamodel). As both the GFM and the UML metamodel deal with classification, the concepts are very similar. There is one big difference. The concepts in the GFM establish a basis for the classification of features whereas the UML-metamodel provides a basis for classification of any kind.
GFM Kernel
The GFM is a model of the concepts required to classify a view of the real world
ISO 19109 Rules
using application schemas to build a new application schema
application schema in UML adding information to a standard schema use of metadata schema for reporting quality information for instances of data for reporting additional quality information for the use of temporal schema for the use of spatial schema for the use of cataloguing schema for spatial referencing using geographic identifiers
Additional rules for:
Example on a rule
8.3 Rules for application schema in UML8.3.1 Main rulesThe main rules for creating application schemas in UML are as follows:
Rules:1) GF_FeatureType: An instance of GF_FeatureType shall be implemented as a CLASS except for Rule 2,case 1 (see GF_AssociationType below).2) …..3) …..
ISO 19109 Conformance
1. Scope2. Conformance....…7. Principles for defining features8. Rules for application schemaAnnex A Abstract test suite
Any application schema claiming conformance to this International Standard shall pass all of the requirementsdescribed in the abstract test suites in Annex A.
The abstract test suits refers to the rules stated in clause 7 and 8.
EuroRoadS subset - abstractISO 19136 Annex E describes mapping rules from a UML application schema to a GML application schema. These rules presuppose that the UML application schema is conformant to ISO 19109 Rules for Application Schema.
The EuroRoadS model that is applied in the test is a small subset of the complete model specified in deliverable “D6.3 Specification of Road Network Information Model”.
The model applies the concepts of classes (also abstract) , supertypes/subtypes, associations (composition), codelists and enumerations. This constitutes a set of well-known and applied concepts of UML.
Error when reading the .mdl file
07:28:02| Loading unit from file C:\CENTC287\ESDI_workshop_CSL\RationalRose\EuroRoadS-submodel.mdl07:28:04| Error: Petal syntax error at line 2816 near 'category'
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_RoadAttribute
+ validityFrom : Date+ validityTo : Date
(from euroRoads)ER_RoadnetElement
(from euroRoads)
0..n 0..1
+attributes
0..n
+roadnetElement
0..1
ER_IdentifiableObject
+ id : ER_ObjectId
(from euroRoads)
ER_RoadFeature(from euroRoads)
ER_ObjectId
+ permanentId : CharacterString+ versionId : CharacterString+ alternateId : CharacterString
(from euroRoads)
<<DataType>>
ER_FerryLink
+ level : ER_FerryLinkLevel+ formOfFerry : ER_FormOfFerry
(from euroRoads)
ER_RoadLink
+ level : ER_RoadLinkLevel+ formOfWay : ER_FormOfWay+ nationalRoadClass : ER_NationaRoadClass
(from euroRoads)
ER_ComplexRoadnetElement
+ formOfComplexElement : ER_FormOfComplexElement
(from euroRoads)
ER_FormOfComplexElement
+ ER_Interchange : CharacterString+ ER_Roundabout : CharacterString+ ER_AggregatedWay : CharacterString
(from euroRoads)
<<CodeList>>
ER_FormOfFerry
+ ER_ShipOrHovercraft : CharacterString+ ER_Train : CharacterString
(from euroRoads)
<<CodeList>>
ER_FormOfWay
+ ER_Motorway : CharacterString+ ER_MultiCarriageway : CharacterString+ ER_SingleCarriageway : CharacterString+ ER_RoundaboutCircle : CharacterString+ ER_TrafficSquare : CharacterString+ ER_EnclosedTrafficArea : CharacterString+ ER_SlipRoad : CharacterString+ ER_ServiceRoad : CharacterString+ ER_EntranceOrExitCarPark : CharacterString+ ER_EntranceOrExitService : CharacterString+ ER_UndefinedFormOfWay : CharacterString
(from euroRoads)
<<CodeList>>
ER_NationaRoadClass
+ MainRoadS : CharacterString+ FirstClass : CharacterString+ SecondClass : CharacterString+ ThirdClass : CharacterString+ FourthClass : CharacterString+ SixthClass : CharacterString+ SeventhClass : CharacterString+ EighthClass : CharacterString+ NinthClass : CharacterString+ UndefinedNationalRoadClass : CharacterString
(from euroRoads)
<<Enumeration>>
ER_FormOfNode
+ ER_Roundabout : CharacterString+ ER_EnclosedTrafficArea : CharacterString+ ER_PseudoNode : CharacterString+ ER_GradeSeparatedCrossing : CharacterString
(from euroRoads)
<<CodeList>>
ER_RoadLinkLevel
+ ER_RoadElement : CharacterString+ ER_Road : CharacterString
(from euroRoads)
<<CodeList>>
ER_RoadNodeLevel
+ ER_Junction : CharacterString+ ER_Intersection : CharacterString
(from euroRoads)
<<CodeList>>ER_FerryLinkLevel
+ ER_FerryConnection : CharacterString+ ER_Ferry : CharacterString
(from euroRoads)
<<CodeList>>
ER_SpeedLimit
+ speedLimit : Integer
(from euroRoads)
ER_RoadnetLink
+ validityFrom : Date+ validityTo : Date
(from euroRoads)GM_Curve
(from euroRoads)
1 0..11
+curve
0..1GM_Point
(from euroRoads)
ER_RoadNode
+ level : ER_RoadNodeLevel+ formOfNode : ER_FormOfNode+ location : GM_Point
(from euroRoads)0..1 1
+point
0..1 1
StringAttribute
+ value : CharacterString
(from euroRoads)
EuroRoad Subset model:
Modelling of attributes
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_RoadAttribute
+ validityFrom : Date+ validityTo : Date
(from euroRoads)ER_RoadnetElement
(from euroRoads)0..n 0..1
+attributes
0..n
+roadnetElement
0..1
According to the specification of Road Network: to be able to support some of the investigated existing solutions, EuroRoadS supports a model where attributes can be handled separated from the road network features themselves using various network referencing mechanisms.
this is a way of adding flexibility to the model since subclasses of ER_RoadAttribute can be added without affecting the existing model. Any piece of information that can be used to characterize an element in the road network is modelled as a class derived from ER_RoadAttribute and therefore attachable to elements in the road network.
Modelling of attributes
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_RoadAttribute
+ validityFrom : Date+ validityTo : Date
(from euroRoads)ER_RoadnetElement
(from euroRoads)0..n 0..1
+attributes
0..n
+roadnetElement
0..1
Clause 8.3.1 Main rules, bullet point 4 describes:
an instance of GF_AttributeType shall be implemented as an ATTRIBUTE (which means an UML attribute), unless it is an attribute of an attribute [see Rule 8.3.1 e)].
Modelling of attributes 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_RoadAttribute
+ validityFrom : Date+ validityTo : Date
(from euroRoads)ER_RoadnetElement
(from euroRoads)0..n 0..1
+attributes
0..n
+roadnetElement
0..1
step 1: Introduce a new CLASS to represent the attribute that is characterized by other attributes.Use the attribute name as the CLASS name.step 2: If appropriate, insert one ATTRIBUTE in this CLASS to represent the value of the attribute represented by the CLASS. Use the same name as the original attribute name. step 3: Insert additional ATTRIBUTE(s) into this CLASS to represent the attributes that characterize the original ATTRIBUTE.step 4: Use this CLASS as the datatype for the original attribute in the CLASS that contains it, or delete the original attribute from the CLASS that contained it and add an ASSOCIATION from that CLASS to the new CLASS.
Clause 8.3.1 Main rules, bullet point 5 (e) describes the following: attributeOfAttribute: An instance of GF_AttributeType that acts in the role characterizedBy in anattributeOfAttribute association shall be instantiated as a class. That class shall be used either as the data type of the GF_AttributeType, or in an association with the class that contains the GF_AttributeType.Attributes that act in the role characterizes shall be instantiated as attributes of the class that represents the attribute that acts in the role characterizedBy.
Human / computer perception
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_RoadAttribute
+ validityFrom : Date+ validityTo : Date
(from euroRoads)ER_RoadnetElement
(from euroRoads)
0..n 0..1
+attributes
0..n
+roadnetElement
0..1
ER_IdentifiableObject
+ id : ER_ObjectId
(from euroRoads)
ER_RoadFeature(from euroRoads)
ER_ObjectId
+ permanentId : CharacterString+ versionId : CharacterString+ alternateId : CharacterString
(from euroRoads)
<<DataType>>
ER_FerryLink
+ level : ER_FerryLinkLevel+ formOfFerry : ER_FormOfFerry
(from euroRoads)
ER_RoadLink
+ level : ER_RoadLinkLevel+ formOfWay : ER_FormOfWay+ nationalRoadClass : ER_NationaRoadClass
(from euroRoads)
ER_ComplexRoadnetElement
+ formOfComplexElement : ER_FormOfComplexElement
(from euroRoads)
ER_FormOfComplexElement
+ ER_Interchange : CharacterString+ ER_Roundabout : CharacterString+ ER_AggregatedWay : CharacterString
(from euroRoads)
<<CodeList>>
ER_FormOfFerry
+ ER_ShipOrHovercraft : CharacterString+ ER_Train : CharacterString
(from euroRoads)
<<CodeList>>
ER_FormOfWay
+ ER_Motorway : CharacterString+ ER_MultiCarriageway : CharacterString+ ER_SingleCarriageway : CharacterString+ ER_RoundaboutCircle : CharacterString+ ER_TrafficSquare : CharacterString+ ER_EnclosedTrafficArea : CharacterString+ ER_SlipRoad : CharacterString+ ER_ServiceRoad : CharacterString+ ER_EntranceOrExitCarPark : CharacterString+ ER_EntranceOrExitService : CharacterString+ ER_UndefinedFormOfWay : CharacterString
(from euroRoads)
<<CodeList>>
ER_NationaRoadClass
+ MainRoadS : CharacterString+ FirstClass : CharacterString+ SecondClass : CharacterString+ ThirdClass : CharacterString+ FourthClass : CharacterString+ SixthClass : CharacterString+ SeventhClass : CharacterString+ EighthClass : CharacterString+ NinthClass : CharacterString+ UndefinedNationalRoadClass : CharacterString
(from euroRoads)
<<Enumeration>>
ER_FormOfNode
+ ER_Roundabout : CharacterString+ ER_EnclosedTrafficArea : CharacterString+ ER_PseudoNode : CharacterString+ ER_GradeSeparatedCrossing : CharacterString
(from euroRoads)
<<CodeList>>
ER_RoadLinkLevel
+ ER_RoadElement : CharacterString+ ER_Road : CharacterString
(from euroRoads)
<<CodeList>>
ER_RoadNodeLevel
+ ER_Junction : CharacterString+ ER_Intersection : CharacterString
(from euroRoads)
<<CodeList>>ER_FerryLinkLevel
+ ER_FerryConnection : CharacterString+ ER_Ferry : CharacterString
(from euroRoads)
<<CodeList>>
ER_SpeedLimit
+ speedLimit : Integer
(from euroRoads)
ER_RoadnetLink
+ validityFrom : Date+ validityTo : Date
(from euroRoads)GM_Curve
(from euroRoads)
1 0..11
+curve
0..1GM_Point
(from euroRoads)
ER_RoadNode
+ level : ER_RoadNodeLevel+ formOfNode : ER_FormOfNode+ location : GM_Point
(from euroRoads)0..1 1
+point
0..1 1
StringAttribute
+ value : CharacterString
(from euroRoads)
According to the model, all three subtypes of ER_RoadnetElement inherits all the subtypes of ER_RoadAttribute, regardless of the name of the attribute, but is that true?
Geometry / topology
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_RoadAttribute
+ validityFrom : Date+ validityTo : Date
(from euroRoads)ER_RoadnetElement
(from euroRoads)
0..n 0..1
+attributes
0..n
+roadnetElement
0..1
ER_IdentifiableObject
+ id : ER_ObjectId
(from euroRoads)
ER_RoadFeature(from euroRoads)
ER_ObjectId
+ permanentId : CharacterString+ versionId : CharacterString+ alternateId : CharacterString
(from euroRoads)
<<DataType>>
ER_FerryLink
+ level : ER_FerryLinkLevel+ formOfFerry : ER_FormOfFerry
(from euroRoads)
ER_RoadLink
+ level : ER_RoadLinkLevel+ formOfWay : ER_FormOfWay+ nationalRoadClass : ER_NationaRoadClass
(from euroRoads)
ER_ComplexRoadnetElement
+ formOfComplexElement : ER_FormOfComplexElement
(from euroRoads)
ER_FormOfComplexElement
+ ER_Interchange : CharacterString+ ER_Roundabout : CharacterString+ ER_AggregatedWay : CharacterString
(from euroRoads)
<<CodeList>>
ER_FormOfFerry
+ ER_ShipOrHovercraft : CharacterString+ ER_Train : CharacterString
(from euroRoads)
<<CodeList>>
ER_FormOfWay
+ ER_Motorway : CharacterString+ ER_MultiCarriageway : CharacterString+ ER_SingleCarriageway : CharacterString+ ER_RoundaboutCircle : CharacterString+ ER_TrafficSquare : CharacterString+ ER_EnclosedTrafficArea : CharacterString+ ER_SlipRoad : CharacterString+ ER_ServiceRoad : CharacterString+ ER_EntranceOrExitCarPark : CharacterString+ ER_EntranceOrExitService : CharacterString+ ER_UndefinedFormOfWay : CharacterString
(from euroRoads)
<<CodeList>>
ER_NationaRoadClass
+ MainRoadS : CharacterString+ FirstClass : CharacterString+ SecondClass : CharacterString+ ThirdClass : CharacterString+ FourthClass : CharacterString+ SixthClass : CharacterString+ SeventhClass : CharacterString+ EighthClass : CharacterString+ NinthClass : CharacterString+ UndefinedNationalRoadClass : CharacterString
(from euroRoads)
<<Enumeration>>
ER_FormOfNode
+ ER_Roundabout : CharacterString+ ER_EnclosedTrafficArea : CharacterString+ ER_PseudoNode : CharacterString+ ER_GradeSeparatedCrossing : CharacterString
(from euroRoads)
<<CodeList>>
ER_RoadLinkLevel
+ ER_RoadElement : CharacterString+ ER_Road : CharacterString
(from euroRoads)
<<CodeList>>
ER_RoadNodeLevel
+ ER_Junction : CharacterString+ ER_Intersection : CharacterString
(from euroRoads)
<<CodeList>>ER_FerryLinkLevel
+ ER_FerryConnection : CharacterString+ ER_Ferry : CharacterString
(from euroRoads)
<<CodeList>>
ER_SpeedLimit
+ speedLimit : Integer
(from euroRoads)
ER_RoadnetLink
+ validityFrom : Date+ validityTo : Date
(from euroRoads)GM_Curve
(from euroRoads)
1 0..11
+curve
0..1GM_Point
(from euroRoads)
ER_RoadNode
+ level : ER_RoadNodeLevel+ formOfNode : ER_FormOfNode+ location : GM_Point
(from euroRoads)0..1 1
+point
0..1 1
StringAttribute
+ value : CharacterString
(from euroRoads)
The ER_RoadnetLink has a geometry attribute GM_Curve, and the ER_RoadNode has the geometry attribute GM_Point. But there is no connection between them. The node does not have to be linked to the road network.
Geometry / topology in EuroRoadS
6.4.2.1 ER_EdgeThe class ER_Edge derives from the ISO 19107 class TP_Edge and adds a reference to the owning ER_RoadnetLink (see below). This makes it possible to define the necessary rules for how topological elements may be connected regarding to type. The edge is a bidirectional and one dimensional topological entity in the network that connects nodes (ER_Node). The edge has a positive and negative direction. According to ISO 19107 the positive direction starts inthe referenced node with a positive orientation and ends in the referenced node with a negative orientation.
Spatial attributes
Geometric objects Topological objects
Geometricprimitives
Geometric complexes Geometricaggregates
Topologicalprimitives
Topologicalcomplexes
GM_PointGM_CurveGM_SurfaceGM_Solid
GM_CompositePointGM_CompositeCurveGM_CompositeSurfaceGM_CompositeSolidGM_Complex
GM_AggregateGM_MultiPointGM_MultiCurveGM_MultiSurfaceGM_MultiSolidGM_MultiPrimitive
TP_NodeTP_EdgeTP_FaceTP_SolidTP_DirectedNodeTP_DirectedEdgeTP_DirectedFaceTP_DirectedSolid
TP_Complex
NOTE The table lists only the highest level classes of spatial objects. Subtypes of these may also be used.
List of valid spatial objects for spatial attributes in an application schema: