3 編碼描述

encodingDesc 元素是 TEI header 第二個主要的區塊。

它指定對該文本進行文字轉錄或編碼的方法以及編輯原則,也可能包括一些編碼定義供檔頭其他部份使用。

雖然不是正式要求必須包含編碼描述,但是高度建議能夠使用它。

<encodingDesc> (編碼描述) 記錄電子文件和其ㄧ個或多個文件來源之間的關係。

編碼描述可以包含任意 p 元素標記的段落與來自 model.encodingDescPart class 的專用元素的組合。

預設情況下,這個 class 提供下列元素:

<projectDesc> (計畫描述) 詳述將電子檔案編碼的目標或目的,以及其他關於檔案匯集或收集程序的任何資訊。

<samplingDecl> (取樣宣告) 以篇章描述的方式說明建立文集或文選時文件取樣的原理與方法。

<editorialDecl> (編輯實行宣告) 提供文件編碼時使用的編輯原則與實行方法的細節。

<tagsDecl> (標誌宣告) 提供關於應用在XML文件中的標誌的詳細資訊。

<refsDecl> (參照宣告) 標明本文件與某一個權威參照標準的關係。

<classDecl> (分類宣告) 包含一個或多個分類法,用來定義在文件中他處所使用之任何分類碼。

<appInfo> (application information) records information about an application which has edited the TEI file.

這些元素在以下小節中進一步描述。

其他 modules 具有擴充這個 class 的能力;在 2.3.8 Module-Specific Declarations 裡有範例。

計畫描述

projectDesc 元素可以散文形式用來描述該數位資源製作的目的,以及其他匯集或收集程序的相關資訊。

這對於語料庫或雜項集叢來說尤其重要,但是對於任何文本都可能有用,例如說明為何遵循某種編碼實務而不是另一種。

<projectDesc> (計畫描述) 詳述將電子檔案編碼的目標或目的,以及其他關於檔案匯集或收集程序的任何資訊。

例如:

<encodingDesc>
 <projectDesc>
  <p>Texts collected for use in the Claremont Shakespeare Clinic, June 1990.</p>
 </projectDesc>
</encodingDesc>

取樣宣告

samplingDecl 元素可以散文形式用來描述,選擇文本或文本的某些部分列入該資源的基本原理和方法。

<samplingDecl> (取樣宣告) 以篇章描述的方式說明建立文集或文選時文件取樣的原理與方法。

它應包括的資訊如下:

  • 個別取樣的大小
  • 選取方法
  • 取樣來自的族群
  • 取用取樣程序的目的

但不限於這些。

<samplingDecl>
 <p>從文本開頭取出2000個單字樣本。</p>
</samplingDecl>

它也可以簡單描述包括或排除來源文本的任何部分。

<samplingDecl>

<p>轉錄報導文字,省略抽取引用(Pull quotes)、標題、廣告。

任何數學表示式,如果需要的符號不存在於 ISOnum 或 ISOpub entity 集合裡,也都省略,

它們出現的地方以 GAP 元素標記。</p>

</samplingDecl>

如果多個文本或文本章節應用同一個取樣宣告,不需要在每一個文本檔頭重複取樣宣告。

可以使用文本(或文本章節)的 @decls 屬性提供交互參照到該取樣宣告,如同 15.3 Associating Contextual Information with a Text 所進一步說明的。

編輯實行宣告

editorialDecl 元素用於提供該文本編碼時所採用的編輯實務細節。

<editorialDecl> (編輯實行宣告) 提供文件編碼時使用的編輯原則與實行方法的細節。

它可以只包含一個散文描述,或者一個或多個來自 TEI model.editorialDeclPart class 的專用元素。

如果該 class 之中未包含編碼人員想要記錄的編輯政策,可以使用 23.2 Personalization and Customization 所討論的機制在該 class 中新增元素。

這些政策元素之中有一些可以帶有屬性,以便於對某些定義良好的編輯決策做自動處理;它們全部都包含關於特定功能所採取的編輯原則的散文描述。

