SGML: Synex and TEI Extended Pointers in Panorama 2.0, Synex ViewPort 1.20
Subject: Re: SGML and scope
Date: Tue, 21 May 1996 08:53:48 +0100
From: Hasse Haitto <haitto@synex.se>
Newsgroups: comp.text.sgml
--------------------------------------------------------------------------
Dominic Dunlop <domo@tcp.ip.lu> wrote:
...
> you'll have to write your own tools to follow those links across
> documents (or sub-documents). I'd love to be corrected, but I'm not
> aware of any tool which can follow TEI external references.
As C M Sperberg-McQueen was quick to point out (thanks, BTW)
SoftQuad Panorama supports a subset of the TEI pointers.
As of next release (2.0 for Panorama, 1.30 for Synex ViewPort),
we also include support for regular expressions to support the
pattern keyword. Specifics are below.
Cheers,
Hasse
--------------------------------------------------------------------
Hasse Haitto Phone: +46 8 791 88 81
Synex Information AB Fax: +46 8 791 88 89
Stora Nygatan 20 Internet: haitto@synex.se
111 27 Stockholm, Sweden WWW: http://www.synex.se
*
The Synex ViewPort browser engine (and software that uses it, like
SoftQuad Panorama) incorporates the following support for TEI P3
extended pointers. The regular expression grammar is:
regular :- character
| '.' // Match any character
| '[^' characters ']' // Match any character not in list
| '[' characters ']' // Match any character in list
| '\a' // Match any alphabetic
| '\d' // Match any digit
| '\n' // Match newline
| '\s' // Match any white space character
| '\\' // Match backslash
| '\' nonspecial // Match nonspecial character
| regular '*' // Match 0-n of 'regular'
| regular '+' // Match 1-n of 'regular'
| regular '?' // Match 0-1 of 'regular'
| '^' regular // Match at start of loc source
| regular '$' // Match at end of loc source
| regular regular // Match 1st, then 2d regular
| regular '|' regular // Match either 1st or 2d
| '(' regular ')' // Use parenthesis for grouping
characters :- /* empty string */
| characters character
nonspecial :- /* Any character except 'a', 'd', 'n' or 's' */
The use of '\n', '^' and '$' is non-intuitive in Panorama as
it removes newlines for on-line viewing (unless the contents
are displayed "verbatim"). ^' or '$' match pseudo-nodes
rather than lines.
The new support for regular expressions allows us to enhance our
TEI-pointer support. The supported TEI subset spec is now:
ladder :- locterm ladder*
locterm :- 'ROOT' // default first location
| 'HERE' // location of the xptr
| 'ID' '(' NAME ')' // only one ID allowed.
| 'CHILD' steps
| 'DESCENDANT' steps
| 'ANCESTOR' steps
| 'PREVIOUS' steps
| 'NEXT' steps
| 'PRECEDING' steps
| 'FOLLOWING' steps
| 'DITTO' // valid only in TO att.
steps :- '(' step ')' steps*
step :- instance [ element [ avspecs ] ]
avspecs :- attribute value avspecs*
instance :- [ '+' | '-' ] NUMBER // default sign is +
element :- NAME // Element name
| '#CDATA' // Pseudo elements
| '*' // Any element matches
| '(' regular ')' // Regular expression
attribute :- NAME // Attribute name
| '*' // Any attribute matches
| '(' regular ')' // Regular expression
value :- LITERAL // Quoted string
| NAME // Name characters
| NUMBER // Numbers
| NUMTOKEN // Numbers or name characters
| '#IMPLIED' // No value specified, no default
| '*' // Any value matches.
| '(' regular ')' // Regular expression