首页>参考读物>计算机科学与技术>计算机网络

语义Web编程
作者 : [美]托比·塞加兰(Toby Segaran) 科林·埃文斯(Colin Evans) 杰米•泰勒(Jamie Taylor)著
译者 : 胡鹤 译
出版日期 : 2018-12-26
ISBN : 978-7-111-61587-3
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 274
开本 : 16
原书名 : Programming the Semantic Web
原出版社: OReilly Media, Inc.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书每章描述一段语义技术并解释如何使用它来解决实际问题。无论是编写一个简单的mashup还是维护一个高性能的企业解决方案,本书都提供了一个标准,灵活的方法,用于集成系统和数据使之更适于未来的发展。

图书特色

图书前言

与生物有机体一样,计算机运行在复杂的、相互关联的环境中,系统中的每个部分都会影响其他很多部分。类似于捕食者与被捕食者的关系,应用程序和它们消费的数据往往遵循着共同进化的路径。应用程序中的累积更改最终需要修改其操作的数据结构。与之相反,当向数据源增加内容时,表达附加信息的结构通常会迫使应用程序做相应修改。不幸的是,由于涉及很大的工作量,这种连锁变革往往会阻碍应用程序和数据源的改进。
在其核心上,语义技术通过使用简单的抽象模型来实现知识表示,从而将应用程序与数据分离开来。该模型释放了应用程序和数据之间的相互约束,使两者都能够独立进化。通过设计提高应用程序和数据之间的独立程度改善了数据的可移植性。任何理解相应模型的应用程序都可以处理任何使用该模型的数据源。正是这种数据可移植性构成了机器可读语义Web概念的基础。
当前的Web运行良好,因为人类是非常灵活的数据处理器。无论网页上的信息是作为表格、大纲还是多页面叙述的排列形式,我们都能够提取重要信息并用它来指导进一步的知识发现。然而,这种信息的异构性对于机器来说是无法解读的,而且网上数据的丰富表示形式只会使问题加重。如果Web上可用的丰富信息能够被内容提供者编码为语义数据结构,那么任何应用程序都可以访问和使用我们所依赖的丰富数据。在这个愿景中,不同来源的数据可以无缝地集成起来,从交汇融合中产生新的知识。这就是语义Web的愿景。
现在,应用程序是否可以利用这些丰富的数据做出任何有趣的事情,正是开发人员可以发力的地方!语义技术使开发人员可以专注于应用程序的行为而不是数据处理。当给定新的数据源时,这个系统会做什么?它如何使用改进后的数据模型?当多个数据源彼此丰富时,用户体验如何提高?将知识的利用和对底层数据的操作区分开来,可以让开发人员专注于应用程序中带来价值的因素。
语义Web的愿景承诺美好,这个愿景的真正价值在于,它孕育了使数据更具可移植性和可扩展性的技术。无论你是在编写简单的混搭代码还是在维护高性能企业解决方案,本书都提供了一种标准和灵活的方法,用于集成系统和数据使之更适于未来发展。
排版约定
本书中使用以下排版约定:
斜体(Italie)
表示URL、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant width)
表示程序清单,以及段落内用于引用的程序元素,如变量或函数名称、数据库、数据类型、环境变量、语句和关键字。
表示技巧、建议或一般说明。
表示警告。
使用代码示例
本书旨在帮助你完成工作。通常,你可以在你的程序和文档中随意使用本书中的代码。除非引用大量的源代码,否则无须征得我们的许可。例如,编写程序时使用本书中几个代码块是无须许可的,而销售或发行O扲eilly书籍中的示例CD-ROM需要获得许可。通过引用本书内容及示例代码来答疑解难是无须许可的,将本书中的大量示例代码加入到你的产品文档中是需要许可的。
我们赞赏,但不要求你在引用时注明出处。引用通常包括标题、作者、出版商和ISBN。
如果你发现自己对示例代码的使用有失公允或违反了上述条款,请通过permissions@ oreilly.com与我们联系。
Safari在线电子书
当你在喜爱的技术书籍封面上看到一个Safari在线电子书图标时,表示该书可通过O扲eilly 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
要发表评论或提出有关本书的技术问题,请发送电子邮件至:
bookquestions@oreilly.com
有关我们的书籍、会议、资源中心的更多信息,以及O扲eilly Network,请访问我们的网站:
http://www.oreilly.com
作者已经建立了一个网站作为社区资源,用于演示语义技术的实用方法。可以通过以下网址访问此网站:
http://www.semprog.com

