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

Convert enumeration into codelists #132

Merged
merged 29 commits into from
Feb 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
40eab0a
Convert enumeration into codelist from SO TG
aielloalex Jan 22, 2024
58f1620
Deleted list element from annex a
aielloalex Jan 22, 2024
a723e0f
Convert enumeration into codelist from EL TG
aielloalex Jan 22, 2024
407f44a
Convert enumeration into codelist from BU TG
aielloalex Jan 22, 2024
c89132f
Convert enumeration into codelist from LU TG
aielloalex Jan 23, 2024
f0b9d64
Convert enumeration into codelist from HY TG
aielloalex Jan 23, 2024
cc54ee2
Convert enumeration into codelist from EF TG
aielloalex Jan 23, 2024
76d5aeb
Convert enumeration into codelist from PS TG
aielloalex Jan 24, 2024
d4b97f5
Convert enumeration into codelist from US TG
aielloalex Jan 24, 2024
f353f80
Convert enumeration into codelist from SD TG
aielloalex Jan 24, 2024
e24cf6b
Convert enumeration into codelist from LC TG
aielloalex Jan 25, 2024
a16f75a
Convert enumeration into codelist from AU TG
aielloalex Jan 25, 2024
fff7a07
Convert enumeration into codelist from SU TG
aielloalex Jan 25, 2024
f7e362e
Convert enumeration into codelist from OI TG
aielloalex Jan 25, 2024
02133af
Convert enumeration into codelist from GE TG
aielloalex Jan 25, 2024
0e83627
Update dataspecification_oi.adoc
fabiovinci Jan 25, 2024
6c8360f
Convert enumeration into codelist from AF TG
aielloalex Jan 26, 2024
3cd7b42
Convert enumeration into codelist from AM TG
aielloalex Jan 26, 2024
43b7866
Convert enumeration into codelist from NZ TG
aielloalex Jan 26, 2024
18ac761
Convert enumeration into codelist from TN TG
aielloalex Jan 26, 2024
c48d282
Convert enumeration into codelist from HB TG
aielloalex Jan 29, 2024
f54bb13
Convert enumeration into codelist from PF TG
aielloalex Jan 29, 2024
0677bcf
Convert enumeration into codelist from HH TG
aielloalex Jan 29, 2024
d134b1d
Update of UML for AU TG
fabiovinci Jan 30, 2024
943fa04
Update of UML for TN TG
fabiovinci Jan 30, 2024
f9464fe
Update of UML for EL TG
fabiovinci Jan 30, 2024
ad9e069
Update of UML for HY TG
fabiovinci Jan 30, 2024
fea44a7
Update of UML for NZ TG
fabiovinci Jan 30, 2024
1f9f914
Merge branch '2024.1' into convert_enumeration
fabiovinci Feb 1, 2024
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
82 changes: 32 additions & 50 deletions data/af/dataspecification_af.adoc

Large diffs are not rendered by default.

88 changes: 33 additions & 55 deletions data/am/dataspecification_am.adoc

Large diffs are not rendered by default.

161 changes: 56 additions & 105 deletions data/au/dataspecification_au.adoc

Large diffs are not rendered by default.

Binary file modified data/au/media/image6.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified data/au/media/image8.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
93 changes: 37 additions & 56 deletions data/bu/dataspecification_bu.adoc

Large diffs are not rendered by default.

83 changes: 29 additions & 54 deletions data/ef/dataspecification_ef.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -408,11 +408,9 @@ Articles 3, 4 and 5 of the Implementing Rules lay down the requirements for the
_Article 4_
*Types for the Exchange and Classification of Spatial Objects*

1. For the exchange and classification of spatial objects from data sets meeting the conditions laid down in Article 4 of Directive 2007/2/EC, Member States shall use the spatial object types and associated data types, enumerations and code lists that are defined in Annexes II, III and IV for the themes the data sets relate to.
. For the exchange and classification of spatial objects from data sets meeting the conditions laid down in Article 4 of Directive 2007/2/EC, Member States shall use the spatial object types and associated data types and code lists that are defined in Annexes II, III and IV for the themes the data sets relate to.

2. Spatial object types and data types shall comply with the definitions and constraints and include the attributes and association roles set out in the Annexes.

3. The enumerations and code lists used in attributes or association roles of spatial object types or data types shall comply with the definitions and include the values set out in Annex II. The enumeration and code list values are uniquely identified by language-neutral mnemonic codes for computers. The values may also include a language-specific name to be used for human interaction.
. When exchanging spatial objects, Member States shall comply with the definitions and constraints set out in the Annexes and provide values for all attributes and association roles set out for the relevant spatial object types and data types in the Annexes. For voidable attributes and association roles for which no value exists, Member States may omit the value.

====

