I'm sorry, but I think I've read this pretty carefully, and I just
don't see the problem. Perhaps we should sit down and talk. Will
you be in my neck of the woods (NE USA) anytime soon? At EML in
> I will be using the following terms:
> a speaker's complete utterance, possibly interrupted by
> an inquit-formula ('...,' he/she said, '...'), possibly
> extending across several paragraphs or text divisions
> Span (of speech):
> anything that appears between opening and closing
> quotation MARKS ('...'); thus, not necessarily a complete
> speech; belongs to the TEXTUAL level
> Fragment (of speech):
> anything that appears between opening and closing
> quotation TAGS (<q> ... </q>); belongs to the TEI level
Slightly different than my nomenclature, but that's OK. I'm going to
assume that by "span" you don't mean things other than speech that
might appear between quotation marks (e.g., so called "scare"
quotes). That said, except in those texts that use quotation marks
inconsistently to delineate quotations or in the case of an error
(quotation mark missing or put in wrong place), I don't see the real
difference between your "span" and your "fragment" -- isn't the
latter just the encoded version of the former? That is, if we use Q
tags to indicate speech, they will end up delineating the spans, no?
<q>Hark!</q> he said, <q>my duck waddeleth over.</q>
> The text, of course, has passages of direct speech, quite often
> extending across several verses (ie divisions). Due to the
> necessity to properly nest tags, quotations [i.e., aggregate Q
> elements] have frequently to be fragmented.
Righto. Standard overlapping elements problem.
> Now, and this is the important bit, direct speech is NOT MARKED in
> the text itself.
Don't mean to sound indifferent, but other than the fact that it
might make it difficult to decide exactly where quotes begin and
end, doesn't seem important to me at all.
But if you define "span" as "stuff between quotation marks", and you
don't have any quotation marks ...
> Nevertheless, we want to encode direct speech, using, if possible,
> the Q-tag.
Good idea, IMHO.
> We do not want to editorially insert quotation marks at this stage
> (in the TEI file) - thus keeping content and style apart.
And you never should (want to insert quotation marks into the TEI file).
> To be able to insert the quotation marks at the right places, these
> places (beginning of quote, end of quote, and possibly continuation
> of quote in between) have to be identifiable, of course.
OK, I'm with you, I think.
> I'm looking for a straightforward, and simple, way to do this, join
> the fragments of a "span" of quotation, and mark beginning, middle,
> and end of it.
> Possible solutions, and problems with them:
> Solution 1
> Only link the fragments of a SPAN, not all the pieces of a whole
> SPEECH, using prev/next for instance. (Thus leave different spans,
> which make up a speech, unlinked.)
I'm sorry, you lost me. I thought that a finite number of spans made
up a speech; I didn't realize spans themselves were fragmented. Even
so, why would it be a problem to link all the spans and, if needed,
fragments thereof, that make up a speech?
> Problem ... beginning, middle and end of a span cannot easily
> be identified, using linking. The beginning *could* be
> identified by the fact, that only next= appears as linking
> attribute, a middle part has both next= and prev= attributes,
> the end only a prev= attribute. This is very complicated, not
> straightforward, unelegant.
Perhaps I see the world in a skewed way, but it seems relatively
straightforward, and not particularly complicated to me. I'll agree
with inelegant, but aren't all overlapping element solutions
> The main issue here is STRUCTURE. Linking is not about structure.
> Although it may be used to convey structure, it does so in a
> indirect and rather inefficient way.
Although this may be true, most all solutions (save CONCUR) to
overlapping elements are going to involve linking somehow. (JOIN is
basically syntactic sugar for a LINK type="join", and part= merely
provides part of the functionality of next= and prev= in an
> It just doesn't seem to be the right tool for the task.
I can't suggest a better one, at least not at this time of night.
> Solution 2
> Replace Q with SEG TYPE="quote-span".
Bad idea. Not technically tag abuse, but perhaps "tag assault" w/o actually
> 3. Modify the DTD by adding a part= attribute to the Q [element]
Such a good idea we did exactly this at the WWP. (We also added part=
> - allows you to stick to the Q-tag;
> - tackles the problem where it arises;
> - links the span-fragments AND identifies beginning etc. of a quotation
> in a straightforward manner;
As would next= and prev=. But part= is easier to actually encode.
> - allows you to distinguish fragments from spans [and thus spans from
> speeches, depending on the point of view], if you ever need to
> link both separately, for different purposes.
I still don't understand this.
> - Interference with other elements, attributes ???
Major problem, especially if you plan to use the direct= attribute of
Q. One of the few true design errors of SGML is that a given declared
value token (e.g., "Y") cannot occur more than once for a given GI,
even for different attributes[3,4]. E.g., not only can't you have
<!ATTLIST auto color ("black","red","black","blue") #IMPLIED>
but you can't have
internal-color ("grey","black","brown") #REQUIRED
external-color ("red","blue","black") #REQUIRED >
The part= attribute of DIV, DIVn, L, LG, LGn, and SEG uses as its
values "I", "M", "F", "Y", and "N". The direct= attribute of Q uses
as its values "Y", "N", and "unspecified". Thus you can't add part=
to Q (at least not with the familiar values) unless you either remove
the direct= attribute or at least change its declared values. We (the
WWP) did the former -- we don't use the direct= attribute anyway. The
TEI as a whole should do the latter -- the declared value of the
direct= attribute of Q should be "yes", "no", and "unspecified".
> - I've only got a very vague idea how to modify the DTD. ...
I'm sure many of us on this list would be happy to help you with these
details, but I'm too tired right now.
> (And let's assume I want to use TEI Lite.)
You cannot do both. TEI Lite is not modifiable. See my posting of
2000-10-21 to TEI-TECH for more details than you probably want.
> - TEI does not distinguish between fragments (of quotation-
> spans), which belong to the TEI level, as they are TEI-induced,
> and quotation-spans (of a speech), brought about by
> inquit-formulae interrupting the speech, which belong to the
> textual level.
> a part= attribute for the Q-element would be very helpful on a much
> larger scale (not just for some obscure Welsh text from the 16th
I still don't understand the complaint, but I like the proposed solution
> Quotation marks are a big problem in terms of text-interchange, as
> they are indistinguishable from apostrophes
They don't seem like a big problem to me, probably because I consider
apostrophes as characters in the text, and quotation marks as mere
renditional indicators of structure in the text, much like boldface
or italics or centered.
> There are different approaches ...
> 1. Mark up the quotation with the Q-tag and keep the quotation
> marks as they are.
I'm not entirely sure what this means (most keyboards can't enter
quotation marks as they are, and most SGML processing systems I
know of barf on all but typewriter-straight quotation marks, which
you normally wouldn't want in your document), but, like you, I don't
like it anyway.
> 2. Use the Q-tag and replace the quotation marks with their entity
> names (ldquo etc.)
I disagree with most your reasons (see below), but agree that this is
not at all the way to go. Almost as bad as #1, above.
> Problem is: entity characters are risky (typos),
My initial reaction is to say "no they're not -- typos are caught by
validation". However, it is true that the "s" and "d" of
are quite close to each other on the qwerty keyboard.
> or at least cumbersome.
In many cases it shouldn't be hard to use some feature of your editor to
make this easy. One could also use some local shorthand (like @" for
“ and \" for ”) during capture and globally change it later.
> 3. Just use the Q-tag and omit the quotation marks altogether
> (thus, let the Q-tag do the job on its own). This is basically the
> most appealing solution.
> Problem: ... you may wish to re-insert the quotation marks at a
> later stage, and for the reasons given above you can't do this in a
> straightforward manner or in a way which guarantees that you end up
> with the right quotation marks at the right places.
Unless you count the close-quotation-mark-after-punctuation problem,
it should be trivial. Even with that problem, I'd leave it to the
formatting software to solve it. (I'm presuming that by "insert later"
you mean "have printed or displayed on the formatted output".)
> Because the Q-element has no part-attribute.
How would a part= attibute on Q help?
> ... a part= attribute for the Q-element would come in handy. It
> would make the Q-element a lot more powerful than it is now, and
> could help to separate content from style. Quotation marks could
> safely be omitted.
While I concur with the conclusion, I disagree with each of your
* I don't think part= adds any power over next= and prev=, only
* I don't see how it helps separate content from style;
* quotation marks already can, and should, be omitted.
> This argument could be taken further: It may seem desirable to
> equip all TEI-elements that are likely to be fragmented on the
> TEI-level with part=
Here here! Great idea.
> The Q-element poses another problem: quotes within quotes (within
> quotes [within quotes]).
> Although TEI allows to nest quotations within quotations, it does
> not offer a straightforward way to make the hierarchy of these
> quotations explicit if you want to.
Sorry, again I simply disagree. Quotes nested as deeply as you like
generally pose no problem at all. I find the hierarchy of
<q>I thought he said <q>duck</q>, but ...</q>
as explicit as I need it to be.
> (If you think about what will happen when you try to re-insert
> quotation marks previously omitted or not present in the first
> place, you'll see the problem.)
Nope. I don't see a problem writing software that surrounds the
content of nested Q elements with the appropriate (single or double,
left- or right-) quotation marks at all. (Doesn't mean it's easy, but
it is certainly doable; I've done it at least twice.)
> I, personally, would welcome the possibility to "hierarchize"
> quotation-elements. Say, alongside Q, I'd like to have Q2, Q3, Q4
> as well (with Q doubling, if possible, as both an un-numbered
> Q-division, nestable within itself, and as a first-level quotation
> - a virtual Q1 - for subsequent q2, q3, q4; but this is a different
A very interesting suggestion. While it's obvious (at least to me)
that this doesn't help the computer processing of texts at all, if
one of the things you're most interested in doing is analyzing quoted
speech, this might help you conceptualize doing so, and might make
life easier for your actual capture if you have a lot of nested
quotes. On the other hand, I don't think DIVn and LGn are really
useful unless being used as syntactic bitter herbs for CHAPTER,
SECTION, POEM, etc. Since there's not really any corresponding
element to which you'd want Q2 to correspond, I'm not sure it's any
 It's where to put that period (before or after the Q end-tag)
that can be the real hassle, which occupied almost an hour of
debate yesterday at the WWP, but since you didn't mention that
problem I'll ignore it for now.
 Change was made to DTD on 1998-11-06.
 "A token cannot occur more than once in an _attribute
definition list_, even in different groups". ISO 8879, 11.3.3.
See Goldfarb, p. 424.
 In these days of XML it seems like a lot of folks like taking
swings at a lot of SGML. For the most part, I think SGML was
exceptionally well designed. Given what the creators were working
with at the time, a lot of what we might laugh at today made a
lot of sense. This is an exception to that rule. If I understand
correctly, this restriction is placed in order to allow the
minimization of not entering the attribute name (and VI) in an
instance, but merely the value -- if values are unique to an
element, just specifying the value implies the name. Although
this was a laudible goal, it should not have taken more than a
moment's thought to realize the enormous disadvantage of this
restriction, and the ease of removing it. SGML could have
permitted multiple occurences of a given token in different
groups in an attribute definition list just by restricting the
attribute names SHORTTAG minimization to those cases where it is
 There is a third solution -- use XML and only use parsers that
don't mind. The XML specification has the same restriction, but
has it "for interoperability", which means it is non-binding.
 Available on the page found by surfing over to
http://listserv.brown.edu/archives/tei-tech.html and following
the "October 2000" link. It's possible that the server won't let
you in w/o a password; you may need to be a tei-tech subscriber.
If so and you're interested in reading it let me know -- I can
send you a copy or post parts here.
 At the WWP when an encoder types "@l" the string "“"
appears in their emacs buffer; "@r" results in "”". We use
"@" because, as far as I know, that character does not occur in
any pre-Victorian texts.