封底文字

有了这本书,语义Web的承诺 --- 机器能够发现、共享和组合Web上的数据 --- 不再是一种技术上的可能,而是一种可以实践的现实。《语义Web编程》展示了使用现有和最新发展的标准和技术来实现语义Web应用程序的几种方法。你将学习如何将现有数据源整合到能够理解语义的应用程序中以及如何发布带有丰富语义的数据。
本书的每一章都会向你展示一种独特的语义技术,并告诉你如何使用该技术解决实际的问题。不管你是要编写一个简单的混搭程序,还是要维护某个高性能企业级的解决方案,《语义Web编程》都提供了一种集成系统和数据的标准、灵活和不会过时的方法。
本书将帮助你:
 学习语义Web如何引导出现新的和未曾预料到的数据使用方式
 理解语义技术如何使用一种简单、抽象的知识表示模型来提高数据的可移植性
 熟悉语义标准,比如资源描述框架(RDF)和Web本体语言(OWL)
 使用语义编程技术来增进并简化现有的Web应用程序

技术就在这里,所需的工具已经齐备,本书将向你展示如何使这些技术为你所用。

--- 吉姆•亨德勒
AI研究者,语义Web的发起者之一
《语义Web编程》是一本适合动手实操的最好的语义Web实践指南,所有学习数据Web的工程师的必读材料。本书将提供你游泳的工具,使你既可以在Web上发布数据,也可以在你自己的应用程序中利用元数据。

--- 彼得•米卡
研究者,雅虎数据架构师

图书序言

几年前,Tim Berners-Lee(万维网发明人)认为,当人们不再问“为什么?”而是开始问“如何做?”时,我们就会知道语义Web将走向成功—整个过程就像许多年前的万维网一样。有了这本书,我终于可以舒服地说,我们已经经过了这个转折点。本书是关于“如何做”的书—它为开发语义Web的程序员提供了当下所需的工具!
本书介绍的语义Web方法非常适合于要积极利用这些新Web技术的程序员社区。十多年前,像我这样的研究人员开始接触语义Web背后的一些想法,从1999年到2005年,大量的研究经费投入到这个领域。来自研究人员的“噪声”有时会掩盖这样一个事实,即该研究领域的实用技术并不是(高端的)火箭科学。事实上,本书中所介绍的技术已经非常成熟,现在已成为Web开发人员工具包中的重要组成部分。
在2000年和2001年,有关语义Web的文章开始出现在Web的内容空间中。2005年左右,我们不仅看到一些小公司开始参与这个领域,还看到了一些像Oracle这样的大公司也在拥抱这项技术。2006年年底,John Markoff在《纽约时报》发表了一篇关于“Web 3.0”的文章,越来越多的开发人员开始认真研究语义Web,并开始喜欢他们所看到的内容。这个开发者社区帮助创建了相关的工具和技术,因此在2009年,我们开始看到此领域真正起飞。语义Web和各种相关技术用途的文章几乎每天都在出现。
美国政府正在使用语义Web技术来提高政府数据的透明度。谷歌公司和雅虎公司正在从Web文档中收集和处理嵌入式RDFa,而微软公司最近在基于语言的Web应用程序中讨论了它所做的一些语义工作。Web 3.0应用程序正在吸引各种各样的用户,正是这些用户使早期的Web 2.0应用程序受到公众关注,而一些你可能还没听说过的创新初创公司正在探索如何将语义技术加入到日益广泛的Web应用程序中。
然而,所有这些令人兴奋的进展都遇到了明显的困难。现在有更多的人在问“怎么做?”,但是由于这项技术刚刚出现,很少有人知道如何回答这个问题。像我这样早期的语义Web传播者已经非常善于向包括数据库管理员、政府雇员、实业家和学者在内的众多人士解释语义Web的发展愿景,但最近提出的问题越来越难以解决。当一家财富500强公司的首席技术官问我为什么要关注这类技术时,我迫不及待地想要回答。但是,当他的开发人员问我如何为某些嵌入式RDFa中表达的谓词找到最适当的宾语时,或者SPARQL查询的OPTIONAL子句中的BNode绑定如何工作时,我知道这些问题很快会超出我的能力范围之外。然而,随着本书的出版,我现在可以指着它说:“答案就在那里”。一直以来缺少从程序员的角度讲解语义Web工作的文献,如今这个漏洞终于被填补了。
这本书还解决了另一个重要的需求。鉴于语义网络“多层蛋糕”(参见第11章)的顶部仍然处于研究阶段,所以存在很多混淆。一方面,像“关联数据”和“Web 3.0”这样的术语被用来描述当今Web应用程序所需要的立即可用和快速扩展的技术;另一方面,人们还在探索将为下一代语义Web提供支持的“语义Web 2.0”开发。本书为读者提供了一个简单的方法,让读者能够区分“当前的实际”和“天上的馅饼”。
最后,我喜欢这本书的另一个原因是:它包含了我经常称为“懂点语义学走得更远”的哲学。注1在Web上,开发人员不需要成为哲学家、AI研究员或逻辑学家来理解如何让语义Web正常工作。然而,弄清楚究竟需要多少知识才能胜任工作是一个真正的挑战。在本书中,Toby、Jamie和Colin将向你展示“刚好够用的RDF”(第4章)和“刚好够用的OWL”(第6章),让你这个程序员准备就绪并开始工作。
简而言之,语义Web技术就在这里,相关工具已经准备就绪,本书将告诉你如何使它为你工作。你还在等什么?Web的未来就在你的指尖。

