Archive for the 'Linked Data 關聯數據' Category.

Web 2.0, web 3.0,Linked Data和雲計算

個題目很豪華,囊括了目前信息技術領域許多的熱點詞彙,從Web2.0到雲計算,這些鮮亮詞彙構成了一幅Web世界從過去走向未來的線路圖。

絡世界的生命週期大約是以十年為一個階段,從第一代Web到Web2.0大約經歷了10年左右,這10年中,Web解決了人與網絡的交互問題,即從Web1.0僅僅提供用戶閱讀網絡信息的便利發展到了Web2.0為用戶提供了交互通道,從此,Web 不僅僅是一個媒體,而是一個可以相互溝通的信息交換平台。 在Web2.0環境下,用戶不只是Web的閱讀者,而且也是Web內容的提供者和參與者, 今天,Web2.0基本已經成熟而成為Web的主流。 大量的Web2.0站點充斥網絡,並培育了大量的用戶,可以說,Web2.的興起真正培育了一個虛擬的網絡社會。

W eb2.0的一個主要特徵是參與,即Web用戶可以參與Web的內容建設。 這是一個表層的特徵,在這個特徵背後是技術構架的變遷,Web1.0主要是有網頁構成,而到了Web2.0, 網頁已經不再是Web的基礎,而是應用系統,尤其是被稱之為內容管理系統(CMS)的Web應用系統,Web1.0到Web2.0的發展是從Web Page 到Web Application的發展變遷。

種技術結構的變遷改變了網絡的基本屬性,Web不再是一個個孤立的站點通過網絡聯繫起來,而是Web應用的各種整合,Web變成了通過功能和內容整合起來的一個整體,變成了一個大系統。 為了實現這樣的整合,需要解決在Web環境下系統之間的相互溝通,尤其是功能和數據的重用問題,因此催生了Web Service架構,這種面向服務的構架成為Web2.0的標誌性架構。 所以,從技術架構角度看,Web2.0的特徵就是Web Service即網絡服務。

W eb作為一個分佈式的大系統,不僅需要開放式的Web Application services(Web應用服務),還需要被結構化描述的數據。 只有通過結構化描述的數據,才能被應用系統所理解,換言之,一個有效的分佈式的網絡應用系統需要有機器能理解的數據。 如果說Web2.0是建築在開放式的服務構架上,那麼新一代網絡將在此基礎上構建一個機器能理解的結構化的和相互關聯著的數據環境,一旦這個數據環境建立起來,那麼Web將進入一個新時代,這個新的Web環境我們可以稱之為Web3.0。

W eb3.0將要解決的是一個數據的表述,使得機器能夠理解數據的結構信息,這個結構信息被稱之為數據的語義信息,這就是語義網絡需要解決的核心問題,所以語義網可以看成是Web3.0的起點。 語義網經歷了一個從概念到現實的發展過程,其技術架構也越來越清晰,那就是備受關注的關聯數據(Linked Data)。 關聯數據有兩個基本點,那就是描述和連接。 描述和鏈接都是為機器服務的,通過描述可以實現機器自動發現和確認,鏈接可以支持機器自動鏈接。

們再回過頭來看web1.0,1.0條件下,瀏覽器從服務器那裡獲得信息,直接顯示在屏幕上,並不知道信息的含義,網頁通過超鏈接相互聯結起來,但需要人工點擊觸發, 2.0可以通過機器來自動聚合各種信息,而到了3.0,網絡在數據層就建立了鏈接機制,數據的結構信息被很好地描述著,並通過URI來確保機器能夠自動鏈接各種數據,實現了信息聚合的智能化自動化。

麼,雲計算不就順理成章了麼?

Linked Data, RDF, MIME types and Apache設置

L inked data可以說是新一代語義互聯網的基礎,具有非常廣泛的應用前景。 不久前W3C宣布,SKOS將全面Linked Data化. (Needle, 2009)這對於圖書館界來說意義深遠。 SKOS的linked data化應該是得益於圖書館界,美國國會圖書館將國會標題表(Library of Congress Subject Headings)全部Linked Data化,成為Linked Data應用的成功範例,推動了Linked Data走向實用。 這又可以說是圖書館界對互聯網的發展做出貢獻的實例。

L inked Data的基礎是RDF和http協議,換言之,Linked Data是通過Http來傳遞RDF數據,而這個RDF數據是一個遵循特殊規則的語義數據,這個規則就是任何資源都用URI來表徵。 所以URI\RDF\HHTP構成了Linked Data 的三個基石。 任何Linked Data 的應用都圍繞著這三個方面展開的。 如:

  • 如何構建資源的URI?
  • 如何建立RDF 資源?
  • 如何利用http 來傳遞RDF?
  • 如何接受並解析RDF數據資源? 等等。