Expand Down Expand Up @@ -508,7 +506,6 @@ In the application schemas in this section several stereotypes are used that hav
|type |Class |A type that is not directly instantiable, but is used as an abstract collection of operation, attribute and relation signatures. This stereotype should usually not be used in INSPIRE application schemas as these are on a different conceptual level than classifiers with this stereotype.
|dataType |Class |A structured data type without identity.
|union |Class |A structured data type without identity where exactly one of the properties of the type is present in any instance.
|enumeration |Class |An enumeration.
|codeList |Class |A code list.
|import |Dependency |The model elements of the supplier package are imported.
|voidable |Attribute, association role |A voidable attribute or association role (see section 5.2.2).
Expand Down Expand Up @@ -547,27 +544,6 @@ In both cases, the «voidable» stereotype can be applied. In cases where the mi

EXAMPLE If an address does not have a house number, the corresponding Address object should not have any value for the «voidable» attribute house number. If the house number is simply not known or not populated in the data set, the Address object should receive a value of _void_ (with the corresponding void reason) for the house number attribute.

==== Enumerations

Enumerations are modelled as classes in the application schemas. Their values are modelled as attributes of the enumeration class using the following modelling style:

* No initial value, but only the attribute name part, is used.
* The attribute name conforms to the rules for attributes names, i.e. is a lowerCamelCase name. Exceptions are words that consist of all uppercase letters (acronyms).

[IMPORTANT]
====
[.text-center]
*IR Requirement*
_Article 6_
*Code Lists and Enumerations*

(...)

[arabic, start=5]
. Attributes or association roles of spatial object types or data types that have an enumeration type may only take values from the lists specified for the enumeration type."

====

==== Code lists

Code lists are modelled as classes in the application schemas. Their values, however, are managed outside of the application schema.
Expand All @@ -581,21 +557,23 @@ The IRs distinguish the following types of code lists.
[.text_center]
*IR Requirement*
_Article 6_
*Code Lists and Enumerations*
*Code Lists for Spatial Data Sets*

[arabic, start=1]
. Code lists shall be of one of the following types, as specified in the Annexes:
+
[loweralpha]
.. code lists whose allowed values comprise only the values specified in this Regulation;
. The code lists included in this Regulation set out the multilingual thesauri to be used for the key attributes, in accordance with Article 8(2), point (c), of Directive 2007/2/EC.

.. code lists whose allowed values comprise the values specified in this Regulation and narrower values defined by data providers;
. The Commission shall establish and operate an INSPIRE code list register at Union level for managing and making publicly available the values that are included in the code lists referred to in paragraph 1.

.. code lists whose allowed values comprise the values specified in this Regulation and additional values at any level defined by data providers;
. The Commission shall be assisted by the INSPIRE Commission expert group in the maintenance and update of the code list values.

.. code lists, whose allowed values comprise any values defined by data providers.
+
For the purposes of points (b), (c) and (d), in addition to the allowed values, data providers may use the values specified in the relevant INSPIRE Technical Guidance document available on the INSPIRE web site of the Joint Research Centre.
. Code lists shall be one of the following types:
[loweralpha]
.. code lists whose values comprise only the values specified in the INSPIRE code list register;
.. code lists whose values comprise the values specified in the INSPIRE code list register and narrower values defined by data providers;
.. code lists whose values comprise the values specified in the INSPIRE code list register and additional values at any level defined by data providers;
.. code lists, whose values comprise any values defined by data providers.

. Code lists may be hierarchical. Values of hierarchical code lists may have a more general parent value.
. Where, for an attribute whose type is a code list as referred to in paragraph 4, points (b), (c) or (d), a data provider provides a value that is not specified in the INSPIRE code list register, that value and its definition and label shall be made available in another register.

====

Expand Down Expand Up @@ -623,12 +601,12 @@ In addition, code lists can be hierarchical, as explained in Article 6(2) of the
[.text-center]
*IR Requirement*
_Article 6_
*Code Lists and Enumerations*
*Code Lists for Spatial Data Sets*

(...)

[arabic, start=2]
. Code lists may be hierarchical. Values of hierarchical code lists may have a more generic parent value. Where the valid values of a hierarchical code list are specified in a table in this Regulation, the parent values are listed in the last column.
[arabic, start=5]
. Code lists may be hierarchical. Values of hierarchical code lists may have a more generic parent value.

====

Expand All @@ -641,20 +619,18 @@ The type of code list and whether it is hierarchical or not is also indicated in
[.text-center]
*IR Requirement*
_Article 6_
*Code Lists and Enumerations*
*Code Lists for Spatial Data Sets*

(....)

[arabic, start=3]
. Where, for an attribute whose type is a code list as referred to in points (b), (c) or (d) of paragraph 1, a data provider provides a value that is not specified in this Regulation, that value and its definition shall be made available in a register.

. Attributes or association roles of spatial object types or data types whose type is a code list may only take values that are allowed according to the specification of the code list.
[arabic, start=6]
. Where, for an attribute whose type is a code list as referred to in paragraph 4, points (b), (c) or (d), a data provider provides a value that is not specified in the INSPIRE code list register, that value and its definition and label shall be made available in another register.

====

