#226 att.global should be explicit in TEI ODD Specs

AMBER
closed-accepted
5
2011-02-26
2010-04-30
James Cummings
No

Currently all TEI <elementSpec>s defining TEI elements in our own ODD automagically get <memberOf key="att.global"/> when processed. I think to be explicit and also help in importing individual elementSpecs into other ODDs we should actually put this in the <elementSpec>s rather than having them applied by magic when processing. It seems bad practice to have this rely on magic rather than have att.global explicitly defined in each of the ODD file specs that we use.

Discussion

  • Lou Burnard
    Lou Burnard
    2010-07-06

    What about new user-defined elements? should they get att.global by default or not?

     
  • Lou Burnard
    Lou Burnard
    2010-07-06

    • milestone: --> AMBER
     
  • James Cummings
    James Cummings
    2010-07-06

    It is more that the existing specs don't specify att.global and just get it miraculously that bothers me.

    If they have to specify it then any new element wanting it would also have to specify it.

    (conversely if you *DIDN'T* want it on your new element you would just NOT specify it as opposed to deleting it.)

    I think that makes sense generally and would be clearer overall. I'd ask @rahtz about how it affects ODD processing though.
    -James

     
  • Lou Burnard
    Lou Burnard
    2010-09-14

    My view is that if the root element of your schema is in the TEI namespace, then ipso facto your schema should include the TEI global attributes. You can of course modify or delete them, but you should not need to declare them, any more than you need to declare the TEI classes once you have included the tei module in your schema. If you declare a new element in your own namespace, however, it won't get the TEi global attributes unless you ask for them.

     
  • Laurent Romary
    Laurent Romary
    2010-09-14

    Lou. That's not the point at all. If I have understood James correctly, I just fully agree with him: +any+ element specified in the TEI guidelines should +explicitly+ say that it belongs to att.global, and this should not be a side effect of being a TEI element. This goes in the direction of having less and less magic in the TEI architecture.

     
  • James Cummings
    James Cummings
    2010-09-14

    Lou: What about ODDs written to provide non-TEI specifications (like MEI) ... They shouldn't magically be getting att.global should they?

    Laurent: Yes, that is what I meant. I'm against having anything supernatural in the TEI. :-) Down with magic, up with explicit declarations.

    -James

     
  • sorry, I forgot to note that there are arguments in favour of fixed global
    attributes (any TEI encoder can always be sure they can add @id and @lang); but in that case we must retract the ability to remove them
    (which can easily be done at present). Stopping them being removed
    requires even more magic juju in the processing. At present they
    are magic but also vulnerable.

    the alternative is to add a boolean attribute @changeable to *Spec,
    so that the magic is more explicit and traceable.

     
  • As requested by TEI Council, James Cummings and I met to discuss this ticket. We concluded that the advantages of a special global attribute class are outweighed by the considerable decrease in special-casing in ODD-processing, and ambiguity about when att.global applies. Increased transparency will pay off in the long term, though we think we need to investigate the effect on some existing ODDs. We recommend that the Council endorse the proposal.

     
    • assigned_to: nobody --> rahtz
     
    • status: open --> closed-accepted
     
  • as of 1.9.0, this is now done