Semantics (was Re: Inheritance in XML [^*])

Paul Prescod papresco at
Thu Apr 23 23:36:49 BST 1998

[last things first]

Tim Bray wrote:
> And finally... words are only of use in facilitating human
> communication when there is some shared understanding as to their
> denotation and connotation.  The term "semantic", judged by this standard,
> has clearly and empirically lost its usefulness in this discussion.

I think that this discussion is important, because I remember how confused
I was in the early days when I tried to understand this same distinction
in SGML. "SGML doesn't supply semantics, just syntax." So ID/IDREF was
"syntax", but HyTime links are "semantic." What??? XML has the same

This is not only confusing, but damaging. Suggestions for improvement can
be dismissed: "that's not syntax, that's semantics" as if there were a
clear line between the two, and as if XML wasn't already straddling the
line (even if we decide that it is fuzzy). For example, as james points
out, discussion of subtyping and inheritance is meaningless in a language
with no semantics. But we seem to agree, now, that DTDs have a semantic,
so we can stop beating that particular horse.

Let me suggest this definition for semantic: a mapping from a syntactic
feature to an abstraction. A language specified entirely in BNF does not
have a semantic. A language specified at least in part in prose *might*. I
argue that XML does:

Tim Bray wrote:
> Well, we just have a difference of perception.  I think that
> "element", "element type", "notation", and so on are profoundly
> *syntactic* constructs.  I think an element is  a piece of an XML
> document that is bounded by tags; 

Okay, let's work from that definition. This is an element:

<ABC FOO="DEF">foo</ABC>

Now I make an XSL rule (or DOM query, or XLL link) that works on "elements
of type ABC" (according to the XSL spec.). Is the XSL spec. going to
define how to get from the text above, which is syntactically an element,
to an abstract object of type "ABC" with an attribute with name "FOO",
value "DEF" and content "foo"? The fact that these other specs speak of
"elements" and "element types" indicate that the people who make these
specs. consider these things to have been defined not only syntactically,
but as abstractions, in the XML REC. In other words, the string above
isn't just "in the language", or "out of it." It has a particular
interpretation *under it*. It describes an abstraction.

Who defines the mapping from the sequence of characters to the abstraction
that these other specs work on? I say that the XML spec. defines this
mapping, for two reasons:

 #1. Everyone seems to think it does (including other people in the W3C,
the editors, the people who invented SAX and so forth). Nobody is going
around defining how to get from element syntax to element abstractions, so
they must think that the job is already done.

#2. The XML spec. *itself* uses that abstraction. How else can XML check
an element against the content model and attribute constraints defined in
its "type"? 

I suppose that there is such a thing as a completely syntactic
"abstraction" (e.g. Lisp S-Expr), but it's stretching it to claim that XML
is defined this way when you take into account point #1. The abstractions
"persist" after the document has been validated -- they are the result of
the process.

 Paul Prescod  -

"Perpetually obsolescing and thus losing all data and programs every 10
years (the current pattern) is no way to run an information economy or
a civilization." - Stewart Brand, founder of the Whole Earth Catalog

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list