XML 编程思想:从书本学习 XML Topic Maps

2016-02-19 16:49 2 1 收藏

下面图老师小编要向大家介绍下XML 编程思想:从书本学习 XML Topic Maps,看起来复杂实则是简单的,掌握好技巧就OK,喜欢就赶紧收藏起来吧!

【 tulaoshi.com - Web开发 】

  Topic Map 提供了一种用于组织信息的系统,XML Topic Maps 使这种系统进入了 XML 的世界中。在本文中,Uche Ogbuji 讨论了 XML Topic Maps,并通过评论有关该主题的关键著作,把这种技术介绍给大家。

  Semantic Web 技术用于概念的形式化描述与分类。这些技术试图降低由于概念不匹配而给信息系统互联带来的难度。您可以想像得出,在这样一个主观而雄心勃勃的事业当中,可能适应它的方法和技术很多。 Topic Maps(主题地图)便是其中的一组技术。

  这个专栏直到现在都还没有提到 Topic Maps 技术,这是我的失职。主要的问题在于,我还没有完全理解这些技术。最近,我收到一本书,名为 XML Topic Maps: Creating and Using Topic Maps for the Web,是 Jack Park 和 Sam Hunting 编著的,书中有些章节是由 Topic Maps 世界中的专家们编写的。对我而言,这本书是个很好的机会,我可以通过它提高我对 Topic Maps 的理解,同时,我也打算把对这本书的评论与相关技术的介绍结合起来。

  很好的起点

  Jack Park 用精简的三段论形式为这本书撰写了绪论,不过里面的内容似乎有些离题,也相当混乱。我原本希望绪论能用清晰的语言,为处于启蒙阶段的人勾勒出 Topic Maps 技术的基本概念,并用这些基本概念向读者清晰地描述出书中的其余内容。在第 2 章当中,Michel Biezunski 的确很好地介绍了 Topic Maps 的范例,但是却假设读者已经具备了相关的背景知识,了解了引发 Topic Maps 技术的一般性问题。通过阅读这篇专栏文章,读者们就能获得这些背景知识,也将会发现这一章是 Topic Maps 技术的优秀初级读本。

  Topic Maps 最初是 SGML 社团中的一群人开发的,用来实现索引和辞典构建过程的形式化。这些早期努力的结果就是 ISO/IEC 13250,这项标准定义出了 Topic Maps 的完整模型。它早于 XML 出现,但是 XML 与 Web 的迅速发展导致出现了 XML Topic Maps(XTM)。XTM 的基础是 ISO/IEC 13250 模型,但是定义的是一种 XML 语法,并限制它自己只能通过 URI 实现。事实上,XTM 被定义为一种 XLink 应用程序,其中的链接专门表示 Topic Maps 模型中的语义。

  Topic(主题)是 Topic Maps 中的基本构成单元Topic 就是某个概念的计算机表述。通过主题表述的概念被形式化之后就是 subject(标题)。Topic Maps 需要解决的一个基本问题就是如何形式化抽象题目及其主题表述之间的差异。主题之间通过 associations(关联)相互联系。主题还具有一组位置(location),可以按照某种特定的形式从这些位置上访问该主题。这些位置名叫 topic occurrences(主题出现)。主题可以有 name(名称),也可以没有名称,或者有多个名称。Topic Maps 还可以将 base name(基本名称)的两个变体: display name(显示名称)和 sort key(排序键值)构建到核心模型中,这样就能按照辞典顺序显示出模型的根。

  当我和别人讨论 XML 的时候,我说的实际上是一种抽象。这种抽象很容易就可以成为 Topic Maps 的一个标题。如果我打算将这个概念形式化,我可以画一幅图,图中有一个主题,代表 XML。该主题的一次出现是在 W3C 网站上 HTML 格式的规范。另一次是该规范的 PDF 形式的下载位置。与这个主题有关联的其他主题的标题可以是 SGML、XSLT、HTML 或 Unicode。这个主题的基本名称是 XML,但是人们也可以选择XML (Extensible Markup Language)作为它的显示名称,这样就能通过工具浏览 Topic Maps,而不用再解释这个缩写是什么意思。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  Topic Maps 的另一个基本概念是 scope(范围)。范围是一个特殊的主题,它定义了一组或一定界限内的相关主题。IBM developerWorks 的作者们可以创建一个范围,其中的主题代表所有在他们的文章中涉及到的概念。范围的作用与命名空间类似:基本名称在某个范围内应该是惟一的,如果两个主题具有相同的基本名称,而且在同一个范围内,它们两者就可以 合并(merged)。举个例子来说,假设我已经创建了一幅表示 XML 的主题地图,而另一名 developerWorks 作者可能也在做相同的事情,且并不知道我已经做好了。由于我们正在维护的范围是统一的,因此这两个基本名称都是XML的主题就可以合并。Topic Maps 为合并、出现、关联等等定义了非常详细的规则。

  这本书的第 3 章由 Steven Newcomb 编写,他用独到的眼光评论了 Topic Maps 的历史、出现的动机以及文化。这一章在很多方面都和绪论有重复,但是里面的表述却更加连贯。随后,Sam Hunting 在第 4 章中简明扼要地讲述了从 ISO 到基层人员为 Topic Maps 的标准化所做的努力。此后,这本书中就一直是中级和高级主题不断穿插在一起的样子。读者如果想从实用的角度很好地理解 Topic Maps,我推荐按照下面的顺序阅读本书:

第 2 章,Introduction to the Topic Maps Paradigm(Michel Biezunski)。 第 6 章,How to Start Topic Mapping Right Away with the XTM Specification(Sam Hunting)。 第 12 章,Topic Maps and RDF(Eric Freese)读过本专栏的读者应该都对 RDF 比较熟悉了吧。 第 10 章,Open Source Topic Map Software(Eric Freese,Kal Ahmed,Jack Park,Sam Hunting)如果您喜欢 Java 技术,就读这一章,否则得读第 9 章,Creating and Maintaining Enterprise Web Sites with Topic Maps and XSLT(Nikita Ogievetsky)。 第 8 章,Topic Maps in the Life Sciences(John Park and Nefer Park) 一个全面的示例。 第 5 章,Topic Maps from Representation to Identity: Conversation, Names, and Published Subject Indicators(Bernard Vatant)。 第 3 章,A Perspective on the Quest for Global Knowledge Interchange(Steven Newcomb)。

  在您阅读本书,以及今后深入研究的过程中,您肯定会经常参考最后一章之后列出的词汇表。这个词汇表对于 XTM 规范 1.3 节中那个袖珍的词汇表是很好的补充。上面列出的这些章节已经足够您熟悉 Topic Maps 了,在实践中也能给您足够的帮助。其余的章节我认为都是比较高级的主题,您可以自己研究。

  用标记表示主题地图

  Topic Maps 上的很多实际工作都是构建在 XML 工具之上的,其中包括 XSLT 和 Java API。清单 1 是从 XTM 规范中所带的例子里截取的一小段代码。您可以看到 XML 的语法有多么清晰:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  清单 1: 莎士比亚及其著作的 Topic Maps 节选

  

