Article View: comp.text.sgml
Article #125Specifying SGML Application Semantics
From: "Dr. "Eliot Kimber" Macro"
Date: Mon, 03 Aug 1992 19:54
Date: Mon, 03 Aug 1992 19:54
135 lines
7295 bytes
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!DRMACROShow 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