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:
3 New elements
With these classes in place, we define the following new elements:
- <sex> specifies the sex of a person.
- <faith> specifies the faith, religion, or belief set of a person.
- <langKnowledge> summarizes the state of a person's linguistic knowledge, either
as prose or by a list of
<langKnown>
elements. - <persTrait> contains a description of a personal or culturally-determined characteristic
attributed to a person.
- <floruit> contains information about a person's period of activity.
- <persState> contains a description of some ongoing status or quality
attributed to a person.
- <persEvent> contains a description of a particular event of significance in
the life of a person.
- <assert> contains an assertion, explicitly combining some unit of prosopographical information
with some supporting annotation or reference
- <assertGrp> A set of assertions, possibly supported by further annotation
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:
langKnowledge | summarizes the state of a person's linguistic knowledge, either
as prose or by a list of <langKnown> elements. |
Class | model.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 ] )tags | supplies 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> |
persTrait | contains 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 ] |
Class | att.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> |