[tei-council] DRAFT: Backward Compatibility and the Maintenance of the Text Encoding Initiative Guidelines
David J Birnbaum
djbpitt+tei at pitt.edu
Wed Aug 2 13:32:32 EDT 2006
Dear Council,
I append a draft discussion of backward compatibility and the
maintenance of the TEI. The proposal (section III) reflects my first
attempt at a semi-formal statement of when Council should or should not
feel licensed to break backward compatibility, which I tried to
construct as a compromise between taking advantage of new technologies
and maintaining the stability that users expect. Comments and
suggestions welcome, of course, with an eye toward discussing these
issues and agreeing on a final version at our next conference call.
Best,
David
djbpitt+xml at pitt.edu
________
DRAFT: Backward Compatibility and the Maintenance of the Text Encoding
Initiative Guidelines
David J. Birnbaum
djbpitt+tei at pitt.edu
Draft of 2006-08-02
I. Background
At the May 2006 TEI Council Meeting in Kyoto, Council expressed an
interest in elaborating principles for further development of the TEI
guidelines. In particular, Council expressed an interest in reconciling
two potentially conflicting principles:
1) As new technologies permit us to improve the ability of the TEI
guidelines to serve the research needs of users, those new capabilities
should be made available to users. The TEI should not eschew better ways
of doing things for fear of breaking backward compatibility.
2) Because breaking backward compatibility is unpopular with users, and
for good reason, the TEI should avoid doing so unless the benefits are
compelling.
Some Council members argued in Kyoto that our license to break backward
compatibility would be revoked once we signed off on P5; others felt
that Council (especially new Council members) would appreciate the
availability of guiding and stable principles that did not simply
prohibit breaking backward compatibility, but that indicated how and
when it should be permitted.
It should be noted that documents developed with a particular schema
remain valid against that schema in perpetuity, and in this sense no
change to the TEI Guidelines breaks backward compatibility. On the other
hand, a user may wish to integrate new, emerging features into an
existing project without rendering existing encoded information invalid,
and may need to produce a new schema for that purpose. It is in this
context that backward compatibility with existing features of the user's
original schema becomes particularly important.
Finally, the TEI currently seems to make no use of the concept of
deprecated features, although such a concept may provide a compromise
that allows the TEI to adopt new structures without invalidating old ones.
II. History
Relevant sources for determining a suitable policy include:
TEI PCP1. The Preparation of Text Encoding Guidelines. Closing Statement
of the Vassar Planning Conference. Version of 13 November 1987.
http://www.tei-c.org/Vault/SC/teipcp1.gml or
http://www.tei-c.org/Vault/SC/teipcp1.txt
TEI EDP1. Design Principles for Text Encoding Guidelines. Version of 9
January 1990. http://www.tei-c.org/Vault/ED/edp01.gml
TEI EDW57. Procedures for Correcting Errors in the TEI Guidelines.
Version of July 23, 1994 (Revised July 27, 1994).
http://www.tei-c.org/Vault/ED/edw57.htm
TEI EDW48. Procedures for Maintenance and Extension of the TEI
Guidelines. Version of 21 May 1995. http://www.tei-c.org/Vault/ED/edw48.htm
None of these documents prohibits breaking backward compatibility, but
TEI EDW57 distinguishes corrigible errors from those that are not
corrigibile according to (among other things) whether correction would
break backward compatibility. If not, the editors are empowered to
implement the necessary correction themselves. If so, the proposed
correction must be "referred to TC" ("Technical [Review] Committee,"
which would now be Council?) for action. The history would thus seem to
suggest an awareness that breaking backward compatibility might confer
sufficient benefit that it should not be prohibited, but it also should
not be undertaken without careful review.
III. Proposed Guidelines
A. Council should not be constrained by a policy that bluntly
prohibits breaking backward compatibility after the publication of
P5. Council should instead feel authorized to break backward
compatibility when Council concludes that the advantages of doing so
outweigh the disadvantages.
B. Wherever possible, Council should implement changes so that new
schemas are supersets of old ones, and do not render invalid any
documents that would have been valid before the implementation of
the changes. The addition of an element to a class creates such a
superset; removing an element from a class has the opposite effect.
C. In extreme situations, where Council concludes that the utility
of a component would be improved substantially by a revision that
could break backward compatibility, Council should:
1. Create the necessary new structure (class, content model,
etc.) under a new name.
2. Deprecate but retain the structure it is intended to replace.
a. Deprecated structures determined to be in wide use might
be maintained in perpetuity. Such a decision would reflect
Council's expert opinion that eliminating them would be too
disruptive to existing projects to be entertained, but
employing them in new projects would not conform to best
practice.
b. Deprecated structures determined not to be in wide use
might eventually (as discussed immediately below) be removed
from the Guidelines.
3. Council may break backward compatibility in a more
substantial and comprehensive way (as happened with the
transition to P4 to P5) only with the transition to a new major
version (e.g., P6, but not P5.99999). Such transitions should
happen only in response to the emergence of new technologies
(e.g., the transition from SGML to XML) or the development of a
new architecture that conveys substantial benefit (e.g., the
development of the new class system). Historically, new major
versions have emerged approximately every five years.
More information about the tei-council
mailing list