[tei-council] P5 source, modifying class atts at the base level.

James Cummings James.Cummings at oucs.ox.ac.uk
Fri Sep 30 06:20:41 EDT 2011

On 30/09/11 10:42, Lou Burnard wrote:
> But fwiw, I think supplying valLists in the P5 source is, in general, a
> bad idea. That is something which projects should be encouraged to do
> for themselves in their own ODDs. The Guidelines should (in general)
> specify a datatype, and may (sometimes) provide a list of suggested
> values in order to indicate the intended semantics of the attribute, but
> the TEI per se is not in the business of enumerating all possible
> attribute value lists.

I agree that providing _closed_ valLists in the TEI Guidelines is 
generally a bad idea (unless there really is only a fixed list of values 
and then datatypes are better). I think providing suggested values is a 
good idea where applicable, to encourage standardization on these 
values. However I think it is a failure of our processing to have to 
define an element locally, not as part of a class, to give those 
suggested values on one particular element. (e.g. @type on list). 
However it isn't just @type this happens with, it happens with all sorts 
of attributes.

> There is a case for being able to specify a different set of suggested
> values on some member of a class than that it would otherwise inherit.
> This typically arises where the inherited attribute is too vague in its
> semantics (@type being a notable offender here, which is one reason I
> dislike its use as a panacea) and at present the appropriate syntactic
> mechanism for resolving it is to redefine the attribute locally.

But we don't 'redefine' the attribute locally we 're-define' it, if you 
take my implied emphasis. That is we create an entirely new attribute 
with the same name as the one in the class rather than giving the 
existing attribute in the class a new definition.  The @type from 
att.typed and the list/@type are completed different entities with 
nothing semantically or syntactically linking them.  I feel it would be 
_much_ more powerful and more consistent with the aims of the TEI class 
system if we were able to say that there is this general @type attribute 
of which the instantiation on the list element has a new list of 
suggested values.

> We could certainly consider adding some other syntactic mechanism to
> achieve the same goal, as you suggest, by using mode="change". But I
> think that somewhat confuses the issue. Either this attribute is a
> member of the class or it isn't. If it is, then changing it anywhere
> affects all instances equally: that's what being a member of a class
> means. Or it isn't, in which case we cannot be "changing" it here, but
> rather adding a different one which happens to have the same name
> (that's the current way of doing it).

I see what you are saying, but disagree that changing an element's use 
of a class changes it anywhere. This certainly isn't how the current 
processing works.  The climate element is a member of att.typed, but if 
in my project ODD I want to modify this to delete @subtype and provide a 
new list of suggested values I do this in the elementSpec for climate 
with a mode="change". If I do so it does not change it for eLeaf (which 
is also a member of att.typed). You might view this as adding a new one 
with the same name, but to me it seems that this preserves the semantic 
heritage of where this attribute came from rather than re-creating it 
from scratch.

> If we're really dissatisfied with the status quo, I'd say a different
> value for @mode ("override"?) would be much clearer. But I'm still
> unconvinced.

I'm not sure why changing it in a project ODD is 'change' but changing 
it in the source itself is 'override'? Other than this being the base UR 
text of the TEI, how is it a different action?

I'm happy to be corrected in my misunderstandings. I just want to get 
rid of the duplication of locally-defined attributes as much as is 
humanly possible. I was there for the Class War and am convinced that 
the TEI class system is the one true way. :-)


Dr James Cummings, InfoDev
Oxford University Computing Services
University of Oxford

More information about the tei-council mailing list