Version: 0.2
Date: 2019-08-31
The Simple Addresses encoding can be used as an alternative encoding for address data that fulfills the following requirements:
- It is sufficient to provide one
GeographicName
for all elements that use it - There is not more than 1
AdminUnitName
address component perAdministrativeUnitLevel
- There is only a single default position per
Address
object
The Addresses theme has one application schema, therefore this theme-specific encoding rule defines a single core conformance class.
This section describes which transformation rules with which parameters are applied to the Addresses conceptual model before applying the general rules of this encoding rule:
- Substitute all occurences of
GeographicName
with the Simple Geographic Name through RuleMT005(separator: '_')
. - Subsitute all attributes that have a property type with a Codelist Sterotype through a inline codelist reference using
MT008()
. - Inline all
addressComponents
through RuleMT003(separator: '_', cardinality: { AdminUnitName: 6 })
, using the respective typenames to create unique property names. In addition, define that forAdminUnitName
, six properties shall be created, one for eachAdministrativeUnitLevel
. - Flatten the Locator/Designator structure through application of
MT004(separator: '_', keyProperty: 'type')
(Flatten aggregated or associated components using codelist values). - Apply the General Flattening rule to simplify the remaining properties:
MT001(separator: '_')
The following table explains the mapping between the classes and properties of the original Addresses (AD) model to the Simplified Addresses (ADS) model.
AD Name (condition) | AD Type | ADS Name | ADS Type |
---|---|---|---|
ad:alternativeIdentifier | String | alternativeIdentifier | String |
ad:beginLifespanVersion | DateTime | beginLifespanVersion | String |
ad:endLifespanVersion | DateTime | endLifespanVersion | String |
ad:building | bu-base:AbstractConstruction | building | String (URL) |
ad:component (class = ThoroughfareName) | Component | component_ThoroughfareName | String |
ad:component (class = PostalDescriptor) | Component | component_PostalDescriptor | String |
ad:component (class = AddressAreaName) | Component | component_AddressAreaName | String |
ad:component (class = AdminUnitName, index = 0) | Component | component_AdminUnitName_1 | String |
ad:component (class = AdminUnitName, index = 1) | Component | component_AdminUnitName_2 | String |
ad:component (class = AdminUnitName, index = 2) | Component | component_AdminUnitName_3 | String |
ad:component (class = AdminUnitName, index = 3) | Component | component_AdminUnitName_4 | String |
ad:component (class = AdminUnitName, index = 4) | Component | component_AdminUnitName_5 | String |
ad:component (class = AdminUnitName, index = 5) | Component | component_AdminUnitName_6 | String |
ad:locator | AddressLocator | locator_designator_addressNumber | String |
locator_designator_addressNumberExtension | String | ||
locator_designator_addressNumber2ndExtension | String | ||
locator_designator_buildingIdentifier | String | ||
locator_designator_buildingIdentifierPrefix | String | ||
locator_designator_cornerAddress1stIdentifier | String | ||
locator_designator_cornerAddress2ndIdentifier | String | ||
locator_designator_entranceDoorIdentifier | String | ||
locator_designator_floorIdentifier | String | ||
locator_designator_kilometrePoint | String | ||
locator_designator_postalDeliveryIdentifier | String | ||
locator_designator_staircaseIdentifier | String | ||
locator_designator_unitIdentifier | String | ||
locator_name | SimpleGeographicName | ||
locator_level | String | ||
locator_level_href | String (URL) | ||
ad:parcel | Parcel | parcel | String |
ad:parentAddress | Address | parentAddress | String |
ad:position | GeographicPosition | added as geometry to the root object |
GeoJSON Geometry Object |
position_specification | String | ||
position_specification_href | String (URL) | ||
position_method | String | ||
position_method_href | String (URL) | ||
position_default | boolean | ||
ad:status | StatusValue | status | String |
status_href | String (URL) | ||
ad:validFrom | DateTime | validFrom | String |
ad:validTo | DateTime | validTo | String |
NOTE Additional examples can be added to the /ads/examples/
folder in this repository.
Example 1: One Address Feature with all components and locators inlined (Standalone Example)
{
"type":"FeatureCollection",
"features":[
{
"type": "Feature",
"id": "Address_1",
"geometry": {
"type": "Point",
"coordinates": [ 8.6572813, 49.87437 ]
},
"properties": {
"inspireId_localId": "Address_1",
"inspireId_namespace": "https://github.com/INSPIRE-MIF/2017.2/GeoJSON/ads/examples/",
"position_specification": "parcel",
"position_specification.href": "http://inspire.ec.europa.eu/codelist/GeometrySpecificationValue/parcel",
"position_method": "fromFeature",
"position_method_href": "http://inspire.ec.europa.eu/codelist/GeometryMethodValue/fromFeature",
"position_default": true,
"locator_designator_addressNumber": "5",
"locator_designator_addressNumberExtension": "A",
"locator_level": "siteLevel",
"locator_level_href": "http://inspire.ec.europa.eu/codelist/LocatorLevelValue/siteLevel",
"locator_name": "Fraunhofer IGD",
"component_ThoroughfareName": "Fraunhoferstraße",
"component_PostalDescriptor": "64283",
"component_AddressAreaName": "Innenstadt",
"component_AdminUnitName_1": "Deutschland",
"component_AdminUnitName_2": "Hessen",
"component_AdminUnitName_3": "Darmstadt"
}
}
]
}