Gray - HyTime's clink and anchrole
Path: singer.cent.gla.ac.uk!usenet
From: Norman Gray <ng3j@udcf.gla.ac.uk>
Newsgroups: comp.text.sgml
Subject: HyTime's clink and anchrole
Date: 3 Aug 1998 10:53:50 GMT
Organization: University of Glasgow
Lines: 111
Message-ID: <6q44ru$i7d@singer.cent.gla.ac.uk>
NNTP-Posting-Host: lenzie.cent.gla.ac.uk
Organisation: Glasgow University, UK
X-Newsreader: NN version 6.5.0 #18 (NOV)
Xref: singer.cent.gla.ac.uk comp.text.sgml:17154
Greetings,
...and here was me thinking I was understanding HyTime!
Can anyone give me a clue what I'm missing here (or indeed point me
towards a more appropriate place to ask - I can't seem to find any
forums less exalted than this one to ask what feels like a naive
question)?
I hope my question doesn't sound too much like a lazy
`why-isn't-my-program-working' whine. After a good deal of thought,
I seem to be confused about some pretty fundamental point, so with
a bit of luck any explanation will be of interest to others as well.
In the HyTime meta-DTD we find the following in the links module:
<!attlist
clink -- Contextual link --
-- Clause: 8.2.2 --
HyBase NAME #FIXED hylink
HyBnames CDATA #FIXED "refsub linkend"
anchrole CDATA #FIXED "refmark refsub #LIST"
anchcstr NAMES "self required"
linkend -- Reference subject link end --
CDATA -- Reference --
#IMPLIED -- Default: omitted or conditional --
-- Constraint: if left unspecified, must specify
COND in anchcstr --
>
Now, I was suffering from the delusion that I understood this.
1 The anchor roles are given their meaning by the natural-language
description in clause 8.2.2, and are otherwise unconstrained
(specifically, the authors could have named them refbilly and refbob,
and the only folk who'd have to care would be those writing
HyTime-aware applications).
2 refmark is a SELF anchor, so there doesn't have to be an attribute
whose name is refmark (clause 8.2.1).
3 refsub isn't a SELF anchor, so there has to be a refsub attribute
somewhere. Only a HyTime engine could check this constraint
(because it `knows' about 8.2.1) - a generic architecture processor
couldn't, because this isn't expressed in any (meta-)DTD (the
implication of point 1).
4 That would seem to be taken care of by the previous line, which maps
the HyBase attribute refsub to the attribute linkend.
5 But there _isn't_ a HyBase refsub attribute (at least, not that
I or SP have been able to find in hi2mdhyt.sgm, which is what I'm mapping
to the entity name 'ISO/IEC 10744:1997//DTD AFDR Meta-DTD
Hypermedia/Time-based Structuring Language (HyTime)//EN'), so that
sgmlnorm (reasonably) objects to the attempted remapping of the
non-existent architecture attribute "REFSUB"
6 I can't cut the knot by declaring my own refsub attribute in the
client DTD because (a) what then would be the point of the linkend
attribute?, and (b) the attribute (surely) has to be architectural,
which an attribute in the client DTD wouldn't be.
7 GOTO 1
...and that's where the back of my head falls off. I thought I'd
found some clue in Note 239, but decided that didn't have anything
to do with it.
And that's the problem: one of these understandings must be wrong, but they
all sound so reasonable, they appear to me to have support from the
standard, and they appear to be consistent.
I'm using SP 1.3.1 and the following little DTD (am I doing _this_ the
correct way?)
<?IS10744 ArcBase HyTime>
<!notation HyTime system >
<!entity % HyTimeDTD
public 'ISO/IEC 10744:1997//DTD AFDR Meta-DTD
Hypermedia/Time-based Structuring Language (HyTime)//EN'>
<!attlist #notation HyTime
ArcFormA name #fixed HyTime
ArcDTD CDATA #fixed "%HyTimeDTD"
ArcDocF name #fixed HyDoc
ArcNamrA name #fixed HyNames
ArcBridF name #fixed HyBrid
ArcOptSA names #fixed "links"
links cdata #fixed "clink"
>
<!element sltest - - (title, p+)>
<!element title - - (#pcdata)>
<!element p - - (#pcdata | a)+>
<!element a - - (#pcdata)>
<!attlist a
HyTime name #fixed clink
linkend cdata #required
>
Thanks for any insights at all. I'll summarise multiple responses.
All the best,
Norman
--
---------------------------------------------------------------------------
Norman Gray http://www.astro.gla.ac.uk/users/norman/
![[Onward]](icon/next-1.png) |