RE: Bogus XML conformance claim
Thanks for your note.
We have been in touch with Tim Bray about XML and OpenTag and he kindly
pointed out several mistakes. We are working on solving them.
You have to understand that our expertise in that area is not perfect.
But hopefull, with XML experts help, we will be able to improve it
Thank you for having taken the time to analyse our DTD.
Sent: Wednesday, March 05, 1997 10:29 PM
Cc: bosak; w3c-sgml-wg
Subject: Bogus XML conformance claim
As the chairman of the committee developing XML, I'd like to thank you
for your attempts at XML compliance. However, analysis shows that the
claim to conformance with WD-xml-961114 as currently stated in
opentag.dtd Draft version 3 is false (see below). Until you make the
changes needed to bring OpenTag into compliance with the XML
specification, I strongly suggest that you drop the claim, as it can
only reflect badly on your expertise and credibility.
I welcome your participation in the XML effort and hope that you will
soon be able accurately to claim XML compliance for OpenTag.
Jon Bosak, Online Information Technology Architect, Sun Microsystems
2550 Garcia Ave., MPK17-101, | Best is he that inuents,
Mountain View, California 94043 | the next he that followes
Davenport Group::SGML Open::ANSI X3V1 | forth and eekes out a good
::ISO/IEC JTC1/SC18/WG8::W3C SGML ERB | inuention.
Date: Wed, 05 Mar 1997 11:45:10 -0500
From: "Eve L. Maler" <email@example.com>
Subject: Re: Kind of surprising commercial XML application
In case anyone is curious, here are the ways in which the opentag.dtd
XML compliant (some of the ways are trivial, some not):
- #PCDATA must come at the beginning of a content model (%paratxt;, u,
- #PCDATA must always use * occurrence indicator (u, ...)
- #PCDATA can't be in a model with pernicious mixed content (lvl)
- Exceptions not allowed (b, ...)
- OMITTAG specifications not (yet :-) allowed
- NUMBER declared value not allowed (p, ...)
- Comments not <!--* *--> (but this isn't in the spec version they used)
Designing and implementing DTDs according to the XML constraints is a
Date: Thu, 06 Mar 1997 00:14:02 -0500
From: Harvey Bingham <hbingham@ACM.org>
Subject: Re: Kind of surprising commercial XML application (long)
Executive Summary: The primary connection to this wg is their marketing
hype, claiming they do XML. The novel idea for natural language
processing is that text zones can be extracted from a word-processing
proprietary format and tagged to the opentag DTD, manipulated (natural
language translation of those text zones), and then restored to the
places where the original text zones were, yielding the same formatting
for a new document in the different natural language. Custom
translators to and from the proprietary format are needed for the
25 elements of the OpenTag DTD.
OpenTag focuses on localization (natural langage processing, NLP) of
in documents in any proprietary formatting text processor. It uses its
standard DTD that will support open data encoding methods during
the localization process. It provides a 25-element DTD that assertedly
preserves the significant clues useful for producing natural language
translation of each text object. Presumably translation is easier using
the opentag markup. When the translation is complete, the reverse
occurs: it substitutes the translated text objects back into the
corresponding places in the original formatted document, so all the
original formatting markup is reused. The SGML version is only the
intermediary. It need not persist beyond the translation process.
They assert "XML compliant (and therefore SGML compliant as well)". They
aren't there yet. [See Eve's message as well.]
The OpenTag DTD preserves a few styles that might provide aids to
translation [but not font, face, pointsize information, that might
convey hierarchy or captioning]. Presumably a human translator
would have the original formatted document to work with that could
convey this other information.
A tagged instance has sequential numeric ids assigned to
paragraphs in a document and again ordered sequential numeric ids to
each inline textual object in each paragraph. As the content model
includes tags for inlines in a paragraph, the mixed content #PCDATA
parts would remain in the same order separated by injections of inlines.
A generic x in-line code tag is available, that might be used to
It handles footnotes, index terms, and bibliographic references.
It preserves column breaks and table cell breaks.
They allow (character) codeset change within a document from
that specified in an initial PI.
Comparing different localizations for the same formatting language X
of the same original would all share the ordered ids.
Transformation to a different target formatting language Y, such as RTF,
HTML, Wordperfect, etc. would not generally be possible, unless there
were a richer way to assign corresponding style recognizers and
Some formatting languages such as MicroSoft Powerpoint scramble object
order. There is no implicit left-to-right, top-down text progression
as is true for western languages in most word-processing format
(Even in those, table cell line-wrapping can break that model.)
I believe the opentag document instances will lose much information
in the translation process of mapping everything onto their 25 generic
elements, nine of which are EMPTY. The consequence is that they will
not be able to generally go from X to different formatting language Y.
2. The DTD -- opentag.dtd
The OpenTag DTD claims conformance with
"XML, Extensible Markup Language, working draft 11-14-96".
The assertion of compatiblity with XML is commendable, but overstated.
Omissible tag indicators should not be present. Or, if they are,
the omissible endtag on a content model is improper:
<!ELEMENT P - O ...> is inconsistent with XML.
All hierarchic structures are flattened into a sequence of paragraphs P.
Self-exclusion exceptions occur, on b,i,u,d bold, italics, underline,
doubleunderline) indicate a style attribute on something -- but why stop
with those few? smallcaps, overbar, strikethrough, subscript,
<!ELEMENT so - - RCDATA>
RCDATA is disallowed in XML.
There is no element declaration for level, used in the ixd content
model. Instead there is a lvl element, with pernicious mixed
content, ((%paratxt;)*,so) that is illegal in XML.
The PB tag semantics refer to an otherwise undefined definition group.
3. The OpenTag Format Specifications -- otspecs.htm
This includes a markup reference to XML, character entities (either
SGML &name;, or Unicode &#xxxx;), a file header, and a tag description
table, providing some semantics.
An initial PI file header describes version, type, encoding, locale,
and original. This suggests document==file. There is no mention of
No attributes are on the base document element, opentag.
Almost universal is an id NUMBER attribute. Few other attributes exist.
The element type distinguishes use: target or reference for the id
The example for paragraph (which has a content model) "<p id=1/>" is
inconsistent with SGML. It uses the XML empty tag variant "/>" in
place of tagc, not now present in SGML.
I am confused by the use of id as a numeric (not ID) attribute. It is
appropriate for the textual definitions of footnotes,
index terms, and (biographic) references -- FND, IXD and
RFD, but also in their EMPTY points of reference in FN, IX, and RF.
As the latter are actually references, in SGML I believe it would be
better with a distinguishing attribute name, possibly "idr", rather than
overload id. I see no reason why the "idr" need to be unique in the
file. Several references to the same object should be allowed.
[The end of the RFD semantics seems in error, referring to footnote
definition, rather than reference definition.]
The use of sequential integers starting from 1 at each <p> for each
in-line makes any use of the id values during language processing
awkward. Since each paragraph has its own sequence, presumably the
paragraph ids, unique to the document, also a set of sequential numbers
starting at 1 as qualifiers to disambiguate the ids of the in-line
But since the inline id values are reused, they are not
sufficientby themselves to locate any object, other than indirectly
through its ancestors.
The generic inline group can be arbitrarily moved in a P. That seems to
means that all id values in that P need to be adjusted after such
movement. [Any editing to add, reorder, or delete objects in a P has
the same problem.] Perhaps this is ruled out in the localization NLP.
Revisions across a set of localized versions of a document could use
opentag versions to linearize the structure and provide some degree
of common navigation to common places. There are no attributes that
would indicate any revision control.
From this cursory look, I believe OpenTag still needs significant work.