:::

以標註為基礎的後設資料之應用

布丁布丁吃布丁

以標註為基礎的後設資料之應用

clip_image002

先把感想寫在前面。

這次期末報告我打算都把它跟我在研究的標註扯上關係。資料探勘讀論文、檔案學提出新應用,而知識組織與資訊取用則是試著整理一下之前所讀的論文,列舉一些與圖書館、資訊系統相關的應用方向。最後提出未來發展時,再接著我自己的論文。有點像是回頭來為我自己的論文鋪路一樣。

老實說,這並不是一篇好的報告。因為時間有點趕,而且方向又不明確,寫起來並不是特別的好,閱讀時請斟酌取用。


壹、 前言

後設資料(Metadata)應用於數位環境已經行之有年,最早從2000年前古挨及的亞歷山大圖書館目錄就已經開始使用。直到1960年代才有後設資料的名詞出現,並於1970年代用於資料庫管理。對圖書資訊學領域來說,1990年代中期後設資料已經成為十分重要的議題。(Chowdhury, 2007)

後設資料的應用範圍多樣化,從圖書館的資源編目、資訊資源的檢索查找、電子商務管理與標準化、內容分級、智慧財產權與隱私政策等管理。不同的後設資料標準支援不同的目的需求,在數位典藏範疇裡,使用者需要借助後設資料協助他們找尋、辨識、選擇、獲取史與詮釋數位資源。(陳淑君, 2003)

自從Michael Casey與Laura Savastinuk(2006)在圖書館期刊(Library Journal)發表一篇以「圖書館2.0」(Library 2.0)為題名的文章闡述次世代圖書館服務開始,圖書館的運作架構逐漸改變。John Blyberg(2006a)圖書館2.0提出了一個簡單易懂的解釋:「圖書館2.0在館員之間或者是館員與讀者之間深受科技導向、雙向、及社交互動(social interactions)的影響。圖書館2.0提供了一個架構,在這架構裡頭我們能夠以易用性(usability)及易查性(findability)的目標來重新評估傳統圖書館管經營的每一個面向。」在圖書館2.0的潮流中,發展出許多「以使用者為中心」的應用,包括訊息發佈平台網誌(blog)、簡易資源聯合組織中心(Really Simple Syndication,RSS)訂閱、多人協同創作平台維基(wiki)、混搭(mash up)各種網頁服務(web services/APIs)、或是整合社會性軟體的功能,例如為資源增加通俗分類(folksonomy)。(林泰宏, 2006b)

同樣地,由資源創作者或建立者來建置後設資料已經不再是唯一的途徑。標註(annotation)——伴隨讀者閱讀時最常見行為——將是一種以讀者為中心的另一種後設資料類型。隨著科技的進步,讀者原本在紙本上撰寫標註的情境(如圖 1)已經可以實作到網頁實作上(如圖 2)。由讀者標註所建置的後設資料,有別於圖書館員的建置角度,能夠反映出最終使用者的看法,並且融合各種不同的觀點,而激發出多方面的應用。

clip_image002[4]

1 紙本上的標註

(資料來源:Marshall, 1998)

clip_image002[6]

2 iMACK網頁標註工具

(資料來源:BP Logix, 2008)

