TEI XSL Stylesheets

Draft Personography ODD


Contents

1 Introduction

This document is a draft for a new section of the Guidelines which will document the TEI approach to recording biographical data and define elements appropriate for this purpose. The approach taken is to build on the existing elements <person> (in the corpus module) and <persName> (in the module for names and dates). At the time of writing no decision has been taken about how the module in which this material should finally be included.

2 Model and attribute classes

The elements described here make use of the existing attribute classes att.datable, att.editLike and att.named and a number of existing model classes.

The datatype of the key attribute, which membership in att.named confers on an element, is data.key. For our purposes we redefine this as data.code, so that it may be used to supply any URI.

In addition we define the following new model classes:
Specification group 1
Class: att.named
(Members: )
Class: model.characteristics
model.assertable |= model.characteristics

model.characteristics = notAllowed
(Members: faith  langKnowledge  nationality  persTrait  sex  socecStatus  )
Class: model.state
model.assertable |= model.state

model.state = notAllowed
(Members: affiliation  education  floruit  occupation  persName  persState  relation  residence  )
Class: model.stateChange
model.assertable |= model.stateChange

model.stateChange = notAllowed
(Members: birth  death  persEvent  )
Class: model.assertable
model.assertable = notAllowed
(Members: model.characteristics  [faith  langKnowledge  nationality  persTrait  sex  socecStatus  ] model.state  [affiliation  education  floruit  occupation  persName  persState  relation  residence  ] model.stateChange  [birth  death  persEvent  ] )

3 New elements

With these classes in place, we define the following new elements:
Specification group 2
Element sex
sex = element sex { sex.content, sex.attributes }

sex.content = macro.phraseSeq

sex.attributes = att.datable.attributes, attribute value { data.sex }?

model.characteristics |= sex
Element faith
faith = element faith { faith.content, faith.attributes }

faith.content = macro.phraseSeq

faith.attributes = att.datable.attributes

model.characteristics |= faith
Element langKnowledge
langKnowledge =
   element langKnowledge { langKnowledge.content, langKnowledge.attributes }

langKnowledge.content = model.pLike | langKnown+

langKnowledge.attributes =
   att.datable.attributes,
   attribute tags { list { data.language+ } }?

model.characteristics |= langKnowledge
Element persTrait
persTrait = element persTrait { persTrait.content, persTrait.attributes }

persTrait.content = label?, model.dateLike?, model.pLike*

persTrait.attributes = att.datable.attributes

model.characteristics |= persTrait
Element floruit
floruit = element floruit { floruit.content, floruit.attributes }

floruit.content = macro.phraseSeq

floruit.attributes = att.datable.attributes

model.state |= floruit
Element persState
persState = element persState { persState.content, persState.attributes }

persState.content = label?, model.dateLike?, model.pLike*

persState.attributes = att.datable.attributes

model.state |= persState
Element persEvent
persEvent = element persEvent { persEvent.content, persEvent.attributes }

persEvent.content = label?, model.dateLike?, model.pLike*

persEvent.attributes = att.datable.attributes

model.stateChange |= persEvent
Element assert
assert = element assert { assert.content, assert.attributes }

assert.content = ( model.assertable ), ( model.noteLike | model.biblLike )*

assert.attributes = att.datable.attributes
Element assertGrp
assertGrp = element assertGrp { assertGrp.content, assertGrp.attributes }

assertGrp.content =
   ( assert | model.assertable )+, ( model.noteLike | model.biblLike )*

assertGrp.attributes = att.datable.attributes

4 Changed elements

The main changes we make are to remove attributes from <person> and to introduce our new classes.

Specification group 3
Element person
person = element person { person.content }

person.content = empty
Element socecStatus
socecStatus =
   element socecStatus { socecStatus.content, socecStatus.attributes }

socecStatus.content = empty

socecStatus.attributes = att.datable.attributes

model.characteristics |= socecStatus
Element nationality
nationality =
   element nationality { nationality.content, nationality.attributes }

