《语义Web编程》一导读

简介: 本书作者曾出版《集体智慧编程》,是从程序员的角度讲解语义Web工作的基础学习资料,可以帮助初学者快速掌握相关的编程基础
2f0928140ba32a718e240bc1d88e42e7714ab6b5


内容简介
   有了这本书,语义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

要发表评论或提出有关本书的技术问题,请发送电子邮件至:

bookquestions@oreilly.com

有关我们的书籍、会议、资源中心的更多信息,以及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

目录
相关文章
|
16天前
|
自然语言处理 Java 数据库连接
掌握JSP页面编程:动态生成Web内容
【4月更文挑战第3天】Java Server Pages (JSP) 是一种用于创建动态Web内容的Java技术,它结合HTML并允许在页面中嵌入Java代码。JSP支持代码片段、表达式语言(EL)和JSTL标签库,简化动态内容生成。当服务器接收到请求时,执行JSP中的Java代码并将结果嵌入HTML返回给客户端。示例展示了如何显示当前日期和时间。JSP可与Servlet、JavaBeans、数据库等结合,用于构建功能丰富的交互式Web应用。
掌握JSP页面编程:动态生成Web内容
|
6月前
|
存储 Java 关系型数据库
JSP考试质量分析系统myeclipse开发mysql数据库bs框架java编程web网页结构
JSP 考试质量分析系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
183 1
N..
|
25天前
|
JavaScript 前端开发 PHP
web编程的正则表达式
web编程的正则表达式
N..
9 1
|
3月前
|
Web App开发 前端开发 测试技术
【Web API系列】使用异步剪贴板API(async clipboard)的图像的编程复制和粘贴
【Web API系列】使用异步剪贴板API(async clipboard)的图像的编程复制和粘贴
73 1
|
4月前
|
安全 数据安全/隐私保护 Python
基于Web安全的Python编程(1)
基于Web安全的Python编程(1)
44 2
|
6月前
|
Java 关系型数据库 MySQL
JSP考试报名管理系统myeclipse开发mysql数据库bs框架java编程web网页结构
二、功能介绍 (1)权限管理:对权限信息进行添加、删除、修改和查看 (2)用户管理:对用户信息进行添加、删除、修改和查看 (3)公告管理:对公告信息进行添加、删除、修改和查看 (4)考试科目管理:对考试科目信息进行添加、删除、修改和查看 (5)考试安排管理:对考试安排信息进行添加、删除、修改和查看 (6)报名管理:对报名信息进行添加、删除、修改和查看,审核, (7)用户登录、身份验证 三、注意事项 1、管理员账号:admin密码:admin 数据库配置文件DBO.java 角色:普通用户,管理员 2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql
107 0
|
6月前
|
开发框架 .NET 数据库
asp.net企业费用报销管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
asp.net 企业费用报销管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使 用c#语言开发 应用技术:asp.net c#+sqlserver 开发工具:vs2010 +sqlserver
49 0
|
6月前
|
Java 关系型数据库 MySQL
JSP实习实训管理系统myeclipse开发mysql数据库WEB结构java编程
JSP 实习实训管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
46 0
|
6月前
|
SQL 存储 Java
JSP商家餐饮管理系统myeclipse开发sql数据库web结构java编程
JSP 商家餐饮管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 商场餐饮管理系统就是专门为商场和餐饮店主量身打造的一款电子商务系统,商场可以通过它来管理商场的美食广场,商场餐饮管理能能够使居民享受到餐厅美食,既方便了顾客,也节约了时间,提高了效率,也解决了普通商场美食广场出现的问题
23 0
|
6月前
|
Java 关系型数据库 MySQL
java编程网页SSH设备管理系统myeclipse开发mysql计算机程序web结构JSP源码
JSP SSH设备管理系统是一套完善的web设计系统(struts2+spring+hibernate模式开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发
58 1
java编程网页SSH设备管理系统myeclipse开发mysql计算机程序web结构JSP源码

热门文章

最新文章