<?xml version="1.0" encoding="UTF-8"?>
<essay xml:lang="en" version="5.0" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:gal="http://norman.walsh.name/rdf/gallery#" xmlns:foaf="http://xmlns.com/foaf/0.1/">
<info>
    
    
    
    
    
    
<title>A Namespace for CALS Tables?</title><biblioid class="uri">http://norman.walsh.name/2010/05/12/calsns</biblioid>
<volumenum>13</volumenum>
<issuenum>18</issuenum>
<pubdate>2010-05-12T08:41:30-04:00</pubdate>
<author>
      <personname>
<firstname>Norman</firstname>
	<surname>Walsh</surname>
</personname>
    </author>
<copyright>
      <year>2010</year>
      <holder>Norman Walsh</holder>
    </copyright>
<abstract>
<para>CALS table markup is shared across many XML schemas. Does it
make sense to create a namespace for this common vocabulary?</para>
</abstract>
<dc:subject rdf:resource="http://norman.walsh.name/knows/taxonomy#XML"/>
</info>

<para xml:id="p1">In the past few months, I've been approached
independently (I believe) by two different groups exploring the
possibility of creating a namespace for CALS table markup.</para>

<para xml:id="p2">Namespace deniers and folks who believe that only one,
centrally-managed vocabulary are required for the entire corpus of
human discourse will recoil in horror (or ridicule), I'm sure.</para>

<para xml:id="p3">I think it's an interesting idea. It would not be technically
difficult to describe the vocabulary in a modern schema language. The
historical difficulty with a common schema for CALS table markup is
that the leaves (the contents of the cells themselves) need to be able
to contain the “host vocabulary” markup. For example, a DocBook chapter
(<tag>db:chapter</tag>) might contain a CALS table that ultimately
contains a CALS table cell (<tag>cals:entry</tag>), but that cell
must be able to contain a DocBook link (<tag>db:link</tag>).</para>

<para xml:id="p4">What would be gained from a CALS table namespace?</para>

<orderedlist>
<listitem>
<para xml:id="p5">XML editors would be able to recognize tables in any vocabulary
and switch to an appropriate table editor widget.</para>
</listitem>
<listitem>
<para xml:id="p6">XML viewers would be able to recognize tables in any vocabulary
and display them as such. A web browser, assuming (perhaps foolishly)
that future web browsers do something rational with namespaces, could
have a built-in set of CSS rules for CALS table elements, for example.
</para>
</listitem>
<listitem>
<para xml:id="p7">Reusable modules (for example, XSLT stylesheets) could be written
for CALS tables and simply imported by vocabularies that support them.
</para>
</listitem>
<listitem>
<para xml:id="p8">Putting CALS tables in a separate namespace would remove the
semantic collision that occurs when CALS tables and other table models
(for example, HTML) are both added to the same vocabulary.</para>
</listitem>
<listitem>
<para xml:id="p9">Authors, when encountering table-like elements in a vocabulary
with which they are not familiar would be able to know for sure that the
semantics of the markup really are the CALS semantics.</para>
</listitem>
</orderedlist>

<para xml:id="p10">That's a pretty nice list. What would we lose?</para>

<orderedlist>
<listitem>
<para xml:id="p11">Well, first of all, there's <emphasis>a lot</emphasis> of legacy.
That would either require a large backwards incompatible change in a short,
sharp shock, or a long grace period when both the old and new markup
are supported.
</para>
</listitem>
<listitem>
<para xml:id="p12">There are plenty of folks out there who will argue that the
right number of namespaces in a document is zero, that for authoring
purposes, namespaces are too much trouble. If you can't have zero namespaces,
having exactly one is the next best thing. In any event, more than one is
<emphasis>too many</emphasis>.</para>
<para xml:id="p13">I don't subscribe to this point of view (<foreignphrase>Quelle
surprise!</foreignphrase>). Almost all of my documents contain at
least three namespaces (DocBook, XLink, and XInclude). But I am not
unsympathetic to the view that authors have trouble with namespaces.
On the other hand, if we think MathML and SVG are going to be widely
used, then authors will get used to islands of “other namespace”
markup in their documents; perhaps because authoring tools completely
hide the fact, which they could also do with CALS table markup.</para>
</listitem>
<listitem>
<para xml:id="p14">To the extent that authors rely on non-namespace-aware tools to
process their documents (yes, Viginia, it still happens), putting table
markup in a namespace may be problematic.
</para>
</listitem>
</orderedlist>

<para xml:id="p15">Where does that leave us? If no table markup existed and we were
inventing it from scratch, I'd be firmly in the “put it in a
namespace” camp. As it is, I think it would be a hard sell in the
community. I've been
<link xlink:href="http://www.w3.org/TR/xlink11/">burned once</link>,
I'd be reluctant to take up such an effort without some indication
that the community really wanted to go there.
</para>

</essay>

