ISO19160-1 Profile SouthAfrica 20141123
ISO19160-1 Profile SouthAfrica 20141123
ISO19160-1 Profile SouthAfrica 20141123
prepared by
ISO19160-1_Profile_SouthAfrica_20141123.docx 1
Contents Page
1.2 Specification for which the South African profile is developed ............................................................. 4
2.3 Attribute mapping from SANS 1883-1:2009 to the South African profile............................................... 9
2.4 Attribute mapping from the South African profile to SANS 1883-1:2009............................................. 10
References ......................................................................................................................... 12
2 ISO19160-1_Profile_SouthAfrica_20141123.docx
List of Figures
Figure 1 – South African profile: address model 5
List of Tables
Table 1 – AddressClass/AddressComponentType matrix 9
Table 2 – Address mapping from SANS 1883-1:2009 to the South African profile 9
Table 3 – Address status mapping from SANS 1883-1:2009 to the South African profile 10
Table 4 – Address mapping from the South African profile to SANS 1883-1:2009 11
Table 5 – Address status mapping from the South African profile to SANS 1883-1:2009 11
ISO19160-1_Profile_SouthAfrica_20141123.docx 3
1. About the South African profile
This profile was developed as part of the ISO 19160-1 project to provide an example of a
profile and also to test and illustrate the logistics for the publication of profiles.
This document conforms to the ‘Address profile documentation’ conformance class, specified
in ISO/DIS 19160-1.
The profile presented in this document conforms to the ‘Core’ conformance class specified in
ISO/DIS 19160-1.
The South African address standard (SANS 1883:2009) was developed and published by the
South African Bureau of Standards (SABS). It describes twelve address types (street
address, landmark address, box address, etc.). The aim of the standard was not to devise a
new system of addressing or to build a national address database, but rather to enable
address data interoperability. The description of address types accommodates the situation in
South Africa at the time when the standard was developed, that is, there were no mandated
authorities to assign standardized addresses according to a set of guidelines.
South African addresses complement a land information system that maintains information
about land parcels and associated legal interests in, and legal rights on, the land parcels.
There is not necessarily a one-to-one relationship between a land parcel and an address: one
land parcel could have many addresses and a number of land parcels could share the same
address. In South Africa, a land parcel description consists of a land parcel number together
with a registered name and registration division, and is recorded at a Surveyor-General’s
office. An address complements a land parcel description with information such as the street
name and the street number which are typically displayed on or in the vicinity of the dwelling
or building, in contrast to the land parcel description, which is used in legal documents only
(Coetzee and Cooper 2007).
This profile makes use of ISO 19160-1 terminology and concepts to describe the twelve
South African address types. While all twelve address types are described, arguably, the
4 ISO19160-1_Profile_SouthAfrica_20141123.docx
most commonly used address types in South Africa are the streetAddress, siteAddress,
sapoBoxAddress and sapoStreetAddress.
Figure 1 presents the South African address model: specializations (with grey background) of
the ISO 19160-1 classes, AddressComponent and Address, are defined to represent South
African addresses.
Address
constraints
{id is mandatory}
{class is mandatory}
{lifecycleStage is mandatory}
AddressComponent
{Address.provenance.owner is mandatory}
{Address.locale.language is mandatory}
{elevationLevel mandatory only if there is a CompleteBuildingUnitIdentifer constraints
component in the address} {All attributes are out of scope, except type and value}
Address::Address
constraints constraints
{For Lifecycle conformance, lifecycleStage and lifecycle shall be mandatory} {For Lifecycle conformance, lifecycleStage and lifecycle
{For Provenance conformance, provenance shall be mandatory} +parentAddress 0..1 shall be mandatory}
{For Locale conformance, locale shall be mandatory} {For Provenance conformance, provenance shall be
+valueComponent 0..* mandatory}
+address 0..* +childAddress 0..* {For Locale conformance, locale shall be mandatory}
+addressedObject 0..*
Address::AddressableObj ect
+ id :Oid
+ type :AddressableObjectType [0..1]
+ position :AddressPosition [0..1]
+ lifecycleStage :AddressableObjectLifecycleStage [0..1]
+ lifecycle :Lifecycle [0..1]
ISO19160-1_Profile_SouthAfrica_20141123.docx 5
class ZA Address components
RegistrationDiv ision
IntersectionIdentifier
constraints
constraints
{type=registrationdivision}
{type=intersectionIdentifier}
{value.value is of type CharacterString}
{value.value is of type
IntersectionIdentifierValue}
AddressComponent
RoadName
AddressComponent
StreetIdentifier
constraints
{type=roadName} constraints
constraints
{value.value is of type CharacterString} {All attributes are out of scope,
{type=streetIdentifier}
except type and value}
{value.value is of type StreetIdentifierValue}
SAPOTypeVillageName
SAPOBoxLocality
constraints
{type=sapotTypeVillageName}
{value.value is of type CharacterString} constraints
{type=sapoBoxLocality}
{value.value is of type
SAPOTypeVillageHouseNumber SAPOBoxLocalityValue}
constraints SAPOStreetLocality
{type=sapoTypeVillageHouseNumber}
{value.value is of type CharacterStirng}
constraints
{type=sapoStreetLocality}
SectionIdentifier {value.value is of type
SAPOStreetLocalityValue}
constraints
{type=sectionIdentifier} Locality
{value.value is of type CharacterString}
constraints
SapoBoxDetails {type=locality}
CompleteAddressNumber {value.value is of type LocalityValue}
constraints
{type=sapoBoxDetails} constraints
{value.value shall be of type CharacterString} {type=completeAddressNumber}
{SAPOBoxNumber | ([MailDeliveryAgentIdentifier], {value.value is of type CharacterString}
SAPOPrivateBagNumber)} {[AddressNumberPrefix], AddressNumber,
[AddressNumberSuffix]}
FullFarmReference
CompleteBuildingUnitIdentifier
constraints
constraints {type=fullFarmReference}
{type=completeBuildingUnitIdentifier} {value.value is of type CharacterString}
{value.value is of type CharacterString} {UsedFarmName, [(RoadName, [MilestoneReference | FarmReference ])
{[UnitElement]*, [FloorElement], (BuildingIdentifier | | FarmReference], Town | UsedAreaName, [Municipality], [Province],
ComplexName) | (BuildingIdentifier, ComplexName)} [Country] | [CountryCode]}
Figure 2 defines address components as required for the representation of the twelve
different address types defined in SANS 1883:2009. The constraints indicate the specific
values for the AddressComponent.type and AddressComponentValue.value attributes in each
of the specialized classes. Where applicable (e.g. sapoBoxDetails), the constraint also
specifies the content of the (CharacterString) value in Extended Backus Naur Format (EBNF).
6 ISO19160-1_Profile_SouthAfrica_20141123.docx
class ZA Types
«type»
LocalityValue
+ placeName :CharacterString
+ town :CharacterString [0..1]
+ municipality :CharacterString [0..1]
+ province :CharacterString [0..1]
+ sapoBoxPostcode :CharacterString [0..1]
+ country :CharacterString [0..1]
+ countryCode :CharacterString [0..1]
constraints
{PlaceName, [Town], [Municipality], [Province], [SAPOPostcode], [Country] | [CountryCode]}
«type»
IntersectionIdentifierValue
+ completeStreetname1 :CharacterString
+ completeStreetname2 :CharacterString
+ intersectionReference :CharacterString [0..1]
constraints
{completeStreetname1 = StreetNameAndType, [[StreetNameDirectional], StreetNameModifier] ... see 5.3.8}
{completeStreetname2 = StreetNameAndType, [[StreetNameDirectional], StreetNameModifier] ... see 5.3.8}
«type»
StreetIdentifierValue
constraints
{completeStreetname = StreetNameAndType, [[StreetNameDirectional], StreetNameModifier] ... see 5.3.8}
{completeAddressNumber = [AddressNumberPrefix], AddressNumber, [AddressNumberSuffix]}
{streetNumberRange = completeAddressNumber, '-', completeAddressNumber}
«type» «type»
SAPOStreetLocalityValue SAPOBoxLocalityValue
constraints constraints
{placeName, sapoStreetPostcode, [country] | [countryCode]} {sapoPostOffice, sapoBoxPostcode,
{placeName = (RecordedName, [UsedName*]) | [UsedName]}} [country] | [countryCode]}
«type»
LandmarkIdentifierValue
constraints
{completeBuildingUnitIdentifier = [UnitElement]*, [FloorElement], (BuildingIdentifier | ComplexName) |
(BuildingIdentifier, ComplexName)}
ISO19160-1_Profile_SouthAfrica_20141123.docx 7
Figure 3 shows the types defined in the profile to represent specific AddressComponent
values (refer to the constraints in Figure 2). The AddressClassSpecification type is out of
scope.
class ZA Codelists
+ addressedObjectIdentifier
+ administrativeAreaName
+ countryCode
+ countryName
+ localityName
´ codelistª + postCode ´ codelistª
AddressClass + postOfficeName AddressPositionType
+ thoroughfareName
+ streetAddress + unknown
+ buildingAddress + notApplicable
+ intersectionAddress + centreOfLandParcel
+ siteAddress + centrePointOfServiceDelivery
+ landmarkAddress + entrancePointofServiceDelivery
+ sapoBoxAddress ´ codelistª + streetFront
+ sapoStreetAddress AddressComponentType + anywhereCloseToPointOfServiceDelivery
+ sapoPosteRestanteAddress + centreOfIntersection
+ sapoTypeVillageAddress + cadastralReference + streetCorner
+ sapoSiteAddress + completeAddressNumber + interpolatedAlongStreetSegment
+ farmAddress + completeBuildingUnitIdentifier + arbitraryPointOnStreetWithinPlaceOrTown
+ fullFarmReference
+ informalAddress + postOfficeLocation
+ informalReference
+ arbitraryPointWithinClosestPlace
+ intersectionIdentifier
+ landmarkIdentifier
´ codelistª + locality
Address::AddressStatus + registrationDivision
+ roadName
+ unknown + sapoBoxDetails
+ official + sapoBoxLocality
+ unofficial + sapoStreetLocality
+ sapoTypeVillageName
+ sapoTypeVillageHouseNumber
+ sectionIdentifier
+ streetIdentifier
AddressStatus
constraints
+ officialAlternate {Out of scope:
addressedObjectIdentifier,
administrativeAreaName,
thoroughfareName}
Figure 4 shows specializations (with grey background) of the ISO 19160-1 code lists
(transparent background) for representation of the address classes, address component
types, address status and address position types defined in SANS 1883:2009. The
AddressAliasType and ReferenceObjectType codelists are out of scope.
Table 1 shows valid address component types for each address class. For example, the
streetAddress address class may comprise two components, streetIdentifier and locality.
8 ISO19160-1_Profile_SouthAfrica_20141123.docx
Table 1 – AddressClass/AddressComponentType matrix
AddressClass
sapoPostRestanteAddress
sapoTypeVilageAddress
intersectionAddress
sapoStreetAddress
landmarkAddress
sapoBoxAddress
sapoSiteAddress
informalAddress
buildingAddress
streetAddress
farmAddress
siteAddress
AddressComponentType
1
cadastralReference M* M*
1
completeAddressNumber M* M*
completeBuildingUnitIdentifier M O
fullFarmReference M
informalReference M
intersectionIdentifier M* O* M O*
landmarkIdentifier O M
2
locality M* M M M* M M
2
registrationDivision M*
roadName O*
sapoBoxDetails M
sapoBoxLocality M M M
sapoStreetLocality M M
sapoTypeVillageName M
sapoTypeVillageHouseNumber M
sectionIdentifier O
streetIdentifier A O* O* M M
*: only one of the components marked with a ‘*’ shall be included.
2.3 Attribute mapping from SANS 1883-1:2009 to the South African profile
Table 2 illustrates the mapping from address attributes defined in SANS 1883-1:2009 to
attributes defined for the Address class in this profile. The number in brackets refers to the
relevant sub-clause in SANS 1883:2009. Address components are not defined in SANS
1883-1:2009, therefore a mapping is not included for the AddressComponent class.
Table 2 – Address mapping from SANS 1883-1:2009 to the South African profile
SANS1883-1 attribute and data type South African profile Mapping description
attribute
coordinateReferenceSystem (4.2.1) SC_CRS position.geometry.position. No conversion required
coordinateReferenceSystem
descriptiveNote (4.2.2) Text descriptiveNote No conversion required
elevationLevel (4.2.3) Integer elevationLevel No conversion required
location (4.2.4) GM_Point position.geometry No conversion required
pointOfObservation (4.2.5) Enumeration position.positionCode One-to-one mapping between
AddressPositionType attributes
defined in this profile and the
Enumeration values defined in
SANS 1883:2009.
ISO19160-1_Profile_SouthAfrica_20141123.docx 9
custodian (4.3.1) CI_Responsible provenance.owner.
Party
addressIdentifier (4.3.2) Alphanumeric id.localId No conversion required
- id.namespace ‘ZA’
originator (4.3.3) CI_Responsible provenance.authority Map the organisationName,
Party contactInfo and role attributes in
CI_ResponsiblePart to the
name, contactInfo and role
attributes in CI_Organisation.
resourceProvider (4.3.4) CI_Responsible resourceProvider Map the organisationName,
Party contactInfo and role attributes in
CI_ResponsibleParty to the
name, contactInfo and role
attributes in CI_Organisation.
landParcelKey (4.4.1) Text landParcelKey No conversion required
addressType (4.5.1) Enumeration class One-to-one mapping between
AddressClass attributes defined
in this profile and the
Enumeration values defined in
SANS 1883:2009.
featureType (4.5.2) Integer addressedObject.type If the address is associated with
an addressable object, the
featureType needs to be
mapped to the type attribute of
the addressable object.
language (4.5.3) Text locale Map to corresponding attribute
in locale.
lifeCycleStage (4.5.4) Enumeration lifecycleStage Refer to the mapping in Table 3.
status (4.5.5) Enumeration status One-to-one mapping between
AddressStatus attributes
defined in this profile and the
Enumeration values defined in
SANS 1883:2009.
Table 3 – Address status mapping from SANS 1883-1:2009 to the South African profile
Enumeration value in AddressLifecycleStage
SANS 1883-1:2009 attribute in this profile
unknownStage unkown
future proposed
active current
retired retired
2.4 Attribute mapping from the South African profile to SANS 1883-1:2009
Table 4 illustrates the mapping from address attributes in this profile to attributes defined in
SANS 1883-1:2009. The number in brackets refers to the relevant sub-clause in SANS
1883:2009. An ‘-‘ indicates that the attribute does not exist in SANS 1883-1:2009. Address
components are not defined in SANS 1883-1:2009, therefore a mapping is not included for
the AddressComponent class.
10 ISO19160-1_Profile_SouthAfrica_20141123.docx
Table 4 – Address mapping from the South African profile to SANS 1883-1:2009
South African profile attribute and data type SANS1883-1 attribute Mapping description
and data type
id.localId CharacterString addressIdentifier No conversion required
(4.3.2)
id.namespace CharacterString - -
class AddressClass addressType (4.5.1) One-to-one mapping between
AddressClass attributes defined in
this profile and the Enumeration
values defined in SANS
1883:2009.
preferenceLevel Integer - -
position.geometry GM_Point location (4.2.4) No conversion required
position.type AddressPositionType pointOfObservation One-to-one mapping between
(4.2.5) AddressPositionType attributes
defined in this profile and the
Enumeration values defined in
SANS 1883:2009.
status AddressStatus Status (4.5.5) One-to-one mapping between
AddressStatus attributes defined
in this profile and the Enumeration
values defined in SANS
1883:2009.
lifecycleStage AddressLifecycleStage lifeCycleStage (4.5.4) Refer to the mapping in Table 5.
descriptiveNote CharacterString descriptiveNote (4.2.2) No conversion required
elevationLevel Integer elevationLevel (4.2.3) No conversion required
landParcelKey CharacterString landParcelKey (4.4.1) No conversion required
resourceProvider CharacterString resourceProvider Map the name, contactInfo and
(4.3.4) role attributes in CI_Organisation
to the organisatioName,
contactInfo and role attributes in
CI_ResponsibleParty.
locale RE_Locale language (4.5.3) Map corresponding attribute in
locale.
addressedObject.type AddressableObjectType featureType (4.5.2) If the address is associated with
an addressable object, the
featureType needs to be mapped
to its type attribute.
Table 5 – Address status mapping from the South African profile to SANS 1883-1:2009
AddressLifecycleStage Enumeration value in
attribute in this profile SANS 1883-1:2009
current active
proposed future
rejected retired
reserved future
retired retired
unknown unknownStage
ISO19160-1_Profile_SouthAfrica_20141123.docx 11
2.5 Instance data for the South African profile
class ZA Instance 1
class ZA Instance 2
References
Coetzee, S. & Cooper, A. K. (2007). What is an address in South Africa ? South African
Journal of Science, 103(11/12), 449–458.
ISO/DIS 19160-1, Addressing – Part 1: Conceptual model. Geneva, Switzerland: International
Organization for Standardization (ISO).
SANS 1883-1, Geographic information -- Addresses -- Part 1 : Data format of addresses.
(2009). Pretoria, South Africa: South African Bureau of Standards (SABS).
12 ISO19160-1_Profile_SouthAfrica_20141123.docx