Subject: Re: rip erik naggum
From: (Rob Warnock)
Date: Thu, 25 Jun 2009 23:14:18 -0500
Newsgroups: comp.lang.lisp
Message-ID: <>
Keith H Duggar  <> wrote:
| (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:

      Newsgroups: comp.lang.lisp
      Date: Fri, 24 Aug 2001 07:21:01 GMT
      From: Erik Naggum <>
      Subject: Re: XML and lisp
      Message-ID: <>

      ... 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:

      Newsgroups: comp.lang.lisp
      Date: 30 Sep 2002 15:40:43 +0000
      From: Erik Naggum <>
      Subject: Re: Core ideas behind SGML and XML
      Message-ID: <>

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			<>
627 26th Avenue			<URL:>
San Mateo, CA 94403		(650)572-2607