這些描述所要回答的問題範例如下。

correction

<correction> (更正原則) 說明文本中的更正是在什麼情況下、如何產生的。

@status 指出文本更正的程度。

@method 說明標示更正所採取的方法。

文本在資料取得過程中或取得後是否經過更正?

如果有的話,是默默的更正或是有使用 3.4 Simple Editorial Changes 所描述的標籤做標記?

對於遺漏、截斷、可疑更正、替代異寫、錯誤的開始、重複等方面所採用的原則為何?

normalization

<normalization> 指出來源文件轉換成電子文本時規格化或標準化的程度。

@source 指出任何規格化所實行的依據。

@method 指出標示規格化所採取的方法。

文本是否經過常態化,例如將任何非標準的拼字、方言形式等等進行規則化?

如果有的話,是默默的進行常態化,或是使用 3.4 Simple Editorial Changes 所描述的標籤做標記?

正規化所依據的權威是什麼?

以及,當要對數字做標準化,為 3.5.3 Numbers and Measures 所描述的 @value 屬性提供標準值的時候,採用的原則是什麼?使用的格式是什麼?

quotation

<quotation> 說明在編輯上是如何處理來源文件中的引文符號。

@marks (quotation marks) 指出引文符號是否在文本中被保留為內容的一部份。

@form 說明引文符號如何標示於文本中。

引號如何處理?

Are apostrophes and quotation marks distinguished? How?

引號會保留在文本內容中或以標記取代?

是否有特殊的慣例?例如巢狀(nested)引用時,單引號或雙引號的使用方式。

檔案在實務上是否前後一致?或者是否檢查過?

hyphenation

<hyphenation> 概述來源文件裡的連字符號在電子化的版本中是如何被處理的。

@eol (end-of-line) 指出行末連字符號是否在文本中被保留。

是否區別 ‘soft’ 以及 ‘hard’ hyphens?

如果來源文件的換行沒有被保留的話,行末連字符號的處理原則為何?

Soft hyphens 有被默默地移除嗎?如果有的話,對換行跟換頁造成的影響為何?

segmentation

<segmentation> 描述文件分割的原理方法,例如分割成句子、音調單位、字形層次等。

文本如何分割?是否為了分析,使用 sseg 等分割單位對文本再做分割,它們如何標記?分割到什麼程度?

stdVals

<stdVals> (標準值) 明確說明文本中標準化日期或數值所使用的格式。

大部份情況下,攜帶標準值的屬性(例如日期的 @when 或 @when-iso 屬性)應該遵循定義的 W3C 或 ISO 資料型態。

不適合上述情況的案例,就可以使用 stdVals 這個元素來描述該屬性值所用的標準化方法。

interpretation

<interpretation> 指出除了轉錄之外,文件中加入哪些分析性或詮釋性的資訊。

是否提供了分析性或詮釋性資訊?也就是,並非顯而易見的資訊,或者可能會引起爭議的。

如果有的話,它是如何產生的?如何標記?

If feature-structure analysis has been used, are fsdDecl elements (section 18.11 Feature System Declaration) present?

關於採取的編輯原則相關資訊,如果不屬於上列各類,那麼應該另以一個清單項目記錄。

經驗顯示,關於編輯原刖、編碼實務所做的決定應該完整記錄下來,不僅為了該文本未來的使用者,也為了該文本的初版製作專案。

一些簡單範例如下:

<editorialDecl>
 <segmentation>
  <p>

<gi>s</gi> 元素標記 orthographic sentences 並在它們的上層 <gi>div</gi> 元素中依序編號。

</p>

</segmentation>

<interpretation>

<p>第4節的演講分析部分是手動加上的,而且尚未經過檢驗。</p>

</interpretation>

<correction>

<p>文字轉錄的錯誤使用 WordPerfect 拼字檢查做控制。</p>

</correction>

<normalization source="http://szotar.sztaki.hu/webster/">

<p>所有單字轉換為遵循 Websters 9th Collegiate dictionary 的現代美式拼法。</p>

</normalization>

