文件編碼組織 文件編碼交換格式指引 選錄版
TEI Lite: An Introduction to Text Encoding for Interchange


8. 參照與連結

在同一份SGML文件中,要從文本中的一點明確地參照或連結到另一點,可以使用「8.1. 簡單交互參照」一節中所敘述的元素來編碼。參照或連結到其他SGML文件或非SGML文件中的某部分時,可以使用「8.2. 延申指標」一節中所敘述的TEI延申指標(TEI extended pointers)來編碼。不明確的連結(如兩個平行文本或在文本裡被中斷部分的結合),可用「8.3. 連結屬性」一節中敘述的連結屬性來編碼。

8.1 簡單交互參照

單一文件中的交互參照要從一點連到另一點時,可在下列二個元素之中擇一編碼:

<參照>/<ref>
指向本文件中的另一個位置,即一或多個可識別的元素,可能為額外的修正文字或意見。
 
<指標>/<ptr>
指向本文件中的另一個位置,即一或多個可識別的元素。

以上元素共用下列屬性:

目標/target
以一或多個SGML的識別碼標示指標的目的地。
 
類型/type
使用任何簡明的類型為指標做適當的區分。
 
目標類型/targType
標示指標指向元素的類型。
 
建立日期/crDate
標示指標建立的時間。
 
責任類型/resp
標示指標的建立者。

<指標>(<ptr>)與<參照>(<ref>)兩個元素的不同之處在於:<指標>(<ptr>)是一個空的元素,只的簡單的標誌指標連結的起點,但是<參照>(<ref>)最好包含一點文字──最典型的就是交互參照的本身的文本。元素<指標>將可用在非文字的交互參照,例如符號、圖示、或用一個按鈕連到一個電子文件。<指標>在文件製作系統中也很有用,格式化工具可從交互參照中產生正確的動詞形式。

以下兩例的形式在邏輯上是相同的(假設文獻某處交互參照的正確動詞語法已用元素<指標>表現):


特別要看<參照 目標="SEC12">34頁的12節</參照>。
特別要看<指標 目標="SEC12"/>。

目標(target)的屬性值必須是同一文件中已使用元素的識別代碼。這表示,被連結的章節或段落必需要具有識別代碼,因為必需被某一種元素標誌。下例中,交互參照連結到元素<第一層>(<div1>):


...
特別要看<指標 目標="SEC12"/>
....
<第一層 識別名稱="SEC12"><標頭>相關辨識碼…
...

因為屬性識別名稱(id)具有全域性,文獻中的任何元素都可因此被連結。下例中,一個段落因被賦予識別名稱所以可被連結:


...
這是在討論<參照 目標="pspec">連結的段落</參照>
...
<段落 識別名稱="pspec">連結可以用在任何類別的元素上...

屬性目標類型(targType)可標示出被連結的元素具特定類型,如下例:


...
這是在討論<參照 目標="dspec" 目標類型='第一層 第二層'>連結的段落</參照>

上例中,若識別名稱為「dspec」的元素不是<第一層>(<div1>)或<第二層>(<div2>),則此參考無效。注意,在只執行SGML或XML的分析器時,這種額外的查核無法查到,因為這類分析器只能檢查以「dspec」識別的元素是否存在。

屬性類型(type)可使用任何簡明的類型為指標做適當的區分。屬性責任類型(resp)可用來表示連結的建立者、建立機構;屬性建立日期(crDate)可表示建立日期,如下例:


...
這是在討論<參照 類型="xref" 責任類型="auto" 建立日期="950521" 
目標="dspec" 目標類型='第一層 第二層'>連結的段落</參照>

這些屬性最適同用在內含大量具各種目的與義意的指標的超文本系統。

有些時候,交互參照連結的目的無法對應到任何文本特徵,且多數未被任一種元素標誌。如果想連結的目標只是同一文件中的一點,最簡單的方式是用<錨點>(<anchor>)在適當地點插入標誌。如果連結的標的是未標誌的文字串,可用元素<分割段落>(<seg>)標誌。這兩個元素的敘述如下:

<錨點>/<anchor>
標記文件中被連結的位置或特定點。
 
<分割段落>/<seg>
類型/type
為連結段落分類。

下例中(設有此例),元素<參照>(<ref>)用來表示要以某種方式連結到文本中的其他部分。第一例中連結到某一點,第二例中連結到一串文字:


