Re: About multiple output documents from a single XML/SGML processed document

Subject: Re: About multiple output documents from a single XML/SGML processed document
From: Matthias Clasen <clasen@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 12 Aug 1999 23:11:51 +0200
> From: "Didier PH Martin" <martind@xxxxxxxxxxxxx>
> 
> Didier says:
[...]
> Matthias, I encourage you to post your notes, because they contains a lot of

Here we go:

5.2
It would be better to avoid () for grouping in productions.
It should be differentiated what is lexical (grouping chars 
into tokens) and what is syntactical (grouping tokens into 
expressions).


7.1.11 
Clarify how and when combine-char is applied. With 
xy --> z and zw --> d, would the result be xyz --> zw or
xyz --> d ? (I vote for zw.) With xy --> z and yw --> d, would 
the result be xyw --> zw or xyw --> xd ? (I vote for zw.)

If I understand the introduction correctly, combine-char applies
also to GIs, entity names, etc. What happens if I have <e --> e'
and the source contains <example> ? Or </ --> x and </example>.


7.3.2
In the sentence `identifiers may contain characters ...' the !
is missing.


7.3.3
Replace `#! constants' by `named constants'. The sentence about
implicit termination is wrong, all tokens except strings and
the single-char tokens except dot need implicit termination.
Consider abc:cde: one keyword or two ? Maybe it would be better
to make : in the middle of identifiers illegal, then keywords
wouldn't need implicit termination.

Remove glyph-identifier here, add a note that DSSSL languages
may add further tokens, and add it in 12.


8.2.4
Add language?. Add a note that DSSSL languages may add further types.


8.3
Add a note that DSSSL languages may add further expressions.


8.3.1.1
The use of `keyword' in productions [20], [21] is unfortunate,
since we also have an expression language type of that name.


8.3.1.2 (before example 8)
Add a space in `keywords,named'.

Remove glyph-identifier here, add a note that DSSSL languages may
add further simple-datums and self-evaluatings, and add it in 12.


8.3.2.6
In production [57], replace `(bounding-spec*)' by `bindings'.


8.5.2
Define equivalence of keywords and of named-constants, state
that equivalence is not defined for language objects and types 
added by the query, style or transformation language.

 
8.5.3 
In production [71], replace (datum+ . datum) by (datum+ . list).

(bottom of page 46) Why only transformation-language-body ?


8.5.7.4 (paragraph following note 15)
Replace `associated with the number name' and `associated with 
the unit' by `associated with the unit-name'.

It may be better to call the type quantity and have a separate
production for number.

Differentiate between exact and inexact units. m is exact, a
derived unit is exact if it involves only exact ingredients.
Then say that a numerical constant is inexact if it contains
a decimal dot, an exponent marker or a unit-name associated with
an inexact unit.


8.5.7.21
Allow (expt q k)


8.5.7.23
What is the number of a quantity ? See 8.5.7.1.
Make the dimension of a quantity available, so that

(= q (* (quantity->number q) (expt m (dimension q)))))

always holds.


8.5.8.1
The standard doesn't specify how conflicting char-property-declarations
or add-char-property declarations are resolved. I assume they should
have the same overriding properties as definitions, ie explicitly given
declarations override those implied by char-repertoire declaration element
type forms and declarations in later parts, and conflicts are resolved
on a char-by-char basis. Example:

part 1:
(declare-char-property foo #f)
(add-char-property foo: 'foo #\x)

part 2:
(declare-char-property foo #t)
(add-char-property foo: 'bar #\y)
(add-char-property foo: 'baz #\x)

result:
(char-property 'foo #\x) --> 'foo
(char-property 'foo #\y) --> 'bar
(char-property 'foo #\z) --> #t
 

8.5.8.2
There should be a way to create a language object by reference to
a POSIX locale. Proposal: allow

(define-language variable locale-specification)

locale-specification = (locale language country?)

and language and country would be symbols interpreted like elsewhere.


8.5.8.4
The ordering is not necessarily total (ie linear). 


8.5.9
Why is ; required after \character-name in strings if the
following char is a subsequent ? It would be enough to demand
it before (letter|digit|.|-), see the syntax of character-names.


8.5.9.6
It is not the lexicographic ordering based on char<?, it is
the ordering according to the collation specification of the 
current language. 


8.5.11
Should there be a version of time->string which uses the current language
to convert a time to a local representation ?


9.6 
Clarify the relation of combine-char and chars in the grove.
Are the chars in the grove already `combined' ? If so, should there
be a property containing the original chars ?

class sgml-document should have a property `external-id' like 
external entities.

In the classdef for sgml-constants, replace `no properties' by
`no non-intrinsic properties'.


10.3.1
word-parse should return the root of the created grove.


11.1
Replace `character-combination-declaration' by `combine-char declaration
element type form'.


11.3.1
Add (subgrove-spec? obj).


11.3.3
Can result-node-lists be produced at all ?


11.4.2
Add a * after transliteration-map-entry.


12. 
Add make, style and with-mode as expression-keywords.


12.1
Replace `character-combination-declaration' by `combine-char declaration
element type form'.


12.4.1
There is a clash between id as a function (10.2.4.1) and id 
in an id-construction-rule. It should perhaps be noted that this 
is not a problem. 


12.5.5
Add glyph-identifier as token, simple-datum and self-evaluating 
here after removing it from 8.


12.6.5.1 (Note 77)
Replace `nested-column-set' by `nested column-set-sequence'. How
do nested column-set-sequences work ?


12.6.6
In the parapgraphs about asis-truncate-char and asis-wrap-char, replace 
`char-object' by `char'.

Allow #f for hyphenation-char, with the meaning that no char is inserted.


12.6.15 (Notes 106 and 107)
Replace `effective-system-id' by `generated-system-id'.


12.6.26.7
Fences should allow to control the overshoot to force nested fences
to grow. It should be possible to specify things like < a | b > with 
a growing middle delimiter. One way to achieve this would be to allow
the value 'fence for the stretch-factor characteristic of character FOs.


12.6.26.11
grid-cell must be allowed to span and to have borders in order to
specify block matrices. The alignment of individual grid-cells must be 
overridable.


-- 
Matthias Clasen, 
Tel. 0761/203-5606
Email: clasen@xxxxxxxxxxxxxxxxxxxxxxxxxx
Mathematisches Institut, Albert-Ludwigs-Universitaet Freiburg


 DSSSList info and archive:  http://www.mulberrytech.com/dsssl/dssslist


Current Thread