You are on page 1of 12

Profile of

ISO 19160-1, Addressing – Part 1: Conceptual model,


for SANS 1883-1:2009, Geographic information – Addresses,
Part 1: Data format of addresses
(South African profile)

prepared by

Serena Coetzee, University of Pretoria, Pretoria, South Africa

Last saved: 2014-11-23

ISO19160-1_Profile_SouthAfrica_20141123.docx 1
Contents Page

1. About the South African profile ..................................................................................... 4  


1.1 Developer of this South African profile..................................................................................................... 4  

1.2 Specification for which the South African profile is developed ............................................................. 4  

1.3 Conformance to ISO 19160-1 ..................................................................................................................... 4  

1.4 Background information on South African addresses ............................................................................ 4  

2. South African profile of ISO/DIS 19160-1 ...................................................................... 5  


2.1 Address model ............................................................................................................................................ 5  

2.2 Address classes .......................................................................................................................................... 8  

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  

2.5 Instance data for the South African profile............................................................................................. 12  

References ......................................................................................................................... 12  

2 ISO19160-1_Profile_SouthAfrica_20141123.docx
List of Figures
Figure 1 – South African profile: address model 5  

Figure 2 – South African profile: address components 6  

Figure 3 – South African profile: types 7  

Figure 4 – South African profile: codelists 8  

Figure 5 – South African profile: instance 1 12  

Figure 6 – South African profile: instance 2 12  

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

1.1 Developer of this 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.

Contact details: Serena Coetzee


Email: serena.coetzee@up.ac.za
Phone: +27 12 420 3823
Address: Geography Building 3-8, University of Pretoria, Pretoria, South Africa

1.2 Specification for which the South African profile is developed

This profile represents addresses specified in SANS 1883-1:2009, Geographic information –


Addresses, Part 1: Data format of addresses.

1.3 Conformance to ISO 19160-1

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.

1.4 Background information on South African addresses

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.

An address is defined as ‘an unambiguous specification of a point of service delivery’ (SANS


1883:2009). Service delivery includes anything from utility services such as water, sewerage,
telecommunications and electricity supply; refuse collection; billing; postal and courier
delivery; to emergency response; goods delivery; serving summonses; household surveys;
and visiting. Addresses are also critical for services that are not necessarily performed at the
address, such as opening bank accounts or buying on credit (Coetzee and Cooper 2007).

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.

2. South African profile of ISO/DIS 19160-1

2.1 Address model

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.

Position may be represented in either the Address or the AddressableObject. The


AddressSpecifcation, AddressAlias AddressedPeriod and ReferenceObject classes are out of
scope.

class ZA Address model

Address

+ descriptiveNote :CharacterString [0..1]


+ elevationLevel :Integer [0..1]
+ landParcelKey :CharacterString [0..1]
+ resourceProvider :CI_Organisation

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

+ id :Oid [0..1] +address


Address::AddressComponent
+ class :AddressClass [0..1]
1..* comprises
+ preferenceLevel :Integer [0..1] 1..* + id :Oid [0..1]
+ position :AddressPosition [0..*] + type :AddressComponentType
+ status :AddressStatus [0..1] +addressComponent + value :AddressComponentValue [1..*]
+ lifecycleStage :AddressLifecycleStage [0..1] + lifecycleStage :AddressLifecycleStage [0..1]
+ lifecycle :Lifecycle [0..1] + lifecycle :Lifecycle [0..1]
+ provenance :AddressProvenance [0..1] + provenance :AddressProvenance [0..1]
+ locale :RE_Locale [0..1] + locale :RE_Locale [0..1]

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}

determines parent +scopeComponent 0..1

{An address unambiguously determines a


single object at any point in time} withinScopeOf

+addressedObject 0..*

Address::AddressableObj ect

+ id :Oid
+ type :AddressableObjectType [0..1]
+ position :AddressPosition [0..1]
+ lifecycleStage :AddressableObjectLifecycleStage [0..1]
+ lifecycle :Lifecycle [0..1]

