作者:
張騉翔用Semantic Wiki來整理通訊錄
通訊錄是每個人及組織都必需要整理的資訊,底下分析用Wiki、Semantic、Excel及Outlook整理通訊錄的優缺點,並接著以實際範例來說明用Semantic Wiki來整理通訊錄的方式。
項目
| 共享編輯
| 自訂屬性及關連
| 分類功能
| 自訂格式
| 整合性
| 軟體成本
|
Wiki
| 多人共享編輯
| 無
| 用Category語法進行分類
| 簡單方便
| 目前MediaWiki僅提供讀取API
| 開放源始碼
|
Semantic Wiki
| 多人共享編輯
| 有
| 用Category語法進行分類
| 簡單方便
| 除了MediaWiki讀取之API外,亦能匯出成RDF格式
| 開放源始碼
|
Excel
| 無
| 容易新增Attribute,但無特別之Relation作法
| 需自行運用Excel的功能來達成
| 功能強大
| Excel匯出及API功能
| 軟體成本
|
Outlook
| 無
| 不易新增屬性,也無特別之Relation作法
| 內建分類功能,不易擴充
| 不易設計
| Outlook匯出及API功能
| Outlook及Exchange Server軟體成本
|
新增連絡人
我們把每個連絡人看成個別的實體(Individual),在Wiki當中也就是對應到一個頁面;在Wiki要新增頁面可以有以下兩種方式:
- 在搜尋欄打入頁面名稱,然後按「Go」,若此頁面不存在,則會出現「Create this page」的連結,可點入新增內容後存檔。
- 運用連結的方式來建立頁面,在任意的頁面鍵入要產生的頁面連結,例如[[王小明]],若此頁面不存在則可點入新增內容後存檔。
建立每個連絡人都對應到獨立的頁面,若是擔心頁面名稱與組織其他資訊重覆,或是希望在每位連絡人前加上前置詞以區別;可以用兩種方式。
- 運用子頁面(Subpage)的方式,假設要在頁面王小明前面加上連絡人,也就是王小明是連絡人的子頁面,語法是[[連絡人/王小明]],運用斜線來區分出父頁面與子頁面。
- 運用命名空間(Namespace)的方式,命名空間顧名思義,主要避免一個名詞有兩種以上的意義而加以區分,舉例而言業務部門及人事部門可能都會用到[[會議紀錄]]這個頁面而會有命名衝突的情況發生,那麼就可以區分為業務部及人事部的命名空間,讓他們都擁有各自的會議紀錄頁面,實際語法為[[業務部:會議紀錄]]及[[人事部:會議紀錄]],本例為[[連絡人:王小明]],在在命名空間及頁面名稱間加上冒號。
子頁面與命名空間的用法並不衝突,我們可以這樣用[[連絡人:人事部/王小明]];要啟用子頁面的功能,需要網站管理員在MediaWiki軟體的LocalSettings.php設定檔中正確的啟用各個命名空間的子頁面功能。
$wgNamespacesWithSubpages = array( NS_TALK => true, NS_USER => true, NS_USER_TALK => true, NS_PROJECT_TALK => true, NS_IMAGE_TALK => true, NS_MEDIAWIKI_TALK => true, NS_TEMPLATE_TALK => true, NS_HELP_TALK => true, NS_CATEGORY_TALK => true, NS_MAIN => true ); |
要新增新的命名空間,也是同樣在LocalSettings.php檔案中新增。
$wgExtraNamespaces[100]="連絡人"; |
新增連絡人屬性
建立好每個連絡人的頁面後,接下來我們來為每個連絡人新增屬性(Attribute),基本的就有手機、電子郵件、地址…等;增加屬性的語法為[[手機:=0922888666]],符號(:=)前面為屬性名稱,後面為屬性值。底下以表格方式說明屬性的用法。
語法
| 結果
| 說明
|
手機號碼[[手機:=00911222333]]
| 手機號碼手機:=00911222333
| 屬性基本用法,會顯示屬性值。
|
手機號碼[[手機:=00911222456|測試]]
| 手機號碼測試
| 在屬性值後面加入分隔線(|)及後面的文字,在顯示時會顯示後面的文字,與Wiki內部連結用法([[連結|連結顯示名稱]])一致。
|
手機號碼[[:手機:=00911222456|測試]]
| 手機號碼手機:=00911222456
| 將手機:=00911222456看成是一個頁面連結,而不希望Semantic Wiki解析成屬性,那麼就在屬性名稱前加上冒號。
|
電子郵件
[[電子郵件:=wang@wangme.com|[mailto:wang@wangme.com mailto:wang@wangme.com]]]
| 電子郵件[mailto:wang@wangme.com mailto:wang@wangme.com]
| 將屬性值顯示名稱,用Wiki外部連結方式來表達,此例中讓使用者可以點選email連結來寄信。
|
在新增好屬性值後,頁面最下方會出現屬性名稱及屬性值;Semantic MediaWiki的設計中屬性名稱也是一個頁面,並且頁面的內容中要標識屬於哪個型態,例如字串或數字,這樣屬性值才會正確顯示出來。
我們點入手機連結的頁面,會進入到Attribute:手機的頁面,這是Semantic MediaWiki幫我們自動產生的連結,以Wiki完整語法來看是:
[[Attribute:手機|手機]] [[Attribute:電子郵件|電子郵件]] |
我們在Attribute:手機中寫入這個屬性的型態為字串,其語法如下:
[[has type::Type:String]] |
然後再回到連絡人的頁面編輯後存檔即可看到屬性值正確顯示出來;這個動作只需做一次,標識出屬性的型態,往後在其他的面頁再使用手機的型態時,直接存檔即會立即顯示出屬性值。
Semantic MediaWiki預設支援的屬性可以在頁面Special:Types中看到,這部份會在後面的小節中再詳細說明。
假如遇到一個屬性有兩個屬性值,例如一個人有兩支手機,那需要再設計另外一個屬性嗎?例如手機一、手機二。這部份Semantic MediaWiki的作法是一個屬性可以有很多的屬性值,例如在同一頁面鍵入兩個手機號碼,語法如下:
[[手機:=00911222333]] [[手機:=00911222456]] |
呈現結果為:
新增連絡人間關係
Wiki在內部連結的用法為[[頁面名稱]],用雙中括號的語法;Semantic Wiki擴充了內部連結的用法,希望能頁面間的連結加入有意義的描述。例如王爸爸有個頁面,王小明也有個頁面;我們要表達兩個頁面的關係,標識出王爸爸與王小明的父子關係,以目前我們瞭解的作法有兩種。
第一種採用Wiki內部連結的語法,在王爸爸的頁面中有個連結指到王小明的頁面:
另外一種方式是採用分類的作法,將王爸爸與王小明的頁面同分類到某個Category:
然而上述兩種作法,都很難實際的描述出王爸爸與王小明的關係,第一種作法只是在連結的顯示名稱上註明,第二種作法只是將兩者在歸於同一類,也無法明確的表達父子關係。
Semantic Wiki表達關係的語法為:
根據上面的語法,我們可以改寫王爸爸與王小明的頁面關係,在王爸爸的頁面中加以下的語法:
關係(Relation)語法最後的結果與內部連結(Internal link)語法是一樣的,但是多了父子關係::這樣的描述,可以看做將連結進行有意義的分類或是標籤。底下以表格的方式再清楚說明用法:
語法
| 結果
| 說明
|
我的孩子[[父子關係::王小明]]
| 我的孩子父子關係::王小明
| 關係基本用法,顯示王小明的連結。
|
我的孩子[[父子關係::王小明|小明]]
| 我的孩子小明
| 在關係頁面後面加入分隔線(|)及後面的文字,在顯示時會顯示後面的文字,與Wiki內部連結用法([[連結|連結顯示名稱]])一致。
|
我的孩子[[:父子關係::王小明|小明]]
| 我的孩子父子關係::王小明
| 將父子關係::王小明看成是一個頁面連結,而不希望Semantic Wiki解析成關係,那麼就在關係名稱前加上冒號。
|
要注意的是關係本身也是一個頁面,當我們產生[[父子關係::王小明]]連結時,Semantic MediaWiki會幫我們產生以下的頁面,以方便加入關係的描述供未來重複使用:
新增連絡人所屬類別
在Ontology中的Classes意義為特定領域的觀念或是分類,在Semantic MediaWiki中的方式是採用現有Wiki的Category語法來實作,其語法如下:
若不是要進行分類,而是要產生分類的連結,多加個冒號即可:
Category在使用上的幾點備忘:
- 每篇文章(條目)可以有多個分類。
- 分類(Category)本身也是一篇文章,可以描述此分類的意義或相關內容。
- 每個分類也可以再屬於多個分類,所以分類的系統是屬於網狀的。
- 分類間的循環分類是允許的,例如[[Category:網站]]被分類為[[Category:Web]],而[[Category:Web]]又被分類為[[Category:網站]]。
- MediaWiki軟體可以設定讓文章出現的Category名稱用樹狀的方式,針對每個Category可以列出上層的Category以方便瀏覽,在LocalSettings.php檔案中新增參數
$wgUseCategoryBrowser=true;
呈現的方式為:
結語
在本文中我們討論了Semantic
MediaWiki這個新發展的MediaWiki外掛;使得MediaWiki軟體具有支援Semantic Web的功能;Semantic
MediaWiki目前為0.7版,目前還屬非常新的軟體,在每次更新時都有大變動,並且在國外也是只有少數網站使用,然而Semantic
MediaWiki結合Semantic Web與Wiki,使得Semantic Web的理念易於落實,故分享給讀者瞭解。