石家庄OA信息化的基本XML和RDF技术(一):使用XSLT生成RDF
知识管理的基本XML和RDF技术(一):使用XSLT生成RDF
Uche Ogbuji (
CEO 和首席顾问,Fourthought, Inc.
2001 年 7 月
专栏作家 Uche Ogbuji 通过演示用来自现有 XML 格式的数据构成“资源描述框架 (RDF)”模型,开始了他的用
XML 进行的知识管理的实际探索。 如三个代码清单中所示,RDF 可用作定制 XML
的搭挡,而不仅仅用作某些数据类型的规范表示。包含代码样本的本专栏演示了如何用 RDF
方便地进行知识管理,甚至是在开发过程中相对比较晚的阶段。
虽然 W3C 将“资源描述框架
(RDF)”设计为常规元数据建模工具,但它还提供了许多功能,使之成为 XML 数据的理想搭挡。在许多正在形成的 XML
应用程序中,在应用程序的生存期中封装在应用程序中的知识以 XML 文档形式存储在数据库或资源库中。作为知识管理工具的 RDF
的基本用途是,它允许您组织、关连、分类和注释这些知识,从而增加存储数据的总计值。 RDF 具有复杂性,通过简单地将 RDF 支持添加到基于 XML
的应用程序中来掩饰这种复杂。 本文开始探索 RDF 和 XML 之间的协作关系。以下将演示如何使用 XSLT 根据 XML 生成 RDF。
必需熟悉 RDF 和 XSLT。也可以先阅读以前 developerWorks 中的介绍 RDF, 或者参考资料中链接的其它文章。
旧东西不一定总是过时的
例如,让我们来跟踪技术规范的开放式开发过程。规范是公布到网上且感兴趣的团体可以阅读它、添加与规范相关的问题、评论公开的问题以及指派相关问题的操作项目等等。
XML 是一种功能强大的工具,它可将这种问题追踪放在一起。虽然问题和操作项目的描述和相关讨论都需要灵活的表示,但结构对于维护数据语义是很重要的。在示例中,应用程序已经开发好了,而且使用了用于如将操作项目提示者发送给用户、支持搜索和浏览等任务的基本技术。然而,为了利用 RDF 处理中可使用的许多现有工具和技术,开发人员已经决定开始在应用程序中使用 RDF。
在选择使用 RDF 时,开发人员不想重新设计所有的应用程序数据和逻辑。他们宁愿添加他们能够(并且或许逐渐)将 RDF 处理移向应用程序核心的那些东西。所以,他们面临的任务之一是,根据他们已经收集的 XML 数据生成有用的 RDF。
XML 格式示例
清单 1 是追踪过程中单个问题的 XML
格式示例。它有唯一标识符和表示问题与哪个文档或文档部分相关的引用元素。问题的原创者被加上注释,这表示正在使用系统的用户管理功能。任何人都可以对文档进行撰稿,但对已注册的用户会特别标注和处理。问题的主要描述和附加的用户注释会联机显示,并且还有指派给用户的相关操作。
播种数据,收获元数据
从问题追踪中所使用的 XML 文件中抽取 RDF
元数据的方法有几种。最直接的方法或许是编写一种 XSLT 转换, 它读取文件并输出元数据的 RDF/XML 序列,这将在下一小节中演示。
因为 RDF 位于 URI 上(出于更好或出于更坏),所以您必须为元数据节点 提出一些 URI 方案。一些事物(如用于创作问题的规范的位置)已经有 URI。其它事物可能已经有专门的 XML 表示;在我们的示例中,用户对象作为单独的 XML 文件管理。其它事物可能仍是完全抽象的,除了它们的元数据节点外,没有任何应用程序设计工具或机制。这最后一类的示例是我建议为资源创建的 RDF 类型。 要在 RDF 中使用的 URI 如下:
在鉴定中的规范的地址。示例: http://rdfinference.org/ril/ril-20010502
问题的 XML 源码的地址。示例: http://rdfinference.org/ril/issue-tracker/issues/i2001030423
注册用户的概要文件的 XML 源码的地址。示例: http://rdfinference.org/ril/issue-tracker/users/uogbuji.
作者、问题、指派等的 RDF 类型。示例: http://rdfs.rdfinference.org/ril/issue-tracker#Author
一个可能的 RDF 系列化
上面已给出清单 2, 它是表示清单 1
中元数据的一个可能的 RDF 模型系列化。
请注意:在某些情况下,我使用匿名资源,如注释和操作资源。这是一种建模选项。例如,要对用于任务调度的操作进行集中索引, 那么将 URI 用于抽象操作而不是使它们保持匿名可能是有意义的。
XSLT 转换
现在,您已经了解 RDF 的样子,就可以构造一种转换,将问题描述转换成适当的
RDF 文件。 清单 3 就是使用 XSLT 的这种转换。
至于在此清单中看到的一些技术,我已经在先前的一篇 developerWorks 文章—— 用 XSLT 进行 WSDL 处理中讨论过,它包含将“Web 服务描述语言 (WSDL)” 转换成 XML 这一章节。在这种情况下,目的是尽可能使产生的 RDF 系列化看上去更接近原始的WSDL XML。在这种情况中没有这种约束,因此转换很少是机密的。只是依次访问各种 XML 元素,并一点一点地构建等价的 RDF 描述。
最重要的高层次的操作是 issue 元素的匹配,它仅仅转向并调用一个已命名模板来为相应的问题实际构建 RDF 描述。这种间接方式的原因是,可以为定制和扩展这种转换提供灵活性。例如,当您阅读下一个 XML 编程思想专栏时,可以在执行从问题文档到 RDF 的批处理转换的单独的转换中使用已命名模板。
在示例中,除了联机规范本身之外,问题跟踪程序还可以跟踪有关各种资源的问题。(您可以从问题跟踪程序本身开始一个问题——也许是一个错误报告。)由于这个原因,设计还要使引用元素的处理变得相当灵活。 使用单独的 XSLT 方式(确保仅在正确时刻解析引用元素),模板检查引用元素的可展开内容。目前,示例应用程序通过用来自正被讨论的问题中的引用简单地创建 RDF 描述来处理引用是指规范这种情况。由于需要处理更多种类型的可扩展引用, 所以可以添加附加的 xsl:when 子句来处理这些情况。
您还可以查看用于处理使用概要文件或只是自由格式的文本注册用户描述这一事实的基本方法。
更多要遵循的
在本专栏中,我已提供了使用 XSLT 从 XML 实例中抽取
RDF 的简单示例。随着越来越多的基于 XML 的应用程序的使用,这样的技术在扩展带有知识管理特性的应用程序中是有用的。
下一个专题将继续问题跟踪程序示例,同时演示问题文档的批处理和对此处理有用的一些开放源码工具。
本专题中的示例和下一专题中的示例都是基于一个实际的项目,该项目为 rdfinference.org 上的“RDF 接口语言”规范组成一个问题跟踪程序。不久,您将可以在此公共站点上看到这一实际工作。在那之前,请您自由地试验本文中的示例代码,并将任何问题、意见和想法发送给我。
参考资料
请参阅本专栏以前的专题,题为:
-
- XML meets semantics: The reality
- XML meets semantics: Meet the new kids on the
block, and one more from the old neighborhood
- Walking the semantic beat
- XML meets semantics: The reality
Dave Beckett 的 RDF Resource Guide 是至与 RDF 相关的文章、工具等链接的综合集合。
本文中的示例是使用 4Suite 的 XSLT 处理器测试的。
XML: the next big thing 是 Tom Halfhill 编写的 IBM 研究论文,它讨论了 RDF 为下一代搜索引擎提供动力的可能性。
解决方案 2001 年开发人员大会将于 8 月 13 日至 18 日在旧金山召开; 请在 AgendaBuilder中搜索或浏览有关 230 多个会议的描述。有二十多个会议是关于 XML 及其相关技术,包括:
-
- 实践:集成
XML 与 DB2
- 实践:
语音 XML 工具/构建绝佳的应用程序
- XSL
示例:XML 转换简介
- 使 用 Java 技术对 XML 文档进行语法分析和编程。
- 实践:集成
XML 与 DB2
关于作者
Uche Ogbuji (uche.ogbuji@fourthought.com) 是 Fourthought
Inc. 的顾问兼创始人, 该公司是专为企业知识管理应用提供 XML 解决方案的软件供应商和顾问。
Fourthought 开发了 4Suite、 4Suite
Server,它们是 XML 中间件的开放源码平台。 Ogbuji
先生是一名出生于尼日利亚的计算机工程师和作家,他生活和工作在美国科罗拉多州的博耳德。
浏览:知识管理的基本XML和RDF技术(二)
知识管理的基本XML和RDF技术(三)
知识管理的基本XML和RDF技术(四)
知识管理的基本XML和RDF 技术(五)
知识管理的基本XML和RDF技术(六)
- 1Web服务内幕,第2部分: W3C Web服务专题研讨会的概述
- 2MSDN Online Voices - Extreme XML:已启用XML Web服务的Office文档
- 3石家庄OA信息化与企业发展
- 4Web Services Description Language (WSDL) 1.1
- 5从知识的角度回顾企业能力理论-摘录
- 6Accessing Web Services From DHTML
- 7石家庄泛普OA办公软件的用户界面定制
- 8对于石家庄OA信息化的几种不同理解(BY AMT 夏敬华)
- 9低价是IT产品过冬的法宝吗?
- 10WebLogic Workshop给非开发人员带来Web服务
- 11固化组织知识
- 12什么是真正的石家庄OA信息化
- 13Licensee Requirements from Dev, Test, and Ops
- 14At Your Service, On the Web
- 15Web Services Gateway入门
- 16SOAP技术与B2B应用集成--SOAP消息中的类型/值的编序方法和示例
- 172009金和协同管理“破冰之旅”助企业安然渡冬
- 18泛普软件如何实现知识库双机热备
- 19BBS热点话题精选:石家庄OA信息化靠谁来推动?
- 20Sharing information through the Lotus Knowledge Discovery Sy
- 21网络、知识增长和经济发展
- 22[原创]浅谈KM的知识源采集和技术实现
- 23复明集团网上审批管理OA办公软件系统系统 V1.0 ...
- 24第五项修炼简要目录
- 25石家庄OA信息化项目的“做”与“不做”(BY AMT 夏敬华)
- 26关于模型的简单介绍!
- 27IBM为Web服务安全 发布一系列有争议的API
- 28Licensing
- 29泛普OA软件支持在线直接发送消息、传送文件、音频会话等
- 30Web服务准备:理解和使用Web服务托管技术
成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