Agosti、Ferro、Frommholz與Thiel(2004)認為所謂的標註作為後設資料,意思就是可以將標註視為一種添增在既有資料之外的資訊。從語意的觀點來看,後設資料的主要特徵在於把後設資料跟物件本身做連結;而標註擁有類似的連結效果。因此,標註也是一種「資料的資料(data about data)」。網際網路聯盟(World Wide Web Consortium, W3C)也把標註當作是一種後設資料。W3C提出標註可以當作是語意網(Semantic Web)中處理並關聯後設資料與內容的初步(Kahan, Koivunen, Prud'Hommeaux, & Swick, 2002)。舉例來說,就像是Annotea Project(2003a)、延伸性多形式標註(Extensible MultiModal Annotation, EMMA)標註語言(2003b)。有些系統把標註作為一種書籤的延伸,也是擁有一樣的意義。而標註也是用於描述、組織、分類並搜尋這些書籤。此外,電腦自動產生的標註也可以視為後設資料。有些電腦會從文件中抽取出來的摘要句子或是重要片語,而這些資料則強調了文件中的關鍵段落。

本文將介紹以標註為基礎的後設資料之應用,首先先介紹標註系統運作,以臺灣百年圖書館史暨數位圖書館先導計畫中應用標註系統為例子(國立政治大學圖書資訊與檔案學研究所, 2008)。接著探討以標註為基礎的後設資料在不同領域的應用,包括數位圖書館、知識管理系統與社會指引支援(social navigation support,SNS)。最後本文提出一些標註的未來發展與應用,以激發後人想法的基石。

貳、網頁標註系統簡介

一、標註系統發展

標註是使用者將閱讀過程、知識與策略以劃線、作記號、加入註解、用螢光筆強調以保留在文獻上的常見行為。標註現象自古有之,例如批注一直都是中國文學鑑賞與評論的重要形式和傳統的有效讀書方法之一(常唯, 2008)。韋氏線上辭典(2008)將標註定義為「為了評論或解釋而增加的注解」。標註是一種事物做額外的描述或語意上的加註(Grønbæk, Sloth, & Ørbæk, 1999)。Marshall(1998)認為標註的本質與超文本(hypertext)相同,讀者以標註的行為來增加注釋、建立新的連結或閱讀路徑、蒐集並解釋文件,為文件的結構與內容添增新的價值。

早期的標註都是在紙本上進行。中古世紀的手抄時代,學者利用行距之間與文件邊欄的標註,達到分享知識、辯證所讀文獻內容以及記錄不同閱讀策略的功能。然而在進入印刷時代之後,個人取得書籍複本的成本降低,每個人都可以在自己的書上進行標註,但卻也造成標註難以分享的情況。儘管如此,Mariolina Salvatori(1996)等教師也以影印學生閱讀並標註過的講義,作為討論不同閱讀過程的教學策略。

隨著數位時代的到來,越來越多軟體與工具都具備標註的功能,包括主流文件閱讀器Adobe Acrobat Pro(Adobe Systems, 2009)跟亞馬遜線上購物(Amazon.com)推出的第二代Kindle電子書(Amazon.com, 2009b)。但如果讀者想要使用標註,必須先經過購買軟體跟工具的門檻。而且對於數位圖書館系統來說,這些方法也難以讓每個讀者都能享用這些功能。

clip_image002[8]

圖 3 Adobe Acrobat Pro的標註功能

(資料來源:Adobe Systems, 2009)

clip_image004

圖 4 使用Kindle電子書插入書籤跟標註

(資料來源:Amazon.com, 2009)

歸功非同步JavaScript與延伸性標記語言(Extensible Markup Language,XML)運作模式(Asynchronous JavaScript and XML,AJAX)的技術發展,得以在普遍使用的超文件標註語言的(HyperText Markup Language,HTML)網頁上實作標註功能。陳聯(2006)介紹了實作網頁標註工具的常見架構,可允許讀者在Microsoft Internet Explorer等瀏覽器中對任意伺服器上的網頁直接地進行標註,而且可任意指定標註位置,標註資料與被標註的網頁分別儲存,還具備標註的修改、刪除和移動,以及標註資料的共享與重組等功能。圖 3描述此標註工具模型的運作流程,共有6個步驟:

  1. 客戶端(client)登入到標註伺服器後,提交被標註頁面的網址到標註伺服器;
  2. 標註伺服器傳回到該網址相關的標註訊息;
  3. 客戶端根據網址重新定向到被標註伺服器;
  4. 被標註伺服器傳回該網址對應的網頁頁面到客戶端;
  5. 在瀏覽器中,被標註網頁頁面一旦讀取完畢,再將步驟2回傳的標註資料嵌入到被標註網頁的HTML程式碼中;
  6. 當有新增或修改的標註訊息,即儲存於標註伺服器中。

image

5 標註工具模型運作流程

(資料來源:陳聯, 2006)

二、「臺灣百年圖書館史」數位圖書館的標註系統

政治大學圖書資訊與檔案學研究所發展「臺灣百年圖書館史」數位圖書館典藏臺灣近百年來關於圖書館的事業、教育、人物、建築以及各類文件,並整合標註系統以作為數位學習應用之初探,如圖 4。

clip_image002[12]

6 「臺灣百年圖書館史」數位圖書館標註系統

(資料來源:C. Chen et al., 2008)

「臺灣百年圖書館史」數位圖書館的標註系統允許多位讀者為典藏內容資源增加注釋(add comment)、畫底線(underline)。注釋有四種類別可以選擇,包括為標註對象添增「解釋(explanation)」、「同義詞(synonym)」、讀者自己的「評論(comment)」或是加入「超連結(hyperlink)」以引用站外的資源。此外,讀者可對於他人的標註進行投票(vote)以選出最受讀者認同的標註,以實現讀者之間的互動情境。整體標註系統的運作程序如圖 5,大致上可分成7個步驟,條列如下:

  1. 使用者使用瀏覽器以網址(Uniform Resource Locator,URL)向伺服器請求「臺灣百年圖書館史」數位圖書館典藏的網頁;
  2. 「臺灣百年圖書館史」數位圖書館伺服器向資料庫請求資料;
  3. 「臺灣百年圖書館史」數位圖書館伺服器回傳原始的HTML網頁給讀者;
  4. 「臺灣百年圖書館史」數位圖書館系統將網址傳遞給標註服務模組(annotation service module);
  5. 標註服務模組依據網址從標註資料庫當中取得該網頁的標註資訊;
  6. 接著標註服務模組利用JavaScript技術整合原始網頁與標註資訊。
  7. 最後,將整合原始網頁與標註資訊的網頁回傳給讀者,以供讀者閱讀標註。

clip_image002[14]

7 「臺灣圖書館史」數位圖書館標註系統運作架構圖

(資料來源:C. Chen et al., 2008)

為了實現「臺灣圖書館史」數位圖書館標註系統,該系統為注釋與底線發展了兩種不同的後設資料。表 1跟表 2列出注釋(comment)與底線(underline)的後設資料,兩者均有系統辨識號碼、標註資源的網址、標註對象的內容、標註的時間與下標註的人,而注釋則多加了類型與投票分數這兩個欄位。

1 「臺灣百年圖書館史」數位圖書館標註系統的注釋(comment)後設資料

(資料來源:C. Chen et al., 2008)

欄位名稱

資料類型

欄位內容

ID

整數

注釋的系統辨識號碼,由系統自動給號。

URL

字串

記錄增加注釋的網址。

Content

字串

記錄那些內容被作為注釋的對象。

Type

整數

記錄注釋的類型。1為解釋(explanation);2為同義詞(synonym);3為評論(comment);4為超連結(hyperlink)。

Time

時間

增加注釋的時間。

Author

整數

增加注釋的作者辨識號碼。

Score

整數

讀者對此標註投票的分數,初始值為0。

2 「臺灣百年圖書館史」數位圖書館標註系統的底線(underline)後設資料

(資料來源:C. Chen et al., 2008)

欄位名稱

資料類型

欄位內容

ID

整數

底線的系統辨識號碼,由系統自動給號。

URL

字串

記錄畫底線的網址。

Content

字串

記錄那些內容被作為畫底線的對象。

Author

整數

畫底線的作者辨識號碼。

Time

時間

畫底線的時間。

「臺灣百年圖書館史」數位圖書館的標註系統呈現了標註系統的基本運作與架構,讀者能以標註系統為基礎為文件新增後設資料、閱讀其他讀者分享的知識,以達到更深層的閱讀與反思。

參、網頁標註系統應用

除了閱讀資訊資源之外,也有其他研究將基於標註的後設資料應用到不同的環境當中,而開發出標註的各種功能與意義。本章將介紹三種不同的應用情境,包括數位圖書館、知識管理系統與社會指引支援,藉以探討以標註為基礎的後設資料的各種可能性。

一、標註應用於數位圖書館

標註不僅應用於教育領域,對於標註與數位文件有許多研究的Marshall(1997)認為「標註在數位圖書館當中不僅非常合適,而且更可以成為典藏文獻的重要附屬品。」Agosti等人(2004)提出標註應用於數位圖書館與合作的運作模型,他們提出在數位圖書館中建立標註具有兩種意義:當讀者在典藏的資訊資源上新增註解的時候,資源本身就會成為新的資訊資源;其次,註解本身可以協助創造新的資訊資源。

Arko、Ginger、Kastens等人(2006)發展的地球系統教育數位圖書館(Digital Library for Earth System Education,DLESE)將標註應用於六種功能:

  1. 結合社群:標註提供圖書館讀者一種比較快速與簡單的方法,讓他們可以提供他們的經驗與專業知識,而不需要熟悉系統的後設資料架構與編目的方法。
  2. 保留四散(diffuse)與短暫(ephemeral)資訊:標註保留讀者的各種短暫的看法,不讓他們散布在各種暫存媒體(如對談、電子郵件)當中。當這些資訊以結構化的方式呈現,他將可以保存在圖書館當中,而且更容易被查找。在DLESE當中,這些看法也許包含珍貴且具有教育意義的內容知識,例如如何利用這些教育資源進行教學的知識。
  3. 增加系統彈性:跟特定資源建立關聯的標註可以快速增加與修改,而不需要固定資源或是耗費人力去改版。這可增加圖書館的系統彈性與關切的意願。對於任一資源來說,標註都沒有數量的上限。
  4. 第三方的專業判斷:標註提供了個人與團體組織化的方法去描繪資源是否或著是如何貼近團體的特定專業。舉例來說,歷史科學的專業團體可以使用標註去判斷資源的歷史觀點是否過時。
  5. 服務特定讀者群:標註允許讀者社群強調有興趣的給特定的讀者。在像是「標註的合集(annotated collection)」當中,每個標註都帶出了只有特定讀者群才會感興趣的資訊。舉例來說,有個人,可以想像成是紐約市(New York City)的教育學家,他標註了大型圖書館當中的關於冰河時期的物理現象,而學生就可以藉此觀察中央公園(Central Park)的冰川條紋(glacial striation)。
  6. 傳播讀者評閱的結果:讀者對於資源評閱的方式有的是評分(例如1到5分)、敘述摘要、紅筆給分、或是其他格式。

DLESE設計了一套完整的後設資料基礎結構,可用於不同類型教育資源、合集與標註的圖書館編目。標註後設資料記錄包含教育資源的額外資訊。標註跟資源本身分開保存,並由資源的建立者或是使用者所撰寫。DLESE標註架構第1.0.00版本將標註定義為「為跟相關特定教育資源增加適合的內容或是後設資料」。這個架構擁有以下四點特色與需求:

  1. 每筆標註記錄只允許一筆標註,而且只能標註一個地球系統資源。
  2. 標註後設資料跟資源的關聯是透過資源的分類號,而不是網址。
  3. 標註的後設資料記錄也許是將標註資料全部包含在裡面,或著是利用網址參考到標註所在的外部資源。
  4. 任一地球系統資源,都允許擁有任意數量的標註記錄。

詳細標註架構的後設資料定義如表 3,「+」表示必備欄位。利用此以標註為基礎的後設資料,便可以實現上述DLESE的六個標註的應用功能。

3 DLESE標註架構後設資料

(資料來源:Arko et al., 2006)

欄位名稱

欄位說明

+Service

讓這個標註可以取用的服務、組織或個人的名稱。

+Record ID

標註記錄的辨識號碼。

Title

標註的全名。

Status

控制詞彙:處理中(In progress)、完成(Completed)、移除(Retired)。

+Date created

建立標註記錄的日期。

Date contributed

標註記錄遞交給圖書館的日期。

Date modified

更新標註記錄的日期。

+Item ID

被標註的資源的分類號。

+Contributor

撰寫標註的個人或組織。

+Type

控制詞彙:評估策略(Assessment strategy)、偏見(Bias)、引人注目(Challenging audience)、評論(Comment)、編者文摘(Editor's summary)、教育標準(Educational standard)、舉例(Example)、誤解(Misconception)、量化資訊(Quantitative information)、回顧(Review)、參見(See also)、技巧(Skill)、教學提示(Teaching tip)。

+Content

標註的內容,可是是文字、網址或是對於資源的評分。

Format

控制詞彙:聲音(Audio)、圖像(Graphical)、文字(Text)、影像(Video)。

Context

標註直接應用的頁面(以網址呈現)。

More info

額外的資訊,以一個或多個XML文件呈現。

Share

指示是否作者的姓名跟電子信箱會在DLESE使用者介面當中顯示。

+表示必備欄位

二、標註應用於知識管理平台

資訊爆炸的現代,使用者難以從大量的文件當中整理出有用的知識。標註是基於大量使用者累積的資訊,基於標註的後設資料搭配資料檢索的技術,將可以建立一套知識管理工具,除了使得文件搜尋更有效率,更可以結合標註知識的分享,提昇使用者對於文件的瞭解程度。

徐濟世與梁桂豪(2007)發展的運用正規概念分析法的動態知識管理平台,是將使用者透過Annotea標註系統(Kahan et al., 2002)所撰寫的標註內容,運用正規概念分析法(Formal concept analysis)並且透過不同構面間的轉換所建構而成的概念點陣(Concept Lattics),達到建造知識架構、加強資訊檢索之目的。此平台具有以下三種特色:

  1. 可以提供使用者不同的搜尋途徑。再藉由不同構面的交叉比對而引入更多的概念層級,以找出符合使用者需求的文件;
  2. 透過概念點陣以整理知識片段,並以其知識片段之關鍵字做為分類依據,使得類別架構能夠根據資訊增加而具有彈性,以增加讀者對文件內容架構之瞭解。圖5呈現了10份文件的概念點陣圖;
  3. 使用者在搜尋出文件後,此文件會包含其他人對於此文件所下的註解知識,使註解者能更加快瞭解文件之重要部分,更提昇知識再被利用的機率。

clip_image002[16]

圖 8 動態知識管理平台的點陣概念圖

(資料來源:徐濟世 & 梁桂豪, 2007)

為了能將標註知識有效的分享與再利用,就必須將標註知識規範一套共通的標準,讓傳遞資料時方便溝通。動態知識管理平台的註解知識庫,依據Annotea的概念,設計一套後設資料作為標註知識記錄的格式(Koivunen & Swick, 2003)。在查詢的功能方面,則是運用都柏林核心(Dublin Core,DC)的著錄格式欄位,使得後設資料的名稱空間(namespace)能夠統一並具備跨平台、跨資料庫的能力(Apps & MacIntyre, 2000)。此平台的標註知識描述相關的後設資料參考DCMI(Dublin Core Metadata Initiative)的共通標準設計,詳細欄位如表 4。

4 動態知識管理平台的註解知識庫

(資料來源:徐濟世 & 梁桂豪, 2007)

欄位名稱

欄位內容

Annotator

註解建立者

Date

註解建立日期

Identifier

可以用來唯一識別此註解知識出處的識別碼,本研究以文章標題作為辨識此註解出處的文件來源

Highlight

註解時所選取的原始文章段落;DCMI內並不包含此屬性,為因應系統需求所新增

Description of Annotation

註解者對於原始文章段落內容所做的文字性描述

Keywords

通常以關鍵字或片語來描述此註解或文章段落內的主題或內容

三、標註應用於社會指引支援

標註能夠保留許多使用者對於資源的看法,而這種反映眾人行為,成為指引後人的線索;或著說是以使用者為中心,而非系統設計者獨斷決定的系統設計,統稱為社會指引支援(social navigation support,SNS)。(Dieberger, Dourish, Hoeoek, Resnick, & Wexelblat, 2000)著名的社會指引支援系統包括亞馬遜線上購物(Amazon.com, 2009a)的合作過濾推薦書籍、Yahoo!奇摩拍賣(2009)的評分制度。許多研究也將標註結合社會指引支援的概念,發展出各種以標註為基礎,用來引導後來讀者的後設資料。

Bateman、Farzan、Brusilovsky、McCalla(2006)所開發的多人合作式開放標註與標籤系統(OATS)用顏色來展現出社會指引支援的效果,以螢光筆強調的顯示畫面也可以看到所有人對文獻中各文字的共識程度。他們將社會指引支援的概念應用在標註中,稱之為社會標註支援(social annotation support)。OATS以四種不同等級代表不同的共識程度:沒有人強調(0人)、低程度強調(1到3人)、中程度強調(4到8人)或是高程度強調(9人以上強調)。從圖 5課程管理系統iHelp結合OATS所展示的社群用螢光筆強調的畫面中可以看到,共識程度用視覺化的顏色表現出來,越深的顏色表示共識程度越高。

clip_image002[18]

9 在OATS工具中顯示出讀者社群用螢光筆強調的支援

(資料來源:Bateman et al., 2006)

Farzan與Brusilovsky(2005)發展一套基於社會指引支援概念的知識海(Knowledge Sea)計畫,透過使用者點閱次數(該系統稱之為「足跡(footprint)」)多寡的具體呈現,協助學生在介紹程式的課程中,在數以百計的線上網頁當中找到最相關的閱讀教材。知識海系統當中,學生可為每個教材加入注釋(note)或標亮(highlight)特定段落,注釋還可以設定類型,包括單純的注釋、有問題的注釋(反對的注釋)、很棒的注釋(贊成的注釋)這三種,而注釋的正反面看法則會影響教材的溫度(temperature)。知識海系統便以這些以標註為基礎帶有學生看法的後設資料,再提供給後來的學生作為參考。

clip_image002

圖 10 第二代知識海教材的標註列表介面

(資料來源:Farzan & Brusilovsky, 2005)

肆、結論與未來發展

本文探討了以標註為基礎之後設資料的應用。標註的應用已經不僅僅只是單純的記事,還可以達到結合社群、強化資訊檢索、提供社會指引支援等多樣化的功能。其應用層面之廣泛,值得未來繼續研究開發。

儘管標註具有上述的重要價值,數位圖書館應用標註的開發速度依然沒有什麼進展。Arko(2006)等人認為這是由於標註的後設資料沒有被廣泛接受,標註沒有標準的協定,或是建立標註的後設資料工具沒有被廣泛採用,例如Annotea (Kahan et al., 2002)或是Critlink(Yee, 2002)等標註工具。而大多數數位圖書館建立者也尚未考慮整合標註到系統的介面。最關鍵的是,使用者尚未習慣在數位圖書館裡面看到標註資訊,也還沒想到要怎麼利用標註達到創新的利用。

基於標註的後設資料之應用,多屬於被動地提供資訊給使用者參考,並沒有主動協助使用者的應用。就如陳志銘教授(2008)所建議的,未來標註的研究應進一步利用標註在閱讀方面的特色,從基於標註的後設資料中萃取以學習理論為基礎的閱讀知識,搭配閱讀策略進而回饋給讀者,以達成提昇讀者閱讀成效的效果。

參考文獻

  • Adobe Systems. (2009). create PDF, graphic file format. Adobe Acrobat 9 Pro. Retrieved January 12, 2009, from http://www.adobe.com/products/acrobatpro/.
  • Agosti, M., Ferro, N., Frommholz, I., & Thiel, U. (2004). Annotations in Digital Libraries and Collaboratories-Facets, Models and Usage. LECTURE NOTES IN COMPUTER SCIENCE, 244-255.
  • Amazon.com. (2009a). Amazon.com. Amazon.com. Retrieved January 12, 2009, from http://www.amazon.com/.
  • Amazon.com. (2009b). Kindle: Amazon's Wireless Reading Device. Amazon.com.
  • Apps, A., & MacIntyre, R. (2000). zetoc: a Dublin Core Based Current Awareness Service. LECTURE NOTES IN COMPUTER SCIENCE, 1923, 93-102.
  • Arko, R. A., Ginger, K. M., Kastens, K. A., & Weatherley, J. (2006). Using Annotations to Add Value to a Digital Library for Education. D-Lib Magazine, 12(5), 1082-9873.
  • Bateman, S., Farzan, R., Brusilovsky, P., & McCalla, G. (2006). OATS: The Open Annotation and Tagging System. the Proc. of I2LOR ‘06, Montreal. Retrieved from http://fox.usask.ca/files/oats-lornet.pdf.
  • BP Logix. (2008). Business Process Automation, eForms & Workflow Software. BP Logix. Retrieved January 12, 2009, from http://www.bplogix.com/.
  • Casey, M. E., & Savastinuk, L. C. (2006). Library 2.0: Service for the Next-Generation Library. Library Journal, 131(14), 3.
  • Chen, C., Wang, M., Tsay, M., Zhang, D., & Chen, Y. (2008). Developing a Taiwan Libraries' History Digital Library with Reader Knowledge Archiving and Sharing Services Based on DSpace Platform. In LNCS conference proceeding.
  • Chowdhury, G. (2007). Organizing Information: From the Shelf to the Web. London: Facet.
  • Dieberger, A., Dourish, P., Hoeoek, K., Resnick, P., & Wexelblat, A. (2000). Social navigation: techniques for building more usable systems. interactions, 7(6), 36-45.
  • Farzan, R., & Brusilovsky, P. (2005). Social Navigation Support Through Annotation-Based Group Modeling. LECTURE NOTES IN COMPUTER SCIENCE, 3538, 463.
  • Grønbæk, K., Sloth, L., & Ørbæk, P. (1999). Webvise: browser and proxy support for open hypermedia structuring mechanisms on the WWW. InterMedia.
  • Kahan, J., Koivunen, M. R., Prud'Hommeaux, E., & Swick, R. R. (2002). Annotea: an open RDF infrastructure for shared Web annotations. Computer Networks, 39(5), 589-608.
  • Koivunen, M. R., & Swick, R. R. (2003). Collaboration through annotations in the semantic web. Annotation for the Semantic Web, 46-60.
  • Marshall, C. C. (1997). Annotation: from paper books to the digital library. In Proceedings of the second ACM international conference on Digital libraries (pp. 131-140). ACM New York, NY, USA.
  • Marshall, C. C. (1998). Toward an ecology of hypertext annotation. In Proceedings of the ninth ACM conference on Hypertext and hypermedia: links, objects, time and space---structure in hypermedia systems: links, objects, time and space---structure in hypermedia systems (pp. 40-49). ACM New York, NY, USA.
  • Merriam-Webster. (2008). annotation. Merriam-Webster Online Dictionary. Retrieved December 13, 2008, from http://www.merriam-webster.com/dictionary/annotation.
  • Salvatori, M. (1996). The" Argument of Reading" in the Teaching of Composition. Argument Revisited, Argument Redefined: Negotiating Meaning in the Composition Classroom.
  • W3C. (2003a). Annotea project. Annotea project. Retrieved January 11, 2009, from http://www.w3.org/2001/Annotea/#overview.
  • W3C. (2003b, December 18). EMMA: Extensible MultiModal Annotation markup language. W3C Working Draft. Retrieved January 12, 2009, from http://www.w3.org/TR/2003/WD-emma-20031218/.
  • Yee, K. P. (2002). CritLink: Advanced Hyperlinks Enable Public Annotation on the Web. In CSCW 2002 conference, New Orleans, December.
  • 林泰宏. (2006a, April 5). Library 2.0:衝破障礙. Library Views 圖書館觀點. Retrieved January 12, 2009, from http://libraryviews.blogsome.com/2006/04/05/299/.
  • 林泰宏. (2006b). 2.0 時代的圖書館 - Web 2.0、Library 2.0 介紹. 中華民國圖書館學會電子報, (2006 No.2). Retrieved January 12, 2009, from http://www.lib.pu.edu.tw/~jiang/LAROC/LAROC_enews_2006430.htm.
  • 徐濟世, & 梁桂豪. (2007). 以正規概念分析法為基礎之動態知識管理平台
    . In 第十八屆國際資訊管理學術研討會 (pp. 233-234). 銘傳大學.
  • 國立政治大學圖書資訊與檔案學研究所. (2008, December 23). 主頁. 臺灣百年圖書館史數位圖書館先導計畫. Retrieved January 12, 2009, from http://tlh.lias.nccu.edu.tw:8080/dspace/.
  • 常唯. (2008). 論網絡環境下用戶標注的價值與應用. 圖書情報工作, (1). doi: CNKI:SUN:TSQB.0.2008-01-005.
  • 陳淑君. (2003, July 3). METADATA理論與實務. Retrieved January 11, 2009, .
  • 陳聯. (2006). Web頁面標注模型及其實現. 計算機工程與設計, (11). doi: cnki:ISSN:1000-7024.0.2006-11-045.
  • 雅虎資訊. (2009). Yahoo!奇摩拍賣. Yahoo!奇摩. Retrieved January 12, 2009, from http://tw.bid.yahoo.com/.
(more...)

Collaborative knowledge construction in the web supported

Collaborative knowledge construction in the web supported

image

Cobos, R., & Pifarré, M. (2008). Collaborative knowledge construction in the web supported by the KnowCat system. Computers & Education, 50(3), 962-978.

原文出處(Science Driect)、布丁的pdf註解簡報檔ptt 

資料探勘期末報告的論文,但矛盾的是篇論文的作法跟資料探勘無關,而是一個很嚴謹的質性研究內容分析法。

摘要

這篇研究是在講一種電腦中介合作式學習系統KnowCat的改良方法。

KnowCat具有三種教育相關的特色:

一、學生可以分享並討論他們的文件,讓它們可以找出它們同學以完成某些工作。

二、學生可以對系統中任意文件發表它們的看法,這些看法將提供本研究詳盡的質性資料,鷹架,可以給另一個學生改善她的功課。

三、KnowCat系統支援將基於特定知識轉化成願景的知識結晶化,可以由它們參與互動的結果組成社群知識。

而這篇研究則是利用學生在使用KnowCat時候對於教材、學生個人報告所發表的意見來進行分析,包括文字上的敘述(在此稱為標註annotation)與改善程度。

文字內容分析採用編碼法,因此可以歸納出五個類別,個別為解釋(explanation)、支持(Support)、添加(Addition)、刪除(Delete)、修正(Correction),再加上結論建議的疑問(Question),共有六種類別。這種標註屬於讀者對作者建議的情境,而我的論文屬於讀者對讀者的情境,略有差異。


報告內容預覽

來比較一下Google Doc經理人分享+的差別吧!

Google Doc:讀取速度慢,非常吃資源。老實說我上傳完之後,幾乎不太願意再打開檢查。

經理人分享+:要發布之後才知道效果如何?

等待經理人分享+處理完畢之後,大家可以在回應欄反映一下意見,建議我選擇哪一種預覽方式比較好吧。

2009年2月6日新增內容:過年期間經理人分享+似乎不太買帳,年後又重新上傳了一遍,現在結果如上。可知道Google文件的操作畫面比較友善,但是經理人分享+轉換成圖片之後的位置則讓投影片比較清楚,而且資源似乎也沒有Google文件來得兇,因此單就預覽這個方式來說,經理人分享+是比較合適的。但是把文件轉換成Google文件上傳,則比較容易讓Google等搜尋引擎找到,資料容易透通。

總結以上,我會繼續使用Google文件來上傳吧。

不過為了防止Google文件一開啟就要吃掉很多資源,我想我還是設計一個開關來用好了。嗯……要怎麼做好呢?

(more...)

用手機發佈部落格

布丁布丁吃布丁

2 Comments

用手機發佈部落格

這種感覺比較像是在寫Blog,不過這種圖文加一句話的方式,我好像習慣用在Plurk上啊 (more...)

政治大學圖書資訊與檔案學研究所98學年度碩士班招生

布丁布丁吃布丁

政治大學圖書資訊與檔案學研究所98學年度碩士班招生

一年一度的研究所考試招生的時間又來囉,歡迎大家來報名我念的政大圖檔所,讓我們一起為學術研究奮鬥吧!

報名日期為98年1月6日至12日招生簡章下載招生簡章全系所PDF(備份)、招生簡章圖檔所PDF。以下是詳細內容,圖資組與檔案組個別敘述:

所別 圖書資訊與檔案學研究所
組別 圖書資訊組
身份別 一般生
招生名額 6名
系所組代碼 1141
報考特定資格 (無填寫)
考試項目及佔總成機比例
佔分比例 科目名稱 加重計分
筆試50% 一、國文
二、英文
三、資訊與電腦概論
四、圖書資訊學
(無)
口試50% 參加資格 依筆試成績擇優選取至多18名參加口試
日期時間 4月17日【星期五】
上午9:00開始
地點 圖書資訊與檔案學研究所辦供室
其他規定事項 ※詳細口試時間及地點,於口試前3日公佈於本所網站 (http://www.lias.nccu.edu.tw)。
總成績同分之參酌依據 1. 圖書資訊學成績
2. 資訊與電腦概論成績
聯絡資訊 電話:(02) 29393091分機62952吳助教
網址:http://www.lias.nccu.edu.tw

所別 圖書資訊與檔案學研究所
組別 檔案學組
身份別 一般生
招生名額 2名
系所組代碼 1142
報考特定資格 (無填寫)
考試項目及佔總成機比例
佔分比例 科目名稱 加重計分
筆試50%

一、國文
二、英文
三、臺灣史

四、檔案學

(無)
口試50% 參加資格 依筆試成績擇優選取招生名額之至多3倍人數參加口試
日期時間 4月17日【星期五】
上午9:00開始
地點 圖書資訊與檔案學研究所辦供室
其他規定事項 ※詳細口試時間及地點,於口試前3日公佈於本所網站 (http://www.lias.nccu.edu.tw)。
總成績同分之參酌依據 1. 檔案學成績
2. 臺灣史成績
聯絡資訊 電話:(02) 29393091分機62952吳助教
網址:http://www.lias.nccu.edu.tw

image

報考科目當中,圖資組維持原樣,倒是檔案組考「臺灣史」引起了不少人的關切。薛老師上課時常常在說我們對臺灣史都不熟,不禁想問一下老師是不是不知道我們國中時唸過的「認識台灣 歷史篇」(讓我想起了李麗英老師跟葉姿佳老師)。不過對於學術研究來說,國中課本的知識量可能不足,此外似乎也有很多爭議的歷史,是我後來看到其他人討論時才知道的,可能課本也沒辦法敘述的很詳盡吧。

話說回來,檔案組的臺灣史是不是代表比較偏頗歷史系的學生呢?相較之下圖資組仍是圖資學與電腦學並重,維持原樣。在圖資學越來越多使用電腦技術的潮流中,如果再招收不到擁有電腦技術的學生,研究方向應該還是有限。準確來說,如果沒有學生幫老師管理伺服器,那麼我也會很擔心這些伺服器的安危!可是招生的事情不是我決定就是,說說罷了。

根據謠傳,現在圖資研究所報考人數逐漸下降中,這是各系所都遭遇到的相同問題,不知道是不是都捨棄推甄而改走考試,還是真的大家都不考了,我也不是很清楚。由於我是推甄進來的,考試方面沒有什麼經驗。只能跟大家鼓勵:加油,好嗎?

(more...)

2008電子資訊資源與學術聯盟國際研討會及年會(CONCERT)心得

2008電子資訊資源與學術聯盟國際研討會及年會(CONCERT)心得

雖然CONCERT 2008已經很久了,不過我補一下一些當時想到的心得。儘管離演講主題有點扯不太關係,當作記錄也好。


clip_image002

繼去年參加在中研院舉辦的CONCERT 2007,這次則是第二次參加CONCERT。今年CONCERT 2008在台大應力所舉辦,一樣是兩天滿滿的講題。由於第二天另外有事情,所以我只去了第一天。第一天的議程是先由王丕承主任主持開幕,然後由前交大圖書館館長、現任宏碁公司技術總監張瑞川教授為我們介紹CONCERT的來龍去脈。茶點過後接著是Dr. Heeyoon Choi介紹韓國STI的創新服務,我跟很多人一樣的有聽沒有懂。下午則是由Thomson Reuters的Ms. Lulu Lai談ISI的引文索引,蔡老師資訊計量學上了一學期,大部分也都是聽過的內容。接著是北大圖書館王怡心館長為我們介紹北大評估電子資源之應用效益的方法,其中以平衡計分卡(Balanced Scorecard,BSC)來評估財務、學習與成長、內部流程、顧客等四個構面的方法,引起不少人的興趣。之後Ms. Cindy Hill介紹電子資源的投資報酬率(Return on Investment,ROI),最後則由ProQuest的Mr. Boe Horton講衡量電子資源使用與學術產出,但後面我就沒有仔細聽,也沒什麼心得了。

image
(資料來源:張瑞川教授投影片)

儘管各種議題都讓我多少有點收穫,但要說真讓我覺得感觸良多的,應該還是張教授演講的「有志者事竟成」。我覺得,圖書館是一個很無奈的行業。因為向上牽扯到機關組織,向下牽扯到眾多讀者,內部還有館藏與館員,各種要素以讓人難以理解的複雜程度糾葛在一起,實在很符合「牽一髮而動全身」的情況。因為牽涉的人員廣泛,很難達到「所有人」的同意,所以不管要做什麼、想推動什麼改革,往往都只會收到「我們也想改進,可是很無奈的,這並不是我們可以作到」的回應。然而,張教授卻以他親身的經歷,給予我們鼓勵。

張教授講述到他是在很突然的情況下,被校長指派擔任圖書館館長。而之後一路對交大浩然圖書館進行改革、找尋結盟的資金、組成CONCERT,都是相當辛苦的過程。直到現在,圖書館已經逐漸從紙本轉型到電子資源,而達到「交通大學圖書館期刊展示區一半是空的」、「宏碁公司新進員工(新科碩、博士)沒去過圖書館影印期刊論文」的成果,跟十幾年之前的圖書館大不相同。由此可知,只要有心,還是可以改變這個大環境。

clip_image006

張教授在演講最後,提到電子書將會取代實體圖書館的未來展望。他介紹了電子書載體Amazon Kindle,而現在也有各種不同的載體,甚至Plastic Logic 發表了可彎曲的塑膠電子書,可以大大地提高電子書的可攜性。然而我認為,電子書除了方便攜帶之外,還要具備能夠撰寫「註解」的功能。事實上在我文獻探討的過程當中,發現以前以經不少電子書工具都能夠直接撰寫標註,像是右圖電子書XLibris具備以電子筆直接書寫的能力,但是如今卻已經停止販售。除了可以撰寫註解之外,續航力、螢幕大小都是很重要的因素,這些就有待科技進步而一一改善吧。

講到最後,我一直在想為什麼人們會想要使用全文,而不想要只有目錄資訊的OPAC。即使在電子資源盛行之前,人們也是查完目錄之後再去找尋書籍,然後以影印、翻拍等各種方式取得副本,最後拿回家堆藏。這些動作即使在電子資源環境中也是一樣,只是取得文獻更快速、更簡單。那麼人們拿回這些文獻之後要幹麼?是要組織、消化、整理,最後產出成為學術研究成果。換句話說,我猜想人們需要的並不是大家都來用的公用圖書館,而是需要組成一個用自己的方法組織、依據自己需求找來的館藏、保留自己閱讀歷程與心得的個人圖書館,而最後的學術產出,就是學術研究成果或是作業、報告。

基於以上的假設,我認為未來圖書館員不應該只是僅僅提供讀者資源的全文,而應該要考量到讀者個人的資源組織,協助讀者用自己的方式組織這些紙本與電子的資源,讓讀者能夠建立起他們自己的個人化圖書館才是。

(more...)

邱銘心老師演講「圖資英文學術文章閱讀指引」

布丁布丁吃布丁

邱銘心老師演講「圖資英文學術文章閱讀指引」

image

上研究所來第一個難關,就是英文論文閱讀。一週三、四堂課,幾乎固定都有一到兩篇論文要閱讀。大學時有如期末報告等級的英文論文閱讀,此時變成每週都要做的功課。到了開始撰寫論文的時候,面對老師沒有教的一片陌生的領域,我深深地覺得每週讀一兩篇論文的速度還是太慢了!因此邱銘心老師從原本的「個案研究法」忽然改題目成為「圖資英文學術文章閱讀指引」的時候,真讓我有種及時雨到來的高興!

image

邱老師於11月26日來到政大圖檔所演講「圖資英文學術文章閱讀指引」,在這之前她交待我們先閱讀一篇英文論文:Diffusion theory: A review and test of conceptual model in information diffusion,並於演講時跟我們討論這篇論文的閱讀方法。這是一篇不太好說明的文章,光看表面題目的意思「擴散理論:資訊擴散中概念模型的檢驗及評論」是難以理解作者到底要表達什麼。邱老師舉了一個讓我印象深刻的例子,她說有一次她的指導教授跟她meeting關於博士論文的時候,老師不看論文而直接要求她用簡短的字句來敘述她的論文到底做了什麼。邱老師說這是一個相當重要的能力,這也警惕著撰寫碩士論文的我要時常反思自己到底在幹麼。(可惜還想得不夠清楚,才會在計畫書口試的時候被口委糾正。)

邱老師談到閱讀論文時會先注意到期刊、研討會的相關背景,以及作者的研究領域。儘管這的確能夠幫助論文閱讀更加順利,但是對於這個領域認識尚淺的我們來說,實在是很難去判斷這些背後因素,更別說光讀懂論文本身就已經很頭痛了。如果有類似citing index或是作者領域與發表年表之類的工具可以使用的話,那我想應該可以幫助我們補充這些論文背後的資訊吧?

image

最後老師提到一些標註的技巧,我也想補充一些我作標註的方法。我讀得論文都會轉換成PDF檔案,利用Adobe Acrobat Pro(政大有買)或是PDF X-Change Viewer(免費,http://toget.pchome.com.tw/intro/business_wordprocessing/25873.html)都可以對檔案進行標註。可以作到標亮重點文字,增加文字評論,簡易的繪圖、符號等功能。再搭配zotero書目管理工具(http://www.zotero.org/)內建的PDF註解搜尋引擎,連檔案內的註解都可以直接搜尋。Zotero還可以對檔案下標籤、筆記,讓你的檔案有更好的組織架構。

此外,要註解些什麼東西也是很重要的。邱老師寫到要把你覺得不懂得地方以及你覺得有問題的方法記下來,但我覺得更實用的方法是記下你能夠理解的部份,並把他用你的話重新撰寫。在撰寫論文的時候,時常需要引用其他研究的說法來佐證,於是就會遇到「當初到底在哪裡看過這段話,可是卻想不太起來」的困境。這時如果要再回頭去翻每篇文章,然後重新理解、撰寫註解,是很費時的功夫。不如再當初就先把覺得以後會用到的點子、想法,都直接用你自己的話撰寫成一段文字,做好英翻中的工作與挑出你著重的重點,以後寫論文的時候直接參考這些重要筆記,再加上引用來源,很快地就可以完成一篇基於你閱讀文獻之後的文獻探討。

善用電腦工具,就能快速地整理並找到你當初讀過的論文,而不要到了要寫文獻探討的時候才在焦頭爛額喔!

(more...)

計劃書口試通過

布丁布丁吃布丁

計劃書口試通過

image

今天邀請的口委老師為師大圖資所的卜小蝶老師與政大資科系的劉昭麟老師。在簡短的口頭報告之後,老師們開始針對我的論文開始提問。老實說,老師不愧是老師,問的問題都相當切中核心(至少是昨天rehearsal時候大家沒有提到的點)。主要是討論到主題的聚焦,論文的撰寫方式上需要修改。大體的方向跟研究方法是沒有問題的,但這次計劃書其實還不夠具體,是蠻可惜的,儘管劉老師說計劃書大概就作到這種程度吧。

比較有趣的是,今天來口試的委員個別來自於社會科學領域跟資訊工程領域,兩位老師切入的觀點都不一樣。劉老師會相當擔心實驗對象要怎麼進行,卜老師原本則是以為要探討標註內容的分析,而在口試的問答過程當中我也是盡可能地解釋了老師的疑問。

另外一點就是論文寫法的部份,我的論文先從文獻探討、發展理論、設計系統、到最後進行實驗一步一步進行。聽說要做系統的科系似乎並不會作這方面的文獻探討,但是沒有理論基礎就直接提出功能的話,研究這樣不會不夠紮實嗎?這還是我第一次發現。仔細想想,似乎以前meeting時,工教的學生就不太探討理論,而比較專注於技術實作上,這倒也是很符合這個說法。因此先作過文獻探討,再進行系統的開發,這種內容似乎很受老師認同。劉老師說要拿回去給學生參考,有點讓我受寵若驚。

當然,這樣一路探討下來,要做的事情就非常地多。不僅卜老師覺得這題目要做的事情很多,連我自己也覺得這樣做下來延畢的可能性相當地大。不過我還是覺得研究作的紮實是最重要的,即使計劃書結束了,我還是想要多讀幾篇相關文獻,讓知識萃取的方法更具體一點。

最後在評分的時候,卜老師好像看得出我不太緊張的感覺,實際上我覺得跟老師們討論的過程還蠻有趣的,有種知識就在辯證當中產生的成就感。(雖然很多時候是被指出缺點啦)

寫論文很有趣,讀文獻很有趣,作系統也很有趣,也希望跟人牽扯的實驗也會很有趣,加油!


最後跟大家分享我口試時使用的投影片跟初稿,這是未修改的版本,之後會依據老師的建議修改題目及部份內容,不過主要的大綱跟想法是不變的。先把這部份放上來供大家參考,之後如果有修改版本或其他的發現,再放上來跟大家分享。

  • 數位圖書館讀者閱讀標註知識萃取方法之研究與應用(初稿):docpdf書背的doc(裝訂時使用)
  • 數位圖書館讀者閱讀標註知識萃取方法之研究與應用 計劃書口試簡報pptpdfgoogle doc

希望這些經驗能給大家一些參考,也祝大家研究順利!

2008-12-23-147

(more...)

計劃書口試前夕

布丁布丁吃布丁

計劃書口試前夕

2008-12-21-143

計劃書口試初稿印完了,印了六本。今天一早送給口試委員老師們,天氣很冷,差點撞車。


好,就算是明天要口試的今晚,我還是不覺得我確實地完成了這本研究論文計劃書。就算今天跟老師rehearsal(排演)完明天的口試,老師認為報告得很好,也沒辦法彌補我那種不足的缺憾感。

因為這次研究論文計劃書口試延期跟拖稿拖到我都快不知道該拿什麼臉去見兩位口委老師,另一方面是這次計劃書也趕太兇了,趕到一堆很明顯沒做完的部份,但我卻只能眼睜睜地看著它寄出電子檔、送印,然後作成投影片,報告。

實在是太糟糕了。


太趕的論文,太多的缺憾

事情是這樣的,繼上次報告了一下我文獻探討所準備的投影片之後,我大概隔了一個多禮拜的時間,花在課堂報告跟其他所務上。後來動筆開始寫作,又跟兩位口委老師約時間,直到明天口試,前後大概兩週多。其中,大概有一半時間在前面的研究動機裡面的引用文獻(居然比文獻探討還要多?),然後又花了一點時間把研究方法論文寫作重新複習了一下,然後參考學姊、老師之前的計劃書等幾份文件寫一寫,也就寫完了。

儘管能在期限之前趕出自己盡可能能夠呈現的成果是件好事,但因為趕著寫完而捨棄掉的許多東西,讓我一直覺得耿耿於懷。舉例來說,文獻探討不夠新穎(因為理論性文獻都很早期)、資料探勘技術沒有survey(探討)、研究方法設計不夠嚴謹、標註資料萃取方法其實也不能說是完全的新點子(因為文獻探討不足)。

就算是一堆就算是我自己來看也覺得搖頭的不足之處,我還是要努力地推銷自己的點子給口委老師們,這就是現實吧。


接著來聊一下撰寫論文時的一些心得。

老師,您辛苦了!

image

由於論文撰寫時間緊迫,所以老師校對的時間也很趕。就這麼湊巧地碰上了老師要去國科會報告的時間,於是老師就在這種忙不過來的情況下,一邊修改著我的論文。

記得那時候晚上收到老師修改完成寄回的電話,老師用很疲憊的聲音說道:「老師要先去睡一下,晚一點再幫你改完第二章」實在是讓我震撼蠻大的。並不是說突然發現老師原來不是超人這種事情,而是有種強烈地感到「我給別人帶來了麻煩」這種罪惡感。總之,這些日子讓老師忙碌了不少,我也只能以論文回報老師。附帶一題,在我眼中老師還是跟超人沒什麼兩樣XD

在跟老師校稿的時候,我們是用Word的「校閱」功能來溝通。跟很多老師使用紙本修改方式不同,學生如果收到紙本上畫著一個大叉叉的符號、或是劃掉要求重新修改的記號,那學生還是不知道該怎麼修改。

但利用Word校閱中的「追蹤修訂」功能,我可以清楚地看到老師修改了什麼、想要表達什麼(如上圖紅字的部份)。這讓我可以很具體地仿效老師寫作論文的語法,儘管有些部份老師可能只是括號提示我需要補充、修改而沒有字句刪改,我依然可以參考老師想要表達的方式,修正自己原本想說的話,讓我寫起來更有「學術的感覺」。(這種感覺還真的很抽象!)

「老師再前面引領你的論文寫作」,這句老師在meeting中說過的話,我跟老師的校稿工作裡面感覺特別明顯。而電子檔傳遞速度快,兩天的時間我們就校對了4次版本(基本上第一次校對的時候我已經大體上全部寫完了)。當然,這種效率還是得要感謝老師熱心且盡力的幫忙啊!

總而言之,我很喜歡這種論文校對的方式,也推薦其他人使用。

Word使用的點點滴滴

image

在撰寫研究論文的時候,我相當依賴Word 2007的標題/目錄、標號/目錄(圖1、圖2、表1、表2)、書目管理軟體zotero,特別是引文跟參考文獻格式我都交給了zotero去處理,最後再拿書一一檢查是否符合規則。由於zotero是英文軟體,所以標點符號都是用英文的「.」、「,」,這是需要注意並轉換的地方。

image

另外就是不可以相信Word的標號功能,我遇到好多次換了台電腦儲存檔案之後,標號就全部跑掉的問題。像是老師校稿回來的檔案,往往都有一兩個標號顯示錯誤,還造成老師的誤會,實在是很恐怖的一件事情。不知道沒有讓Word裡面的功能變數全部變成普通文字的方法呢?

撇去這個問題不談,論文圖表需要置於頁面上方或下方的排版,Word可以作到自動對齊的功能,這讓我方便許多。關於這部份的作法我稍後有空再來寫個教學。


論文計劃書口試,緊不緊張?

最近很多人問我這個問題,這似乎也是口試前的傳統。

但老實說,除了因為遲繳、論文寫不好似乎沒什麼臉見口委之外,好像也沒什麼好緊張的。

我清楚地知道自己計劃書的強項、不足,以及該怎麼說明、補強自己的不足之處。我只是在有限的時間之內盡了自己所能,所以沒有完美的結果,也是在我的預料之內。

至於計劃書會不會通過呢?理論上應該是會通過的,如果我能夠成功地推銷論文點子好處的話。

而這段日子每天都是12點睡覺,然後大概4點或5點多起床,然後繼續寫作論文。每天生活都很健康、有精神,嚴謹地寫作論文對我來說非常新鮮、每次都有不同的收穫。這樣看下來,儘管有時候會累了點(到下午就會想睡午覺了XD),這段日子還過得蠻開心的。

image

明天凌晨停電,剛好又可執行「12點睡覺4點起床」的早早睡覺計畫。在這之前,繼續趕報告吧。

(more...)

971知識組織與資訊取用導讀投影片

布丁布丁吃布丁

971知識組織與資訊取用導讀投影片

王老師上課的方式是分配同學閱讀指定文獻,上課時由同學跟其他人分享所學。這學期我閱讀4篇,也做了4份投影片。想說都做,就擺上來看看會不會有人用得到吧?

投影片上傳到Google Doc之後儘管可以提供線上預覽功能,總是會有版面跑掉問題。在此順便玩玩Windows提供的免費空間SkyDrive,最近升級到25G了,不知道效能如何呢。


Chapter 10 Users of information retrieval 
資訊檢索中的使用者

Salton, G. (1983). Introduction to Modern Information Retrieval, McGraw-Hill computer science series. (頁. 448). New York: McGraw-Hill. Chapter 10 Users of Information Retrieval. Page 192-213

Chapter 22 Information retrieval in digital libraries
數位圖書館中的資訊檢索

Salton, G. (1983). Introduction to Modern Information Retrieval, McGraw-Hill computer science series. (p. 448). New York: McGraw-Hill.

Chapter 6   Automatic indexing and file organization
自動索引與檔案結構 倒置索引檔與搜尋演算法

Salton, G. (1983). Introduction to Modern Information Retrieval, McGraw-Hill computer science series. (p. 448). New York: McGraw-Hill.

Chapter 8 Metadata

Chowdhury, G. G. (2007). Organizing Information: From the Shelf to the Web (p. 230). London: Facet.
(more...)

數位典藏開放檢索服務的應用與探討 ——以臺灣百年圖書館史數位圖書館為例

布丁布丁吃布丁

數位典藏開放檢索服務的應用與探討 ——以臺灣百年圖書館史數位圖書館為例

前言

數位典藏系統能藉由網際網路的便利性,讓使用者在家裏即可透過網路欣賞、瀏覽典藏的數位化內容。但是數位典藏系統的內容往往只能限定在該系統本身上進行查詢使用,而在權限控管限制了使用者的取用行為,難以進行更進一步的應用與研究。

對於習慣於Web 2.0環境的使用者來說,他們會傾向於能夠將數位典藏的資源整合進自己習慣的工作環境底下;對於想要應用數位典藏資源進行研究的學者來說,他們會希望可以用統一、標準的規範來取用,並將數位典藏的內容整合到他們研究的系統當中;從圖書館的資源整合角度來看,圖書館會傾向於使用唯一的查詢介面,即能對於包含數位典藏在內的多種系統進行檢索,並取得、展示檢索之後的結果。

為了滿足以上的需求,數位典藏需要一種標準且全面的開放服務,以支援更深層的應用。

Z39.50的發展現況

圖書館自動化系統當中盛行的統一檢索標準是Z39.50。Z39.50是美國圖書館為了實現連結系統計畫(LSP)而發展,用來定義電腦之間的資訊檢索,透過規範查詢格式、簡化檢索過程,實現不同資訊系統之間的資料交流。Z39.50被NISO和ISO先後採納,多於圖書館領域內廣泛採用。

雖然Z39.50標準提供了檢索完整的功能,但是現今網際網路的環境底下卻不常看見Z39.50的應用。主要原因有幾點:一、Z39.50是基於ISO的OSI參考模型的通訊標準,並不是實做在網際網路的TCP/IP架構上,造成無法在網際網路上直接使用Z39.50,大大地降低了資料互通性的效率;二、Z39.50過於複雜,各個系統實做Z39.50的程度參差不齊,反而導致實際操作上有所侷限,難以發揮Z39.50在資料交換上的優點。

為了使Z39.50能夠在目前的網路環境中繼續發展,ZIG(Z39.50 Implementers Group)在2001年的會議上提出了建立ZING(Z39.50 International Next Generation)的。ZING作為新一代的Z39.50,在原有Z39.50的基礎上降低實做的門檻,擴大Z39.50的應用領域,以新的標準整合不同網路資源的檢索。

實際上,ZING是由許多不同目的的實驗性計畫所組成,其中SRW/SRU與CQL是其中有著緊密合作關係的幾個實驗。

SRU的發展與現況

SRU(Search Retrieve via URL)是一個以XML編碼為基礎的網際網路檢索用通訊協定,使用檢索用標準規範CQL(Contextual Query Language, 另有說法是Common Query Language)。SRU由Z39.50發展而成,在TCP/IP的架構上規範了檢索命令與查詢結果的格式。具體來說,SRU將查詢參數包含在URL(Uniform / Universal Resource Locato)當中,即能對支援SRU的伺服器進行查詢,並取得以XML編碼的結果,運作架構如圖1。

image

圖 1 SRU的運作模式

SRU是由美國國會圖書館負責維護管理,2004年2月發佈了SRU 1.1版本,目前已經進展到1.2版本(Library of Congress, 2004)。SRU通常會與SRW(Search Retrieve via Web)同時提到,後者是基於HTTP Request的POST方式,遵循SOAP(Simple Object Access Protocol)通訊協定,根據Web Service規範把查詢請求封裝成SOAP包,並按照SOAP資料交換機制完成資料傳遞。SRU跟SRW查詢結果均採用有著標準規範的XML編碼,以方便查詢者進行資料處理。

SRU的網路服務定義了三種基本的操作方法:

(1) Explain方法:使用者端可用此方法取得SRU網路服務的相關資訊,包括伺服器的資料、資料庫狀態、索引字段列表,metadata標準以及相關參數的預設值等資訊。第三方軟體可以依此自動配置本身系統的檢索設定,以整合提供SRU服務的伺服器。

(2) searchRetrieve方法:這是SRU服務的主要核心,可對提供SRU服務的伺服器中的資料庫進行檢索,並回傳結果集。SRU檢索規範中使用的CQL語法,必需要支援最完整的2級功能,當中必須支援欄位限制、布林邏輯以及回報語法錯誤訊息。回傳的檢索結果集必須是有結構的文字檔案,或著是以DC、MARC 21 XML Schema、MODS(Metadata Object Description Schema)等標準描述的XML檔案。

(3) Scan方法:使用此方法可以回傳網路資料庫索引中包含各個關鍵詞及出現的機率,幫助使用者確定資料庫收錄的主題範圍,進而選擇適當的關鍵詞進行檢索。

在SRU計畫網站上註冊的SRU服務提供者已經有86個(2006),包含了美國國會圖書館(2004)、OCLC、牛津大學、多倫多大學等國際上有影響的圖書館、資訊服務機構。研究SRU新型態服務模式也成為另一種熱門趨勢,其中以歐洲圖書館TEL(The European Library)最具有代表性,它透過SRU通訊協定將歐洲各國國家圖書館相關服務結合起來,並開發一個可以嵌入到使用者工作環境或網頁的迷你檢索工具(Mini Searchbox),讓使用者可以在統一介面裡面檢索歐洲各國國家圖書館的資源,實際應用到Blog上的情況如圖2。

image

圖 2 嵌入到Blog中的歐洲圖書館的迷你檢索工具

在SRU的研究計畫之中開發出相當多支援的軟體,例如INDEX DATA的YAZ Proxy、OCLC Research的Open Source SRW/U Server、CQL-Ruby等等,都是以開放原始碼的方式供人免費取用。其中Open Source SRW/U Server是以跨平台的JAVA開發而成,並且支援MIT與HP開發的機構典藏系統DSpace。

SRU searchRetrieve實作

國立政治大學圖書資訊與檔案學研究所在2007年建置了臺灣百年圖書館史數位圖書館先導計畫,以DSpace機構典藏系統修改而成數位圖書館,典藏臺灣近百年來圖書館與圖書資訊領域的數位化資料。

日前在該系統的進階檢索中,也提供了SRU的searchRetrieve方法的檢索功能。使用者只要在進階檢索欄位裡面設定好檢索條件,下方會自動產生相對應的SRU檢索語法,系統運作介面如圖3,而產生出來的URL如圖4。

image

圖 3 臺灣百年圖書館史數位圖書館先導計畫進階檢索介面的SRU功能

http://tlh.lias.nccu.edu.tw:8080/dspace/sru-search?operation=searchRetrieve&version=1.1&query=ANY%3D%22library%22&startRecord=1&maximumRecords=10

圖 4 SRU檢索指令以URL呈現

圖4的檢索指令當中輸入的參數如下:要求檢索的operation參數、SRU版本的version參數、CQL檢索語法再以URI編碼的query參數、設定檢索起點紀錄的startRecord參數、設定最大回傳筆數的maximumRecord參數。目前該系統的CQL僅支援到欄位檢索與布林邏輯的1級功能,尚未達到解析CQL並回傳錯誤訊息的2級完整功能。

最後的檢索訊息回傳結果以XML編碼,檢索結果的資料以Dublin Core呈現,節錄如圖5。

<searchRetrieveResponse>

<version>1.1</version>

<numberOfRecords>43</numberOfRecords>

<records>

<record>

<recordSchema>info:srw/schema/1/dc-v1.1</recordSchema>

<recordPacking>xml</recordPacking>

<recordData>

<srw_dc:dc>

<title>台北市立圖書館推廣活動彙編93年度</title>

<creator>台北市立圖書館</creator>

<type>出版品</type>

<publisher>台北市立圖書館</publisher>

<date>9 Jun 2008 13:17:47 GMT</date>

<language>中文</language>

<description>

北市圖為提升推廣活動的品質與成效,彙集該館舉辦推廣活動的經驗和紀錄,編印成冊,期使各界瞭解北市圖辦理各項活動的用心、努力與理念,並作為日後各分館設計推廣活動及各公共圖書館館際交流活動辦理經驗的參考。

</description>

<subject>台北市立圖書館</subject>

<subject>出版品</subject>

<subject>推廣活動彙編</subject> <identifier>http://tlh.lias.nccu.edu.tw:8080/dspace/handle/lias/1104</identifier>

</srw_dc:dc>

</recordData>

</record>

<searchRetrieveResponse>

圖 5 臺灣百年圖書館史數位圖書館先導計畫SRU檢索結果

SRU的應用探討

基於臺灣百年圖書館史數位圖書館提供了SRU開放檢索服務,許多利用該系統資源進行應用的研究,便能夠進行更進一步的利用。

以陳佳琪(2008)正在進行的「數位圖書館資源支援問題解決學習模式研究:以台灣百年數位圖書館為例」來說,該研究者以臺灣百年圖書館史數位圖書館典藏的數位資源為教材,評估結構化與非結構化的知識對於學習成效的差異,系統畫面如圖6。由於當時臺灣百年圖書館史數位圖書館尚未開放服務,因此實驗進行中學生只能到該系統進行瀏覽、檢視,研究者也無法對於系統內的典藏物件隨意操作、重整,而更接近自己的研究目的。

image

圖 6 數位圖書館資源支援問題解決學習模式研究的數位學習系統 (陳佳琪,2008)

藉由SRU開放的檢索服務,研究者將可以依照SRU規範設計檢索產生器與檢索結果分析器,依照研究自己的需求對於臺灣百年圖書館史數位圖書館發出請求,然後將回傳的資料進行分析、重新再利用,將整個流程整合到該研究的系統當中。研究者可以確保受驗者的學習過程,提昇實驗控制的成效。整體的架構圖如圖7。

圖 7 藉由SRU開放服務改進研究過程的概念架構

結語

國內的數位典藏重點仍以瀏覽、展示居多,較少考慮到開放服務提供第三方再利用,封閉的系統架構拘束了內容資源的應用發展。SRU提供設計網路開放的一種標準規範參考,具有容易實作、符合主流環境等等的優點。配合各種開放原始碼的工具一起使用,更能夠輕易地開發出支援SRU的網路服務。目前的數位典藏仍沒有完全善用網路環境的優勢,而利用SRU建立開放服務,強調數位典藏作為資源提供中心的地位,將可為數位典藏帶來全新的應用模式。

參考文獻

  1. Chick Markley. CQL-Ruby. http://www.oclc.org/research/software/srw/ (最終更新:2008/4/16)
  2. CQL: the Contextual Query Language: Specifications (SRU: Search/Retrieval via URL, Standards, Library of Congress). http://www.loc.gov/standards/sru/specs/cql.html (2008/6/18)
  3. Eric Lease Morgan (2004) . An Introduction to the Search/Retrieve URL Service (SRU). Ariadne, issue 40, july 2004. http://www.ariadne.ac.uk/issue40/morgan/ (2008/6/22)
  4. Eric Lease Morgan (2006). What is SRW/U? TechEssence.Info. http://techessence.info/node/48 (2008/6/22)
  5. Index Data. YAZ Proxy. http://www.indexdata.dk/support/ (2008/6/18)
  6. Library of Congress. LC Z39.50/SRW/SRU Server Configuration Guidelines. http://lcweb.loc.gov/z3950/lcserver.html (最終更新:2004/8/4)
  7. Library of Congress. MARC 21 XML Schema. http://www.loc.gov/standards/marcxml/ (最終更新:2007/12/14)
  8. Library of Congress. Metadata Object Description Schema: MODS. http://www.loc.gov/standards/mods/ (最終更新:2008/1/24)
  9. MIT and HP. DSpace. http://www.dspace.org (2008/6/18)
  10. OCLC Research. SRW/U [OCLC - Software]. http://www.oclc.org/research/software/srw/ (最終更新:2008/6/14)
  11. Oxford Journals. Help Search. http://www.oxfordjournals.org/help/techinfo/search.html#sru (2008/6/18)
  12. Rob Sanderson (2007). SRW and CQL. University of Liverpool. http://www.loc.gov:8081/standards/sru/pdf/robcql.pdf (2008/6/22)
  13. SRU: Search/Retrieval via URL -- SRU, CQL and ZeeRex (Standards, Library of Congress). http://www.loc.gov/standards/sru/ (2008/6/18)
  14. SRU: Search/Retrieval via URL, Standards, Library of Congress . Registered Participants: SRU Implementors Group Meeting, March 1-2, 2006. http://www.loc.gov/standards/sru/march06-meeting/registered.html (最終更新:2006/3/1)
  15. The European Library - v1.6. http://www.theeuropeanlibrary.org/portal/index.html (2008/6/18)
  16. Theo van Veen, Koninklijke Bibliotheek and Bill Oldroyd (2004). Search and Retrieval in The European Library: A New Approach. British Library. http://www.dlib.org/dlib/february04/vanveen/02vanveen.html (2008/6/22)
  17. University of Toronto. SRU explain method. http://ibridge.library.utoronto.ca:2200/unicorn?operation=explain&version=1.1 (2008/6/18)
  18. Xiaorong Xiang and Eric Lease Morgan (2005). Exploiting "Light-weight" Protocols and Open Source Tools to Implement Digital Library Collections and Services. University of Notre Dame. In D-Lib Magazine, October 2005. http://www.dlib.org/dlib/october05/morgan/10morgan.html (2008/6/22)
  19. 李春旺、王小梅、王昉、張智雄(2007)。基於SRU的集成服務平臺設計與實現。現代圖書情報技術,2007年10期。
  20. 李聰、胡偉(2006)。SRW的發展和現況分析。晉圖學刊,2006年02期
  21. 國立政治大學圖書資訊與檔案學研究所。臺灣百年圖書館史數位圖書館先導計畫。http://tlh.lias.nccu.edu.tw/ (最終更新:2008/6/15)
  22. 陳佳琪(2008)。數位圖書館資源支援問題解決學習模式研究:以台灣百年數位圖書館為例。政治大學圖書資訊與檔案學研究所,2008。(2008/6/18之前仍未結案)
(more...)

yam天空部落-影音分享下載器(IE版)

布丁布丁吃布丁

9 Comments

yam天空部落-影音分享下載器(IE版)

image

大年初一,終於把yam天空部落影音下載器做調整了。

檔案下載(SkyDrive備份 ),請在本機電腦上用IE瀏覽器直接開啟使用吧。以下是原始碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>yam天空部落-影音分享下載器</title>
</head>
 
<body>
<script type="text/javascript" src="http://puddingchen.35.googlepages.com/jquery.js"></script> 
<h1 style="margin:0 auto 0 auto;width:400px;"><a href="http://www.yam.com/" target="yamBlog" style="float:left;"><img src="http://blog.yam.com/i/header/logo.gif" title="yam天空部落" border="0" /></a>影音分享<br />
下載器</h1>
<div id="yam-video-download"> 
<style type="text/css"> 
#yam-video-download div.tip {
    font-size: small;
    color:gray;
}
#yam-video-download div.check-flag {
     color:white;
     background-color:#FF0000; 
     font-size: large;
     padding: 2px 5px;
     margin: 2px auto;
     border: 1px solid gray; 
     width: 200px; 
     text-align:center; 
     display:none; 
} 
#yam-video-download #outputID_yvd div.content {
    font-size: 1em;
} 
#yam-video-download #outputID_yvd div.content span.deleter { 
    color:gray; 
    border: 1px solid gray; 
    /*background-color:gray;*/ 
    font-size: smaller; 
    width: 12px; 
    display:block; 
    float:left; 
    text-align:center; 
    padding: 0 2px; 
    /*font-weight:bold;*/ 
    font-family:Arial, Helvetica, sans-serif; 
    cursor:pointer; 
    margin-right: 0.5em; 
} 
#yam-video-download #outputID_yvd div.content a.downloader,
#yam-video-download #outputID_yvd div.content a.win, 
#yam-video-download #outputID_yvd div.content span.title-copy { 
    /*border: 1px solid gray; padding: 2px; font-size: small; background-color:gray; color:white; */
     text-decoration:underline; 
     color:#0099FF; 
     cursor:pointer;
     margin-right: 0.5em; 
} 
#yam-video-download #outputID_yvd div.content a.downloader {
    /*background-color:#0066FF;*/ 
} 
#yam-video-download #outputID_yvd div.content span.title-copy { 
    /* font-size: smaller; color:gray; border:1px solid gray; text-decoration:none; margin: 5px;*/ 
}
#yam-video-download #outputID_yvd div.content span.waiting { 
    margin-right: 0.5em; cursor:wait; 
} 
#yam-video-download #outputID_yvd div.content .mouseover { 
    color:blue !important; 
    text-decoration:none !important; 
} 
</style> 
<div class="tip">※本程式使用JavaScript跨網域取得資料的低安全性設定運作,<strong>Internet Explorer</strong>之外的瀏覽器可能無法使用。</div>
<form onsubmit="jQuery('#startParsing').click();return false;">
<script type="text/javascript"> 
if (!jQuery.browser.msie) 
    jQuery("#yam-video-download div.tip").css("color", "red"); 