Jim Hendler
纽约州,奥尔巴尼
2009年3月

作者简介

[美]托比·塞加兰(Toby Segaran) 科林·埃文斯(Colin Evans) 杰米•泰勒(Jamie Taylor)著:托比•塞加兰 是《集体智慧编程》的作者,生物技术软件公司Incellico的创始人。

科林•埃文斯 擅长将机器学习和语义分析相结合,就职于Metaweb公司。

杰米•泰勒 拥有经济学博士学位,就职于Freebase公司,他指导计算机如何处理语义。

译者序

我很荣幸成为这本书的译者,本书是O扲eilly公司出版的第一本面向语义Web编程的经典教材。作者Toby Segaran是畅销书《Programming Collective Intelligence》的作者,他创办了Incellico生物技术软件公司。另两位作者Colin Evans和Jamie Taylor分别就职于Metaweb公司和Freebase公司,是机器学习和语义分析方面的专家。该书是一本适合语义Web入门实践的优秀指南,有利于对语义Web研究感兴趣的初学者快速掌握相关的编程基础。
Web的发明者国际W3C主席Tim Berners-Lee首次提出了语义Web概念:“语义Web并不是一个孤立的Web,而是对当前Web的扩展,语义Web上的信息具有定义良好的含义,使得计算机之间以及人类能够更好地彼此合作。”在语义Web的愿景中,人们会用带有标准语义的方式来清晰地描述所提供的各种资源内容,从而为互联网上的各种资源建立完善的语义描述。在这种语义描述基础上,进一步构建标准化的语义推理、证明以及信任体系,为各种智能代理提供可靠的基础设施和标准化的交互模式。语义Web中的计算机能够通过智能代理,自动化地在海量的互联网资源中准确定位到所需要的信息,从而将目前分散孤立的Web信息融合集成为一个巨大的全球数据库,革命性地改变人们利用Web的方式。
自从1998年Tim Berners-Lee提出语义Web设想到现在,已经有二十年的时间。这二十年间语义Web的发展道路并不平坦,距离理想中的语义Web愿景还有很长的路要走。近年来,随着知识图谱系统的流行,语义关联数据越来越丰富,语义Web的相关研究进入快速发展期,吸引了很多新的研究者投入该领域研究,本书正是在这样的背景下翻译完成的。值得注意的是,书中示例所使用的网站www.semprog.com已经停止服务了,读者可以从https://resources.oreilly.com/examples/9780596153823/ 获取本书的源代码进行练习。
在翻译本书的过程中,译者虽然尽最大努力尊重原义,尽可能避免产生歧义,但由于才疏学浅,难免存在翻译不当之处,敬请广大读者批评指正。
本书能得以顺利出版,要感谢机械工业出版社华章分社的大力支持,尤其是王春华和陈佳媛两位编辑给予了无私的帮助,在此一并表示衷心感谢!

译者
2018年11月

图书目录

前言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

教学资源推荐
作者: Larry L. Peterson ; Bruce S. Davie
作者: Ravindra K.Ahuja, Thomas L.Magnanti, James B.Orlin
作者: Gary R.Wright,W.Richard Stevens
作者: 孔祥杰 万良田 夏锋 编著
参考读物推荐
作者: (美)Eric Enge;Stephan Spencer;Jessie Stricchiola;Rand Fishkin著
作者: (美)Terry William Ogletree
作者: 冠群工作室