第Ⅰ部分 语义Web程序设计简介 3
第1章 为以数据为中心的语义Web程序设计做好准备 3
1.1 定义语义Web 4
1.2 确定主要的程序设计组件 9
1.3 确定语义Web技术对程序设计的影响 11
1.3.1 确立以Web数据为中心的视角 11
1.3.2 表达语义数据 12
1.3.3 共享数据 13
1.3.4 使数据动态而灵活 14
1.4 避免阻碍、神化和夸张 16
1.4.1 语义Web遇到的阻碍 16
1.4.2 对语义Web的神化 17
1.4.3 对语义Web的夸大 18
1.5 了解语义Web的起源 19
1.6 探索语义Web示例 21
1.6.1 语义Wiki(semantic-mediawiki.org) 21
1.6.2 Twine(www.twine.com) 22
1.6.3 FOAF项目(www.foaf-project.org) 23
1.6.4 RDFa和微格式 24
1.6.5 语义查询端点(dbpedia.org/sparql) 26
1.6.6 语义搜索(www.trueknowledge.com) 26
1.7 总结与展望 27
1.8 参考资源 27
第2章 Hello Semantic Web World 29
2.1 建立语义Web开发环境 29
2.2 编写“Hello Semantic Web World”应用程序 31
2.3 小结 48
第Ⅱ部分 语义Web程序设计基础 53
第3章 信息建模 53
3.1 软件中的信息建模 53
3.1.1 共享信息:语法和语义 54
3.1.2 信息共享中的元数据和数据 56
3.2 语义Web信息模型:资源描述框架(RDF) 57
3.2.1 节点:资源和文字 57
3.2.2 边:谓语 59
3.3 使用RDF进行信息交换 59
3.3.1 可看作点的陈述 60
3.3.2 RDF序列化 61
3.3.3 更多关于RDF的内容 69
3.4 小结 75
第4章 融入语义 77
4.1 Web上的语义 78
4.1.1 动机因素 78
4.1.2 使用RDF表达语义 81
4.2 本体入门 84
4.2.1 分布式知识 84
4.2.2 本体元素概述 85
4.3 本体的元素 87
4.3.1 OWL 2类型 88
4.3.2 本体首部 88
4.3.3 标注 89
4.3.4 基本分类 89
4.3.5 定义和使用属性 93
4.3.6 属性的定义域和值域 93
4.3.7 描述属性 93
4.3.8 数据类型 99
4.3.9 否定属性断言 102
4.3.10 属性约束 103
4.3.11 高级类描述 108
4.3.12 OWL中的等价 111
4.4 小结 113
第5章 现实世界中的知识建模 115
5.1 探究语义Web的组件 115
5.1.1 语义Web框架 116
5.1.2 存储和检索RDF 117
5.1.3 辨识OWL的语义 120
5.1.4 常见框架和组件 124
5.1.5 知识库性能 127
5.2 探索OWL Profile 128
5.2.1 OWL Full和OWL DL 128
5.2.2 OWL Profile 129
5.3 OWL推理演示 131
5.3.1 本体 131
5.3.2 示例应用程序 133
5.3.3 结果 136
5.4 使用本体 139
5.4.1 将知识模型从应用程序中分离出来 140
5.4.2 跨领域和应用程序边界实现共享 141
5.4.3 基础本体的含义 142
5.4.4 常见的基础本体 143
5.4.5 查找本体进行重用或扩展 146
5.4.6 选择合适的基础本体 147
5.5 小结 148
第6章 发现信息 149
6.1 导航语义Web 150
6.2 搜索语义Web 153
6.3 查询语义Web 154
6.3.1 SPARQL快速入门 155
6.3.2 四种基本的查询形式 158
6.3.3 SELECT的精髓 159
6.3.4 RDF数据集、FROM和FROM NAMED 163
6.3.5 查询修饰符 169
6.3.6 CONSTRUCT的精髓 180
6.3.7 DESCRIBE的精髓 182
6.3.8 ASK的精髓 183
6.3.9 SPARQL蕴含 184
6.3.10 不支持的功能 185
6.4 小结 186
第7章 添加规则 187
7.1 规则的含义 188
7.2 使用规则的原因 188
7.2.1 不支持对属性的组合 188
7.2.2 内置的使用 188
7.2.3 本体式中介 188
7.2.4 有限制的假设 189
7.3 规则语言 189
7.4 SWRL的精髓 189
7.4 1 抽象语法 191
7.4.2 XML的具体语法 192
7.4.3 RDF的具体语法 198
7.4.4 内置 198
7.4.5 DL-Safe规则 199
7.4.6 本体式中介 205
7.5 Jena规则 209
7.6 规则交换格式 211
7.6.1 深入研究细节 211
7 6.2 RIF的未来 212
7.7 小结 212
第Ⅲ部分 建立语义Web应用程序 215
第8章 应用程序设计框架 215
8.1 构建语义Web框架 215
8.2 Jena语义Web框架 218
8.3 使用Jena进行程序设计 221
8.3.1 建立Jena开发环境 223
8.3.2 建立知识库:建立模型 224
8.3.3 使用语义Web数据填充模型 226
8.3.4 合并语义Web数据 229
8.3.5 询问语义Web数据 230
8.3.6 语义Web数据推理 232
8.3.7 导出语义Web数据 235
8.3.8 释放语义Web数据操作所占用的资源 236
8.3.9 管理语义Web数据 236
8.4 通用应用程序示例FriendTracker概述 242
8.5 小结 243
第9章 整合信息 245
9.1 整合信息 246
9.1.1 表示信息 246
9.1.2 各种表示之间的转换 247
9.1.3 解决转换过程中的难题 248
9.1.4 介绍FriendTracker的数据源 249
9.2 以RDF格式公开基于XML的Web服务 251
9.2.1 Weather.gov XML Feed介绍 252
9.2.2 使用XSL转换来公开XML 252
9.2.3 使用XML绑定和Velocity来公开XML 266
9.3 将关系数据库公开为RDF 274
9.4 公开其他类型的数据源 281
9.4.1 使用一个定制的流式RDF Writer来公开Jabber 281
9.4.2 使用Reflection来公开Java对象 285
9.5 小结 292
第10章 对准信息 293
10.1 数据源本体、领域本体和应用程序本体 293
10.2 本体的对准 294
10.2.1 本体构造 295
10.2.2 通过规则进行转换 296
10.2.3 显式转换 297
10.2.4 特定的转换方法 297
10.3 FriendTracker 297
10.3.1 使用OWL和SWRL来对准本体 302
10.3.2 使用XSLT来对准本体 307
10.3.3 使用代码来对准本体 311
10.3.4 使用RDFS来对准简单本体 312
10.4 记录链接 314
10.5 小结 317
第11章 信息共享 319
11.1 微格式 319
11.2 eRDF 321
11.3 RDFa 324
11.3.1 已支持的属性 324
11.3.2 空白节点 330
11.3.3 语言支持 331
11.4 工具和框架 331
11.4.1 RDF转换工具 332
11.4.2 SPARQL端点 332
11.4.3 xOperator 335
11.5 RDFa版本的FriendTracker 337
11.6 小结 344
第Ⅳ部分 扩展语义Web程序设计 347
第12章 开发和使用语义服务 347
12.1 背景 348
12.1.1 发现 350
12.1.2 调用 350
12.1.3 协商 350
12.1.4 错误处理 350
12.1.5 监视 350
12.1.6 组合 351
12.2 实现语义服务 351
12.3 Web服务语义标记 352
12.3.1 ServiceProfile 352
12.3.2 ServiceModel 353
12.3.3 ServiceGrounding 353
12.4 Web服务建模本体 353
12.5 WSDL语义标注 356
12.5.1 SAWSDL举例 357
12.5.2 SAWSDL工具 358
12.6 小结 359
第13章 管理空间和时间 361
13.1 软件中的空间和时间 361
13.1.1 空间信息 362
13.1.2 时间信息 363
13.2 表示语义Web上的时空数据 364
13.3 使用Jena实现的时空软件 371
13.3.1 使用空间数据 372
13.3.2 示例:空间查询 374
13.3.3 示例:事务处理时间界定的查询 381
13.4 小结 384
13.5 参考资源 384
第14章 语义Web模式和最佳实践 385
14.1 聚合不同的数据源 385
14.1.1 将数据源公开为RDF 386
14.1.2 将数据引入领域知识模型 387
14.1.3 在知识库中存储信息 388
14.1.4 启动数据流程 388
14.2 标注非结构化的数据 389
14.2.1 标注管理 390
14.2.2 本体管理 391
14.2.3 非结构化数据源和客户端应用程序 392
14.3 协调语义服务 393
14.4 应用语义Web最佳实践 394
14.4.1 创建URI 394
14.4.2 指定度量单位 397
14.4.3 表示N元关系 399
14.4.4 管理不良数据 399
14.5 小结 400
第15章 进阶 401
15.1 改进本体 402
15.1.1 本体仓储和注册站 402
15.1.2 Linked Data 403
15.1.3 版本控制 405
15.1.4 本体指标 405
15.2 改进集成 407
15.2.1 语义管道 407
15.2.2 分布式查询 408
15.2.3 对准 409
15.3 改进推理 414
15.3.1 规则交换格式(RIF) 414
15.3.2 概率推理 415
15.3.3 信任:证明标记语言 418
15.3.4 LarKC:大型知识对撞机 420
15.4 改进可视化 421
15.5 小结 424
附录A RDF 427
附录B OWL Web本体语言 433
附录C SWRL 439
附录D SPARQL 455
附录E Jena参考指南 465
附录F 安装参考指南 473