为了解释XML schemata和实例中的结构的含义,这个Thinking XML专栏的主要主题一直关注语义透明性。我已经介绍了实现语义透明性的自下而上(bottom-up)方法,使用这种方法可以以独立于文档和 schemata 的方式单独定义术语和概念(实际指数据字典),然后就可以广泛地应用这些内容。行业已经为自下而上语义透明性构建了大量计划,这些计划中有一部分具有更好的生命力。在本专栏中,我讨论了 ISO Basic Semantics Register(BSR)、RosettaNet Dictionaries、ebXML Core Components、Universal Data Element Framework(UDEF)、财务服务方面的 ISO 15022 等内容。但是大型的行业计划不提供在大部分 XML 应用程序中驱动模式开发的术语。更常见的情况是您需要定义自己的专门化数据字典。
常用缩写词
DITA:Darwin 信息分类体系结构
URI:统一资源标识符
W3C:万维网联盟
XML:可扩展标记语言
XSL:可扩展样式表语言
XSLT:XSL 转换
架构师越来越意识到仅仅提供数据字典并不足以支持日益丰富的信息集成。在 XML 文档中,需要通过各种相互关系指代人、地点和事件,从一般的关系到更加具体的关系、作用和种类、同义词和反义词。您需要描述与地理位置、关键的时间和日期、策略、业务规则的联系。有时需要将自己的专门化的信息空间扩展到更广阔的行业约定。这些细节使 Semantic Web 技术非常适合支持 XML 开发,因此有必要开始了解最普通的、最简单的语义 Web 技术。Simple Knowledge Organization System (SKOS) 就是这样一种技术,目前正处于工作草案流程中的最后请求阶段,但是已经得到了充分理解、实现和讨论。不幸的是,SKOS 在其最后设计阶段损失了一些简单性,因为其委员会将其绑定到更加复杂的 Web Ontology Language(OWL),如果忽略其中一些比较花俏的装饰,SKOS 仍然非常有用。它至少为关联术语的基本含义关系提供了文字关系,而这是丰富 XML schemata 的良好开头。
从概念到表达
在开发过程中,最好及早地捕获概念。在分析新应用程序或集成现有应用程序期间,您应该记录下主要的概念,尽可能多地保留最初的概念。资源描述框架(Resource Description Framework,RDF)的 Turtle 语法非常有用,它可以使用适合非技术用户查看的格式捕获这些概念。开发人员和业务兴趣之间的紧密结合对于提高使用 XML 组织信息价值十分关键。在本文中,我将使用来自滑板制造商 Fluffy Boards 的一个场景,开发一种格式,使用它捕获称为 Cumulus 的新款滑板的销售信息。清单 1 展示了有关概念的 SKOS 定义的一部分,其中使用了 Turtle 语法。
清单 1. 使用 Turtle 格式表示的滑板销售信息中关键概念的 SKOS 定义
_cnnew1@prefix skos: <http://www.w3.org/2004/02/skos/core#>.
@prefix f: <http://www.fluffyboards.com/vocabulary#>.
f:product
a skos:Concept;
skos:prefLabel "product";
skos:altLabel "merchandise item";
skos:definition "Item developed for sale by Fluffy Boards.".
f:snowboard
a skos:Concept;
skos:prefLabel "snowboard";
skos:altLabel "deck";
skos:definition "Deck to be mounted with bindings for riding on snow.";
skos:broader f:product.
f:endorsement
a skos:Concept;
skos:prefLabel "endorsement";
skos:altLabel "formal thumbs-up";
skos:definition "Formal statement of approval of the product.";
skos:broader f:review.
f:review
a skos:Concept;
skos:prefLabel "review";
skos:altLabel "product opinion";
skos:definition "Statement of opinion of a product.".
f:customer
a skos:Concept;
skos:prefLabel "customer";
skos:definition "Person or group engaged by Fluffy Boards in the purchase process.".