[
Lists Home |
Date Index |
Thread Index
]
Roger,
First let me say its a pleasure to chat with you. You gave me many
very interesting insights into XML in your http://www.xfront.com site .
Thanks for the help and the many tutorials and examples.
With respect to your question about what "approach" for an XML vocabulary
is appropriate, I would have to say it depends ....
I believe that the world will always be made of many vocabularies, each
with a different scope and purpose (and some overlapping with the same
scope and purpose). If you're trying to address a relatively contained
area of definition, then maybe a single small to medium size vocabulary is
right for you.
I'm not sure of what is meant by a "vocabulary that is used in different
ways"? This scares me a bit since I thought the purpose of a vocabulary
was meant to provide unambiguous terms and meanings (in XML) to data
representations. Have I missed something?
I have worked a bit with OAGIS 8.x XML definitions, they seem to favor a
single XML vocabulary (a.k.a. XML namespace) and provide consistent
uniqueness of their data element names and other corresponding XML
components. This approach might also be suitable with a product developer
creating an industry product to market in a particular segment of the
business, and therefore assigns a single vocabulary (or adopts a subset of
an existing industry standard?).
I've also worked with some "web services" folks and they seem to think that
having a "version" aspect to namespace (i.e. vocabulary) is very important,
such that they can evolve change management through the use of versions of
XML namespace and the corresponding functions. I understand the need for
versioning but remain unconvinced of the implementation of versioning into
namespace.
If you are trying to implement a worldwide vocabulary for a large,
international company, then maybe many small vocabularies, rationalized as
a whole might be best. In a large diverse company, it would probably be
impossible to get everyone to agree on a single vocabulary concept ... if
not take years to accomplish. And so an approach that I have used is to
segment a vocabulary into multiple vocabularies for each "area" of the
business and try to manage and rationalize the whole collection as a single
concept (i.e. vocabulary). This supports a diverse ownership model and
allows overlapping but unique names when qualified by a namespace. This
requires that in some instances, when a shared XML document contains
references to multiple cross-vocabulary data elements (i.e. in different
business areas), it will have to use multiple namespace assignments in the
XML and I think this is OK and very reasonable and appropriate.
I subscribe to the belief that the vocabulary contents (data element names
qualified by their namespace) should be a tightly controlled aspect of any
vocabulary and I would go as far to say that they should be "owned" by the
business and not programmers. That brings us into 'data dictionary' and
ownership ... which is another topic - especially when you consider how to
manage XML artifacts with respect to these definitions and ensure
consistent (and compliant) usage across a large enterprise.
----- Message from "Roger L. Costello" <costello@mitre.org> on Sun, 12 Dec
2004 14:53:49 -0500 -----
To: <xml-dev@lists.xml.org>
Subject XML Vocabularies for Large Systems - 3 Philosophically Different
: Approaches
Hi Folks,
I am interested in hearing about the nature of XML vocabularies that are
being created for large systems. I am particularly interested in hearing
from people who have been successful in using simple XML vocabularies to
implement the complexities of varied data in large systems.
Allow me to explain further...
DEFINITION
XML Vocabulary: an XML vocabulary is the collection of tags that is used to
markup data. For example, this data:
Borders Bookstore, 20 Boylston Avenue, Boston, MA, 01320
may be marked-up using this XML vocabulary:
<Addressee>, <Street>, <City>, <State>, <Zipcode>.
This later constitutes an XML vocabulary for U.S. Mailing Addresses.
SYSTEMS OF INTEREST
My interest is in large systems, where the variety of data is large, and
in the nature of XML vocabularies for such systems.
ISSUE - NATURE OF XML VOCABULARIES FOR LARGE SYSTEMS
I identify three philosophically different approaches to the creation of
an XML vocabulary for a large system:
a. Create multiple, simple XML vocabularies.
b. Create a single, simple XML vocabulary that is used in multiple ways.
c. Create a single, large, complex XML vocabulary.
Let us examine each of these approaches:
a. Create multiple, simple XML vocabularies
In daily life we encounter many analogues to this approach. For
example,
the postal service has its own simple vocabulary - addressee, street,
city, state, and zipcode; a restaurant has its own menu vocabulary -
appetizer, entree, dessert, and side dishes. I am sure that you can
think of many other examples. We live in a world filled with many
simple vocabularies, and (for the most part) we are able to move about
and function adequately with this multiplicity of simple vocabularies.
Likewise, in creating an XML vocabulary for a large system one approach
is to create multiple simple XML vocabularies.
b. Create a single, simple XML vocabulary that is used in multiple ways
Consider the XML vocabulary called RSS. It is a simple XML vocabulary.
Despite its simplicity it is very popular and powerful. Likewise,
Jabber is a very popular and powerful simple XML vocabulary.
A second approach for the large system is to create a simple XML
vocabulary that is used in multiple ways. For example, you may
have an RSS feed that captures one aspect of the large system,
a second RSS feed that captures a second aspect of the large system,
and so forth. The combination of RSS documents is used to
collectively capture all the data complexities in the large system.
c. Create a single, large, complex XML vocabulary
All the complexities of the large system are implemented by creating a
single, large, complex XML vocabulary.
QUESTIONS
Have you implemented a large system? Have you created an XML vocabulary
for
a large system? Which of the above three approaches did you take? I am
particularly interested in hearing from people who have used simple XML
vocabularies [approach (a) or (b)] to achieve all the data complexities
in a large system.
Regards, Bill
Consultant, Enterprise Data Management, Dept.XJXA, Bldg. 320A-2, 2070 Rte.
52, Hopewell Jct., NY 12533
845-892-8731, T/L 8-532-8731 email: wneils@us.ibm.com email2:
wneils@optonline.net
|