<quotation marks="all" form="std">

<p>所有的起始引號以 entity reference <ident type="ge">odq</ident> 表示;

所有的結束引號以 entity reference <ident type="ge">cdq</ident> 表示。</p>

</quotation>

</editorialDecl>

應用到一個文本或一個文本章節以上的編輯實務宣告,不需要在每個文本的檔頭重複。

只要在每個文本的 @decls 屬性提供一個交互參照就可以了,如同 15.3 Associating Contextual Information with a Text 所進一步描述的。

The Tagging Declaration

tagsDecl 元素用於記錄,某個特定文本中所使用的標記的下列相關資訊:

  • 該轉錄文本中出現的元素所屬的命名空間(namespace)。
  • 某些特定元素出現在文本中的頻率,以便收件人在交換時可以驗證該文本的完整性。
  • 任何附註關於在檔頭其他地方未做說明的特定元素用法。
  • 對於某一個元素的所有實例(instances)的預設呈現樣式。

這個資訊由下列元素表達:

<rendition> 提供關於一個或多個元素預定呈現方式的資訊。

@scheme 指出使用哪個語言來描述該呈現

<namespace> 提供其子元素所描述的元素所屬的名稱空間之正式名稱。

<tagUsage> 提供文件中某個特定元素的使用資訊。

tagsDecl 元素的組成,首先是一個可有可無的 rendition 元素序列,每一個 rendition 元素要有一個唯一的識別符;接著一個可有可無的序列包含一個或多個 namespace 元素,每個 namespace 元素包含一系列的 tagUsage 元素,在一個 TEI 文件的最外層 text 元素中出現的該命名空間下的不同元素都對應一個 tagUsage 元素。

注意這個 tagUsage 要巢狀置於 namespace 元素裡面,而且不能直接出現在 tagsDecl 元素裡面。

Rendition

rendition 元素讓編碼人員可以下列方式指定一個或多個元素在原始來源中如何呈現:

  • 使用非正式散文描述
  • 使用標準 stylesheet 語言,例如 CSS 或 XSL-FO
  • 使用專案定義的正式語言

一個或多個這樣的規格可以兩種方式關聯到文件中的元素:

  • 適當的 tagUsage 元素的 @render 屬性可以用來指定某個名稱的元素在所有出現的地方的預設呈現樣式
  • 任何元素都可以使用全域屬性 @rendition 來指定它的呈現方式,這會覆蓋任何已提供的預設值

全域屬性 @rend 也可以用來提供某個元素呈現方式的非正式描述;如果在 @rendition 屬性之外又額外提供了 @rend 屬性,那麼 @rend 屬性會優先使用,就像它也會覆蓋該元素的任何其他預設值一樣。

例如下面這個概要式的範例,它顯示編碼人員如何可以指定所有的 p 元素預設使用樣式規格之一的「style1」樣式來呈現,而 hi 元素則使用另一個「style2」來呈現:

<tagsDecl>
 <rendition xml:id="style1">
  ... 在這裡描述某個預設呈現樣式 ...
 </rendition>
 <rendition xml:id="style2">
  ... 這裡描述另一個預設呈現樣式 ...
 </rendition>
 <namespace name="http://www.tei-c.org/ns/1.0">
  <tagUsage gi="p" render="#style1"> ... </tagUsage>
  <tagUsage gi="hi" render="#style2"> ... </tagUsage>
 </namespace>
</tagsDecl>
<!-- 文件中的其他地方 -->
<p>這個段落大部分以 style1 呈現, 包含少數幾個字
 <hi> style2 呈現</hi>
</p>
<p rendition="#style2">這個段落全部都以 style2 呈現</p>
<p>這個段落又回到 style1</p>

如上述,rendition 元素的內容描述來源材料的呈現,可以使用散文、專案定義語言,或者已存在的標準語言:Cascading Stylesheet Language (CSS, Lie and Bos (eds.) (1999)) 以及用於指定格式語義的 XML vocabulary,它來自 W3C's Extensible Stylesheet Language (XSL, Berglund (ed.) (2006)) 的一部分。

