OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ubl-dev message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [ubl-dev] Code vs. Identifier representation types?


You raise a very good point that has caused much debate since formal business vocabularies were developed.

Part of the difficulty is that codes and identifiers are not mutually exclusive.  A code can be used as an identifier.  

Personally I think this is a weakness in the ebXML Core Component Types - they confuse structure with function (what it looks like with what its purpose is) when they allow Identifier as a type.  Really both Code and Identifier are "constrained sets of values" as a data type.  But we are stuck with this.

So what we are looking at is points on a spectrum not absolute answers.  

In UBL we decided that it was more important to be consistent than "correct" - because "correct" is too controversial.  Hence we created the definitions you quoted.

Codes establish their full meaning by reference to other values, often by abbreviations (but not always).  Some things are clearly codes (your example (b)). As you say this is a value that can be easily enumerated to its extended value. The question to ask is "what other property gives me the full semantics of this code".  if there isn't any, then it isn't really a code - it has semantic value in its own right.

Identifiers are components whose values uniquely identify specific objects - they have meaning all on their own. Some components are clearly used to identify objects (your example (a) and (f))  They have no corresponding equivalent value - thats why they were invented.  In UBL the component that uniquely identifies an instance of an ABIE is typically called Identifier. Dont get hung up on the fact that the business terms may use the word "code" (your examples (d) and (e)).  There are plenty of other situations where the common business term is misleading (e.g. Order Numbers are not numbers, Product Names may be descriptive text, etc..).

The challenge comes when we use an abbreviation/code to uniquely identify an object (your examples (c) and (g)).

In UBL we tried to introduce the idea of "identification" as a property term.  this would allow us to define components that used codes for identification purposes to be called "Identification.Code" .  The Country. Identification. Code is the best example.  


kenneth.sall@gsa.gov wrote:
Hello,

I'm looking for some guidance in distinguishing Code and Identifier
representation types. Part of my confusion is that UBL and TBG-17 don't
agree on a very common example (based on most recent online versions):

Country. Identification. Identifier  - TBG-17
Country. Identification. Code  - UBL

Given UBL definitions from
http://docs.oasis-open.org/ubl/cd-UBL-1.0/xsd/common/UBL-CoreComponentTypes-1.0.xsd
 :

Code: "A character string (letters, figures, or symbols) that for brevity
and/or language independence may be used to represent or replace a
definitive value or text of an attribute together with relevant
supplementary information."

Identifier: "A character string to identify and distinguish uniquely, one
instance of an object in an identification scheme from all other objects in
the same scheme together with relevant supplementary information."

On a U.S. General Services Administration (GSA) project, we are applying
this to numerous data elements. For example,

(a) A code identifying party receiving transmission; codes agreed to by
trading partners. Originally called Application Rcvrs Code (TXN06). We have
given this the BIE of Receiving_ Party. Identification. Identifier because
it uniquely distinguishes one party from all others.

(b) When considering the type of Indefinite Delivery Vehicle (IDV)
contract, there is a finite set of possible "brief" symbolic values that
can readily be enumerated. Therefore, the assigned BIE is Contract.
Indefinite Delivery Contract_ Type. Code.

(c) The FIPS Pub. 95 code for the agency of the contracting office that
executed or is otherwise responsible for the transaction was assigned the
BIE of Contracting_ Organization. Agency_ Identification. Identifier
because it uniquely distinguishes one agency from all others.

(d) Similarly, the US govt uses lots of "codes" such as NAICS codes (North
American Industry Classification System codes designate major sectors of
the economies of Mexico, Canada, and the United States) and PSC codes
(Product and Service Code). Since they "distinguish uniquely, one instance
of an object in an identification scheme from all other objects in the same
scheme", they should be Identifiers, right?

(e) Note that  calling (c) and (d) Identifiers goes against the commonly
used terms (FIPS codes, NAICS codes, PSC codes). Basically, UBL reserves
the term "code" strictly for symbolic shorthand elements, right?

(f) DUNS and SSN (social security numbers) should be Identifiers.

(g) Country codes and state codes should be Codes.

Does anyone disagree with any of the above representation types? Thanks in
advance.

Kenneth Sall
SiloSmashers
XML Specialist
GSA IAE Program Management Office
U.S. General Services Administration
1 Crystal Park, Mail Stop IAA
2011 Crystal Drive, Suite 911
Arlington, VA 22202
Phone: 703.872.8589
Cell: 301-672-3269
Fax: 703.872.8598


The President's Management Agenda:
"Implementation of E-Government is important in making Government more
responsive and cost-effective."
http://www.whitehouse.gov/omb/egov/
(Embedded image moved to file: pic20899.jpg)




-- 
regards
tim mcgrath
phone: +618 93352228  
postal: po box 1289   fremantle    western australia 6160

DOCUMENT ENGINEERING: Analyzing and Designing Documents for Business Informatics and Web Services
(coming soon from MIT Press)
http://mitpress.mit.edu/catalog/item/default.asp?sid=632C40AB-4E94-4930-A94E-22FF8CA5641F&ttype=2&tid=10476



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]