Keith H Duggar <email@example.com> wrote:
| firstname.lastname@example.org (Rob Warnock) wrote:
| > There were several long threads in 2000, 2001, and 2002 about
| > issues with SGML & XML and possible alternatives to those
| > that I found *very* helpful.
| May I ask for you to please enumerate a few of the concepts from
| those discussions that you found most helpful?
Well, just to name a few... ;-}
1. The basic SGML (and XML) rant:
Date: Fri, 24 Aug 2001 07:21:01 GMT
From: Erik Naggum <email@example.com>
Subject: Re: XML and lisp
... I actually prefer to break the _incredibly_ stupid syntactic-only
separation of elements and attribute values. SGML and its descendants
have made a crucial mistake: For every level of container (there are
about 7 of them), there is a new syntax for _two_ properties of the
container: (1) the contents is wrapped in one syntax, but (2) the
"writing on the box" is in quite another. This means that information
and meta-information are massively different concepts, and this
artificial separation runs through the whole SGML design. Each level
offers a new way to write the two differently. This is what makes it
so goddamn hard to reason about SGML documents and to do reasonably
intelligent transformations on them without working your butt off
specifying all sorts of irrelevant stuff that does _nothing_ but get
in your way. ...
But there must be something seductive about this mistake, because
I've found myself starting to make it more than once when designing
graph structures [e.g., attributed-ASTs in a compiler or a data-mining
application], and each time have been saved from the brink by
remembering Erik's strident denunciation.
Said another way, it's surprising how often one finds oneself tempted
to "just add one little attribute" to a node when what one should
really be doing is pushing both the existing node *and* the "attribute"
into a sub-graph... or flattening/splicing them into a list... or some
other "rotation" of the data representation entirely which will be
more useful [or at least, easier to post-process] in the long run.
2. Conversely, from the same article, the notion of using an alterative
minimal-angle-brackets syntax for representing SGML/HTML/XML which
*preserves* the (mistaken) distinction between elements & attributes,
which he called "Enamel" (a.k.a. "NML") and Tim Bradshaw later picked
up on and called "TML" (a.k.a. "DTML" when emphasizing the macro
features). See Erik's full article [ask Google Groups for the above
Message-ID] for several examples.
I found it quite easy to write a simple TML parser, which was much
easier than HTML when composing some of my own (internal) documents.
[Tim has used TML/DTML *much* more heavily; he might (or might not)
choose to comment further.]
3. This article, and the thread around it:
Date: 30 Sep 2002 15:40:43 +0000
From: Erik Naggum <firstname.lastname@example.org>
Subject: Re: Core ideas behind SGML and XML
Not from that thread/time, per se...
4. Erik's classic:
The Long, Painful History of Time
and all of the followup discussions in netnews later. While I have
not (yet) gone so far as to adopt his "local-time" scheme, awareness
of some of these issues *has* improved my effectiveness when dealing
with such baroqueness as PostgreSQL's "TIMESTAMP WITH TIME ZONE" and
"TIMESTAMP WITHOUT TIME ZONE" types. ;-} ;-}
5. His general advocacy for and discussion of details of Common Lisp
contributed [though I couldn't say exactly how much] to my switching
from Scheme to CL, which, almost a decade later, I can safely say
was the right decision (for me).
Enough for now. I'd have to go digging around for more. Suffice it
to say that I personally felt that his presence was beneficial.
Rob Warnock <email@example.com>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607