@scheme 屬性指出該 rendition 元素使用哪一種,它可能的值如下:

free

非正式自由文字描述

css

Cascading Stylesheet Language

xslfo

Extensible Stylesheet Language Formatting Objects

other

使用者定義的正式描述語言

在下面延伸範例中,我們考慮如何捕捉20世紀初期典型標題頁的呈現,如下圖:

用來標記標題頁資訊的元素在 4.6 Title Pages 中說明;這裡我們考慮如何也標記某些視覺化的資訊,使用 rendition 元素以及相關屬性。

首先我們為每一個希望保留的來源頁呈現方式定義 rendition 元素。

CSS 的細節在 Lie and Bos (eds.) (1999);這裡我們用它的語彙描述字體大小、樣式、字距、行距、顏色等外觀。

注意這個標記的目的是在描述來源,而不是指定它應如何被重製,雖然這兩者顯然是密切關聯的。

<tagsDecl>
 <rendition xml:id="center" scheme="css">text-align: center;</rendition>
 <rendition xml:id="small" scheme="css">font-size: small;</rendition>
 <rendition xml:id="large" scheme="css">font-size: large;</rendition>
 <rendition xml:id="x-large" scheme="css">font-size: x-large;</rendition>
 <rendition xml:id="xx-large" scheme="css">font-size: xx-large</rendition>
 <rendition xml:id="expanded" scheme="css">letter-spacing: +3pt;</rendition>
 <rendition xml:id="x-space" scheme="css">line-height: 150%;</rendition>
 <rendition xml:id="xx-space" scheme="css">line-height: 200%;</rendition>
 <rendition xml:id="red" scheme="css">color: red;</rendition>
</tagsDecl>

現在可以使用 @rendition 這個全域屬性來為任何元素指定套用上列的某種呈現方式。

例如,某個標題頁可能標記如下:

<titlePage>
 <docTitle rendition="#center #x-space">
  <titlePart>
   <lb/>
   <hi rendition="#x-large">THE POEMS</hi>
   <lb/>
   <hi rendition="#small">OF</hi>
   <lb/>
   <hi rendition="#red #xx-large">ALGERNON CHARLES SWINBURNE</hi>
   <lb/>
   <hi rendition="#large #xx-space">IN SIX VOLUMES</hi>
  </titlePart>
  <titlePart rendition="#xx-space">
   <lb/> VOLUME I.
   <lb/>
   <hi rendition="#red #x-large">POEMS AND BALLADS</hi>
   <lb/>
   <hi rendition="#x-space">FIRST SERIES</hi>
  </titlePart>
 </docTitle>
 <docImprint rendition="#center">
  <lb/>
  <pubPlace rendition="#xx-space">LONDON</pubPlace>
  <lb/>
  <publisher rendition="#red #expanded">CHATTO &amp; WINDUS</publisher>
  <lb/>
  <docDate when="1904" rendition="#small">1904</docDate>
 </docImprint>
</titlePage>

如果用來描述樣式的語言是 CSS,可以使用 @scope 屬性來指定 CSS pseudo-elements。

這些 pseudo-elements 用來將樣式只套用到給定文字的某個部分。

例如,有一個 pseudo-element 叫做 first-letter 用來套用樣式到目標元素的第一個字母,也有另兩個有用的 pseudo-elements 叫做 before 以及 after,通常和「content」property 一起使用,在元素內容之前或之後插入某些樣式字元(Unicode 提供了不少),這些對於記錄來源的外觀都是有用的。

例如,假設某文本引號內的文字使用 q 元素來標記,但是引號本身則在處理過程中去除了,這時如果有一組 renditions 如下:

<rendition xml:id="quoteBefore" scheme="css" scope="before">content:'“';</rendition>
<rendition xml:id="quoteAfter" scheme="css" scope="after">content:'”';</rendition>

可以用來定義 quoteBefore 以及 quoteAfter 這兩個 pseudo-elements。

來源中 q 元素實際上是由起始引號跟結束引號包起來的地方,就可以標記如下:

