[tei-council] TARGET/s and IDREFS attributes

Lou Burnard lou.burnard at computing-services.oxford.ac.uk
Sun Jan 23 11:22:31 EST 2005


Syd Bauman wrote:

>>I wondered about that.It seems very confusing to have the same name
>>sometimes mean one thing, sometimes several things, and sometimes
>>several things which are to be treated as one thing. Don't you
>>think it might be worth trying to rationalize them? (the old
>>target/targets was a half hearted step in that direction)
> 
> 
> Yes, I think it is a worthy endeavor. The problem is, if my
> recollection serves, that what we need are three categories:
> 
> * only 1 URI           currently target= of gloss, term, specGrpRef,
>                        and tei.formPointers
> * 1 or more URIs       currently target= of catRef, note, ptr, ref
> * at least 2 URIs      currently targets= of alt, join, link
> 
> Worth toying around with what other names we might use.
> 
> 

There's another distinction: when the target is 2 or more URIs, 
sometimes (as in link,join) the semantics of the element make clear 
whether or not resolution of the link should produce a single item; 
other times (as in note, ptr) it is not clear at all.
In P4 (and I see it has survived unchanged in your revision for P5) 
there is an example like this for a table of contents
<ptr target="p213 p245"/> How does one decide whether this means "pages 
213-245" or "pages 213 and 245"? Most of the examples in CO and 
elsewhere suggest that the latter is the more likely intention; yet 
there is an explicit statement in SA to the contrary! ("when the target 
attribute specifies more than one element, the indicated elements are 
intended to be combined or aggregated in some way..."). Well,  I haven't 
checked all the examples where URIlists have been used but I'll bet most 
of them will fall foul of this usage rule.

I suggest the following:

1. target should *always* be a single URI
2. targets should *always* be a URIlist
3. Current cases where target takes a list of URIs should all be checked 
and fixed as follows:
-- if the URIlist components are discrete (i.e. not to be aggregated), 
they should be represented by multiple <ptr>s
-- if the said components *are* to be aggregated, this should be done by 
means of an intermediate <join>. So

<ptr target="#a #b"/> (discrete) becomes <ptr target="#a"/><ptr 
target="#b"/> (could be grouped into a <ptrGroup> if you like, or in 
some cases follow the suggestion for <catRef> below)

<ptr target="#a #b"/> (indiscrete) becomes
   <ptr target="#ab"/> <join xml:id="ab" targets="#a #b"/>

Mutatis mutandis, I think this applies also to <note>.

<catRefs> should probably be changed so that it has <ptr>+ content; this 
  might also be a sensible pattern for other things like the 
IDREFS-valued attributes in FS chapter to follow, except that I think 
that horse has already bolted.

Did the work group ever seriously consider getting rid of all IDREFS 
values and replacing them with child elements? It would be a pretty neat 
solution in most real-life cases I can think of.

I'm CCing this to the Council in case anyone there has an opinion.

Lou





More information about the tei-council mailing list