home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / text / sgml / 1272 < prev    next >
Encoding:
Internet Message Format  |  1993-01-07  |  5.8 KB

  1. Path: sparky!uunet!ralvm13.VNET.IBM.COM
  2. From: drmacro@ralvm13.VNET.IBM.COM
  3. Message-ID: <19930107.141259.567@almaden.ibm.com>
  4. Date: Thu, 7 Jan 93 17:11:39 EST
  5. Newsgroups: comp.text.sgml
  6. Subject: Re: SGML for data querying
  7. Disclaimer: This posting represents the poster's views, not those of IBM
  8. News-Software: UReply 3.0
  9. References: <1993Jan6.221136.27780@twg.com> <19930106.155234.608@almaden.ibm.com>
  10.             <19930107.006@erik.naggum.no>
  11. Lines: 96
  12.  
  13. In <19930107.006@erik.naggum.no> Erik Naggum <SGML@ifi.uio.no> writes:
  14. >[Eliot Kimber]
  15. >:
  16. >|   <digression>
  17. >|
  18. >|   The examples above, and most SGML applications in existence today,
  19. >|   process SGML documents sequentially from start to finish.  However,
  20. >|   SGML does not require sequential processing, and it can make just as
  21. >|   much sense to define applications that work with SGML documents
  22. >|   wholistically as a tree, rather than sequentially, at least in the
  23. >|   abstract.  In this processing model, access is via queries, rather than
  24. >|   sequential access by waiting for the element you want to flow by. ...
  25. >
  26. >This is a good point, but an important distinction needs to be made (and
  27. >"at least in the abstract" needs to be stressed).
  28. >
  29. >The SGML document consists of one or more _entities_, each a character
  30. >sequence, which represents a fragmented linearization of the element
  31. >structure.  This fragmented linearization needs to be parsed (and
  32. >reconstructed) before we can access the element structure.  The element
  33. >structure can fruitfully be regarded as the _product_ of the parser (cf.
  34. >ESIS), and the parser has to parse the document "from start to finish" to
  35. >be able to build this structure.
  36.  
  37. Erik's completely correct.  In my mind, I've already abstracted away
  38. the entity structure, such that the only SGML-defined constructs I'm
  39. thinking about are enlement structures.  You can do this by defining
  40. semantics that provide "entity-like" functions for elements.  For
  41. example, if you use the HyTime content extraction link idea to access
  42. the content of SGML elements, you don't have to depend on entities
  43. to do data organization.  All data organization can be done using
  44. only SGML elements.  This allows you to view the SGML data without
  45. regard to how it might be organized into system entities, or rather,
  46. you view the data as a single, giant entity that is an entire "document"
  47. or set of documents.  In addition, if you constrain all elements and
  48. semantics to the element hierarchy, you remove all requirements to
  49. process the document sequentially (ignoring the fact that the SGML
  50. must be *parsed* sequentially, which is not the same thing).  This
  51. means that valid subtrees can be processed in isolation because
  52. they are, by this definition, completely self contained.  Or, thought
  53. of another way, there are no longer any processing states that
  54. change asynchronously from the element hierarchy itself.  This is very
  55. powerful for things like re-use and modularization.
  56.  
  57. New documents are built using content
  58. references to re-use objects rather than using entity references
  59. (except for data entities, of course).  You can thus think of
  60. the database as a "containment-only document" that serves only as
  61. a repository of elements for use elsewhere, at its simplest,
  62. a one-element document type with a content-model of ANY.  If you
  63. define the first level of containment as defining the object
  64. boundaries, hey presto, a database of objects.  If you make this
  65. structure recursive (which is to SGML by dint of using ANY),
  66. you can have arbitrarily complex sets of containers within containers.
  67. This enables the data organization to be completely different from
  68. the presentation or retrieval organization, letting you
  69. modularlize your data to any granularity desired (down to the
  70. character level, unless you use HyTime addressing to address
  71. bits within characters--just joking).  At all levels of granularity,
  72. the same basic SGML features or application semantics are used
  73. to manage structure and addressing (e.g., containment hierarchy
  74. and ID or query-based hyperlinks).
  75.  
  76. In other words, you can define all data organization of SGML
  77. data purely in terms of element structure without ever using
  78. external entities (not counting data entities, of course).  HyTime
  79. defines the processing semantics you need in terms of hyperlinks,
  80. which provides a nice formalism, but you don't need HyTime to
  81. define those semantics for a given application.
  82.  
  83. One of the big revelations for me as I've worked at designing
  84. SGML applications is that SGML puts very few limits on what
  85. you *can* do.  I found that I tended to limit my own thinking by
  86. what I was used to doing, and when I stopped doing that, I
  87. realized I had a lot of freedom to define whatever processing
  88. and application semantics I wanted to.  This is because SGML does
  89. not define the processing semantics in any way.  Charles Goldfarb
  90. has always been very adamant on this point and I finally see
  91. why.  Of course, there's no reason you can't define another
  92. standard set of semantics in SGML terms, but the possible number of
  93. such definitions is infinite.  I also found that I could define,
  94. for my application, which happens to be a text processing
  95. application, all my semantics in terms of hyperlinks, which means
  96. they can all be expressed in terms of HyTime, for the
  97. most part.  I now have an application whose data structures
  98. and semantics are expressed almost entirely in terms of existing
  99. international standards, which provides, at the very minimum,
  100. a coherent, "universal", language for expressing my application
  101. design, and that is completely divorced from implementation specifics.
  102. I find this to be pretty darn cool and very liberating.
  103.  
  104. Eliot Kimber                      Internet:  drmacro@ralvm13.vnet.ibm.com
  105. Dept E14/B500                     IBMMAIL:   USIB2DK9@IBMMAIL
  106. Network Programs Information Development     Phone: 1-919-543-7091
  107. IBM Corporation
  108. Research Triangle Park, NC 27709
  109.