Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update TransformationRules.md #99

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 41 additions & 16 deletions model-transformations/TransformationRules.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,54 +2,71 @@

## Introduction

The intent of this document is to describe multiple model transformation methods. These methods reduce complexity in encoded INSPIRE data, e.g. by reducing levels of aggregation, indirect referencing, using simple geometries and flattening structures such as arrays. As with alternate encodings, they have different objectives and scopes. A rule may be used with any number of encodings, including the default encoding, if applicable.
The intent of this document is to describe multiple model transformation rules. These model transformations reduce complexity in encoded INSPIRE data, e.g. by reducing levels of aggregation, indirect referencing, using simple geometries and flattening structures such as arrays. As with Alternative Encodings, they have different objectives and scopes. A rule may be used with any number of encodings, including the default encoding, if applicable.

An Alternate encoding may refer to any number of such model transformation rules in its conformance classes. For this purpose, each model transformation rules receives a unique identifier. For an Alternate encoding to be the sole encoding, there may not be any information loss for the particular data set in question.
An Alternative Encoding may refer to any number of such model transformation rules in its conformance classes. For this purpose, each model transformation rule receives a unique identifier. For an Alternative Encoding to be the sole encoding, there may not be any information loss for the particular data set in question. Where there is information loss, such encoding may only be used as an Additional Encoding.

## Requirements for Model Transformations

We describe each Model Transformation by using these properties:
Each Model Transformation is described by these properties:

- Name
- Unique Identifier
- Category
- Description
- Original vs. Transformed UML Model, where applicable
- Original instance in default encoding
- Transformed instance in default encoding, where applicable
- Model Transformation Rule
- Instance Transformation Rule
- Solved Data Usability issues
- Open/new Data Usability issues
- INSPIRE compliance conditions and reversability
- Examples of use (Links to issues in the 2017.2 repository)
- Additional notes and enhancements
- Solved Usability issues
- Known Usability issues
- INSPIRE compliance conditions and reversibility
- Examples of use (Links to examples in the 2017.2 repository)
- Additional notes

## Catalogue of simplifying Model Transformations
## Catalogue of Model Transformations

This section contains a selection of examples for model transformations we have identified so far.
This catalogue contains general model Simplification Rules we have identified so far.

The catalogue also contains several substitution rules, where existing types such as `GeographicName` are replaced with less complex types. These types are added to the theme namespaces under draft schemas (`https://inspire.ec.europa.eu/draft-schemas/`).
The catalogue also contains several Substitution Rules, where existing types such as `GeographicName` are replaced with less complex types. These types are added to the theme namespaces under draft schemas (`https://inspire.ec.europa.eu/draft-schemas/`).

### MT001: Flattening of nested structures
## SIMPLIFICATION RULES

### MT001: Flatten Nested Structures

[General Flattening of nested structures](./GeneralFlattening.md)

### MT002: Extract Primitive Arrays

[Extract Primitive Array](./ExtractPrimitiveArray.md)

### MT003: Association/Aggregation to Composition with Hard Typing
### MT003: Flatten Associated Components Using Typenames

[Association/Aggregation to Composition with Hard Typing](./AssociatedComponentsHardType.md)

### MT004: Association/Aggregation to Composition with Soft Typing
### MT004: Flatten Associated Components Using Codelist Values

[Association/Aggregation to Composition with Soft Typing](./AssociatedComponentsSoftType.md)

### MT006: Property Composition to Association
### MT006: Refer to Property Values by Reference

[Property Composition to Association](./PropertyCompositionToAssocation.md)

### MT00X (PROPOSED) Retain Nested Child Structures

TBD RetainAdditionalNestedChildElements

### MT00X (PROPOSED) MTXXX: Fan-Out Feature Types to Multiple Feature

TBD FanOutFeatureClasses

### MT00X (PROPOSED) Fan-Out Features by Geometry Type

TBD FanOutFeaturesByGeometryType

## SUBSTITUTION RULES

### MT005: Simple Geographic Name

[Simple Geographic Name](./SimpleGeographicName.md)
Expand All @@ -64,4 +81,12 @@ The catalogue also contains several substitution rules, where existing types suc

### MT009: Simple Period

[Simple Period](./SimplePeriod.md)
[Simple Period](./SimplePeriod.md)

### MT00X: European Legislation Identifier

[European Legislation Identifier](./EuropeanLegislationIdentifier.md)

## MT00X (PROPOSED) Abbreviate Prefix of Compound Property Names

TBD AbbreviateCompoundPropertyNames