<q rendition="#quoteBefore #quoteAfter">Four score and seven years ago...</q>

Tag usage

如上所述,每一個 namespace 元素,如果存在的話,對於關聯該 teiHeadertext 元素裡面的每一個屬於該命名空間的不同元素,都要正好有一個 tagUsage 元素包含在該 namespace 元素裡面。7

tagUsage 元素用來提供這個元素出現在文本裡面的次數,放在它的 @occurs 屬性裡面。

它也可以用來保存任何額外的使用訊息,這可以在元素本身內以散文提供。

例如

<tagUsage gi="hi" occurs="28">僅用於標記複製文本中的英文斜體字。
</tagUsage>

這指出 hi 元素在 text 元素中出現共 28次,而且標記人員只用它來標記斜體英文字。

@withId 屬性可有可無,它用來指出該元素擁有 @xml:id 屬性的出現次數,如下範例:

<tagUsage gi="pb" occurs="321" withId="321"> 僅用於標記 York (1734) 版裡面的換頁
</tagUsage>

這指出 pb 元素出現 321次,每一個都有提供辨識碼。

tagUsage 元素的內容不容易自動處理。

因此不應該被用來保存其他編碼描述元件已經提供的資訊。

遵循 TEI 的文件不必須提供任何 tagUsage 元素,但是如果有的話,TEI 建議的實務是文本中使用到的每一個不同的命名空間跟元素都要提供 namespace 以及 tagUsage 元素。

如果還使用 @occurs 屬性指定了次數,那必須要符合該元素出現在文件裡的數量。

The Reference System Declaration

refsDecl 元素用來記錄標記工作所使用的標準參照系統。

它可能包含一系列散文段落或下列專門文素:

<refsDecl> (參照宣告) 標明本文件與某一個權威參照標準的關係。

<cRefPattern> (定義如何將標準參照轉換成統一資源識別符 (URI) 。) 標明將標準參照轉換成統一資源識別符的表示方法與取代模式。

<refState/> (分界狀態) 標明分界方法所定義的權威參照標準裡其中一個組件。

注意並非所有可能的參照系統都能輕易獲得目前軟體系統的支持。

在標記人員的便利性與設想的特定應用軟體可能效率之間必須作一抉擇,在這方面或其他許多情況都是這樣。

本指引支援的參照系統在 3.10 Reference Systems 有更詳細的討論。

有三種方式可以使用這個元素來描述參照系統:

  • 散文描述
  • regular expressions 跟 XPaths 組成的一對一對構成的一個系列
  • as a concatenation of sequentially organized milestones

每個方法在下面詳細描述。

一個 refsDecl 元素裡面只能使用一個方法。

如果在同一個文件裡使用了一個以上的權威參照系統,在檔頭裡可以包括一個以上的 refsDecl 元素,但是目前的 proposals 沒有檢查相互之間的一致性。

散文方法

可以在 refsDecl 裡以一個簡單的散文描述來指定參照系統。

這個描述應指出哪些元素持有辨識資訊,以及這個資訊是以屬性值或元素內容表達。

讀取該資訊或者產生參照字串時的任何特殊規則也應該在這裏指定。

這樣的散文描述不能自動處理,因此如果要自動處理的話就不建議用這個方法來指定權威參照系統的結構。

例如:

<refsDecl>

<p>這個文集裡的每一個 text 的 <att>n</att> 屬性持有整個文本的唯一辨識碼。

該文本的標題在每一個 text 的第一個 <gi>head</gi> 元素的內容。

每一個 <gi>div1</gi> 以及 <gi>div2</gi><att>n</att> 屬性裡含有權威參照,

格式為「XX.yyy」,XX 是羅馬數字的書籍編號,yyy是阿拉伯數字的章節編號。

換行由 <gi>lb</gi> 空元素標記,每一個的 <gi>n</gi> 屬性含有 Casaubon's edition 的 through line number。</p>

 <p>The through line number 跟 text 辨識符加起來可以辨識任何唯一的一行。

