From:  Todd Boyle 
Date:  Tue Feb 12, 2002 (with edits)
Subject:  URIs now supported by ebXML Core Component Type library

At its Seattle meeting last week, the Core Components workgroup of the
UN/CEFACT ebTWG approved the addition of two new attributes to the Identifier
type within the Core Components Technical Specification (CCTS).

Some history and discussion (not important):

  Here was the CCTS Draft Jan 25th
  http://lists.ebtwg.org/archives/ebtwg-ccs/200201/msg00006.html

  Here was the issue.
  http://lists.ebtwg.org/archives/ebtwg-ccs/200201/msg00024.html 
  http://lists.ebtwg.org/archives/ebtwg-ccs/200111/msg00046.html

The Core Component Types (CCTs) are a foundation of ebXML Core
Components that will likely be coded, and optimized, within high-
performance business collaboration software. 

Web services developers will be able to interact directly with
full-sized, enterprise implementations of ebXML if they implement
these types correctly. You can define *very* simple messages and
message choreography suitable for hand-held devices, and implement
your end in low-level code.  The transactions will be globally
unambiguous, without dependencies on any proprietary gateway.

This does not imply that web services platforms or messageware will 
be unnecessary, or that they will be available for free.  But it
does ensure there will be a free and competitive software market.

Until version 1.8 of the CCTS, the Identifier.Type lacked a mechanism
for globally disambiguating and addressing, besides
"Identification.Scheme.Name", and "Identification Scheme.Agency". These
assume that either both parties already agree on Identification Schemes, 
such as DUNS for companies, EAN/UCC for products, etc. or that there
is a central namespace of Identification Schemes being maintained 
someplace. Until last week, that namespace controller could only have 
been the UN/CEFACT of course.

The definition of Identifier. Type is,

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

The previous Children elements of Identifier Type since mid-2000 have
been the following:

Identifier. Content (000102)
Identification Scheme. Name (000103)
Identification Scheme Agency. Name (000104)
Language. Code (000075)

Now you have two additional Children elements:

Identification Scheme. Uniform Resource Identifier
Identification Scheme. Data. Uniform Resource Identifier

Version 1.8 of the CCTS ebXML Core Component Technical Specification, 
Part 1, Version 1.8 is a 700 KByte download, at 
http//www.unece.org/cefact/ebxml/ebXML_CCTS_Part1_V1-8.pdf 
http://www.unece.org/cefact/ebxml/CCTCpress_rel.htm 

I was worried about this because I am an accountant. General Ledgers and
AR/AP systems use Identifiers ubiquitously for thing such as party,
product, employee, etc. as well as charts of accounts, organization,
etc.  There are internal namespaces, trading parties' namespaces as well
as public "Agency" namespaces. The need for general- purpose lists is
fundamental to the requirements of accounting software, and I am
very excited by this new URI support. It allows internal software to
use the same data dictionary as the external B2B vocabularies.


RFC 2396 URI addressing, with query component, can represent an object
in local or network applications, file systems, SQL databases, etc. as
well as the usual SMTP, HTTP, etc. http://www.ietf.org/rfc/rfc2396.txt
For understanding URIs, here are more links. http://www.w3.org/Addressing/ 

These new URI's may allow people to use registries and directories for
people, companies, products, organizational units, etc. that do not
exist in value domains of the "Agencies"
in the UN/CEFACT "Scheme
Agency. Name" namespace.

It also allows applications to point at an electronic transaction
on any visible location, using Identifier. Type, as well as values in 
classification schemes, as Identifier.Type intended. This is huge.  We
are talking about a major pandora's box here. ebXML reliable messaging
provides the secure transport, signing and non-repudiation.  This is 
truly, a potential solution for Peer to Peer commerce.  A URI child 
element, for CODE and IDENTIFIER allows my Napster or digital cash, or
private marketplace, or other politically incorrect application. 
That is, *most* applications, in a country like China.  Without the URI,
the UN/CEFACT Agency namespace affirmatively prevents ANY references
list or classification scheme until it is positively approved. 

There is not room in the world, for two separate architectures of P2P 
commerce. 

The e-business framework that is being designed and built for trans-
national corporations, for cross border trade, provides them with
sovereignty, autonomy, and privacy.   ebXML provides corporate boards
and executives with power and leverage over software vendors, 
IT professionals and accountants by nailing down unambiguous standards
for machine behaviors.  When systems work properly, professional 
classes are vanquished, just as various classes of skilled craftsmen 
were vanquished in the industrial revolution.

Now, these tools which provide unprecedented Peer to Peer power are
coming within the reach of small businesses on the street, if they
are smart enough to wake up and use it.

Core Components, alone, provides the vocabulary and implied behaviors
necessary for smaller collaborations and trading communities.  Now,
they don't need to disclose their "Schemes" to the public visibility, 
by registering as an "Agency" in Brussels or Washington DC. Companies 
can maintain their own product Ids on interactive web services, with 
trading partners. They can use Identifiers to point to transactions
on trading hubs to do business, or on settlement hubs to settle or
pay their suppliers.  These use cases are part of the problem domain 
of EBTWG and semantic support now exists.

There are countless articles on the internet. On the same day
ebTWG Core Components workgroup was approving the new addition of
URI support to the Core Component native Identifier.Type, 
Tim Berners-Lee was speaking to the 10th International Python
Conference, February 4-7, 2002 

Webizing Python 

"Webizing" means replacing all identifiers with URIs. [...]

What's the easiest way to replace identifiers with URIs? Just do it 
and see what breaks. Then change the program (Python) to recognize 
the new identifiers [...]

Read it at http://www.linuxjournal.com/article.php?sid=5854 

Todd Boyle CPA 9745-128th Ave NE Kirkland WA
International Accounting Services, LLC www.gldialtone.com 
tboyle@rosehill.net  425-827-3107

Developers' FAQ

Q. Why should I adopt UN/CEFACT Core Components as my internal data dictionary?

A. Because data elements in your application have meanings to your user. 

Regardless of your intentions as a developer, when you code the business application or workflow, you cannot control the information that your users put into your application. 

You also cannot control how users interpret or understand the information when they read it on the screen or in reports. 

Finally, when your application exchanges business transactions with external parties, it is impossible to force the entire business community to adopt your naming or conceptual definitions. When they author a transaction, or interpret a transaction created by your application, standard legal and business meanings will be imposed on your users whether they like it or not. 

Maintaining a custom data dictionary with definitions of terms which are different from their legal meanings, is not in the best interests of the user of your application.