Re: More proposals -- and some critical implementation issues

At 11:34 AM 12/30/96 -0500, David G. Durand wrote:

>   The notion of laying a semantic architecture on top of a DTD, is a
>brilliant one, since it allows better abstraction than a DTD can
>accomodate. But there is a real problem in using architectural forms in
>XML. Since a AF is determined by examining the attribute list, an XML
>parser operating without a DTD will fail to pass the "STOOOPID" test,
>because the markup for elements will be ludicrously redundant-seeming:
>   <ilink -XML-AF="ilink" ...>
>We can't use default values, because then essentially all browsers will
>have to fetch DTDs to recognize links... 

Note that as currently defined (and implemented by SP), there are
defaulting rules for associating element types with architectural forms,
specifically, an element whose type is the same as a form in the active
architecture is taken to be of that form.  Thus, if we define an XML
architecture and assume that all XML processors use it, then, assuming
"ilink" is a form in the architecture, it is unnecessary to specify the
redundant architecture attribute.


>                                 We put all the operational semantics of
>links into the stylesheet language, so that a stylesheet can allow simple
>navigation applications to detect and render links. Analytical applications
>will have to fetch the DTD, if they need complete information about
>possible link elements.

I don't think this is punting--I think it's a natural way to solve the
problem. There's nothing that says you can't put the architectural
recognition in your style sheet (you can do it today with DynaText, albeit
inefficiently, by using the #DEFAULT style and having a buch of switch()
functions conditioned on form name for the relevant properties).

A style sheet is nothing more than a processor specification, after all.

>   I think XML should have a much simpler way of indicating AFs than
>HyTime's set of attributes. XML AF attribute names should simply be fixed,
>for instance, when a form is defined. This will inconvenience the few prior
>users of HyTime (like the TEI), who have assumed that attributes may be
>renamed, but will simplify the user's and implementors life significantly.
>It may also mean that existing linking DTDs will need some
>XML-compatibility changes...

So you would disallow attribute renaming? I suppose that's ok, especially
if we prefix all XML attributes with "-xml-".  Renaming is disallowed by
default--you can choose not to define a renaming attribute, and if you
don't, no way to rename.

>   I need to learn more DSSSL to give stylesheet examples or proposals.
>Others are welcome to contribute if they have ideas.

I have it on my to-do list to create DSSSL style sheet that implements the
InfoMaster architecture.  Don't know when I'll get to it, but the basic
approach would, I think, be to replace the use of the element function with
a new function, archform, that checks the architectural form just as
element checks the element type.  I haven't had time to work out the
details of the function, but it can't be that hard.

Another approach would simply be to apply the style sheet to the
architectural instance rather than to the base document instance, which you
can do with Jade by using the -A flag to specify the architecture name.


W. Eliot Kimber (eliot@isogen.com) 
Senior SGML Consulting Engineer, Highland Consulting
2200 North Lamar Street, Suite 230, Dallas, Texas 75202
+1-214-953-0004 +1-214-953-3152 fax
http://www.isogen.com (work) http://www.drmacro.com (home)
"Rats in the morning, rats in the afternoon...if they don't go away, I'll be
re-educated soon..."                 --Austin Lounge Lizards, "1984 Blues"