nationality.content = empty

nationality.attributes = att.datable.attributes

model.characteristics |= nationality
Element persName
persName = element persName { persName.content, persName.attributes }

persName.content = empty

persName.attributes = att.datable.attributes

model.state |= persName
Element relation
relation = element relation { relation.content, relation.attributes }

relation.content = empty

relation.attributes = att.datable.attributes

model.state |= relation
Element occupation
occupation = element occupation { occupation.content, occupation.attributes }

occupation.content = empty

occupation.attributes = att.datable.attributes

model.state |= occupation
Element residence
residence = element residence { residence.content, residence.attributes }

residence.content = empty

residence.attributes = att.datable.attributes

model.state |= residence
Element affiliation
affiliation =
   element affiliation { affiliation.content, affiliation.attributes }

affiliation.content = empty

affiliation.attributes = att.datable.attributes

model.state |= affiliation
Element education
education = element education { education.content, education.attributes }

education.content = empty

education.attributes = att.datable.attributes

model.state |= education
Element birth
birth = element birth { birth.content, birth.attributes }

birth.content = empty

birth.attributes = att.datable.attributes

model.stateChange |= birth
Element death
death = element death { death.content, death.attributes }

death.content = empty

death.attributes = att.datable.attributes

model.stateChange |= death
Element date
date = element date { date.content, date.attributes }

date.content = empty

date.attributes = att.datable.attributes
Element listPerson
listPerson = element listPerson { listPerson.content }

listPerson.content = empty
Class: att.datable
att.datable.attributes =
   att.datable.attribute.date,
   att.datable.attribute.from,
   att.datable.attribute.to

att.datable.attribute.date = attribute date { data.temporal }?

att.datable.attribute.from =
   attribute from
   {
      xsd:date
    | xsd:gYear
    | xsd:gMonth
    | xsd:gDay
    | xsd:gYearMonth
    | xsd:gMonthDay
    | xsd:time
    | xsd:dateTime
   }?

att.datable.attribute.to =
   attribute to
   {
      xsd:date
    | xsd:gYear
    | xsd:gMonth
    | xsd:gDay
    | xsd:gYearMonth
    | xsd:gMonthDay
    | xsd:time
    | xsd:dateTime
   }?
(Members: affiliation  assert  assertGrp  birth  date  death  education  faith  floruit  langKnowledge  langKnown  nationality  occupation  persEvent  persName  persState  persTrait  relation  residence  sex  socecStatus  )
Element langKnown
langKnown = element langKnown { langKnown.content, langKnown.attributes }

langKnown.content = macro.phraseSeq

langKnown.attributes =
   att.datable.attributes,
   attribute tag { data.language },
   attribute level { data.code }?

5 Removed elements

We also remove some elements.

Specification group 4
Element attDef
DELETED
Element attList
DELETED
Element attRef
DELETED
Element att
DELETED
Element classes
DELETED
Element classSpec
DELETED
Element code
DELETED
Element content
DELETED
Element defaultVal
DELETED
Element eg
DELETED
Element egXML
DELETED
Element elementSpec
DELETED
Element code
DELETED
Element exemplum
DELETED
Element firstLang
DELETED
Element gi
DELETED
Element listRef
DELETED
Element macroSpec
DELETED
Element memberOf
DELETED
Element moduleRef
DELETED
Element moduleSpec
DELETED
Element remarks
DELETED
Element schemaSpec
DELETED
Element specDesc
DELETED
Element specGrpRef
DELETED
Element specGrp
DELETED
Element specList
DELETED
Element stringVal
DELETED
Element tag
DELETED
Element valDesc
DELETED
Element valItem
DELETED
Element valList
DELETED
Element val
DELETED

6 Schema specification

This schema is available as:
« include 1 »
« include 2 »
« include 3 »
« include 4 »

<affiliation>

affiliation
Attributes: Global attributes and those inherited from [att.editLike att.datable att.naming ]
Classmodel.state att.editLike att.datable att.naming