取得 <gi>text</gi>, <gi>div1</gi>, 或 <gi>div2</gi> <gi>n</gi> 屬性值,

然後計算該部份內的行號,這兩者串接起來可以構成一個權威參照</p>

</refsDecl>

搜尋取代方法

這個方法通常需要在初期有顯著的投資,但是允許很大的彈性。詳細請看 16.2.5 Canonical References

<cRefPattern> (定義如何將標準參照轉換成統一資源識別符 (URI) 。) 標明將標準參照轉換成統一資源識別符的表示方法與取代模式。

Milestone Method

這個方法適用於只有 ‘milestone’ 標籤 (見 3.10.3 Milestone Elements) 可以提供所需參照資訊的時候。

它不能提供上一節所討論的「搜尋取代方法」所無法模仿的能力,但是它提供一個比較簡單的表示法。

一個基於 milestone 標籤的參照是將一個或多個這種標籤所指定的值串接起來。

由於每一個標籤標示出值變化時的點,它可以被視為指定一個變數的 refState

因此,使用這種方法的參照宣告,指定權威參照的各個元件由一系列的 refState 元素組成:

<refState/> (分界狀態) 標明分界方法所定義的權威參照標準裡其中一個組件。

@unit 指出這個 milestone 的哪一種狀態改變了

@delim (分隔符) 提供跟在該參照元件之後的分隔字串

@length 指定該參照元件的固定長度

例如,「Matthew 12:34」這個參照可以視為三個變數的狀態:book 變數的狀態是「Matthew」;chapter 變數的狀態是「12」,以及 verse 變數的狀態是「34」。

如果使用了 milestone 標記,在文本中應該要有一個標籤,標示出任一個上述變數改變狀態的地方。8

因此,要找到「Matthew 12:34」,應用軟體必須由左至右掃描文本,觀察這三個變數每一個的狀態改變。

當這三個狀態同時符合的時候,就可以抵達需要的位置點。

當然,這樣的位置點可能會有好幾個。

@delim 和 @length 屬性用來依照前面小節所描述的逐步方法完全相同的方式,指定使用本方法的權威參照元件。

其他屬性用來決定文本裡的哪些 milestone 標籤要用來檢查狀態的改變。

當遇到一個新的單位是 @unit 的 milestone 標籤時會產生一個狀態改變,如果該 refState 元素有指定 @ed 屬性的話,那麼 @ed 屬性也要一致。

這個新的狀態值可以由 milestone 元素的 @n 屬性明確指定,或者如果沒有指定 @n 屬性的話,也可能隱含該狀態值。

例如,權威參照的格式為 xx.yyy,xx 表示 first 版本的頁碼,yyy 是這一頁裡的行號,如下的參照系統宣告是適當的:

<refsDecl>
 <refState
  ed="first"
  unit="page"
  length="2"
  delim="."/>
 <refState ed="first" unit="line" length="3"/>
</refsDecl>

這意味著這種格式的 milestone

<milestone n="II" ed="first" unit="page"/>
<milestone ed="first" unit="line"/>

會遍佈文本各處,標示出頁碼以及行號變更的位置。

注意上面的第二個 milestone 標籤沒有指定 @n 屬性的值;這意味著它的值在每次狀態變更時加一。

For more detail on the use of milestone tags, see section 3.10.3 Milestone Elements.

關於 milestone 標籤的詳細使用說明在 3.10.3 Milestone Elements

這個 milestone 參照架構,雖然在概念上很簡單,但是未被通用的 SGML 或 XML 解析器支援。

它的使用會造成查核以及標記正確性的更大負擔。

應用到多個文本或章節的參照系統宣告不需要在每一個文本檔頭重複。

只要用每一個該宣告應用到的文本(或文本章節)的 @decls 屬性提供一個交互參照即可,進一步描述在 15.3 Associating Contextual Information with a Text

分類宣告

classDecl 元素用來將檔頭的其他部分使用的任何描述分類架構的定義或來源匯集在一起。