constraints +parentAddressableObject 0..1


{If no AddressableObject subclasses, then type is mandatory}
{For Lifecycle conformance, lifecyleStage and lifecycle shall be mandatory}
parent
+childAddressableObject 0..*

Figure 1 – South African profile: address model

ISO19160-1_Profile_SouthAfrica_20141123.docx 5
class ZA Address components

InformalReference CadastralReference LandmarkIdentifier

constraints constraints constraints


{type=informalreference} {type=cadastralReference} {type=landmarkIdentifier}
{value.value is of type CharacterString} {value.value is of type CharacterString} {value.value shall be of type
LandmarkIdentifierValue}

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 – South African profile: address components

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

+ completeAddressNumber :CharacterString [0..1]


+ streetNumberRange :CharacterString [0..1]
+ completeStreetname :CharacterString

constraints
{completeStreetname = StreetNameAndType, [[StreetNameDirectional], StreetNameModifier] ... see 5.3.8}
{completeAddressNumber = [AddressNumberPrefix], AddressNumber, [AddressNumberSuffix]}
{streetNumberRange = completeAddressNumber, '-', completeAddressNumber}

«type» «type»
SAPOStreetLocalityValue SAPOBoxLocalityValue

+ placeName :CharacterString + sapoPostOffice :CharacterString


+ sapoStreetPostcode :CharacterString + sapoBoxPostcode :CharacterString
+ country :CharacterString [0..1] + country :CharacterString [0..1]
+ countryCode :CharacterString [0..1] + countryCode :CharacterString [0..1]

constraints constraints
{placeName, sapoStreetPostcode, [country] | [countryCode]} {sapoPostOffice, sapoBoxPostcode,
{placeName = (RecordedName, [UsedName*]) | [UsedName]}} [country] | [countryCode]}

«type»
LandmarkIdentifierValue

+ completeBuildingUnitIdentifier :CharacterString [0..1]


+ landmarkName :CharacterString
+ landmarkReference :CharacterString [0..1]

constraints
{completeBuildingUnitIdentifier = [UnitElement]*, [FloorElement], (BuildingIdentifier | ComplexName) |
(BuildingIdentifier, ComplexName)}

Figure 3 – South African profile: types

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

´ codelistª ´ codelistª ´ codelistª


Address::AddressClass Address::AddressComponentType Address::AddressPositionType

+ 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 – South African profile: codelists

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.

2.2 Address classes

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

StreetAddressExample1 :Address StreetIdentifier :AddressComponent

id.localId = 239487 type = streetIdentifier


id.namespace = ZA value.value.completeAddressNumber = 734
class = streetAddress value.value.completeStreetName = Pretorius Street
position.geometry = {27.93887, 24.82736}
position.type = streetFront
status = official
lifecycleStage = current
provenance.authority.name = City of Tshwane
provenance.authority.role = custodian Locality :AddressComponent
provenance.owner.name = City of Tshwane
provenance.owner.role = owner type = locality
locale.language = EN value.value.placeName = Hatfield
resourceProvider.name = MyCompany
resourceProvider.role = ResourceProvider

Figure 5 – South African profile: instance 1

class ZA Instance 2

StreetAddressExample1 :Address StreetIdentifier :AddressComponent

id.localId = 749887 type = streetIdentifier


id.namespace = ZA value.value.completeAddressNumber = 55
class = streetAddress value.value.completeStreetName = Potgieterstraat
position.geometry = {27.59483, 24.38746}
position.type = centreOfLandParcel
status = official
lifecycleStage = current
provenance.authority.name = City of Tshwane
provenance.authority.role = custodian Locality :AddressComponent
provenance.owner.name = City of Tshwane
provenance.owner.role = owner type = locality
locale.language = AF value.value.placeName = Kroonstad
resourceProvider.name = MyCompany value.value.province = Free State
resourceProvider.role = ResourceProvider

Figure 6 – South African profile: 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

You might also like