天天看點

《語義Web程式設計》一導讀

《語義Web程式設計》一導讀

内容簡介

   有了這本書,語義Web的承諾(機器能夠發現、共享群組合Web上的資料) 不再是一種技術上的可能,而是一種可以實踐的現實。《語義Web程式設計》展示了使用現有和新發展的标準和技術來實作語義Web應用程式的幾種方法。你将學習如何将現有資料源整合到能夠了解語義的應用程式中以及如何釋出帶有豐富語義的資料。本書的每一章都會向你展示一種獨特的語義技術,并告訴你如何使用該技術解決實際的問題。不管你是要編寫一個簡單的混搭程式,還是要維護某個高性能企業級的解決方案,《語義Web程式設計》都提供了一種內建系統和資料的标準、靈活和不會過時的方法。

     本書将幫助你:

     學習語義Web如何引導出現新的和未曾預料到的資料使用方式

     了解語義技術如何使用一種簡單、抽象的知識表示模型來提高資料的可移植性 

     熟悉語義标準,比如資源描述架構(RDF)和Web本體語言(OWL)

     使用語義程式設計技術來增進并簡化現有的Web應用程式

作者簡介

托比•塞加蘭

《集體智慧程式設計》的作者,生物技術軟體公司Incellico的創始人。

科林•埃文斯

擅長将機器學習和語義分析相結合,就職于Metaweb公司。

傑米•泰勒

     擁有經濟學博士學位,就職于Freebase公司,他指導計算機如何處理語義

前言

與生物有機體一樣,計算機運作在複雜的、互相關聯的環境中,系統中的每個部分都會影響其他很多部分。類似于捕食者與被捕食者的關系,應用程式和它們消費的資料往往遵循着共同進化的路徑。應用程式中的累積更改最終需要修改其操作的資料結構。與之相反,當向資料源增加内容時,表達附加資訊的結構通常會迫使應用程式做相應修改。不幸的是,由于涉及很大的工作量,這種連鎖變革往往會阻礙應用程式和資料源的改進。

在其核心上,語義技術通過使用簡單的抽象模型來實作知識表示,進而将應用程式與資料分離開來。該模型釋放了應用程式和資料之間的互相限制,使兩者都能夠獨立進化。通過設計提高應用程式和資料之間的獨立程度改善了資料的可移植性。任何了解相應模型的應用程式都可以處理任何使用該模型的資料源。正是這種資料可移植性構成了機器可讀語義Web概念的基礎。

目前的Web運作良好,因為人類是非常靈活的資料處理器。無論網頁上的資訊是作為表格、大綱還是多頁面叙述的排列形式,我們都能夠提取重要資訊并用它來指導進一步的知識發現。然而,這種資訊的異構性對于機器來說是無法解讀的,而且網上資料的豐富表示形式隻會使問題加重。如果Web上可用的豐富資訊能夠被内容提供者編碼為語義資料結構,那麼任何應用程式都可以通路和使用我們所依賴的豐富資料。在這個願景中,不同來源的資料可以無縫地內建起來,從交彙融合中産生新的知識。這就是語義Web的願景。

現在,應用程式是否可以利用這些豐富的資料做出任何有趣的事情,正是開發人員可以發力的地方!語義技術使開發人員可以專注于應用程式的行為而不是資料處理。當給定新的資料源時,這個系統會做什麼?它如何使用改進後的資料模型?當多個資料源彼此豐富時,使用者體驗如何提高?将知識的利用和對底層資料的操作區分開來,可以讓開發人員專注于應用程式中帶來價值的因素。

語義Web的願景承諾美好,這個願景的真正價值在于,它孕育了使資料更具可移植性和可擴充性的技術。無論你是在編寫簡單的混搭代碼還是在維護高性能企業解決方案,本書都提供了一種标準和靈活的方法,用于內建系統和資料使之更适于未來發展。

使用代碼示例

本書旨在幫助你完成工作。通常,你可以在你的程式和文檔中随意使用本書中的代碼。除非引用大量的源代碼,否則無須征得我們的許可。例如,編寫程式時使用本書中幾個代碼塊是無須許可的,而銷售或發行O'Reilly書籍中的示例CD-ROM需要獲得許可。通過引用本書内容及示例代碼來答疑解難是無須許可的,将本書中的大量示例代碼加入到你的産品文檔中是需要許可的。

我們贊賞,但不要求你在引用時注明出處。引用通常包括标題、作者、出版商和ISBN。

如果你發現自己對示例代碼的使用有失公允或違反了上述條款,請通過permissions@ oreilly.com與我們聯系。

Safari線上電子書

當你在喜愛的技術書籍封面上看到一個Safari線上電子書圖示時,表示該書可通過O'Reilly Network Safari Bookshelf線上擷取。

Safari提供的解決方案比電子書更好。這是一個虛拟圖書館,你可以輕松搜尋數以千計的高科技圖書,剪切和粘貼代碼示例,下載下傳章節,并在需要最準确、最新的資訊時快速找到答案。在http://my.safaribooksonline.com可免費試用。

如何聯系我們

請将有關本書的評論和問題,發送給出版商:

美國:

O'Reilly Media,

Inc.

1005 Gravenstein

Highway North

Sebastopol, CA

95472

中國:

北京市西城區西直門南大街2号成銘大廈C座807室(100035)

