第四章 XTM語法
第四節 <mergeMap>元素相關語法
從名稱上便很容易看出<mergeMap>是用來將兩個不同的主題地圖予以合 併,而合併必然會將數個相同的主題併成一個,連帶影響結合主題的關聯。在處
理合併的問題時,有兩種合併的規則:[Biezunski03]
1. 依 據 主 題 名 稱 的 合 併 規 則 (Topic Naming-constraint-based Merging Rule):若兩個主題具有相同名稱 (baseName),且其適用範圍 (scope) 亦 相同,則這兩個主題會被合併。
2. 依據主題意涵的合併規則 (Subject-based Merging Rule):若兩個主題具 有相同的概念、意涵,亦即在<subjectIdentity>元素中指向相同的主題或 資源時,則這兩個主題會被合併。
以下我們透過三個例子,分別說明合併的語法以及依據兩種合併規則進行合 併的結果。
4.4.1 合併的語法
以下是將兩個主題地圖加以合併的例子:
<mergeMap xlink:href="http://140.113.166.152/novel.xtm">
<topicRef xlink:href="#person"/>
<topicRef xlink:href="#place"/>
</mergeMap>
<topic id="person">
...
</topic>
<topic id="place">
...
</topic>
上例中,我們在<mergeMap>元素裡利用 Xlink 指引出將要合併的外部主題 地圖 “novel.xtm”,並將位於目前主題地圖上的兩個主題— “person” 和 “place”
加入 “novel.xtm” 的 scope,此舉的目的是為了釐清兩個主題地圖間彼此的 scope,亦即確認其 “namespaces”,以避免因為「依據主題名稱的合併規則」而
造成錯誤的合併。
4.4.2 依據主題名稱的合併
就合併而言,除了不同主題地圖間的主題合併,也有同一主題地圖中不同主 題的合併。以下是同一主題地圖中依據主題名稱合併的例子:
[合併前]
<topicMap>
<topic id="PLA125">
<baseName>
<baseNameString>宜蘭縣</baseNameString>
</baseName>
<baseNameString>宜蘭縣</baseNameString>
</baseName>
<baseName>
<baseNameString>噶瑪蘭</baseNameString>
</baseName>
<roleSpec><topicRef xlink:href="#place"/></roleSpec>
<topicRef xlink:href="#PLA125"/>
</member>
<member>
<roleSpec><topicRef xlink:href="#goods"/></roleSpec>
<topicRef xlink:href="#OBJ11"/>
</member>
</association>
<association>
<member>
<roleSpec><topicRef xlink:href="#place"/></roleSpec>
<topicRef xlink:href="#PLA126"/>
</member>
<member>
<roleSpec><topicRef xlink:href="#goods"/></roleSpec>
<topicRef xlink:href="#OBJ11"/>
</member>
</association>
</topicMap>
[合併後]
<topicMap>
<topic id="PLA127">
<baseName>
<baseNameString>宜蘭縣</baseNameString>
</baseName>
<baseName>
<baseNameString>噶瑪蘭</baseNameString>
</baseName>
</topic>
<association>
<member>
<roleSpec><topicRef xlink:href="#place"/></roleSpec>
<topicRef xlink:href="#PLA127"/>
</member>
<member>
<roleSpec><topicRef xlink:href="#goods"/></roleSpec>
<topicRef xlink:href="#OBJ11"/>
</member>
</association>
</topicMap>
上例中,合併前的兩個主題 “PLA125” 和 “PLA126” 都包含「宜蘭縣」這 個主題名稱,且因沒有指定 scope,視為具有相同的適用範圍,故合併成為主題
“PLA127”。而原本和 “PLA125” 及 “PLA126” 有關聯的主題 “OBJ11”,則將關 聯對象改成 “PLA127”。
4.4.3 依據主題意涵的合併
以下是在同一主題地圖中,兩個具有相同意涵的主題進行合併的例子:
[合併前]
<topicMap>
<topic id="PER16">
<baseNameString>鄭成功</baseNameString>
</baseName>
<baseNameString>國姓爺</baseNameString>
</baseName>
</topic>
</topicMap>
[合併後]
<topicMap>
<topic id="PER18">
<baseNameString>鄭成功</baseNameString>
</baseName>
<baseName>
<baseNameString>國姓爺</baseNameString>
</baseName>
</topic>
</topicMap>
上例中,合併前的兩個主題 “PER16” 和 “PER17”,在其<subjectIdentity>
元素中都具有指向 “http://140.113.39.172:20000/comic/PER0063.jpg” 的指標,表
示它們具有相同的意涵,故合併成為主題 “PER18”。