22
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

Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

Embed Size (px)

Citation preview

Page 1: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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)

Page 2: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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.

Page 3: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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.

Page 4: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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

Page 5: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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

Page 6: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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.

Page 7: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

GFM Kernel

The GFM is a model of the concepts required to classify a view of the real world

Page 8: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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:

Page 9: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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) …..

Page 10: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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.

Page 11: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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.

Page 12: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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'

Page 13: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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:

Page 14: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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.

Page 15: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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)].

Page 16: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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.

Page 17: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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?

Page 18: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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.

Page 19: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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.

Page 20: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools

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:

Page 21: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools
Page 22: Evaluation of the small subset of EuroRoadS according to ISO 19109 Rules for application Schema ESDI Workshop on Conceptual Schema Languages and Tools