作为人类,我们具有不可思议的能力,可以识别并利用各种信息,并能够理解如何利用这些信息来满足我们的需求。如果我们不考虑人体的感观基础,对于有很多数据类型,例如我们看到的东西(视频),听到的东西(音频),阅读到的东西(文字),大脑都可以很容易进行转换、翻译、处理、合并和重用。
更为复杂的是,我们可以阅读、观察或倾听消息,并且可以以不可思议的正确率来识别这些信息的内容和主题,结果足以从类似的信息中识别和筛选出来。
例如,在我们复述所看到或听到的内容时,没有人会多次回顾这些内容。类似地,我们可以对很多源头的信息(视频、音频、文字)进行合并,而且可以用任何一种格式对这些信息进行归纳总结。
但是对于一台计算机来说,这个过程要更为复杂。例如,对于一个 Web 页面上文字内容的理解就非常复杂。即使使用基本的文本分析技术,也不足以识别正确的主题。部分问题是由于我们所使用的语言中的一些奇特行为。例如,在英语中有些单词有多种含义,即使复杂的技术单词也是如此。就拿术语 services 来说吧,它就有多个含义,即便仅仅在 IT 和计算领域也是如此。
问题是在我们使用计算机来存储、维护越来越多的信息并与之进行交互时,计算机要有效地组织和利用这些信息就变得非常困难。对于资源和信息的搜索和查找都是非常有挑战性的任务。正如随着计算机更加自治(Google 就是一个很好的例子,它会自行更新资源),我们有效查找和利用这些信息的能力还必须提高。
当然,Google 会对 Web 页面上的单词进行索引,以搜索页面上的信息。然而,通过 Google 进行索引和搜索的信息的内容还非常少。例如,如果您搜索 services,就需要再给搜索单词加上一些额外的约束来帮助 Google 判断您所想搜索的是哪种服务(参见图 1)。然而,即使使用这些信息,Google 仍然只能挑选出那些包含这个约束的页面。要找到想要寻找的内容,您可能还需要在搜索时所使用的单词组合中指定更好的约束。
图 1. 在 Google 上搜索“services”
目前 Web 页面的缺点大部分是由于它们是使用超文本标记语言(HTML)编写的,这种语言主要用来对文本进行格式化处理,而不是识别和标记内容。HTML 标准已经进行了一些扩展(meta 标签),可以向页面中添加更多其他信息,但是这大部分都是多余的,它们用来将整个页面作为一个整体进行标记,而不是对给定页面的各部分内容进行说明。
HTML 的另外一个目标是让页面提供到其他页面和信息源的链接。然而,与页面本身的文字内容一样,这些链接也没有提供任何超出对链接进行描述的语言之外的任何内容。
语义 Web 的目标就是来解决这些问题,它采用其他一些技术来帮助对页面中包含的机器可读和可理解的人类信息进行分类和组织,应用程序可以利用这些信息来帮助对信息进行分类和组织。
XML 是这个步骤中的一个关键部分,这并不奇怪,就像是您之前听过的其他技术一样。关键部分如下:
- XML 用来定义文档的结构,还(使用 RDF)用来帮助描述该文档的其他元数据。然而需要注意,使用 XML 并不一定意味着这些文档都必须是使用 XML 编写的,并一定要转换成 XHTML,而只是说 XML 是用来简化信息格式化及共享的一个关键的基本标准。
- 资源描述框架(RDF) 是一个用来描述关于对象和引用的元数据的工具。RDF 是用来分发现有情况中的元数据的一种普遍认可的格式。例如,RDF 是企业联合组织用来分发有关 Web 页面中所包含内容的描述信息所采用的格式之一。
- Web Ontology Language(OWL) 是一种根据 RDF 准则来描述有关给定资源的本体数据的标记语言。本体数据是对特定主题领域中的内容的一种结构化描述。OWL 不但提供了结构化的内容信息,而且提供了一些方法来描述论题与主题之间的联系,以及主题之间的联系(例如,一个主题是否是一个大型论题的一个子类,它们之间是否存在直接或间接的关系)。基本的规则与学校中常教的经典动物、蔬菜、矿石和分类系统类似。例如,使用本体,您就可以定义只吃蔬菜的食草动物(素食者)、只吃其他动物的食肉动物和什么都吃的杂食动物。RDF 和 OWL 分类的例子请参阅 参考资料。
这三种技术一起用来帮助提供有关给定资源和这些资源所链接到的地方的语义信息(参见图 2)。资源是使用统一资源标识符(URI)进行定义的;RDF 和 OWL 数据可以被链接到 URI 上,这些 URI 不但对内容进行了描述,而且还描述了这些内容之间的关系,以及它们与其他 URI 和内容类型之间的关系。
图 2. 语义文档结构
由于关于 URI 的信息都是按照结构化的格式存储的,因此就可以由计算机进行分析和处理,从而确定链接以及与其他 URI 之间的关系。例如,通过分析,您就可以通过比较 RDF 与 OWL 资源中的信息来判断两个 Web 页面是否包含类似的主题。
在搜索上下文中(例如,Google 中),可以显式地声明您正在查找的信息类型,而不用依赖于包含所指定的单词的页面。例如,您可能会查找 cleaning services,但是返回的页面中可能根本就不包括这两个单词。
将语义 Web 应用于网格环境,就形成了语义网格。语义网格小组对语义网格进行了定义,我无法给出更好的定义,就直接引用他们的定义好了:语义网格就是“对当前网格的一个扩展,其中对信息和服务进行了很好的定义,可以更好地让计算机和人们协同工作”。
实际上,语义网格通常都被看作是这样一种结果:将网格和语义 Web 技术组合在一起,以便提高集成和数据计算的能力,如图 3 所示。
图 3. 提高集成和数据计算能力图示
语义网格实际上有两种用途:用来发现处理数据的可用资源,以及对数据进行集成。让我们来快速了解一下它们会对语义网格的实现都有些什么影响。
语义网格的发现端设计用来使得网格在 Internet 上更容易被发现。这需要对用户和应用程序所需要的能力详细进行定义,才能使它们更好地查找并利用网格。这可以帮助网格用户重用现有的资源和技术来满足自己对网格的需求,而不用构建新网格和应用程序来处理新数据。
例如,一个为科学社区提供计算资源的网格可以由大量的用户和组织使用。这不用为网格环境开发一个单用户的应用程序,其他人都可以使用现有的网格基础设施和网格应用程序。
复杂性在于如何描述网格服务和网格的处理能力。这是语义网格的特点所在,加上对能力和功能的详细分类和描述,使得判断特定网格可以提供哪些功能更加容易。
与 Web 和语义 Web 中的信息一样,语义网格的另外一种强大之处在于对网格中存储和可以使用的信息进行关联和协调使用的能力。
对于资源网格来说(这种网格共享的是磁盘和存储空间,而不是提供 CPU 处理能力),这个问题就是有多少人可以看到 Web 正在服务,使用网格技术(Web 服务,安全性等等)在信息之间提供关联和连通性可以为存储和信息提供一种有效的方法。例如,使用存储照片的语义网格组件,以及存储影像资料的语义网格,就可以建立连接和关联。例如,您可以搜索某个主题的照片,比如鲨鱼,还可以找到相关的影像资料(见图 4)。这是一个非常简单的例子。更可能的是,我们将可以看到语义网格被用于存储和标识复杂数据类型,例如复杂蛋白质和 DNA。
图 4. 在语义网格之间建立连接和关联
另外,网格所存储和处理的数据的定义让用户可以将多个网格连接在一起,提供更为复杂的计算。这里就有一个来自科学世界的很好的例子:DNA 和蛋白质。使用语义网格,您可以使用一个网格来处理 DNA 信息,使用另外一个网格对与这个 DNA 结构有关的蛋白质信息进行识别和处理,这可以通过将一个网格生成的数据提供给另外一个网格来实现。这个过程是可能的,因为数据和数据的结构在这两个网格系统中都是已知的,也都是可用的。在这两个网格系统之间共享数据只是处理并理解两个网格系统的语义数据:结构和格式(参见图 5)。
图 5. 在两个网格系统之间共享数据和数据结构
关于语义 Web 和语义网格应该如何工作的标准和(我敢说)语义现在还在进行讨论,但是现在已经有了一些成果和想法,您可以在现有的网格环境中采用,这样在语义网格成为现实时就可以减轻迁移到语义网格标准的工作量。
最为重要的是,在设计网格时,需要考虑如何采用一种可以让其他人可以利用您所提供的资源的方式来进行开发。例如,如果您正在构建一个计算网格,就需要考虑用来支持这个计算网格的计算资源和应用程序是否可以足够灵活,能够让其他人也使用这些资源和应用程序。
其次,要考虑如何描述和定义网格所存储和使用的数据。网格所使用或生成的数据具有很好的结构化格式么?它们可以采用一种其他人也可以使用的方法进行描述或定义吗?或者如果其他人的数据采用了合适的格式来定义,网格能够处理这些数据吗?
最后,确保您熟悉不同标准(XML、RDF、OWL)的核心元素和实践,以及它们如何在网格和应用程序中应用。
学习
-
您可以参阅本文在 developerWorks 全球站点上的 英文原文 。
-
Semantic Grid 是目前语义网格信息的主页,其中包括了很多详细介绍语义网格理论的白皮书、例子和文档。
-
Global Grid Forum Semantic Grid Research Group 是比较广泛的网格社区和标准领域中对语义网格讨论的一个焦点。
-
关于用来描述事物及其关系的 OWL 语言和本体的例子,请参阅 Protege OWL Plugin 中的文档。
-
Wikipedia 上有很多很好的文章,介绍了一些主流的技术。一个很好的起点是 Semantic Grid。从 Semantic Web 站点上,您可以找到以下链接:
-
请阅读“An introduction to RDF”。
-
Friend of a Friend 技术是语义 Web 准则的一个流行的应用。此处给出的描述可以帮助您理解如何链接信息和资源。
-
The Semantic Web: A Guide to the Future of XML, Web Services, and Knowledge Management
,Michael C. Daconta、Leo J. Obrst 和 Kevin T. Smith 著(John Wiley & Sons),ISBN 0-471-43257-1,是介绍语义 Web 开发的一份优秀的指南,它可以帮助您理解这些主要的准则。
-
Towards the Semantic Web: Ontology-Driven Knowledge Management
,John Davies、Dieter Fensel、Frank van Harmelen 著(John Wiley & Sons),ISBN 0-470-84867-7,介绍了有关本体的信息 —— 在语义 Web 和语义网格中用来描述信息的方法。
-
请参阅
Adaptive Information: Improving Business through Semantic Interoperability, Grid Computing, and Enterprise Integration
,Jeffrey T. Pollock、Ralph Hodgson_2 著(John Wiley & Sons),ISBN 0-471-48854-2。
-
World Wide Web Consortium 提供了有关 Semantic Web 和 OWL Web Ontology Language 的页面。
-
Semantic Web Portal 提供了有关其他介绍语义 Web 问题的站点的链接和信息。
-
请访问 developerWorks 网格计算专区 中丰富的网格信息。
获得产品和技术
-
alphaWorks 为加载和利用本体数据提供了一个 Ontology Management System。
-
IBM 还提供了一个语义工具包:IBM Integrated Ontology Development Toolkit。
讨论
-
通过参与 developerWorks blogs 加入 developerWorks 社区。
Martin Brown 成为一名职业作家已经超过 8 年的时间了。他撰写了很多涉及各个主题的书籍和文章。他的专业知识涉及各种开发语言和平台(比如 Perl、Python、Java、JavaScript、Basic、Pascal、Modula-2、C、C++、Rebol、Gawk、Shellscript、Windows、Solaris、Linux、BeOS、Mac OS/X 等),以及 Web 编程、系统管理和集成。Martin 会定期在 ServerWatch.com、LinuxToday.com 和 IBM developerWorks 上发表文章,定期更新 Computerworld、Apple Blog 以及其他站点上的 blog,同时还是 Microsoft 的 Subject Matter Expert(SME)的专栏作家。您可以通过他的 Web 站点 http://www.mcslp.com 与他联系。