奧萊利技術咨詢(北京)有限公司

我們為本書設立了網頁,列出勘誤表、示例和其他資訊。可以通過以下網址通路此頁:

http://www.oreilly.com/catalog/9780596153816

要發表評論或提出有關本書的技術問題,請發送電子郵件至:

[email protected]

有關我們的書籍、會議、資源中心的更多資訊,以及O扲eilly Network,請通路我們的網站:

http://www.oreilly.com

作者已經建立了一個網站作為社群資源,用于示範語義技術的實用方法。可以通過以下網址通路此網站:

http://www.semprog.com

專家推薦

技術就在這裡,所需的工具已經齊備,本書将向你展示如何使這些技術為你所用。

——吉姆•亨德勒

AI研究者,語義Web的發起者之一

《語義Web程式設計》是一本适合動手實操的最好的語義Web實踐指南,所有學習資料Web的工程師的必讀材料。本書将提供你遊泳的工具,使你既可以在Web上釋出資料,也可以在你自己的應用程式中利用中繼資料。

——彼得•米卡

研究者,雅虎資料架構師

   目錄

前言1

第一部分 語義資料

第1章 為什麼需要語義7

跨Web的資料內建8

傳統的資料模組化方法9

表格資料9

關系資料11

演化和重構模式12

非常複雜的模式14

第一次就做對16

語義關系17

中繼資料是資料19

構造意想不到的模式19

永久Beta(測試)19

第2章 表達含義21

示例:電影資料23

建構簡單的三元組存儲24

索引25

添加和删除方法25

查詢27

合并圖28

添加和查詢電影資料30

其他例子31

地點31

名人33

商業35

第3章 使用語義資料38

一種簡單的查詢語言38

變量綁定38

實作一種查詢語言41

前饋推理44

推理新三元組44

地理編碼46

鍊式規則48

關于“人工智能”51

尋找連接配接51

凱文·培根六度分隔52

共享鍵與重疊圖54

示例:合并商業和地點圖54

查詢合并圖55

基礎圖形可視化56

Graphviz56

顯示三元組集合56

顯示查詢結果58

語義資料是靈活的59

第二部分 标準與資料源

第4章 剛好夠用的RDF63

RDF是什麼63

RDF資料模型64

URI是強大的鍵64

資源65

空節點66

文字值68

RDF序列化格式68

一張朋友的圖69

N-Triples70

N371

RDF/XML73

RDFa75

RDFLib介紹80

RDFLib的持久化82

SPARQL84

SELECT查詢形式86

OPTIONAL和FILTER限制86

多個圖模式88

CONSTRUCT查詢形式90

ASK和DESCRIBE查詢形式91

RDFLib中的SPARQL查詢92

有用的查詢修飾符94

第5章 語義資料的來源96

朋友的朋友(FOAF)96

社交網絡的圖分析100

關聯資料104

資料雲105

你是你的FOAF檔案嗎106

使用關聯資料109

Freebase115

一個辨別資料庫116

RDF接口117

Freebase模式118

MQL接口121

使用metaweb.py庫122

與人類互動124

第6章 “本體”是什麼意思126

本體有什麼好處126

對含義的共識127

模型即資料127

資料模組化介紹128

類和屬性128

對電影模組化130

具體化關系133

剛好夠用的OWL134

使用Protégé138

建立新的本體138

編輯本體139

再多一點OWL142

函數式和逆函數式屬性142

逆屬性142

不相交的類142

保持務實144

一些其他的本體144

描述FOAF144

啤酒本體145

這不是漂亮的關系模式147

第7章 釋出語義資料149

嵌入語義149

微格式150

RDFa152

雅虎SearchMonkey154

谷歌富片段155

處理曆史遺留資料156

網際網路視訊檔案156

表格和電子表格161

傳統關系資料164

RDFLib到關聯資料167

第三部分 付諸實踐

第8章 工具包概述177

Sesame177

使用Sesame Java API178

Sesame中的RDFS推理187

Sesame伺服器的Servlet容器190

安裝Sesame Web應用程式190

工作台191

添加資料193

SPARQL查詢194

REST API195

其他RDF存儲197

Jena198

Redland198

Mulgara198

OpenLink

Virtuoso198

Franz

AllegroGraph198

Oracle199

SIMILE/Exhibit199

一個簡單的Exhibit頁面200

搜尋、過濾和更漂亮的視圖202

連結到Sesame205

時間軸205

第9章 從資料自省到對象208

RDFObject例子208

RDFObject架構210

RDFObject是如何工作的218

第10章 完成組裝219

職位清單應用程式219

應用程式需求220

職位清單資料220

轉換為RDF221

将資料加載到Sesame中223

服務網站223

CherryPy224

Mako頁面模闆225

一種通用視圖226

從Sesame擷取資料228

通用的模闆228

獲得公司資料229

Crunchbase229

雅虎金融232

協調Freebase連接配接234

專用視圖236

為其他人釋出資料239

RDFa240

RDF / XML241

擴充資料242

位置243

地理、經濟、人口243

複雜查詢244

工作資料可視化247

進一步擴充249

第四部分 後記

第11章 巨型全球圖253

願景、炒作和現實253

參與全球圖社群256

将資料釋出給大衆256

許可證257

資料循環258

迎接不斷的變化259