jxr@thumper.bellcore.com (Jonathan Rosenberg) (04/05/91)
I'm sure this question has been asked & answered many times on this newsgroup, but since I don't usually read this newsgroup, I'm going to ask it anyway... I'm looking for a good book to learn SGML. I want to learn enough to be able to read/write SGML syntax. I'm not looking for any particular use (application?) of SGML, I just want to learn the syntax. The one book I already have is "SGML: An Author's Guide to the Standardized General Markup language" by Bryan. I hope there's something better than that available (IMHO, this book sucks badly). Please e-mail responses to me (jxr@thumper.bellcore.com) as I don't normally read this newsgroup. JR
enag@ifi.uio.no (Erik Naggum) (04/06/91)
Jonathan, I'm sure this question has been asked & answered many times on this newsgroup, but since I don't usually read this newsgroup, I'm going to ask it anyway... It's heading for the FAQ... :-) (Actually, the proper name for the FAQ should be OTAQ -- Once or Twice Asked Questions...) I'm looking for a good book to learn SGML. I want to learn enough to be able to read/write SGML syntax. I'm not looking for any particular use (application?) of SGML, I just want to learn the syntax. The SGML Handbook by Charles F. Goldfarb is the major reference, but I don't think it will do you much good, being much wider in scope than you seem to need right now. It also takes a lot of effort to read, although it's both well-written and *much* simpler to read than the standard (which it includes). If you look for the syntax, only, you will have a few problems finding the broader view among all the many details. I would like to add that this books is the best thing that happened to SGML since its inception (IMHO), and I do think you will find it worth while buying. I know I did. I've now completed my second reading of it, and my estimate of it has only increased. You should also note that "the syntax of SGML" is usually what is referred to technically as the "reference concrete syntax". An SGML application could come with almost any concrete syntax it likes, as long as it follows the rules about role delimiters and existence of the keywords. I think, however, that what you need is a reference concrete syntax summary of SGML, and I've been working on it for a while. Progress has been a little slow, but I hope I'll be able to finish it next week, having been spurred by your request. -- [Erik Naggum] <enag@ifi.uio.no> Naggum Software, Oslo, Norway <erik@naggum.uu.no>
dns@sq.sq.com (David Slocombe) (04/08/91)
I agree with Erik Naggum that Charles Goldfarb's book "The SGML Handbook" is the best thing that happened to SGML (and it *contains* the Standard!!). And I am very happy to hear that Erik is working on a simpler presentation for people starting out with SGML. In the meantime, the following book is (IHMO) an excellent introduction, and much more "accessible" than Martin Bryan's book (though we owe Martin a debt for being "the first with the mostest"!): Van Herwijnen, Eric. Practical SGML. 307pp. Kluwer Academic Publishers (1990). ISBN 0-7923-0635-X Another book worth mentioning is an ISO document: Berglund, Anders (Editor). Information processing -- SGML support facilities -- Techniques for using SGML. 124pp. ISO/IEC/TR 9573: 1988(E). [ISO publications don't seem to have ISBNs -- are they not books?] Charles' comment (in the Handbook) about this book is as follows: Anders Berglund has edited a technical report, with contributions from himself and other users and developers of SGML applications. The report includes techniques and examples for both publishing and office documents, mathematical formulas, complex tables, graphics, and spreadsheets. There is a special emphasis on the problems of multilingual documents and linguistic scholarship, with examples ranging from intermixed Kanji and English to Scandinavian Runes. I can add that Anders was an active member of the ISO SGML Working Group during the development of SGML, and that this book was improved greatly by its submission to both the Working Group and to the various national "member bodies" for criticism. Thus it combines a lot of the experience of those most closely involved in the development of the ISO SGML Standard. Anders, by the way, is in charge of the computerized production of all ISO documents in Geneva and was the person responsible for the conversion of the ISO's own book-production methods to SGML! This book is *not* a true introduction to SGML, but it is full of interesting approaches to the application of SGML for those who are committed to using it. ---------------------------------------------------------------- David Slocombe (416) 963-8337 Vice-President, Research & Development (800) 387-2777 (from U.S. only) SoftQuad Inc. uucp: {uunet,utzoo}!sq!dns 720 Spadina Ave. Internet: dns@sq.com Toronto, Ontario, Canada M5S 2T9 Fax: (416) 963-9575
enag@ifi.uio.no (Erik Naggum) (04/10/91)
I would like to second the recommendation of the Technical Report (ISO/IEC 9573, be sure not to forget the number! :-). The next version of it will cover a wider area and be much improved. I have no firm date for its release, but it can't be far away. If you're reading this, Anders, thanks for the first TR, and keep up the good work! On the other hand, I'm not happy to voice my negative concerns about Eric van Herwijnen's book. Mostly, this is because I think we all need a good introductory book to SGML, and that this book is not it. I read it not long ago, despite my general rule not to pick up books with "practical" anywhere on the title page. My feelings with it were expressed very well by Deborah A. Lapeyre in her review, published in <TAG> issue 16 (October 1990). (Subscriptions and back-issues handled by Patty Hill at the Graphic Communication Assocation (703 519 8160).) Deborah Lepeyre's review is concise and addresses all the points that I found valuable and important, even some that I didn't think were important until she put them in context. Her review is well balanced, highlighting strengths and discussing "nits and picks". In her view, the book is technically accurate, but I don't quite agree with that: it tends to understate many important aspects of the language that readers will want to know about. To quote from the summary: This is not the general SGML introduction that explains everything that all SGML users are still looking for. This book is a very personal volume, sort of "Travels Through the Land of SGML Software and What I Found There". ... This book packs a lot of SGML application experience into one volume. Along the way ... [it] provides a good programmer-oriented introduction to SGML. I recommend reading the review before you spend time on the book. -- [Erik Naggum] <enag@ifi.uio.no> Naggum Software, Oslo, Norway <erik@naggum.uu.no>
enag@ifi.uio.no (Erik Naggum) (04/12/91)
<!-- This is the entire text of the review that I mentioned in my previous article. SGML DTD and markup is entirely my own. --> <!-- Typed in from <TAG> Issue 16, October 1990 and distributed with permission from the Graphic Communications Association. --> <!DOCTYPE article [ <!ENTITY trade SDATA "(TM)" -- trade mark symbol --> <!ENTITY % phrase "cit|q|fp|hp"> <!ELEMENT article - - (title, author, ingres?, h1+, authinfo?)> <!ELEMENT (author|authinfo) - O (#PCDATA)> <!ELEMENT ingres - O (p+)> <!ELEMENT h1 - - (h1t, p*, h2*)> <!ELEMENT h2 - - (h2t, p*, h3*)> <!ELEMENT h3 - - (h3t, p*)> <!ELEMENT (title|h1t|h2t|h3t) - O (#PCDATA|(%phrase))*> <!ELEMENT p - O (#PCDATA|list|(%phrase))*> <!ELEMENT list - - (item+)> <!ELEMENT item - O (#PCDATA|p)*> <!ELEMENT (%phrase) - - (#PCDATA|(%phrase))*> ]> <article> <title><cit/Practical SGML/ by Eric van Herwijnen Kluwer Academic Publishers, 1990 <author>Review by Deborah A. Lapeyre</author> <ingres> <p> <cit/Practical SGML/ was written to fill a specific niche in the SGML literature. The author, Eric van Herwijnen, feels that current published reports of SGML indicate a lack of practical SGML experience. The <q>principal aim of <cit/Practical SGML/ is to help and encourage authors, document managers, and computer programmers to start using SGML</q> by showing them how other people use it.</ingres> <h1>Contents <p>The book is divided into three parts:</p> <h2>Part I: Getting started with SGML <p> This portion of the book starts simply, by defining SGML and providing basic information; what SGML is, why use it, when to use it, and what SGML is not. The book then introduces the concept of a DTD and explains the document components (such as elements, attributes, and entities) that comprise a tagged instance, introducing a simple office memo which is used a continuing example throughout the book. The next chapter explains in detail the SGML declarations that comprise a simple DTD. The next chapter discusses DTDs themselves; how to read them, tips for writing DTDs, and pitfalls to avoid. <p> Part I of the book is most appropriate for a person who finds ISO 8879 difficult to read. Tables are used to describe the ISO 8879 production rules. In the tables, SGML productions are described in English with an example and then a table defines all the parts of the example. The section on attribute declarations includes a particularly good discussion on <q/what is an attribute/ that uses three different <q/type=/ examples to zero in on the confusion most beginning users have with the phrase <q/a characteristic quality, other than type or content/.</h2> <h2>Part II: Advanced SGML <p> is full of examples of SGML features and constructs. For example, this section includes: <list> <item>Examples of CGM and Postscript™ inclusions in an SGML file; <item>Extensive examples of the use of Marked Sections, including the constructions of multilanguage SGML documents; <item>The standard memo example used throughout the book, done as a shortref/usemap example; <item>Examples of mathematical formulae coded in TeX, EQN, the ISO 9573 SGML tagset, and the AAP Math SGML tagset; and <item>A DTD for describing CGM and GKS graphics. </list> <p> This books fills the experience gap by sharing (in various levels of detail) specific, concrete, practical experiences with many current SGML applications. Some SGML applications are described in considerable detail, including user interface screens, DTD fragments, and computer program code. In this way, <cit/Practical SGML/ allows the reader to participate directly in the author's SGML experiences, including the experience of using SGML to produce the book itself! The sections on minimization and start and end records are quite good, reiterating the wording of ISO 8879, but giving short, clear examples for each item discussed.</h2> <h2>Part III: SGML Implementation <p> gives very brief overviews of the SGML parsing function, translation out of SGML some of the ways SGML tags get into files, the Shouten document database example, SGML and CALS, and SGML and EDI. This section is not all-inclusive, and does not try to be. For example, the section on parsers lists <q/some SGML parsers/ and the translation programs discusses <q/the translation possibilities of some SGML products/. </h2></h1> <h1>Useful Features and Strengths <p> <list> <item>Each chapter ends with a quiz to <q/Test Your Understanding/. The answers are given in the back of the book. Don't skip these quizzes; they sometimes bring up entirely new points not covered in the chapters! <item>Each chapter (even the glossary) also included as bibliography and these mini-bibliographies are one of the most interesting features of the book. <item>The appendices include an explanation of the author's experiences and lessons learned when publishing the book <cit/Practical SGML/ using SGML, the DTD that was used to produced the book, some entity definitions for use with TeX, and a very good <q/How to Read ISO 8879/. (This appendix explains both how to read an SGML syntax production and why the average reader shouldn't bother.) <item>The glossary definitions are simple English definitions, non-circular, succinct, and much easier for a beginner to understand than the definitions in ISO 8879 (<fp/e.g./, <q>element: A part of a document which is a logical entity such as a chapter, section, a title, a paragraph, and so on.</q>). </list></h1> <h1>Technical Accuracy <p> I read this book with my copy of ISO 8879 in hand, spot-checking the definitions and declarative statements. This book is technically accurate and always includes all the updates from Amendment One. The DTD examples (at least all the shorter ones) parse cleanly. The REXX program run. The FORTRAN examples compile cleanly. Yes, there are errors in this book. But they are very few and likely to be caught in by an errata sheet before the next edition.</h1> <h1>Nits and Picks <p> I feel that Part I of the book should be called <q/A Programmer's Guide to SGML/. In a successful attempt to avoid SGML jargon, this book makes use of concepts familiar to programmers but not too many editors, typesetters, writers, lawyers, etc. Macros, tree traversal, and pre-order (for example) were explained briefly, but strong data typing and floating point numbers were never explained at all. I gave this book to four SGML neophytes (admittedly a small sample). The <q/C/ programmer was the happiest, reporting <q/the only good explanation I've seen that tells me what SGML is all about/. Two of the others thought the book got too technical too fast, and should not be given to real beginners. <p> Perhaps because of the publishing background many SGML readers are assumed to have, we (in general) have a reputation for being critical of details. So, the basic question that will be asked is <q/Are there typos in this book?/ Of course there are, rather a lot. But although numerous, the typos are usually in places that don't matter, such as the introductory sentences in the general text. The typos are almost never fatal and never (that I noted) in the parseable examples. The meaning is never obscured, even when the grammar or syntax has vanished beneath a typo. <p> Second picky question: Are there errors in the quiz answers? Yes, but they are gross errors, not fine errors that could trip an unwary beginner. The answers are an accurate reflection of the chapter text. But in Chapter 3, for example, the answer to question six was omitted, causing all the rest of the answers to be misnumbered. <p> Still another nit: The index was generated by IBM BookMaster. Warning for those of you who have never used a Script index: if you can't find the reference on the page cited, look on the next page! <p> More small complaints: The headings of the document don't always match the text. For example there is a section called <q/Documenting an Application/. The paragraph below the heading explains that what the author means is <q/explaining the DTD/. Now a DTD is not an application, and the paragraphs that follow this heading are neither good application documentation nor good DTD documentation. But the text is a fine example of <q/How to Read a DTD/, a very good <q/explanation of a DTD/, which was the author's stated intent. <p> The book can sometimes be confusing, as when it gives a black and white picture of a color system, explains that the colors are crucial, and then doesn't explain the coloring system. But to pick on these flaws and ignore the book because of them is to miss the point and purpose of this volume. This book is not rigorous and was not intended to be. This book is an overview of some basic, practical SGML application (largely, but not exclusively IBM) that are happening in the SGML world right now.</h1> <h1>Summary <p> This book is not a perfect book. This is not the general SGML introduction that explains everything that all SGML users are still looking for. This book is a very personal volume, sort of <q>Travels Through the Land of SGML Software and What I Found There</q>. You will want to read it for the same reason that you read any other travel volume: to acquire vicarious experience before trying out the real thing; to act as a guide to unfamiliar and uncharted territory; to compare another traveler's impressions with your own. This book packs a lot of SGML application experience into one volume. <p> Along the way, the author describes some fascinating SGML application, details some of the very real problems an SGML'er is likely to face, provides some useful pointers and DTD samples, and provides a good programmer-oriented introduction to SGML.</h1> <authinfo> Ms. Lapeyre is a Senior Consultant with ManageMatics Corp. </article> -- [Erik Naggum] <enag@ifi.uio.no> Naggum Software, Oslo, Norway <erik@naggum.uu.no>
jxr@thumper.bellcore.com (Jonathan Rosenberg) (04/19/91)
A few eeeks ago, I posted a request to this newsgroup asking for a recommendation of a good book to learn SGML. (I neglected to mention exactly why I wanted to learn SGML, so let me rectify that here. I'm tying to learn SGML well enough to be able to learn the HyTime standard, which is an SGML application. For those of you who don't know, HyTime is a proposed ANSI standard for the representation of hypermedia & time-based multimedia.) I promised someone on the net that I would post a summary of the responses I received. It's very easy for me to summarize the responses. Two books were recommened with great regularity. The most heavily recommended was Goldfarb's book: The SGML handbook / Charles F. Goldfarb ; edited by Yuri Rubinsky -- Oxford : Clarendon Press ; Oxford ; New York : Oxford University Press, 1990. xxiv, 664 p. ; 24 cm. Includes bibliographical references and index. ISBN 0198537379 (hard) : $75.00 (Actually, it was $95 from the place I ordered it.) I have gotten this book & begun reading it. It's a monster (big, that is), but so far I'm enjoying it. Thanks all for recommending it. The seond most recommended book was: Van Herwijnen, Eric. Practical SGML / Eric van Herwijnen. -- Dordrecht ; Boston : Kluwer Academic Publishers, c1990. xviii, 307 p. : ill. ; 24 cm. Includes bibliographical references and index. ISBN 079230635X (alk. paper) I haven't gotten this one (& may not), but quite a few people seemd to like it. Several other books received single recommendations. Thanks for all of your help. Jonathan Rosenberg