<assert>

assertcontains an assertion, explicitly combining some unit of prosopographical information with some supporting annotation or reference
Attributes: Global attributes and those inherited from [att.datable att.editLike att.typed model.personPart ]
Classatt.datable att.editLike att.typed model.personPart
Declaration
element assert
{
   att.global.attributes,
   att.datable.attributes,
   ( ( model.assertable ), ( model.noteLike | model.biblLike )* )
}
Example
 <assert resp="SPQR">   <persName xml:lang="el-grc">Διοκλείους</persName>   <note>(gen.)</note>  </assert>

<assertGrp>

assertGrpA set of assertions, possibly supported by further annotation
Attributes: Global attributes and those inherited from [att.datable att.editLike att.typed model.personPart ]
Classatt.datable att.editLike att.typed model.personPart
Declaration
element assertGrp
{
   att.global.attributes,
   att.datable.attributes,
   ( ( assert | model.assertable )+, ( model.noteLike | model.biblLike )* )
}

<birth>

birth
Attributes: Global attributes and those inherited from [att.editLike att.datable att.naming ]
Classmodel.stateChange att.editLike att.datable att.naming

<date>

date
Attributes: Global attributes and those inherited from [model.dateLike att.editLike att.datable model.publicationStmtPart ]
Classmodel.dateLike att.editLike att.datable model.publicationStmtPart
Modulecore

<death>

death
Attributes: Global attributes and those inherited from [att.editLike att.datable att.naming ]
Classmodel.stateChange att.editLike att.datable att.naming

<education>

education
Attributes: Global attributes and those inherited from [att.editLike att.datable att.naming ]
Classmodel.state att.editLike att.datable att.naming

<faith>

faithspecifies the faith, religion, or belief set of a person.
Classmodel.characteristics att.editLike att.datable
Declaration
element faith
{
   att.global.attributes,
   att.datable.attributes,
   macro.phraseSeq
}
Attributes
(Global attributes and those inherited from [att.editLike att.datable ] )
Example
 <faith>protestant</faith>

<floruit>

floruitcontains information about a person's period of activity.
Attributes: Global attributes and those inherited from [att.datable att.editLike ]
Classatt.datable att.editLike model.state
Declaration
element floruit
{
   att.global.attributes,
   att.datable.attributes,
   macro.phraseSeq
}
Example
 <floruit notBefore="1066" notAfter="1100"/>

<langKnowledge>

langKnowledgesummarizes the state of a person's linguistic knowledge, either as prose or by a list of <langKnown> elements.
Classmodel.characteristics att.datable att.editLike
Declaration
element langKnowledge
{
   att.global.attributes,
   att.datable.attributes,
   attribute tags { list { data.language+ } }?,
   ( model.pLike | langKnown+ )
}
Attributes
(In addition to global attributes and those inherited from [att.datable att.editLike ] )
tagssupplies one or more valid language tags for the languages specified
Status: Optional
Datatype: list { data.language+ }

This attribute should be supplied only if the element contains no <langKnown> children. Its values are language ‘tags’ as defined in RFC 3066 or its successor

Example
 <langKnowledge tags="en-GB fr">British English and   French</langKnowledge>
Example
 <langKnowledge>   <langKnown tag="en-GB" level="H">British English</langKnown>   <langKnown tag="fr" level="M">French</langKnown>  </langKnowledge>

<langKnown>

langKnownsummarizes the state of a person's knowledge of a single language.
Classatt.datable att.editLike
Declaration
element langKnown
{
   att.global.attributes,
   att.datable.attributes,
   attribute tag { data.language },
   attribute level { data.code }?,
   macro.phraseSeq
}
Attributes
(In addition to global attributes and those inherited from [att.datable att.editLike ] )
tagsupplies a valid language tag for the language concerned.
Status: Required
Datatype: data.language

The values for this attribute are language ‘tags’ as defined in RFC 3066 or its successor

