Hierarchical namespaces?

Joe Lapp jlapp at webMethods.com
Thu Dec 30 01:43:44 GMT 1999


I've been thinking about the utility of naming all elements and most
attributes using a namespace-URI/local-name pair.  Let's denote such a
name as (namespace, local-name).  (I say "most" attributes because it
won't name anything in the per-element-type partition.)  Seems to me
that filtering operations would commonly extract names belonging to a
particular namespace, so requests for (namespace, *) might be pretty
common.  Let's look at this more closely...

Suppose I'm defining elements that describe electronics parts.  I'm
going to want to organize them hierarchically.  For example:

  www.parts.com/computer/memory/sram
  www.parts.com/computer/memory/dram
  www.parts.com/computer/cpus/intel
  www.parts.com/computer/cpus/amd
  www.parts.com/stereo/speaker/surround
  www.parts.com/stereo/speaker/subwoofer

etc.

It may make sense for one application to examine all computer parts,
another to examine all computer memory parts, and so on.  If I want all
memory parts I have to know all the pertinent namespace URIs.  If I
know that the URIs are structured hierarchically, I could do a wildcard
search on the URI itself -- assuming I had a tool that let me do so (do
any yet?).

But because URIs allow this, the next guy organizes his namespaces
differently:

  www.nextguy.com/computer-memory-sram
  www.nextguy.com/computer-memory-dram
  www.nextguy.com/computer-cpus-intel
  www.nextguy.com/computer-cpus-amd
  www.nextguy.com/stereo-speaker-surround
  www.nextguy.com/stereo-speaker-subwoofer

And the next next guy does so as follows:

  www.nextnextguy.com/computer?memory=true+type=sram
  www.nextnextguy.com/computer?memory=true+type=dram
  www.nextnextguy.com/computer?cputype=intel
  www.nextnextguy.com/computer?cputype=amd
  www.nextnextguy.com/stereo/speaker?surround
  www.nextnextguy.com/stereo/speaker?subwoofer

To make namespace filtering work for the general case requires
regex-like matching capabilities.  And regex matching isn't very easy
to optimize for performance (such as via indexing).  It also isn't the
kind of thing we want the average XML user to have to learn -- seems to
me that it would have to bubble up to the user interface, at least on
generic XML tools.

So I'm thinking that we need a *standard* way to organize namespaces
hierarchically, and that we need one before namespace usage is so
widespread that we absolutely have to provide regex support.

But maybe I'm jumping the gun.  I haven't yet heard anyone scream out
in pain, though I'm not sure we should be waiting for pain to come.

--
Joe Lapp              (Looking for some good people to help design
Principal Architect    and build the Internet's business-to-business
webMethods, Inc.       XML infrastructure.  We are 100% Java.)
jlapp at webMethods.com           http://www.webMethods.com

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo at ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)





More information about the Xml-dev mailing list