</script> 
<label for="inputID_yvd" style="display:block;">
<p>請輸入<strong style="color:#0066CC">yam天空部落-影音分享</strong>的網址</p>
  </label>
 
<button type="button" style="font-size: 20pt;font-weight:bold;margin: 0 0.5em;height: 1.5em;" onclick="yamVideoParsing('inputID_yvd', 'outputID_yvd', 'check-flag')" id="startParsing">分析</button>
  <input id="inputID_yvd" type="text" style="font-size: 20pt;width: 80%;height: 1.5em;" value="http://mymedia.blog.yam.com/m/" onfocus="this.select()"onchange="jQuery(this).nextAll('button:first').click()" />
<p style="margin:0;padding:0;color:gray;">(以<strong>http://mymedia.blog.yam.com/m/</strong>或<strong>http://mymedia.yam.com/m/</strong>開頭)</p>
<div class="check-flag" style="display:none;">網址有錯!請檢查!</div>
<div id="outputID_yvd"></div>
 
<!-- http://mymedia.yam.com/mp3player2.swf?pID=2195446 -->
<!--
<div class="playerMP3" style="display:none;">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="450" height="120" id="main2Flash" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="" quality="high" bgcolor="#ffffff" width="450" height="120" name="mymovie" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</div>
-->
<textarea class="playerMP3" style="display:none"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="450" height="120" id="main2Flash" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="" quality="high" bgcolor="#ffffff" width="450" height="120" name="mymovie" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object></textarea>
 
<!-- http://mymedia.yam.com/flvplayer.swf?pID=2416365 -->
<textarea class="playerFLV" style="display:none"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="450" height="368" id="main2Flash" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="" quality="high" bgcolor="#ffffff" width="450" height="368" name="mymovie" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object></textarea>
 
<script type="text/javascript"> 
//jQuery("#yam-video-download button").click(); 
 
//for test
    //jQuery("input#inputID_yvd").val("http://mymedia.yam.com/m/2416365");
    
function yamVideoParsing(inputID, outputID, checkClass) 
{ 
    var url = jQuery("#"+inputID).val(); 
    var checkURL = new Array; 
    checkURL[0] = "http://mymedia.blog.yam.com/m/"; 
    checkURL[1] = "http://mymedia.yam.com/m/"; 
    var checkFlag = false; 
    for (var i = 0 ; i < checkURL.length; i++) { 
        var c = checkURL[i]; 
        if (url.substr(0, c.length) == c) { 
            checkFlag = true; break;
        }
    } 
    if (checkFlag == false) { 
        jQuery("."+checkClass).css("display", "block"); 
        return; 
    } 
    else { 
        jQuery("."+checkClass).css("display", "none"); 
    } 
    //example: http://mymedia.yam.com/m/2425018 
    var mID = url.substring(url.lastIndexOf("/m/")+3,url.length); 
    if (jQuery.trim(mID) == "")
    {
        jQuery("div.check-flag").show();
        return;
    }
    //jQuery("#"+outputID).prepend(mID); 
    if (jQuery("#"+outputID+" div.content[title="+mID+"]").length != 0) 
        return; 
    //建立容器 
    var content = jQuery("<div title='"+mID+"' class='content'></div>"); 
    var deleter = jQuery("<span class='deleter'>×</span>") 
        .click(function() { 
            jQuery(this).parents("div.content:first").remove();
         })
        .hover(function() { 
            this.style.backgroundColor = "gray"; 
            this.style.color = "white"; 
            },
            function() { 
            this.style.backgroundColor = "white"; 
            this.style.color = "gray"; 
            }); 
    var downloader = jQuery("<a class='downloader'>下載</a>") 
        .hover(function() { 
            jQuery(this).addClass("mouseover"); 
        },
        function() { 
            jQuery(this).removeClass("mouseover"); 
        })
        .hide(); 
    var win = jQuery("<a href='"+url+"' target='_blank' class='win'>開啟網頁</a>");
    
    /*var preview = jQuery("div.playerMP3").clone()
        .addClass("preview")
        .show();
        preview.children("param[name=movie]").val("http://mymedia.yam.com/mp3player2.swf?pID=" + mID);
        preview.children("embed").attr("src","http://mymedia.yam.com/mp3player2.swf?pID=" + mID);
    */
    /*
    var previewURL = "http://mymedia.yam.com/mp3player2.swf?pID=" + mID;
    var previewPlayer = jQuery("textarea.playerMP3").val();
        
        //previewPlayer.replace('<param name="movie" value="" />', '<param name="movie" value="'+previewURL+'" />');
        //previewPlayer.replace('<embed src="" quality="high"', '<embed src="'+previewURL+'" quality="high"');
        previewPlayer = strReplace(previewPlayer, '<param name="movie" value="" />', '<param name="movie" value="'+previewURL+'" />');
        previewPlayer = strReplace(previewPlayer, '<embed src="" quality="high"', '<embed src="'+previewURL+'" quality="high"');
        alert(previewPlayer);
    var preview = jQuery("<div class='preview'></div>")
        .html(previewPlayer);
        //preview.children("param[name=movie]").attr("value", previewURL);
        //preview.children("embed").attr("src", previewURL);
    */    
    var preview = jQuery("<div class='preview'></div>");
        
    var titleCopy = jQuery("<span class='title-copy'>複製標題</span>") 
        .click(function () { 
            var t = jQuery(this).nextAll("span.title").html(); 
            window.clipboardData.setData('Text', t); }).hide(); 
            var title = jQuery("<span class='title'>test</span>").hide(); 
            var waiting = jQuery("<span class='waiting'>"+mID+"分析中…<img src='http://puddingchen.35.googlepages.com/ajax-loader.gif' /></span>"); 
            content.append(deleter) 
                .append(waiting) 
                .append(win) 
                .append(downloader) 
                .append(titleCopy) 
                .append(title)
                .append(preview); 
            jQuery("#"+outputID).prepend(content); 
            
            //get title 
            jQuery.get(url, function(data) { 
                //var t = jQuery(data); 
                //.find("h1.heading:first").length; 
                //alert(t.find("div").length);
                var header = '<h1 class="heading">'; 
                var footer = '</h1>';
                var t = data.substring(data.indexOf(header)+header.length, data.indexOf(footer));
                
                if (jQuery.trim(t) == "<html>\n<head>\n<titl")
                {
                    errorFlag();
                    content.hide();
                    return;
                }
                
                jQuery("#"+outputID+" div[title="+mID+"]:first span.title:first").html(t) 
                    .show(); 
                jQuery("#"+outputID+" div[title="+mID+"]:first span.title-copy:first").show(); 
                if (jQuery("#"+outputID+" div[title="+mID+"]:first :hidden").length == 0) 
                {
                    jQuery("#"+outputID+" div[title="+mID+"]:first span.waiting")
                        .hide();
                }
                
             }); 
             
             /*
             //get preview
             jQuery.get(url, function(data) { 
                 var header = '<object classid="'; 
                var footer = '</object>';
                var t = data.substring(data.indexOf(header)+header.length, data.indexOf(footer));
                    t = header + t + footer;
                jQuery("#"+outputID+" div[title="+mID+"]:first div.preview:first").html(t).show();
             });
             */
             
             //get link 
             var FileURL = "http://mymedia.yam.com/api/a/?pID=" + mID; 
             //example: http://mymedia.yam.com/api/a/?pID=2425018 
             jQuery.get(FileURL, function(data) { 
                 //var t = jQuery(data); 
                //.find("h1.heading:first").length; 
                //alert(t.find("div").length); 
                var isFlv = false;
                if (data.indexOf('mp3file=') != -1)
                {
                    var header = 'mp3file='; 
                    var footer = '&totaltime='; 
                    
                    var previewURL = "http://mymedia.yam.com/mp3player2.swf?pID=" + mID;
                    var previewPlayer = jQuery("textarea.playerMP3").val();
                        previewPlayer = strReplace(previewPlayer, '<param name="movie" value="" />', '<param name="movie" value="'+previewURL+'" />');
                        previewPlayer = strReplace(previewPlayer, '<embed src="" quality="high"', '<embed src="'+previewURL+'" quality="high"');
                }
                else if (data.indexOf('&furl=') != -1)
                {
                    isFlv = true;
                    var header = '&furl='; 
                    var footer = '&hidecode=';
                    
                    var previewURL = "http://mymedia.yam.com/flvplayer.swf?pID=" + mID;
                    var previewPlayer = jQuery("textarea.playerMP3").val();
                        previewPlayer = strReplace(previewPlayer, '<param name="movie" value="" />', '<param name="movie" value="'+previewURL+'" />');
                        previewPlayer = strReplace(previewPlayer, '<embed src="" quality="high"', '<embed src="'+previewURL+'" quality="high"');
                }
                
                var t = data.substring(data.indexOf(header)+header.length, data.indexOf(footer)); 
                
                
                jQuery("#"+outputID+" div[title="+mID+"]:first a.downloader:first")
                    .attr("href", t) 
                    .show(); 
                jQuery("#"+outputID+" div[title="+mID+"]:first div.preview:first").html(previewPlayer);
                if (isFlv == true)
                    jQuery("#"+outputID+" div[title="+mID+"]:first div.preview:first object").height("368px");
                if (jQuery("#"+outputID+" div[title="+mID+"]:first :hidden").length == 0) 
                    jQuery("#"+outputID+" div[title="+mID+"]:first span.waiting")
                        .hide();
                 }); 
            } 
            
    function errorFlag()
    {
        jQuery("div.check-flag").show();
    }
    
    function strReplace(str, oldText, newText)
    {
        var temp = str.split(oldText);
        if (temp.length > 1)
        {
            str = temp[0] + newText + temp[1];
        }
        return str;
    }
    </script>    
</div>
</form>
<hr style="margin-top: 1em;" />
<p style="text-align:center;">
版本:<strong style="color:Red">20090126 大年初一</strong> | 程式寫作:<a href="mailto:puddingchen.35@gmail.com">布丁布丁吃布丁</a> | 出處:<a href="http://pulipuli.blogspot.com/2008/11/yam-ie.html">布丁布丁吃?</a> | 資料來源:<a href="http://www.yam.com/">yam天空部落</a><br />
<span style="font-size:small;">本程式僅是利用yam天空部落的程式碼做轉換、分析的動作,並不能確認資料本身是否符合智慧財產權。使用本程式下載任何資料,並不代表本程式立場。</span>
</p>
</body>
</html>


我只是想試試看jQuery的AJAX功能,就改進了以前的yam天空影音分享下載器,取代原本要用PHP去擷取網頁內容的困擾。

壞消息是只有IE在本機端以檔案的方式開啟,才能使用客戶端跨網域取得網頁內容的功能。好消息是這功能其實是比較不安全,不能方便地使用也好。原本我是打算直接寫在Blog裡面,結果發現只要是非本機的情況下,就不能使用跨網域取得網頁內容,這也算是一個收穫吧。

順便測試一下Windows Live Writer插入程式碼的外掛效果如何。事實證明,Insert Code for Windows Live Writer挺不賴的,感謝瓶水相逢.NetInsert Code for Windows Live Writer 1.0.5 Beta - 加入捲軸功能 (20080427 修正),但如果加上一個只有y軸的捲軸就更完美了。

(more...)