Article 6(4) obliges data providers to use only values that are allowed according to the specification of the code list. The "allowed values according to the specification of the code list" are the values explicitly defined in the IRs plus (in the case of code lists of type (b), (c) and (d)) additional values defined by data providers.
Article 6(6) obliges data providers to use only values that are allowed according to the specification of the code list. The "allowed values according to the specification of the code list" are the values explicitly defined in the IRs plus (in the case of code lists of type (b), (c) and (d)) additional values defined by data providers.

For attributes whose type is a code list of type (b), (c) or (d) data providers may use additional values that are not defined in the IRs. Article 6(3) requires that such additional values and their definition be made available in a register. This enables users of the data to look up the meaning of the additional values used in a data set, and also facilitates the re-use of additional values by other data providers (potentially across Member States).
For attributes whose type is a code list of type (b), (c) or (d) data providers may use additional values that are not defined in the IRs. Article 6(6) requires that such additional values and their definition be made available in a register. This enables users of the data to look up the meaning of the additional values used in a data set, and also facilitates the re-use of additional values by other data providers (potentially across Member States).

NOTE Guidelines for setting up registers for additional values and how to register additional values in these registers is still an open discussion point between Member States and the Commission.

Expand Down Expand Up @@ -1878,7 +1854,7 @@ a|

===== Imported types (informative)

This section lists definitions for feature types, data types and enumerations and code lists that are defined in other application schemas. The section is purely informative and should help the reader understand the feature catalogue presented in the previous sections. For the normative documentation of these types, see the given references.
This section lists definitions for feature types, data types and code lists that are defined in other application schemas. The section is purely informative and should help the reader understand the feature catalogue presented in the previous sections. For the normative documentation of these types, see the given references.

====== _Boolean_

Expand Down Expand Up @@ -3849,7 +3825,7 @@ It should be noted that data providers are not obliged to integrate / decompose
A *dataset that contain more spatial object and/or data types* may be regarded as conformant when

* all the spatial object / data types that have corresponding types in the source dataset after the necessary transformations fulfil the requirements set out in the ISDSS Regulation and
* all additional elements of the source model (spatial object types, data types, attributes, constraints, code lists and enumerations together with their values) do not conflict with any rule defined in the interoperability target specifications defined for any theme within INSPIRE.
* all additional elements of the source model (spatial object types, data types, attributes, constraints and code lists together with their values) do not conflict with any rule defined in the interoperability target specifications defined for any theme within INSPIRE.

|===
*Open issue 1:* Even though the last condition can be derived from Art. 8(4) of the Directive, the ISDSS Regulation does not contain requirements concerning the above issue. Therefore, no specific tests have been included in this abstract suit for testing conformity of extended application schemas. Annex F of the Generic Conceptual Model (D2.5) provides an example how to extend INSPIRE application schemas in a compliant way.
Expand Down Expand Up @@ -3886,7 +3862,7 @@ a) [.underline]#Purpose#: Verification whether each element of the dataset under

b) [.underline]#Reference#: Art. 3 and Art.4 of Commission Regulation No 1089/2010

c) [.underline]#Test Method#: Examine whether the corresponding elements of the source schema (spatial object types, data types, attributes, association roles, code lists, and enumerations) are mapped to the target schema with the correct designation of mnemonic names.
c) [.underline]#Test Method#: Examine whether the corresponding elements of the source schema (spatial object types, data types, attributes, association roles and code lists) are mapped to the target schema with the correct designation of mnemonic names.

NOTE Further technical information is in the Feature catalogue and UML diagram of the application schema(s) in section 5.2.

Expand All @@ -3898,19 +3874,18 @@ b) [.underline]#Reference#: Art. 3, Art.4, Art.6(1), Art.6(4), Art.6(5) and Art.

c) [.underline]#Test Method#: Examine whether the value type of each provided attribute or association role adheres to the corresponding value type specified in the target specification.

NOTE 1 This test comprises testing the value types of INSPIRE identifiers, the value types of attributes and association roles that should be taken from enumeration and code lists, and the coverage domains.
NOTE 1 This test comprises testing the value types of INSPIRE identifiers, the value types of attributes and association roles that should be taken from code lists, and the coverage domains.

NOTE 2 Further technical information is in the Feature catalogue and UML diagram of the application schema(s) in section 5.2.

==== Value test

a) [.underline]#Purpose#: Verify whether all attributes or association roles whose value type is a code list or enumeration take the values set out therein.
a) [.underline]#Purpose#: Verify whether all attributes or association roles whose value type is a code list take the values set out therein.

b) [.underline]#Reference#: Art.4 (3) of Commission Regulation No 1089/2010.

c) [.underline]#Test Method#: When an attribute / association role has an enumeration or code list as its type, compare the values of each instance with those provided in the application schema. To pass this tests any instance of an attribute / association role
c) [.underline]#Test Method#: When an attribute / association role has an code list as its type, compare the values of each instance with those provided in the application schema. To pass this tests any instance of an attribute / association role

* shall not take any other value than defined in the enumeration table when its type is an enumeration.

* shall take only values explicitly specified in the code list when the code list's extensibility is "none".

Expand Down
Loading