每一個這樣的架構由一個 taxonomy 元素表達,它可以包含一個簡單的書目引用,或者一個有關描述類型學的定義;以下元素用於定義一個描述分類架構:

<classDecl> (分類宣告) 包含一個或多個分類法,用來定義在文件中他處所使用之任何分類碼。

<taxonomy> 定義文件分類的類型學,可以是潛在地以書目資料的方式,或是明確地以結構分類法的方式來分類。

<category> 在使用者定義之分類法當中,此元素包含一項個別的描述性類目,該類目可能位於一個更上層的類目之中。

<catDesc> (類目描述) 描述分類法中或文件類型學中的某些類目,可用短文描述的型式,或是用TEI正式元素textDesc所使用的狀況參數。

The taxonomy element has two slightly different, but related, functions.

taxonomy 元素有兩個稍微不同但是相關的功能。

For well-recognized and documented public classification schemes, such as Dewey or other published descriptive thesauri, it contains simply a bibliographic citation indicating where a full description of a particular taxonomy may be found.

對於大家公認的、有公開文件記錄的分類方案,例如杜威(Dewey)或其他已出版的描述詞表(thesauri),它簡單包含一個書目引用,指出可能可以找到某個特定分類學的完整描述的地方。

<taxonomy xml:id="DDC12">
 <bibl>
  <title>Dewey Decimal Classification</title>
  <edition>Abridged Edition 12</edition>
 </bibl>
</taxonomy>

對於不太容易獲得的分類方案,taxonomy 元素包含該分類學本身的描述以及一個可有可無的書目引用。

該描述由若干 category 元素組成,每一個都定義一個該類型學裡的類目。

該類目由一個巢狀套疊(nested)的 catDesc 元素的內容所定義,該元素可以包含一個片語描述該類目,或者任何數量的來自 model.catDescPart class 的元素。

如果 corpus module 有包括在 schema 裡面,這個 class 提供 textDesc 元素,它的元件允許使用一組「情境參數」來定義文本類型 (進一步請看 15.2.1 The Text Description);如果 corpus module 沒有包括在 schema 裡面,這個 class 會是空的,catDesc 元素就只能包含純文字。

如果該類目被細分,每一個子類目由一個套疊的 category 元素表達,該元素具有相同的結構。

為了反映該分類學的階層結構,這些類目可以套疊到任意的深度。

每個 category 元素具有一個唯一的 @xml:id 屬性,參照到該類目的 catRef 元素使用這個 ID 做為目標。

<taxonomy xml:id="b">
 <bibl>Brown Corpus</bibl>
 <category xml:id="b.a">
  <catDesc>Press Reportage</catDesc>
  <category xml:id="b.a1">
   <catDesc>Daily</catDesc>
  </category>
  <category xml:id="b.a2">
   <catDesc>Sunday</catDesc>
  </category>
  <category xml:id="b.a3">
   <catDesc>National</catDesc>
  </category>
  <category xml:id="b.a4">
   <catDesc>Provincial</catDesc>
  </category>
  <category xml:id="b.a5">
   <catDesc>Political</catDesc>
  </category>
  <category xml:id="b.a6">
   <catDesc>Sports</catDesc>
  </category>
 </category>
 <category xml:id="b.d">
  <catDesc>Religion</catDesc>
  <category xml:id="b.d1">
   <catDesc>Books</catDesc>
  </category>
  <category xml:id="b.d2">
   <catDesc>Periodicals and tracts</catDesc>
  </category>
 </category>
</taxonomy>

在這樣的一個分類法之下,某個特定文本和一個類目之間的連結是由 textClass 元素裡的 catRef 元素做成,如 2.4.3 The Text Classification 章節中所描述的。

如果該分類法允許多維度的分類,那麼某個特定的 catRef 元素可以參照到多個類目,如下範例指定某個文本具有上面定義的「Press Reportage」類別裡的「Daily」、「National」以及「Political」子類別。

<catRef target="#b.a1 #b.a3 #b.a5"/>

單獨一個 category 可以包含一個上的 catDesc 做為 child,例如以多種語言來描述該類別的時候,如下範例:

