
Customer Information Quality Specifications Version 3.0
Name (xNL), Address (xAL) and Party (xPIL)
Public Review Draft 02
15 June 2007
Specification URIs:
This Version:
http://docs.oasis-open.org/ciq/v3.0/prd02/specs/ciq-specs-v3-prd2.html
http://docs.oasis-open.org/ciq/v3.0/prd02/specs/ciq-specs-v3-prd2.doc
http://docs.oasis-open.org/ciq/v3.0/prd02/specs/ciq-specs-v3-prd2.pdf
Previous Version:
N/A
Latest Version:
http://docs.oasis-open.org/ciq/v3.0/specs/ciq-specs-v3.html
http://docs.oasis-open.org/ciq/v3.0/specs/ciq-specs-v3.doc
http://docs.oasis-open.org/ciq/v3.0/specs/ciq-specs-v3.pdf
Technical Committee:
OASIS Customer Information Quality TC
Chair:
Ram Kumar (kumar.sydney@gmail.com)
Editor:
Ram Kumar (kumar.sydney@gmail.com)
Related work:
This specification replaces or supercedes:
Declared XML Namespace(s):
urn:oasis:names:tc:ciq:3.0
Abstract:
This Technical Specification defines the OASIS Customer Information Quality Specifications Version 3.0 namely, Name (xNL), Address (xAL), Name and Address (xNAL) and Party Information (xPIL) specifications.
Status:
This document was last revised or approved by the OASIS CIQ TC on the above date. The level of approval is also listed above. Check the current location noted above for possible later revisions of this document. This document is updated periodically on no particular schedule.
Technical Committee members should send comments on this specification to the Technical Committee's email list. Others should send comments to the Technical Committee by using the "Send A Comment" button on the Technical Committee's web page at http://www.oasis-open.org/committees/ciq/
For information on whether any patents have been disclosed that may be essential to implementing this specification, and any offers of patent licensing terms, please refer to the Intellectual Property Rights section of the Technical Committee web page ( www.oasis-open.org/committees/ciq/ipr.php.
The non-normative errata page for this specification is located at http://www.oasis-open.org/committees/ciq/.
Notices
Copyright © OASIS® 1993-2007. All Rights Reserved.
All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
OASIS requests that any OASIS Party or any other party that believes it has patent claims that would necessarily be infringed by implementations of this OASIS Committee Specification or OASIS Standard, to notify OASIS TC Administrator and provide an indication of its willingness to grant patent licenses to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification.
OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of any patent claims that would necessarily be infringed by implementations of this specification by a patent holder that is not willing to provide a license to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification. OASIS may include such claims on its website, but disclaims any obligation to do so.
OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS' procedures with respect to rights in any document or deliverable produced by an OASIS Technical Committee can be found on the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this OASIS Committee Specification or OASIS Standard, can be obtained from the OASIS TC Administrator. OASIS makes no representation that any information or list of intellectual property rights will at any time be complete, or that any claims in such list are, in fact, Essential Claims.
The names "OASIS", "CIQ", "xNL", "xAL", xNAL", "xPIL", "xPRL", "xCIL", "xCRL" , "Genericode", and "UBL" are trademarks of OASIS, the owner and developer of this specification, and should be used only to refer to the organization and its official outputs. OASIS welcomes reference to, and implementation and use of, specifications, while reserving the right to enforce its marks against misleading uses. Please see http://www.oasis-open.org/who/trademark.php for above guidance.
Table of Contents
2 Schema Design Approach in Version 3.0. 9
2.1 Version 3.0 Schema Files. 9
2.2 Formal Design Requirements for Version 3.0. 10
2.3 Major CIQ Specification Entities. 10
2.4 Common Design Concepts used in the Specifications. 10
2.6 Other Industry Specifications Used.. 11
3 Entity "Name" (extensible Name Language) 12
3.1.1 Example 1 - No Semantics (Unstructured/Free Text Data). 13
3.1.2 Example 2 - Minimal Semantics (Partially Structured Data). 13
3.1.3 Example 3 - Full Semantics (Fully Structured Data). 13
3.3 Code Lists (Enumerations) 14
3.3.1 What is a Code List?. 14
3.3.2 The importance of Code Lists for CIQ Specifications. 14
3.3.3 Customisable Code Lists. 15
3.3.4 Improving Interoperability using Code Lists. 15
3.4 Using Code Lists in CIQ Specifications - Two Options. 16
3.4.2 Option 1 - "Include" Code Lists (The Default Approach). 16
3.4.2.1 Representing Code Lists (Option 1) 17
3.4.2.1.1 Code List Representation (Option 1) - An Example. 17
3.4.2.2 Customizing Code Lists (Option 1) 17
3.4.2.3 End User Customised Code List (Option 1) - An Example. 18
3.4.2.4 Code List Use (Option 1) Example - Point-to-Point 18
3.4.2.5 Code List Use (Option 1) Example - Locale Specific. 19
3.4.3 Option 2 - Code Lists using Genericode Approach. 19
3.4.3.1 Code List (Option 2) Value Validation Methodology. 19
3.4.3.1.1 Two Pass Value Validation (Option 2) 20
3.4.3.2 Representing Genericode based Code Lists (Option 2) 21
3.4.3.2.1 Code List Representation in Genericode (Option 2) - An Example. 22
3.4.3.3 Customizing Genericode based Code Lists (Option 2) 22
3.4.3.4 CIQ Specifications used as a case study by OASIS Code List TC.. 22
3.4.3.5 References for Option 2. 23
3.5 Code List Packages - Option 1 and Option 2. 23
3.6 Order of Elements and Presentation.. 23
3.6.1 Example - Normal Order. 23
3.7.1 Example - Complex-to-simple Mapping. 24
3.7.2 Example - Simple-to-complex Mapping. 25
3.8.1 Example - Data Quality. 25
3.8.2 Data Quality Verification and Trust 26
3.9.1 Extending the Schemas to Meet Application Specific Requirements. 26
3.9.2 Practical Applications. 26
3.9.2.1 System-specific Identifiers. 26
3.9.2.2 Additional Metadata. 27
3.10 Linking and Referencing.. 27
3.10.1 Using xLink [OPTIONAL]. 27
3.10.2 Using Key Reference [OPTIONAL]. 28
3.13 Schema Customization Guidelines. 29
3.13.2 Reducing the Entity Schema Structure. 29
3.13.2.1 Implications of changing Name Entity Schema. 30
3.13.3 Customizing the Code Lists/Enumerations of Name. 30
3.13.4.1 Constraining Name Schema using UMCLVV - An Example. 31
4 Entity "Address" (extensible Address Language) 32
4.1 Semantics of "Address". 32
4.1.1 Example - Minimal Semantics (Unstructured/Free Text Data). 32
4.1.2 Example - Partial Semantics (Partially Structured Data). 32
4.1.3 Example - Full Semantics (Fully Structured Data). 34
4.2 Address/Location Referenced By GeoRSS and Coordinates. 34
4.2.1 Using GeoRSS in xAL Schema. 35
4.2.1.2 GeoRSS GML - Example. 37
4.2.2 Defining Location Coordinates in xAL Schema. 38
4.4 Code Lists (Enumerations) 38
4.5 Order of Elements and Presentation.. 39
4.5.1 Example - Order of Second Level Elements in xAL. 39
4.6.1 Example - Normal Order. 39
4.9 Linking and Referencing.. 40
4.11 Schema Customization Guidelines. 40
4.11.1 Customizing the Code Lists/Enumerations of Address. 40
4.11.1.1 End User Customised Code List - An Example. 40
4.11.1.2 Implications of changing Address Entity Schema. 41
4.11.2.1 Constraining CIQ Address Schema using UMCLVV - Example 1. 41
4.11.2.2 Constraining CIQ Address Schema using UMCLVV - Example 2. 42
5 Combination of "Name" and "Address" (extensible Name and Address Language) 44
5.1 Use of element xnal:Record.. 44
5.2 Use of element xnal:PostalLabel. 45
5.3 Creating your own Name and Address Application Schema.. 46
6 Entity "Party" (extensible Party Information Language) 47
6.1 Reuse of xNL and xAL Structure for Person or Organisation Name and Address. 47
6.2 Party Structures - Examples. 48
6.2.1 Example - Qualification Details. 48
6.2.2 Example - Birth Details. 48
6.2.3 Example - Driver License. 48
6.2.4 Example - Contact Phone Number. 48
6.2.5 Example - Electronic Address Identifiers. 48
6.3 Dealing with Joint Party Names. 49
6.4 Representing Relationships with other Parties. 49
6.4.1 Individual Relationship. 50
6.4.3 Example - Person Relationship with other Persons of type "Friends". 52
6.4.4 Example - Organisation Relationship with other Organisations of type "Worldwide Branches". 52
6.4.5 Example - Person Relationship with another Person. 52
6.6 Code Lists (Enumerations) 53
6.7 Order of Elements and Presentation.. 53
6.11 Linking and Referencing.. 53
6.13 Schema Customization Guidelines. 54
6.13.1 Customizing the Code Lists/Enumerations of Party. 54
6.13.1.1 End User Customised Code List - An Example. 54
6.13.1.2 Implications of changing Party Entity Schema. 54
7 Differences between two types of Entity Schemas for CIQ Specifications.. 56
7.1 Files for Option 1 (The Default) 56
7.2.2 Genericode Based Code List Files. 57
7.2.2.3 For Name and Address (xNAL) 57
7.4 The Difference in Entity Schemas. 58
7.4.1 Compatibility between XML documents produced from the two options. 61
8 Data Exchange and Interoperability.. 62
8.1 Data Interoperability Success Formula.. 62
8.2 Information Exchange Agreement - Guidelines. 62
9.3 Contributions from Public.. 64
10.1.1 Specifications Schema Conformance. 65
10.1.2 Specifications Schema Extensibility Conformance. 65
10.1.3 Specifications Code List Schema Customization Conformance. 65
10.1.4 Interoperability Conformance. 65
10.1.4.1 Interoperability Conformance - Using Elements and Attributes. 65
10.1.4.2 Interoperability Conformance - Extending the Schema. 65
10.1.4.3 Interoperability Conformance - Using Code Lists. 65
10.1.4.4 Interoperability Conformance - Customizing the Code Lists. 65
10.1.4.5 Interoperability Conformance - Customizing the Schema. 66
10.1.4.6 Interoperability Conformance - Data/Information Exchange Agreement 66
B. Intellectual Property Rights, Patents, Licenses and Royalties.. 68
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in [RFC2119].
While RFC2119 permits the use of synonyms, to achieve consistency across specifications, "MUST" is used instead of "SHALL" and "REQUIRED", "MUST NOT" instead of "SHALL NOT", and "SHOULD" instead of "RECOMMENDED" in this specification. To enable easy identification of the keywords, uppercase is used for keywords.
Following are the core entities and its definitions used by CIQ TC:
Name
Name of a person or an organization
Address
A physical location or a mail delivery point
Party
A Party could be of two types namely,
· Person
· Organization
An Organization could be a company, association, club, not-for-profit, private firm, public firm, consortium, university, school, etc.
Party data consists of many attributes (e.g. Name, Address, email address, telephone, etc) that are unique to a party. However, a person or organization's name and address are generally the key identifiers (but not necessarily the unique identifiers) of a "Party". A "Customer" is of type "Party".
Name, Address and Party schemas of version 3.0 share the same design concepts. The commonality should simplify understanding and adoption of the schemas. The xNAL schema design concept varies slightly as it is only a simple container for associating names and addresses.
Name, Address and Party schemas are designed to bring interoperability to the way these most "common" entities are used across all spectrums of business and government.
Following are the different schemas produced for version 3.0:
|
Schema File name |
Description |
Comments |
|
xNL.xsd |
Entity Name |
Defines a set of reusable types and elements for a name of individual or organisation |
|
xNL-types.xsd |
Entity Name Enumerations |
Defines a set of enumerations to support Name entity |
|
xAL.xsd |
Entity Address |
Defines a set of reusable types and elements for an address, location name or description |
|
xAL-types.xsd |
Entity Address Enumerations |
Defines a set of enumerations to support address entity |
|
xNAL.xsd |
Name and Address binding |
Defines two constructs to bind names and addresses for data exchange or postal purposes |
|
xNAL-types.xsd |
Name and Address binding Enumerations |
Defines a set of enumerations to support name and address binding |
|
xPIL.xsd (formerly xCIL.xsd) |
Entity Party (organisation or individual) |
Defines a set of reusable types and elements for a detailed description of an organisation or individual |
|
xPIL-types.xsd |
Entity Party (organisation or individual) Enumerations |
Defines a set of enumerations to support party information entity |
|
CommonTypes.xsd |
Common Data Types and Enumerations |
Defines a set of commonly used data types and enumerations in the CIQ Schemas |
|
xLink-2003-12-31.xsd |
xLink attributes |
Defines a subset of xLink attributes as XML schema |
|
*.gc files |
Entity Party, Name, and Address |
Defines a set of enumerations/code lists in genericode |
Following are the formal design requirements taken into consideration for version 3.0 schemas:
· Data structures SHOULD be described using W3C XML Schema language
· Data structures SHOULD be separated into multiple namespaces for reuse of the main fundamental entities (e.g. Person Name, Organisation Name, Address)
· Data structures SHOULD be able to accommodate all information types used for data exchanges based on previous versions of the CIQ Specifications
· Data structures SHOULD be extensible (also, allow reduction in complexity) to provide enough flexibility for point-to-point solutions and application-specific scenarios
· Data structures SHOULD allow organisation-specific information to be attached to entities without breaking the structure.
· Implementation complexity SHOULD be proportional to the complexity of the subset of data structures used by the implementer
The entire party information space is divided into a number of complex information types that are viewed as basic entities. This enables re-use of the basic entities as required. Following are the basic CIQ specification entities:
· Name (Person or Organisation - see xNL.xsd)
· Address (see xAL.xsd)
· Name and Address combined (see xNAL.xsd)
· Personal details of a person (see xPIL.xsd)
· Organisation specific details (see xPIL.xsd)
· Party Relationships (see xPRL.xsd [not available in this release] and xLink-2003-12-31-revised.xsd)
These major entities are supported by code lists to add "semantics" to the data they represent. We categorise the major entities of CIQ Specifications into three namely,
· Name
· Address, and
· Party Centric Information
The design concepts of name, address and party schemas are very similar in terms of the way semantic information (e.g. Semantic information for a person name is "Given Name, "Middle Name' Surname" etc, i.e. adding semantics to the data) is represented.
All the common design concepts used in the CIQ Specifications (e.g. using code lists, customizing CIQ entity schemas, extending CIQ entity schemas, referencing between entities, defining business rules to constrain CIQ entity schemas) are equally applicable for all key entities of CIQ specifications namely, Name, Address and Party. These common concepts are explained in detail in section 3 (Entity "Name"). Users SHOULD study that section in detail before proceeding to other entities namely, Address and Party, as these concepts are applicable to these entities also.
|
Entity |
Namespace |
Suggested Prefix |
Schema Files |
|
Name |
urn:oasis:names:tc:ciq:xnl:3 |
xnl or n |
xNL.xsd |
|
Address |
urn:oasis:names:tc:ciq:xal:3 |
xal or a |
xAL.xsd |
|
Name and Address |
urn:oasis:names:tc:ciq:xnal:3 |
xnal |
xNAL.xsd xNAL-types.xsd |
|
Party |
urn:oasis:names:tc:ciq:xpil:3 |
xpil or p |
xPIL.xsd |
|
Party Relationships |
urn:oasis:names:tc:ciq:xprl:3 |
xprl or r |
xPRL.xsd |
|
xLink |
http://www.w3.org/1999/xlink |
xLink |
xLink-2003-12-31.xsd |
This document contains references to XML Linking Language (XLink) Version 1.0, W3C Recommendation 27 June 2001 available at http://www.w3.org/TR/xlink/ . The CIQ TC strongly recommends readers to read the xLink specification from W3C if they want to use this supported feature in CIQ Specifications.
This document contains references to Code List version 1.0, OASIS Committee Specification, May 2007 at http://www.oasis-open.org/committees/codelist. The CIQ TC strongly recommends readers to read the code list specification if they want to use this supported feature in CIQ Specification.
GeoRSS 2.0 (georss.org) from Open Geospatial Consortium (http://www.opengeospatial.net) has been referenced in this specification as it is critical to assuring interoperability with a variety of geospatial technologies, such as GIS, Spatial Data Infrastructures, Location Services, and the GeoWeb.
Entity "Name" has been modelled independent of any context as a standalone class to reflect some common understanding of concepts "Person Name" and "Organisation Name".
Name schema is separated into two parts: a structural part (xNL.xsd) as shown in the XML schema diagram below and separate enumeration/code list files (code lists defined in an XML schema (xNL-types.xsd) and also, code lists represented in genericode format as .gc files) supporting the structure. "Genericode" will be discussed in later sections. The structural part (xNL.xsd) SHOULD remain unchanged over the course of time while the code list/enumeration files (xNL-types.xsd and .gc files) MAY be easily changed to meet particular implementation needs.

In the schema structure above (xNL.xsd), "NameElement" stores the name of a party and the supporting enumeration lists referenced as attributes in the schema structure (see the xNL.xsd schema for the list of attributes or the HTML documentation of the schema), provide the semantic meaning of the data.
The structure allows for different semantic levels based on the following paradigm:
· A simple data structure with minimum semantics SHOULD fit into the schema with minimal effort
· A complex data structure SHOULD fit into the schema without loss of any semantic information
A typical database does not differentiate between a person and an organisation name where only one field has been allocated for storing the entire name information (unstructured data). This database can be mapped to xNL as follows:
<n:PartyName>
<n:NameLine>Mr Jeremy Apatuta Johnson</n:NameLine>
</n:PartyName>
In this example, information related to party name, resides in NameLine element. It has no semantic information that MAY indicate what kind of name it is and what the individual name elements are (i.e., the data has not been parsed into first name, last name, title, etc.). What is known is that it is a name of some party, be it a person or an organisation. This is the maximum level of complexity. Data in this free formatted text form is classified as "poor quality" as it is subject to different interpretations of the data and will cause interoperability problems.
Many common applications fall under this "No Semantics" category.
The medium level of complexity is when a database differentiates between person and organisation name. In this case, names are placed in the appropriate elements namely, PersonName or OrganisationName inside the structure.
Person Name:
<n:PartyName>
<n:PersonName>
<n:NameElement>Mr Jeremy Apatuta Johnson</n:NameElement>
</n:PersonName>
</n:PartyName>
This example shows that name information belongs to an individual, but the semantics of the individual name elements (e.g. what are the meanings of "Mr", "Jeremy", etc.) are unknown.
Organisation Name:
<n:PartyName>
<n:OrganisationName>
<n:NameElement>Khandallah Laundering Ltd.</n:NameElement>
</n:OrganisationName>
</n:PartyName>
This example is similar to the previous one, except that the name belongs to an organisation.
Many common applications fall under this of "Minimal Semantics" category.
The maximum level of complexity is when a database differentiates between person and organisation name and also differentiates between different name elements within a name. The data is structured.
<n:PartyName>
<n:PersonName>
<n:NameElement Abbreviation="true" ElementType="Title">Mr</n:NameElement>
<n:NameElement ElementType="FirstName">Jeremy</n:NameElement>
<n:NameElement ElementType="MiddleName">Apatuta</n:NameElement>
&n