From: DRMACRO@RALVM13.VNET.IBM.COM ("Dr. "Eliot Kimber" Macro")
Newsgroups: comp.text.sgml
Subject: Representing Overlapping Data Structures in SGML, Round 2
Date: 23 Jul 92 19:44:26 GMT

Let's try the first solution again, with a corrected starting base:

X  now is the      for
Y      is     time for all
Z         the      for all good

I can do this:

<x start id=x1>now <y start id=y1>is<y end>
<z start id=z1>the<z end>
<x end><y start refid=y1>time<x start refid=x1>
<z start refid=z1>for all<y end> good<z end>

Not the best, but it does meet the challenge, I think.

I didn't say my other solutions were good solutions, only
that they were solutions.  Of course they require processing
to resolve, but you can't have everything.  To my mind,
the utility of SGML is the ability to define systems where
the synergy between markup, data, and processing is very
powerful, as it is in my second example.  To my mind,
documents, and specifically text documents, are not simply
flat streams of characters sprinkled with identifying markup
here and there, but complex systems of information objects,
defined by the markup in such a way that complex (and often
expensive) but very useful processing is enabled, if not
required, to make sense of a document.  In fact, from a
publishing standpoint, we (IBM publishing mutants) are starting
to realize how limiting a sequential model of document processing
is and how much you can do when you no longer require sequential
processing.  This tends to mean you stop thinking of documents
as character streams with embedded markup but as collections
of text objects defined and organized by their markup.  This
model tends to work very well for text document processing,
it may not work well in other arenas.

The question of external specifications being markup or not
depends in part on your view of what the document is.
If you think in more "hypertextish" ways about what documents
are, documents become the sum of a base plus layers of
connection applied to them.  Each layer may itself be
an SGML document, and the base may be independent of
the higher levels, but higher level function (such as defining
overlapping containment scopes) requires both layers.

This indirect method of element specification may be more
expensive, but the amplification of indirection enables
many uses and views of the same base data.  An obvious example
from hypertext is the ability to apply different webs of
links to a document base.  In this case, the separation of
base from link specification enables a function of great
utility that would otherwise be impossible to provide (the
base data may be read-only, for example).

I'm afraid I've lost the point of your objection to external
specification of relationships and the issue of "is it markup".
Maybe it's because systems where all data specification must
be embedded in the base information hold little or no
advantage for me and thus I do not find them interesting.
I'm sure there are other application domains where exactly the
reverse is true.

HyTime, for example, defines an International Standard that gives
external specification a high degree of interchangability and
validatability.  I like to think of HyTime link specs as
metamarkup or "higher dimensional markup".  Or conversely, you
could think of the example above as a single-layer projection
of a multi-layer document, where the boundaries of the x, y, and
z elements would be defined in a higher-level specification
separate from the base character stream.

Eliot Kimber                      Internet:  drmacro@ralvm13.vnet.ibm.com
Dept E14/B500                     IBMMAIL:   USIB2DK9@IBMMAIL
Network Programs Information Development     Phone: 1-919-543-7091
IBM Corporation
Research Triangle Park, NC 27709
Newsgroups: comp.text.sgml