开始之前
本教程是针对那些希望进一步学习使用语义技术和应用的开发人员编写的。具体来说,它会告诉您如何使用语义 Web 技术随时从任意的 Web 服务获取数据并以用户选择的形式显示。
本教程假设您熟悉 Java 编程。还应该对 XML 和资源描述框架(RDF)的一般概念有所了解,特别是 Web 本体语言(OWL)。如果需要重温这些主题,请参阅本系列教程的 第 3 部分 和 第 4 部分。
如今,在 Web 上如果没有遇到通过基于 Web 服务的 API 提供数据访问、或者通过基于 Web 服务的 API 使用其他网站数据的 Web 站点几乎是不可思议的。考虑到在应用程序中使用已有数据的优势,这一点可能并不令人惊奇。有人将来自这些异构系统的数据结合起来形成某种全新的东西只不过是时间早晚的问题。这些应用程序称为 mashup,是 Web 上最新出现的一股浪潮,从基于社区的站点到专用的搜索站点再到无所不在的地图 mashup。
Mashup 基本上都很有用,但有一个共同点,即都是为一组特定的服务开发的。如果其中某项服务改变了,或者特定类型的某种服务的表示改变了,就需要做大量的修改。
本系列教程的目标是创建一个智能化的 mashup 应用程序,用户可以任意地增减服务,系统知道该如何处理此类情况。本系列教程包括以下部分:
第 1 部分 介绍了 mashup 的概念,说明了其工作原理并创建了一个简单的 mashup 应用程序。如果 Web 请求达到几十个就会发现严重的性能问题。
第 2 部分 利用 IBM® DB2® 新增的 pureXML™ 功能建立了 XML 缓存,它可以保存上一次请求的结果,还支持检索特定的信息,从而部分地解决了问题。
最终,还要应用本体,也就是定义概念及其关系的词汇表,因此在 第 3 部分 中学习了 RDF 和 RDFs,这是 Web 本体语言(OWL)中的两个重要成分,OWL 本身则在 第 4 部分 讨论。第 5 部分 利用第 4 部分创建的本体使用户能够改变信息源。
现在,到了本系列教程最有趣的部分。这时候已经有了一个能够工作的应用程序和框架,系统能够运用语义推理来理解它配置的服务。本教程中,我们把控制权交给用户,让用户在本体中选择服务,挑选和选择在其定制 mashup 中使用的数据。
本教程是该系列的第 6 部分,介绍了如何向已有的 Web 服务 mashup 应用程序增加语义功能。第 5 部分(请参阅 参考资料)中实现了一个现成的本体让用户方便地改变服务。本教程中将使用语义技术让用户完全控制显示的信息及其表示。
在本教程中您将学会:
- 对语义数据调用推理程序
- 编程确定类的子类
- 编程确定可用的类属性
- 编程确定特定的属性值
- 建立一个应用程序根据语义而不是 XPath 表达式获取信息
本教程中将利用第 1 到第 5 部分创建的 mashup 并把最终控制权交给用户。用户可以选择服务的类型、要使用的具体 Web 服务、从服务中获取的数据以及这些数据的表示。最后,只需要将其添加到本体中而不需要动应用程序本身就能增加新的功能和新的服务。
为了试验本教程中的代码,需要安装和测试下列软件:
- IBM DB2 9(原来称为“Viper”):该关系数据库包括本教程需要使用的杰出的 XML 功能。可以下载 DB2 9 的评估版。
- Apache Tomcat 或其他 servlet 引擎:本教程假设使用 servlet 创建 Web 服务,因此需要一个 Apache Tomcat 这样的 servlet 引擎。如果选择使用其他环境创建应用程序,一定要准备好适当的软件。下载 apache-tomcat-5.5.17.zip 并安装到一个目录中,目录名不要有空格。
- Java:本教程采用的 Apache Tomcat 5.5 需要 Java 1.5 或更高版本。下载 J2SE SDK。
- 为了方便,可以使用 Eclipse 或 IBM Rational™ Web Developer 之类的 IDE 进行开发。可以从 Eclipse.org 下载 Eclipse,或者使用自己喜欢的开发环境。就编译和部署而言,不要追求新奇。