回到<參照 目標="ABCD">我打瞌睡的那點上</參照>,我注意到有
<參照 目標="EFGH">三個字</參照>被前一個讀者用紅筆圈起來

這種編碼方式要求元素具備明確的識別碼(例中的ABCD與EFGH)必須在同一文件中的其他地方出現。假設含這些識別代碼的元素並不存在,可使用元素<錨點>和<分割段落>:


....<錨點 類型="書籤" 識別名稱='ABCD'/> ........
<分割段落 類型="目標" 識別名稱='EFGH'> ... </分割段落> ...

屬性類型(type)(如上例所示)可為文本中不具特定目的的元素作不同目的的區分。其他的使用方法,在下面的「8.3. 連結屬性」一節中討論。

8.2 延申指標

元素<指標>(<ptr>)及<參照>(<ref>),只能用在同一文件的交互參照或連結。只能參照到文獻中明確標示的元素。本節討論的元素不限於這種用法。

<外部指標>/<xptr>
定義連向本文件或外部文件中另一位置的指標。
 
<外部參照>/<xref>
定義連向本文件或外部文件中另一位置的指標,可能為額外的修正文字或意見。

除了在「8.1. 簡單交互參照」一節裡已討論指標屬性,這兩個元素共用下列額外的屬性,用來標明屬性目標(target)的交互參照或連結的地點:

出現位置/doc
標明可發現被連結地點的文件,內定值為現用文件。
 
起點/from
標明以TEI延申指標語法表現的指標目的地的起點,內定值為屬性出現位置(doc)的所記錄的整個文件。
 
終點/to
標明以TEI延申指標語法表現的指標目的地的終點,只能在已有屬性起點(from)時使用。
內定值為屬性出現位置(doc)的所記錄的整個文件。

用來表現TEI延申指標所指的目的的完整敘述語言,超出本文獻的範圍,用來表現的完整敘述語言,此處只列舉部分常用的特性,更進一步的細節可查閱完整的指引。

只需為屬性出現位置(doc)提供實體名稱做為屬性值,元素<xptr>(或<xref>)即可指向某些其他文件的整體,如下例:


見<外部參照 出現位置="P3">TEI指引,各處</外部參照>

上例假設某些系統或是公共版權物件被宣告的名稱是P3。文獻被分析器處理時,此項宣告己被強迫包含在DTD內,此種方法是針對相關軟體的使用(如「15. 圖解與圖像」中所討論的)。

屬性起點(from)用來標誌任何文件中以屬性出現位置(doc)標誌的某個位置。這種標誌使用一種名為TEI延申指標語法(TEI extended pointer syntax)的特殊語言,此處只提供其中的部分細節。在此一語言中,地點被定義成一連串的步驟,每一步驟試別文件中的某一部份,通常是指每位置是受前一步驟所識別。例如,欲指向第二章第二段第三句,第一個步驟是指向第二章,第二個步驟是指向第二段,最後一個步驟是指向第三句。步驟可使用自己的文獻樹,如以父層、子層、同前一層等,或更寬鬆的以文本樣式、單詞或是字的角度來定義。也可以用外來(非SGML)的標誌,或是座標系統的觀點來標明圖象中的位置。

屬性起點(from)終點(to)使用同種標誌法。每一指標記指向目標文件的部分內容,延申的指標為一個整體,始於起點(from)終於終點(to)

在位置的路徑中,第一步驟通常會標明目的文件中某個元素的識別碼,如下例:


<外部指標 出現位置="P3" 起點='id (SA)'/>

這個元素在P3的中被稱為「SA」。如果需要更好的目的敘述,可再使用其他的元素。下列的關鍵詞可用來敘述本元素和其他元素的之間關係。

選擇文件實體P3中被識別為SA的任何元素。如果需要更細膩的目標,可進一步使用其他的步驟。以下的關鍵詞有助於以相互關係做為選擇元素屬性的依據。

下層元素/child
被此元素包含的元素。
 
上層元素/ancestor
直接或間接包含此元素的元素。
 
上一元素/previous
此元素在同一層中前一個出現的元素。
 
下一元素/next
此元素在同一層中下一個出現的元素。
 
已出現元素/preceding
先於本元素出現,但不在同一元素中。
 
尚未出現元素/following
此元素在不同一層中下一個出現的元素。

每一個關鍵詞對應到一個特定的元素(子元素、父元素、同元素中的前一段等),為標明指向的元素,這些關鍵詞後面可以選擇用括弧來說明。

