• 沒有找到結果。

<mergeMap>元素相關語法

第四章 XTM語法

第四節 &lt;mergeMap&gt;元素相關語法

從名稱上便很容易看出<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”。