On Thu, 9 Mar 1995 13:34:10 CST Richard MacMillan said:
>We would like to handle this situation by nesting two <hom>
>elements within the <re> element. And the TEI "Guidelines" document
>text seems to imply that that would be ok. But the TEI DTD fragment
>appears to forbid nesting <hom> within <re>.
>--We wonder whether anyone else has come across the problem of a
> related-entry that contains several part-of-speech homographs, and
> found a palatable solution?
>--We wonder whether it is intentional that the Section 12.3.6 text says
> "may...include any of the information that can be found in a regular
> entry" but the DTD fragment forbids <hom> elements? Or is this a
> problem worth reporting? (And to whom?)
Last question first: this is indeed a problem worth reporting, and by
posting to TEI-L you have done so. There is definitely a mismatch
between the text and the DTD, and whether the problem is in one or in
the other, you've definitely found a bug, and earned the $1 reward
(oops, it's 1995, I think we're up to $2 this year), which will be
sent to you ... eventually, when the editors bring their affairs in
That is, it is definitely NOT intentional for the text to disagree with
the DTD. Which of the two is right and which gets fixed will have to be
referred to a work group charged with revising the dictionary chapter,
or with generic technical maintenance; I can imagine arguments each way.
Possible workarounds in the meantime:
1 tag the related entry for 'adhesive' as <entry type="re">
-- or, to make clear why you're not tagging it as <re>, as
2 modify the declaration for 're' using the methods described in
chapter 29 "Modifying the TEI DTD" and summarized below.
The first is probably the simplest. If you want to use workaround 2, do
the following, or the equivalent:
1 in a file called mymods.ent, include the line
<!ENTITY % re 'IGNORE' >
This tells the SGML parser to ignore the standard declaration for
the element RE, thus allowing you to redefine it.
2 In a file called mymods.dtd, include the following replacement
declarations for RE:
<!ELEMENT %n.re; - O (%n.sense; | %m.dictionaryTopLevel
| %n.hom | %m.phrase | #PCDATA)*
<!ATTLIST %n.re; %a.global;
type CDATA #IMPLIED
TEIform CDATA 're' >
This is identical to the standard declaration (from which I cut and
pasted it) except that it allows HOM within RE.
3 Tell the SGML parser to include the two modification files, by
including the appropriate declarations for TEI.extensions.ent and
TEI.extensions.dtd in your document-type-declaration subset. If you
are using just the base tag set for dictionaries, with no additional
tag sets, your document type declaration might look something like
<!DOCTYPE tei.2 SYSTEM 'tei2.dtd' [
<!ENTITY % TEI.dictionaries 'INCLUDE' >
<!ENTITY % TEI.extensions.ent SYSTEM 'mymods.ent' >
<!ENTITY % TEI.extensions.dtd SYSTEM 'mymods.dtd' >
This causes the parser to embed the two MYMODS files at opportune
moments during the parsing of the DTD.
Note: the file names (mymods.ent and mymods.dtd) are up to you; it's a
useful convention to use the extensions .ent and .dtd, but it's not
required. For TEI conformance, however, it IS required that you
encapsulate your changes into files separate from the TEI base files;
this helps ensure that you can use later updated versions of the DTD
with less trouble, aids maintenance and trouble-shooting generally, and
provides clear documentation of exactly what modifications you have made
to the standard DTD.
I hope this helps.
-C. M. Sperberg-McQueen
ACH / ACL / ALLC Text Encoding Initiative
University of Illinois at Chicago
[log in to unmask] / u35395@uicvm
"Clarity, Precision and Ease of use does not mean Confinement, Verbosity
and Futility." -Jean Pierre Gaspart