!-- A topic representing the Elizabethan playwright   William Shakespeare. No occurrences because you cannot download   a person --topic id="shakespeare" baseName  baseNameStringWilliam Shakespeare/baseNameString /baseName/topic!-- A topic representing the play "Hamlet" --topic id="hamlet" instanceOftopicRef xlink:href="http://cms.ddvip.com/index.php#play"//instanceOf baseName  baseNameStringHamlet, Prince of Denmark/baseNameString /baseName!-- An occurrence given by Project Gutenberg's plain text download   of the Hamlet -- occurrence  instanceOf   topicRef xlink:href="http://cms.ddvip.com/index.php#plain-text-format"/  /instanceOf  resourceRefxlink:href="ftp://www.gutenberg.org/pub/gutenberg/etext97/1ws2610.txt"/ /occurrence/topic!-- An association representing an authorship relationship --topic id="written-by" baseName  baseNameStringwritten by/baseNameString /baseName/topic!-- Used here to associate Shakespeare and the play Hamlet --association instanceOftopicRef xlink:href="http://cms.ddvip.com/index.php#written-by"//instanceOf member  roleSpectopicRef xlink:href="http://cms.ddvip.com/index.php#author"//roleSpec  topicRef xlink:href="http://cms.ddvip.com/index.php#shakespeare"/ /member member  roleSpectopicRef xlink:href="http://cms.ddvip.com/index.php#work"//roleSpec  topicRef xlink:href="http://cms.ddvip.com/index.php#hamlet"/ /member/association

  普通的 XLinke 处理器就可以访问这段文档,您也可以使用特定的 Topic Maps 工具。它和一般的 XML 文档一样冗长,但是结构性非常好。

  结束语

  XML Topic Maps 一书中有很多好材料,不过组织得相当不好。这本书读起来就像是一些介绍性的文章和 Topic Maps 会议论文集的拼盘。我已经按照我的感觉为初学者推荐了一个 阅读顺序。我想,如果把这本书分成两部分可能会更有帮助。第一部分包含所有介绍性章节,还有一些章节来探讨理论与设计、介绍 Topic Maps 的文化与社团,以及一些编程技巧。相关领域内的进展将有助于人们找到更新鲜更有趣的话题。

  Topic Maps 是非常有意思的技术。它们为 Semantic Web 领域带来了高度的精确性。然而,获得这么高的精确性是要付出代价的,规范中定义的名词和细节变幻莫测,令人眼花缭乱,这样的模型理解起来非常困难。最近有很多人在讨论将 Topic Maps 与其他相关技术,如 RDF 互通起来的办法。这项工作的意义十分重大,因为 RDF 可能从 Topic Maps 的精确性中受益,而 Topic Maps 也将获益于 RDF 的简单与直接。至少有一点可以确定,我会及时在这个专栏中与您分享这项工作最新的进展。

来源:https://www.tulaoshi.com/n/20160219/1613245.html

延伸阅读
标签: Web开发
专栏作家 Uche Ogbuji 深入思考了 XMLOpen 会议上提出的几种观点,最近在英国剑桥召开的这次会议是关于 XML 处理的一次盛会。值得注意的课题包括 XML 规格、 Semantic Web、XML 管道、Web Proper Names 和数据类型。他还从实用的角度对 XML Hacks 一书作了进一步分析,上一期文章中已经详细地介绍了这部关于技巧和窍门的书籍。 XMLOpen...
标签: Web开发
XML 作为基本数据格式无疑是成功的。但是 XML 1.0 提出的许多承诺 ― 从统一各企业间的通信方式到使 Web 更智能化 ― 都没有兑现。将 XML 用于共享的语义并因此用于共享的知识,是本专栏的主题。本文中,Ogbuji 先生介绍了迄今为止,开放应用程序组(Open Applications Group)和美国国防部(DoD)沿着这一方向,在最近发展环境中所取得的...
标签: Web开发
Uche Ogbuji 通过演示用来自现有 XML 格式的数据构成资源描述框架 (RDF)模型,开始了他的用 XML 进行的知识管理的实际探索。 如三个代码清单中所示,RDF 可用作定制 XML 的搭挡,而不仅仅用作某些数据类型的规范表示。包含代码样本的本专栏演示了如何用 RDF 方便地进行知识管理,甚至是在开发过程中相对比较晚的阶段。 虽然 W3C 将资...
标签: Web开发
Uche Ogbuji 就 XML 语义透明性和 XML 知识管理方面讨论了近来所发生的事情,这其中包括 ebXML 和 RosettaNet 中的一些新的开发。 Thinking XML 专栏的前两部分讲述了语义透明性 -- 可以共享那些不受约束的 XML 尖括号和引用标记中含义。由于本文的标题直接涉及到关于 XML 近来所发生的一些事情,所以在本文中(以后还会随时有其它的)...
标签: Web开发
Uche Ogbuji 花了些时间回顾了他所展示的 XML/RDF 技术在更广阔的环境下的相关性。他讨论了 XML/RDF 交换的重要性、专门的 RDF 查询的重要性以及将 RDF 建模中获得的经验教训应用到整个应用程序开发的重要性。他还显示了 Thinking XML 专栏的这条线索与有关语义透明性方面的开发的类似线索之间是如何关联的。 在这一系列文章中,我演示...

经验教程

862

收藏

30
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部