Re: namespaces vs. language versions

Larry Masinter writes:

> It is pretty clear to me given the fairly broad definition of “version”
> as it applies to language-as-used, language-as-specified that multiple
> ‘versions’ of an XML-based language might share the same namespace,
> and that therefore the “namespace” alone could not serve as the
> sole indicator of version. On the other hand, two languages which
> use different namespaces are different languages, clearly.

I agree with your conclusion, but even this formulation tends, if 
indirectly, to promote the myth that "the namespace" can be identified, at 
least for a given version of a language.  It's not just that "multiple 
versions...might share a namespace"; even a single "version" of a language 
might be built of markup from many namespaces, and that markup in turn 
might be used in other nearly unrelated languages.

Example:  some business develops markup conventions to cover the sorts of 
things that they set down in XML documents.  These are  organized into 
namespaces according to their nature.  There's a namespace for markup 
about the widgets they manufacture, a namespace for information about 
employees, another for customers, and another for physical plant like 
buildings.  There are also some namespaces with tags like <orders:invoice> 
 <shipping:label>, that sometimes service as the root of a document, and 
sometimes are used as children in larger documents (<shipping:label> can 
stand on its own, or be a child in <orders:purchaseOrder>. 

For any one document type, there will be a root element, and if we believe 
in the TAG's (incomplete) work on XML Functions [1] (ISSUE-34 [2]), the 
documentation for that root element will determine the meaning in context, 
and thus the "versioning rules"  of the subelements it uses, regardless of 
namespace.  Of course, it would in many cases (though not all, IMO) be a 
good thing if the documentation for a root element <orders:purchaseOrder> 
delegated to the documentation for its children <shipping:label> as to how 
that subelement may change with versioning.  So in this example, the 
<billing:purchaseOrder> documentation could say "A <shipping:label> 
element specifies the label to be printed for shipping the order;  future 
versions of <shipping:label> are supported insofar as these are properly 
documented in (future versions of) the specification for 
<shipping:label>".  Or, the documentation for <billing:purchaseOrder> 
could say:  "A <shipping:label> element specifies the label to be printed 
for shipping the order, and the contents are to be interpreted per the 1 
January 1999 version of the specification for <shipping:label>; later 
versions of that specification are not allowed by this version of the 
<billing:purchaseOrder> specification."

In short, I want to try and convince everyone that namespaces are pretty 
much orthogonal to the whole versioning discussion.  What matters in XML 
are tag names and their (potentially evolving) specifications.  For 
documents, versions and namespaces, it's pretty much mix-n-match in the 
general case.  So, I think we should be careful about referring to "the 
namespace", even for a particular version.

Noah

[1] http://www.w3.org/2001/tag/doc/elabInfoset-20071127/elabInfoset.html 
[2] http://www.w3.org/2001/tag/group/track/issues/34

 

--------------------------------------
Noah Mendelsohn 
IBM Corporation
One Rogers Street
Cambridge, MA 02142
1-617-693-4036
--------------------------------------








Larry Masinter <masinter@adobe.com>
Sent by: www-tag-request@w3.org
08/05/2009 05:00 PM
 
        To:     "www-tag@w3.org" <www-tag@w3.org>
        cc:     (bcc: Noah Mendelsohn/Cambridge/IBM)
        Subject:        namespaces vs. language versions


I think I still had an action item on the HTML working group to insure
that the versioning document touched on the relationship of namespaces
to language versions.
 
It is pretty clear to me given the fairly broad definition of “version”
as it applies to language-as-used, language-as-specified that multiple
‘versions’ of an XML-based language might share the same namespace,
and that therefore the “namespace” alone could not serve as the
sole indicator of version. On the other hand, two languages which
use different namespaces are different languages, clearly.
 
I’m not sure if there is general advice about when new namespaces
SHOULD be used when defining a new language version/variant,
except to point out that changing namespaces can have bad
backward compatibility issues.
 
Larry
--
http://larry.masinter.net

 

Received on Friday, 7 August 2009 15:12:28 UTC