續上例,以下的參考指標將選擇第三個<段落>元素中,直接以SA識別任何的元素:


<外部指標 出現位置="P3" 起點='id (SA) child (3 p)'/>

類似的情況,假設實體P3確實為TEI指引的XML格式,則指向出版品(假設該出版品存在)中的章節14.2.2的延申參考指標規範的語法定義為:


完整的細節,見<參照 出現位置="P3" 起點='id (SA) child (2 div 2) 
child (2 div 3)'>TEI延伸指標語法定義</ref>

通常,交互參照的範圍完全由屬性起點(form)定義。但在某些文件中,可以簡便地以起始和終止的範圍來定義。如前文所述,屬性終點(to)即為此目的,如下例:


<外部指標 出現位置="P1" 起點='id (xyz)' 終點='id (abc)'/>

這個延申指標的目的是文件P1中以XYZ為起點,以ABC為終點所標誌包夾任何元素,兩者之間任何元素都被包含,與結構無關。但若結尾的ABC在起始的XYZ之前,則為錯誤的指標。

非常複雜的格式可以用這種語法簡單的建立。例如,以下的參考指標將指向最近的<標頭>中語言(lang)屬性值為LAT者,而此元素出現在以SA識別的元素之前:


<外部指標 出現位置="P3" 起點='id (SA) preceding (1 head lang lat)'/>

如果屬性出現位置(doc)沒有屬性值,則假設指向目前的文獻。因此,以下的參考指標在語意上是相同的,都指向目前使用文獻中的X1段落。


<指標 目標="X1"/>
<外部指標 起點='id (X1)'/>

8.3.連結屬性

以下特殊用途的連結屬性是為TEI Lite DTD裡列舉的所有元素定義的:

分析/ana
連結元素與它的分析。
 
對應元素/corresp
連結元素與一或多個與之相對應的元素。
 
下一元素/next
元素同屬一個集叢時,連結到下一個元素。
 
上一元素/prev
元素同屬一個集叢時,連結到上一個元素。

屬性分析(ana)標誌同一文件中分析或詮譯的所在處,進一步的說明在「16. 詮釋與分析」。例如「John loves Nancy」的語言學分析可被標誌如下:


<分割段落 類型="句" 分析="SVO">
  <分割段落 類型="字" 分析="NP1">約翰</分割段落>
  <分割段落 類型="字" 分析="VVI">愛</分割段落>
  <分割段落 類型="字" 分析="NP1">南西</分割段落>
</分割段落>

以上標誌顯示了文件隱含的部分,元素以SVO、NP及VV1為識別代碼,這些特別的代碼解釋了元素的義意。請注意使用元素<分割段落>(<seg>)標誌分析的特殊部件時,是使用屬性類型(type)來區分。

屬性對應元素(corresp)標誌提供簡單的方式,可表現同一文本中兩個元素之間形式上的對應關係。例如,在多語的文本裡,可用來連結對應的翻譯,如下例:


<分割段落 語言="FRA" 識別名稱="FR1" 對應元素="EN1">Jean aime Nancy</分割段落>
<分割段落 語言="ENG" 識別名稱="EN1" 對應元素="FR1">John loves Nancy</分割段落>

同一機制可用在不同的目的。下例中,「該節目」對應到「雪萊」、「該公司」對應到「國家廣播公司」:


<段落><題名 識別名稱="雪萊">雪萊</題名>,於週五首播不過一個月,已經不
在<名稱> 識別名稱="國家廣播公司">國家廣播公司</名稱>的新節目表上,雖
然<分割段落 識別名稱="公司" 對應元素="國家廣播公司">該公司</分割段落>
表示<分割段落 識別名稱="節目" 對應元素="雪萊">該節目</分割段落>仍在考
量之中。</段落>

屬性下一元素(next)上一元素(prev)提供簡便的方式,將不連續的元素連結在一起,如下例:


<引句 識別名稱="Q1a" 下一元素="Q1b">誰打敗你了?</引句>
他終於開口<引句 識別名稱="Q1b" 上一元素="Q1a">你給我閉嘴,該死,我要
殺了你。</引句>他一邊說,發亮的戰斧在黑暗中開始在我身邊揮舞。

上一章 回到目次 下一章


譯自TEI官方網站的TEI Lite網頁:http://www.tei-c.org/Lite/
網頁內容未經任何校訂,恐有疏漏,請勿任意轉載引用
若有任何疏漏及錯誤之處,歡迎來信指正:sofia@gate.sinica.edu.tw