L inked Data的應用有兩種基本模式:一種模式是瀏覽器/服務器模式,即人們通過瀏覽器來訪問Linked Data;另一種模式是客戶端/服務器模式,這裡的客戶端主要是指應用系統,這個模式其實就是系統和系統之間的數據傳遞。 無論何種模式,Linked Data都是通過Http來傳遞的。

H ttp協議其實定義了兩個過程,一個是請求,另一個是響應。 以這兩個過程為藍圖,我們可以模擬一個Linked Data 傳遞過程。

  • 戶端或瀏覽器發送一個RDF文件請求給服務器,要求服務器返回一個RDF文件。 發送這個請求很簡單,你可以直接輸入一個rdf文件後綴,如http://www.cloudlibrary.info/rainzenfoaf.rdf 就是一個簡單的rdf 請求。 當然,這個請求是很弱的,文件用rdf 作後綴不一定就是RDF 格式的文件,反過來,RDF格式的文件的後綴也有可能不是rdf。 所以用文件後綴來傳遞RDF請求不很可靠。 我們需要的是一種強制性的非常明確的RDF 請求方式,這個請求只能通過系統(如瀏覽器)而不是人工來發出。 現在通用的瀏覽器無法發出這樣的請求,為了應用Linked Data我們需要能夠發出RDF 請求的瀏覽器。
  • 服務器接收到一個RDF請求後,需要返回一個RDF文件,並告知客戶端這是一個RDF文件。 這個過程被稱之為content negotiation。 為了實現這個基於RDF 的content negotiation,這就要設定MIMEType, 定義一個RDF類型。 2004年一個關於RDF的content type: Application/RDF+XML被註冊。 對Linked Data 而言,content negotiation是非常重要的,如果要發布Linked Data,需要服務器能夠很好地實現content negotiation。
  • 務器送交一個響應個客戶端,尤其是瀏覽器,那麼如何來解析這個RDF文件? 特別是在瀏覽器模式下,由於RDF 不是給人看的,而是給機器看的,如何將機器語言翻譯成人能夠讀懂的表達方式? 這又需要一種特別的瀏覽器來解析RDF。

這個過程看,應用linked data需要:

  • 個能夠發送RDF請求,並能夠解析RDF的瀏覽器,我們稱之為RDF瀏覽器。 Keven 在其博客中介紹了很多RDF 瀏覽器或插件。 (Wei, 2009)
  • 個服務器能夠返回RDF類型的服務器。 幸運的是,我們常用的Apache開源http服務器:就是為數不多的能夠很好實現content negotiation的服務器。

利用Apache發布Linked Data時,需要對Apache進行簡單設置,需要增加一個關於RDF的content-type,方法是在Apache的設置中,或在.htaccess中增加一個類型說明: AddType application/rdf+xml rdf 。 這樣Apache接收到RDF的請求時,就可以回送RDF類型消息。

是,由於application/rdf+xml是新註冊的,有些瀏覽器還不兼容,我發現一個現象,訪問http://www.cloudlibrary.info/rdf/rainzenfoaf.rdf時,通過檢查文件頭的軟件得知,服務器返回了一個application/rdf+xml的文件,但通過Firefox看文件信息,卻被解釋成text/html。 看來firefox的默認content-type是text/html,而不認可application/rdf+xml類型,當接收到這個類型時,起用了默認值。

一個有趣的現像是,Apache的默認類型是text/plain,如果不設RDF類型時,服務器無法確認RDF文件,從而啟動默認值,把RDF文件當成text/plain。 返還的是文本文件信息,這時在瀏覽器上顯示文本文件。 那麼,是不是必須增加application/rdf+xml這個類型呢? 其實也是不一定的,上面已經說過,FireFox把application/rdf+xml解釋成text/html, 那麼我們添加一個類型: AddType text/html rdf 也行,或者直接將Apache的默認值設為text/html就行了。 那麼如何解釋回送過來的是text/html信息,而瀏覽器卻能解析成RDF呢? 看來瀏覽器這端還需要一個判斷,通過分析標記語言來判斷是否是RDF文件。 不過在系統與系統之間的通訊,我以為還是應該啟用application/rdf+xml,這樣更加可靠明確。

文是和Keven討論過程中形成的,感謝Keven對本文的貢獻。

參考文獻:

Needle, David. 2009. W3C's New SKOS Standard Advances Linked Data. [聯機] 2009年August月18日. [引用日期: 2009年August月27日.] http://www.internetnews.com/dev-news/ article.php/3835176 .

Wei, Liu keven. 2009.關聯數據瀏覽器.數圖研究筆記. [聯機] 2009年August月26日. [引用日期: 2009年August月27日.] http://www.kevenlw.name/archives /1844 .

背景鏈接

http://www.w3.org/Protocols/

http://www.iana.org/assignments/media-types/application/