<category xml:id="lit">
 <catDesc xml:lang="pl">literatura piękna</catDesc>
 <catDesc xml:lang="en">fiction</catDesc>
 <category xml:id="litProza">
  <catDesc xml:lang="pl">proza</catDesc>
  <catDesc xml:lang="en">prose</catDesc>
 </category>
 <category xml:id="litPoezja">
  <catDesc xml:lang="pl">poezja</catDesc>
  <catDesc xml:lang="en">poetry</catDesc>
 </category>
 <category xml:id="litDramat">
  <catDesc xml:lang="pl">dramat</catDesc>
  <catDesc xml:lang="en">drama</catDesc>
 </category>
</category>

應用軟體資訊元素

有時候,將對於被標記的來源底本所做的處理程序的相關訊息儲存在檔頭裡是很方便的。

這類資訊的典型用途可能是:

  • 讓某個應用軟體發現它之前曾經開啟或編輯過一個檔案,以及當時是使用它自己的哪個版本所做的事;
  • (經由一個日期)顯示最後編輯該檔案的應用軟體,這樣可以診斷該應用軟體可能造成的任何問題;
  • 讓使用者發現編輯該檔案的應用軟體資訊
  • 讓應用軟體在它編輯過的檔案元素裡宣告一個影響,這樣其他應用軟體或編輯人員在變更該部分的時候可以更加小心。

model.applicationLike class 提供 application 元素,它可以在 appInfo 元素裡用來記錄這種資訊。

<appInfo> (應用軟體資訊) 記錄曾經編輯過該 TEI 檔案的應用軟體資訊。

<application> 提供關於某個曾經在該文件上有過動作的應用軟體的資訊。

@ident 提供該應用軟體的辨識符,與版本編號或顯示名稱無關。

@version 提供該應用軟體的版本編號,與它的辨識符或顯示名稱無關。

每個 application 元素指定關於目前檔案的一個應用軟體的目前狀態。

這個元素是 att.datable class 的成員,該 class 提供各種屬性將這個狀態跟一個日期、時間或時間範圍關聯起來。

應該使用 @ident 跟 @version 屬性指到唯一的應用軟體以及它的主要版本編號 (例如 ImageMarkupTool 1.5)。

它的目的並不是應用軟體每次更新檔案都要增加一個新的 application 元素。

下面的列子顯示出如何使用這些元素來記錄這件事:應用軟體「Image Markup Tool」1.5版對這個文件的兩個部分有影響,最後儲存時間是2006年6月6日。

有關的部分可以經由兩個 ptr 元素的 target 屬性所給予的 URL 來存取。

<appInfo>
 <application version="1.5" ident="ImageMarkupTool" notAfter="2006-06-01">
  <label>Image Markup Tool</label>
  <ptr target="#P1"/>
  <ptr target="#P2"/>
 </application>
</appInfo>

Module-Specific Declarations

目前為止所討論的元素可以在任何 schema 使用。

當使用的 schema 包括一些更專門的 TEI modules,就有更多在特定 module 才能使用的元件可以用於編碼描述。

這些在對應的 module 裡有完整的討論,不過為了方便也在這裡簡短說明。

fsdDecl 元素只有在 schema 包括 iso-fs module 的時候才能使用 。

它的目的在為這個檔頭所說明的文本之中的任何分析功能結構(如同 18 Feature Structures 中定義的)下的任何功能系統宣告(如同 18.11 Feature System Declaration 中所定義的)提供文件說明。

metDecl 元素只有在 schema 包括 verse module 的時候才能使用。

它的目的是為文本中使用的任何詩韻記號系統提供文件說明,如同 6.3 Rhyme and Metrical Analysis 進一步討論的。

它由一個散文描述或一系列的 metSym 元素構成。

variantEncoding 元素只有在 schema 包括 textcrit module 的時候才能使用。

它的目的是為標記文本中的不同版本用字(textual variants)所採用的方法提供文件說明,如同 12.2 Linking the Apparatus to the Text 所討論的。