Notes from TEI Meeting on Element Classes

This was a meeting of the subset of the TEI Council charged by the complete Council to examine and improve the TEI class system.

The meeting was held at the University Club at Oxford University. Thanks are extended to the members from Oxford (LB, JC, SR) for their efforts in organizing the meeting, and to SR for providing home-grown apples.

Meeting started with SB, LB, JC, SR, JW, CW at 09-26 09:25; LR arrived at 12:04; broke at ~17:00; continued 09-27 starting at 09:04; ended at 16:57. A subset (SB, JC, SR, CW) met the following morning (09-28) from 09:30 to 12:25 and worked on developing the guidelines for naming model classes.

Preliminaries

CW chaired the meeting; notes of decisions taken were recorded by SB, LB, and JC. This document is based upon SB's notes with some additions from JC's, revised by LB.

First, the agenda was reviewed, and printed copies of ED W 84 were handed out. It was quickly realized that the current ED W 84 was insufficient for our purposes, so SR updated it so that part 1 also included a column for the class membership of each element. This new version was placed on the TEI website, and projected for the group.

LB provided a quick overview of how classes work, defining attribute, model, and content classes as (respectively) elements which share a set of attributes, which occur in the same places in content models, and which share the same content model.

General Decisions.

We began by reviewing several general questions circulated before the meeting.

We discussed whether or not we wanted another kind of class in order to group elements that share a content model ("content classes"), or for syntactic sugar issues. The following example was used to help anchor this question:

+ If we had a model class X w/ members A and B. + A is a member of X, has content D* + thus there exists a content class DSTAR of which A is a member + DSTAR has members A and others + Now I want to change A so that it has E also: E|D* + have I removed A from DSTAR, or have I changed DSTAR?We also considered whether it was helpful to divide classes into semantic and structural classes, noting that all current semantic classes are required to be subclasses of structural ones -- a semantic class such as tei.edit cannot combine elements which are members of different structural classes (say tei.phrase and tei.chunk). We decided that, at least for now, we would consider only attribute and model classes, although recognizing the potential usefulness of the content class concept.

A constraint element as a child of

elementSpec might be needed to do this, rather than (as at present) including them in the general

remarks element. It might also contain Schematron code.

We discussed putting note into tei.Incl but decided not to, based on argument that

notes; would need to fix lots of content models)

anchor, and anchor is already a member of

tei.incl

It was noted that the last argument implies a need for specific recommendations on how the anchoring element and the note should be linked (e.g., what the value of type should be).

Participants were reminded that mixing leaf and non-leaf nodes in a single class is generally frowned upon.

We agreed to the rule that if S is a sub-class of C and element E is a member of S then it cannot also be a member of C.

Specific Decisions on Classes

In going through the element list, the following specific changes and recommendations were agreed upon.

address content model accordingly: ( tei.Incl*, ( tei.addrPart, tei.Incl* )+ )

editor, and respStmt, so that threesome can be factored out of various places ( tei.biblPart, analytic, monogr ×3, titleStmt)

date, dateRange): this new class should be a subclass of tei.biblPart. Content model of bibl should reference only tei.biblPart. See email discussion of 1 oct 05

bibl[Struct|Item|Full], many if not all references to bibl should be to new class. — but tei.bibl already does this.

quote, and is referred to instead of q | quote in content of

cit: cit.content = ( tei.citable | tei.bibl | tei.loc | tei.Incl )+

damage, del, orig, reg, restore,

sic, supplied, and unclear.

tei.edit

resp

gap, join, joinGrp, kinesic, relation,

respons, and restore)

tei.biblPart and make the content model of bibl reference tei.imprint

term within index; add sortKey to term. (yes, this gives target and cRef to the term in an index) (no, we don't know where the gloss that the target points to goes).

tei.naming), and change content of respStmt accordingly: ( ( tei.agent, resp ) | ( resp, tei.agent ) ), ( tei.agent | resp )*

tei.bibl )

body content model into macros (and consider ways of abolishing numbered divs)

respStmt to required who, which points to a

person or personGrp, [schematron rule ... pending work on prosopography]

recording to use it: p+ | tei.recording+

tei.teiText classes

Specific Decisions in Related Areas

In going through each element in the core, textstructure, and header modules looking for improvements in the class system, we came across quite a few other areas where changes are needed.

macro.phraseSeq instead of macro.paraContent.

tei.text wherever it occurs. Only exception noticed so far is

binaryObject but there may be others.

LR investigate merging label and lbl.

SR fix stylesheet so that namespace isn't lost from xml:id and xml:lang in examples

eds. & SR sort out getting g into all references to text; i.e., make new class tei.text with only one member, g, new macro macro.text which is ( text | tei.text)*.

On Naming

We had time to discuss the major structural names, listed below.

datatypes* tei.data.* attribute class* tei.att.* model class* tei.model.* macro* tei.macro.* module* tei..*

We agreed that both the actual name and the corresponding filename should be in camelCase. We did not resolve whether or not the tei. prefix would be included in filenames or not.

Several members (SB, JC, SR, and CW) met at OUCS 2005-09-28 from ~09:30 to 11:57 and continued the naming discussion. The results of this meeting have been incorporated into ED W 87, thanks to SR.

Further Work

We agreed that work was needed in the following areas, but could not be taken up at the current meeting.