levela code indicating the person's level of knowledge for this language
Status: Optional
Datatype: data.code
Example
 <langKnown tag="en-GB" level="H">British English</langKnown>  <langKnown tag="fr" level="M">French</langKnown>

<listPerson>

listPerson
Attributes: Global attributes and those inherited from [att.declarable model.biblLike ]
Classatt.declarable model.biblLike

<nationality>

nationality
Attributes: Global attributes and those inherited from [att.datable att.editLike att.naming ]
Classmodel.characteristics att.datable att.editLike att.naming

<occupation>

occupation
Attributes: Global attributes and those inherited from [att.datable att.editLike att.naming ]
Classmodel.state att.datable att.editLike att.naming

<persEvent>

persEventcontains a description of a particular event of significance in the life of a person.
Attributes: Global attributes and those inherited from [att.datable att.editLike att.typed att.naming ]
Classatt.datable att.editLike att.typed att.naming model.stateChange
Declaration
element persEvent
{
   att.global.attributes,
   att.datable.attributes,
   ( label?, model.dateLike?, model.pLike* )
}
Example
 <persEvent key="#MAT">   <label>matriculation</label>   <date value="12-10-1972">12 Oct 1972</date>  </persEvent>

<persName>

persName
Attributes: Global attributes and those inherited from [model.nameLike.agent att.datable att.editLike att.naming ]
Classmodel.state model.nameLike.agent att.datable att.editLike att.naming

<persState>

persStatecontains a description of some ongoing status or quality attributed to a person.
Attributes: Global attributes and those inherited from [att.datable att.editLike att.typed att.naming ]
Classatt.datable att.editLike att.typed att.naming model.state
Declaration
element persState
{
   att.global.attributes,
   att.datable.attributes,
   ( label?, model.dateLike?, model.pLike* )
}
Example
 <persState key="#SCHOL">   <label>scholar</label>  </persState>

<persTrait>

persTraitcontains a description of a personal or culturally-determined characteristic attributed to a person.
Attributes: Global attributes and those inherited from [att.datable att.editLike att.naming att.typed ]
Classatt.datable att.editLike att.naming att.typed model.characteristics
Declaration
element persTrait
{
   att.global.attributes,
   att.datable.attributes,
   ( label?, model.dateLike?, model.pLike* )
}
Example
 <persTrait cert="H" key="#BritCit" type="social">   <label>citizenship</label>   <dateRange from="1987-01-01" to="1997-12-31">Between 1987 and 1997</dateRange>   <p>Held status of naturalized UK citizen</p>  </persTrait>

The reference #BritCit should indicate some definition of the category "British Citizenship elsewhere, for example in the header or some external source.

Example
 <persTrait type="physical">   <label>Eye colour</label>   <p>Blue</p>  </persTrait>

<person>

person
Attributes
(Global attributes only)

<relation>

relation
Attributes: Global attributes and those inherited from [att.datable att.editLike att.naming ]
Classmodel.state att.datable att.editLike att.naming

<residence>

residence
Attributes: Global attributes and those inherited from [att.datable att.editLike att.naming ]
Classmodel.state att.datable att.editLike att.naming

<sex>

sexspecifies the sex of a person.
Classmodel.characteristics att.editLike att.datable
Declaration
element sex
{
   att.global.attributes,
   att.datable.attributes,
   attribute value { data.sex }?,
   macro.phraseSeq
}
Attributes
(In addition to global attributes and those inherited from [att.editLike att.datable ] )
value
Status: Optional
Datatype: data.sex

Values for this attribute are taken from ISO 5218:1977 Representation of Human Sexes; 0 indicates unknown; 1 indicates male; 2 indicates female; and 9 indicates not applicable.

Example
 <sex value="2">female</sex>

<socecStatus>

socecStatus
Attributes: Global attributes and those inherited from [att.datable att.editLike att.naming ]
Classmodel.characteristics att.datable att.editLike att.naming


Date:
This page is copyrighted