Print

Print


In-reply-to:  Greg MacGowan's of Tue 1996-09-10 14:32Z
              Patrick Durusau's of Mon 1996-09-09 14:41Z
 
Despite reading Mr. Durusau's posting twice, I am still not sure that he
is trying to encode an already existing print journal, as opposed to
developing a scheme to create an electronic journal that will be
printed. The following presumes the former.
 
pd> ... [in] bibliographies ... for entries where the author is
pd> implied by the graphic layout ... For example:
pd>
pd> Foobar, Edward. Funny Things in the Park. Cambridge, Alice's Press. 1995.
pd>
pd>                 More Things in the Park. Cambridge, Rabbit's Press. 1996.
 
My three favorite solutions to this problem, in order of preference,
follow. In searching for a proper answer I came to an astounding
discovery of what is probably a gross oversight in TEI: The AUTHOR
element does not have a key= (or reg=) attribute.[1] Note that the
first of the three proposed solutions requires this oversight be
remedied first.[2]
 
Note that the following examples presume default values for the rend=
attribute of each sub-element have already been established[3].
 
solution the first
-------- --- -----
Not valid without changes[2] to TEI Lite DTD.
 
  <bibl>
    <author key=EFoobar.inh>Foobar, Edward</author>
    <title>Funny Things in the Park</title>
    <pubPlace>Cambridge</pubplace>
    <publisher>Alice's Press</publisher>
    <date value='1995'>1995</date>
    </bibl>
  <bibl>
    <author key=EFoobar.inh></author>
    <title>More Things in the Park</title>
    <pubplace>Cambridge</pubplace>
    <publisher>Rabbit's Press</publisher>
    <date value='1996'>1996</date>
    </bibl>
 
Here the author as written in the original is indicated by the content
of AUTHOR. The person who wrote the "Park" series is indicated by the
database entry in an appropriate database with the given key. Searches
should normally use the key, not a name. (I.e., if the user gives you a
name, look through your database to find the right person(s), check w/
the user, then use those keys to search.) This also makes up for cases
when the printed journal has typos in the author's name (thus obviating
the need for SIC or CORR; although if you don't put in the SIC or CORR,
users may forever be reporting the typo to you as if it were your's, not
the original's).
 
The second AUTHOR element could also have been:
    <author key=EFoobar.inh>              </author>
 
solution the second
-------- --- ------
  <bibl>
    <author>Foobar, Edward</author>
    ...
    </bibl>
  <bibl>
    <author rend='present(no)'>Foobar, Edward</author>
    ...
    </bibl>
 
Here the rendition keyword "present" indicates whether the content
was present in the original. The default is "yes". This is similar
to Mr. Durusau's "rend=implied", but follows the syntax of the WWP
rendition ladder system, and uses a keyword that is not so easily
confused with the #IMPLIED of SGML.
 
solution the third
-------- --- -----
  <bibl>
    <author>Foobar, Edward</author>
    ...
    </bibl>
  <bibl>
    <author><abbr expan="Foobar, Edward"></abbr></author>
    ...
    </bibl>
 
This solution works particularly well when rather than just leaving
white space to indicate "same as previous", the source text has the
word "ditto" or an em dash or two.
 
And of course, that second AUTHOR element could also have been:
    <author><abbr expan="Foobar, Edward">              </abbr></author>
 
solution the combination
-------- --- -----------
Of course it would be possible, and perhaps desirable, to add
a key= attribute to AUTHOR even if using the second or third
solution.
 
gm> the best possible solution is to include the author's name in the
gm> <bibl> as text.
I guess this is "solution the zero", for, depending on the stated
goals and objectives of the project, I sort of agree. One could
simply encode the author's name everywhere it goes, and expect the
output driver to be smart enough to suppress the output of AUTHOR if
it was the same as the preceding AUTHOR. This can be done with
DynaText style sheets, I am told.
 
gm> It simply makes no sense to have an <author> tag with no PCDATA.
While I do not think it makes no sense to have an AUTHOR element with
no content, it does make a lot more sense if there is a key= attribute.
 
 
Notes
-----
[1] This is because AUTHOR, along with EDITOR and PUBLISHER, has
    not been added to the attribute class 'names'.
[2] I'm not really sure how one goes about altering TEI Lite, since
    the header comment to teilite.dtd says it is copyrighted and "may
    not be altered; modifications to these DTDs should be performed
    as specified in the Guidelines in chapter 'Modifying the TEI
    DTD.'". However, the DTD is not subject to the same kind of
    modifications as the normal TEI DTD, because it does not use the
    same parameter entity mechanism (i.e., many entities and marked
    sections have already been resolved). So, if you are a "damn the
    law, I'll modify it anyway" type, you would add the string
         key CDATA #IMPLIED
         reg CDATA #IMPLIED
    to the ATTLIST declaration for AUTHOR. If you decide to upgrade
    to the full TEI DTD, you would want to do the following in your
    local extensions entity file:
    *   Change %author; (and perhaps %editor; and %publisher;, too)
        from INCLUDE to IGNORE.
    And add the following to your local extensions DTD file:
        <!ELEMENT %n.author;    - o  (%phrase.seq)                      >
        <!ATTLIST %n.author;         %a.global;
                                     %a.names;
                  TEIform            CDATA               'author'       >
    (and perhaps the same with %n.editor; and %n.publisher;, too.)
[3] Specifically, using the yet-to-be-published-but-I-promise-
    to-do-so-soon WWP rendition ladder syntax, in the TAGSDECL of
    the TEIHEADER:
    <tagsDecl>
        <rendition id=rend.bibl>
            bequeath ( post(. ) )               ( author publisher )
            bequeath ( post(. ) slant(italic) ) ( title )
            bequeath ( post(, ) )               ( pubplace )
            bequeath ( post(.) )                ( date )
        </rendition>
        <tagUsage gi=abbr>
        <tagUsage gi=add>
        ...
        <tagUsage gi=bibl render=rend.bibl>
        ...
        <tagUsage gi=xref>
    Yes, this system when used with the above examples would end up
    incorrectly implying that a lone period had preceded the title
    "More Things in the Park" (or, more correctly, followed the
    non-existent author).