🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.text.sgml
Article #125

Specifying SGML Application Semantics

#125
From: "Dr. "Eliot Kimber" Macro"
Date: Mon, 03 Aug 1992 19:54
135 lines
7295 bytes
I picked the following paragraph more or less at random from
the ongoing discussion started by Darrell Raymond's response
to Brian Travis' comment about data structures:

>Erik, do you mean to say that the documentation accompanying an
>SGML prologue is sufficient to define the semantics of the information
>modelling relationships in a well-defined and portable way?
>Do you mean to say, that is, that english (i.e. natural language)
>is a sufficient specification language? Please! You must agree
>that a natural language description of a problem is "potentially
>non-portable."

Ignoring the noise in this thread, two issues that fall out
are:

1. To what degree do SGML constructs convey semantics?
2. To the degree that SGML constructs do not convey semantics,
   what is the best way to define semantics in a way that
   enables portability of applications (and thus documents)?

This second question, I've realized, is quite a serious one, and one
that needs serious attention.  I'm currently involved with designing
SGML applications, and the big problem, especially within an
enterprise like IBM, is portability of semantic specifications
across implementations of processors for specific DTDs.

I see two parts to the semantic specification:  what I call
"data processing" and output rendering (or "formatting").
Data processing is everything you do to your document data
before you render it for output, things like resolving
references, generating text, collecting stuff for later
use (c.f., BookMaster 4.0's Marked Note feature), handling
NDATA objects, etc.  Formatting is taking all this stuff
and rendering it to some presentation form (e.g., some
printer data stream like AFPDS or PostScript or into a
BookManager BOOK or InfoExplorer database).  Formatting
semantics seem to be pretty well covered by things like
FOSI (I have no knowledge of FOSI beyond it's existence,
so help me out here if I've erred) and DSSSL.

The problem then is data processing semantics.  Does there
exist a notation that is 1.) sufficiently rich to allow
expression of arbitrarily complex and inventive processing
semantics 2.) understandable by non-mutant humans 3.)
sufficiently general as to be easy to translate into a
variety of concrete implementations, hopefully by computers
4.) not so complex that support for it is prohibitively
expensive?

I take the HyTime standard as a model of what you can do
with English as a specification language.  The authors have
gone to great length to make the language precise so as
to avoid ambiguity, but clearly, all but the most powerful
AI programs could not translate the HyTime standard automatically
into concrete implementations (if it's possible at all).
The other problem with HyTime is its generality.  More concrete
architectures could be quite a bit more specific in their
semantic specifications.

If, on the other hand, I want to define a document architecture
and related set of processing semantics that must be provided
and performed for objects defined by that architecture,
what language could I use?  For example, I went through the
exercise of creating an architectural form definition for
graphic objects.*  I defined, in English, the precise semantic
processing.  For example, I define that when different methods
of specifying an objects position are allowed, and both
are used, the most indirect should be preferred.  I also specify
what conditions must produce error reports and how data
elements interact (for example, what reference from one element
to another means in terms of data processing).  If my writing
is clear, it should be possible to translate this prose into
code, but it will not be automatic.

The other part of this question is, given a language that meets
the above requirements, is it possible to create a system
that given a semantic specification can actually generate
and execute the algorithms thus defined and produce useful output?

If we define a document as being composed of three parts,
the SGML source, the DTD, and the semantic specification
(which may itself include separate "format" specs and
data processing specs), then if such a general "semantic
processor" is available, it should be possible to give to
this processor any document and get the desired output.

This would be a boon indeed, providing, finally, universal
document interchange.  Is it a pipe dream?

What international standards either exist or are in
development that would enable such a thing?  DSSSL seems
to be one, at least for the output rendering part of it,
although it appears to be able to define the data processing
part as well.

I, for one, would love to have just such a system.  But, on
the other hand, I will not let the lack of one prevent me
from creating SGML-based systems and applications today.
By moving to SGML I have no less document (and application)
portability than I have today, and I actually have significantly
more.  I also know that things will get better and that
what are hard-coded semantics today will be generalizable
tomorrow.  I also know that the effort of writing well-thought-out
and well-expressed document architectures will create a need for
general systems that can implement those of architectures quickly
and easily.

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

------
*By the way, does anyone know of any other efforts to define SGML
 languages for describing graphics?  My motivation for doing it
 is fourfold.  First, it offers some potential advantages for
 graphic interchange, especially of simple graphics, which is a
 real problem I face now in my job.  Second, it enables expression
 of hyperlinking to and from graphics, something that is painful
 at best today.  Third, I have little graphic ability and don't
 like drawing tools at all, so a graphic tag language enables my
 creation of high-quality graphics with little effort.  Fourth,
 my language specifically enables re-use of graphic objects and
 translation of text in graphics, big problems for IBM and other
 enterprises that do a lot of translation.  The idea is that the
 elements are completely independent of any presentation system
 and can thus be expressed by a wide range of systems of varying
 capabilities.  This should enable the generation of the best
 presentation on a given system without the need to limit yourself
 to the lowest common denominator.

 I ask the question if anyone has done this before because if they
 have, I don't want to re-invent it.  Also, I'd like to know if I've
 done something truly novel or just wasted a Sunday typing.
Technical Details
Message-ID: <9208032002.AA16476@mammoth.Berkeley.EDU>
Path: arc1-ca.pugleaf.net!sparky!uunet!gatech!darwin.sura.net!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!ucbvax!RALVM13.VNET.IBM.COM!DRMACRO

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!gatech!darwin.sura.net!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!ucbvax!RALVM13.VNET.IBM.COM!DRMACRO
From: DRMACRO@RALVM13.VNET.IBM.COM ("Dr. "Eliot Kimber" Macro")
Newsgroups: comp.text.sgml
Subject: Specifying SGML Application Semantics
Message-ID: <9208032002.AA16476@mammoth.Berkeley.EDU>
Date: 3 Aug 92 19:54:20 GMT
Sender: daemon@ucbvax.BERKELEY.EDU
Lines: 135