数据交换(Data exchange)是指在数据库规范模式下构建数据并将其转换为目标模式构建数据的过程,目的是为了使目标数据能够准确的表达源数据内容[1]。数据交换允许在不同的电脑程序之间共享数据 。
单一域数据交换
在某些作用域当中,可能会同时并存多种不同的源以及目标格式(专有数据格式)。通常情况下,为了实现数据交换,需要为单个域开发“交换方法”或者“交换格式”,然后通过使用交换格式将必要的例程(映射)编写出来,将每个源模式(间接地)转换为目标格式[2]。与编写和调试将每个源模式直接转换为每个目标模式所需的数百个不同例程相比,这样只需要很少的工作就可以实现。
通常常见的数据交换实现有:
数据交换语言
另见建模语言。
数据交换语言格式无关的的一种语言,其可被用于任何类型的学科数据[8]。它们由标记和面向显示发展而来,进一步支持描述消息结构属性和元数据编码。
实践证明,某些正式的形式语言比其他语言更适合这项任务,因为它们的规范是由正式流程而不是特定的软件实现需求驱动的。例如,XML是一种标记语言,旨在实现方言的创建(特定于域的子语言的定义)[9]。但是, 它不包含特定于域的字典或事实类型。可靠的资料交换的好处是能够有标准词典-分类和工具库 (如解析器、模式验证器和转换工具) 的可用性。
以下是用于多个域中的数据交换的流行通用语言的部分列表。
结构化 | 灵活 | 语义校验 | 字典 | 消息模型 | 同义词和同音异义词 | 转义语言 | 网络标准 | 转换 | 轻量级 | 人类可读 | 兼容性 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
RDF | 是[1] | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 部分 | 语义网的子集 |
XML | 是[2] | 是 | 否 | 否 | 否 | 否 | 是 | 是 | 是 | 否 | 是 | SGML、HTML的子集 |
Atom | 是 | 未知 | 未知 | 未知 | 否 | 未知 | 是 | 是 | 是 | 否 | 否 | XML的特殊形式 |
JSON | 否 | 未知 | 未知 | 未知 | 否 | 未知 | 否 | 是 | 否 | 是 | 是 | YAML的子集 |
YAML | 否[3] | 未知 | 未知 | 未知 | 否 | 未知 | 否 | 否 | 否[3] | 是 | 是[4] | JSON的超集 |
REBOL | 是[7] | 是 | 否 | 是 | 否 | 是 | 是 | 否 | 是[7] | 是 | 是[5] | |
Gellish | 是 | 是 | 是 | 是[8] | 否 | 是 | 是 | ISO | 否 | 是 | 部分[6] | SQL, RDF/XML, OWL |
- 模式 - 语言定义是否以电脑可解释的形式提供;
- 灵活 - 语言是否支持扩展语义表达能力而无需修改模式;
- 语义验证 - 语言定义是否能够对语言中表达式的正确性进行语义验证;
- 字典 - 分类 - 语言是否包含字典和具有继承的概念的分类(子类型 - 超类型层次结构);
- 同义词和同音异义词 - 该语言是否包括并支持在表达式中使用同义词和同音异义词;
- 转义语言 - 语言定义是否以多种自然语言或方言提供;
- Web或ISO标准 - 将语言作为标准认可的组织;
- 转换 - 语言是否包含对其他标准的翻译;
- 轻量级 - 除了完整版之外,是否提供轻量级版本;
- 人类可读 - 语言中的表达是否是人类可读的(没有经过培训的人可读);
- 兼容性 - 使用该语言时可能使用或需要哪些其他工具
XML在万维网上进行数据交换的普及有几个原因。首先,它与先前存在的标准标准通用标记语言(SGML)和超文本标记语言(HTML)密切相关,因此为支持这两种语言而编写的解析器也可以轻松扩展以支持XML。例如,XHTML已被定义为正式XML格式,但大多数(如果不是全部)HTML解析器都能正确理解[9]。
YAML是一种设计为人类可读的语言(因此可以使用任何标准文本编辑器轻松编辑)。它的概念通常类似于reStructuredText或Wiki语法,他们也试图让人和电脑都可读。YAML 1.2还包括一个与JSON兼容的简写概念,因此任何JSON文档也是有效的YAML; 然而,这并不是其的另一种形式[10]。
REBOL是一种可以使用任何标准文本编辑器设计的人类可读且易于编辑的语言。为了实现这一点,其使用了一种简单的自由格式语法,使之具有最小的标点符号和丰富的数据类型集。REBOL的数据类型,如URL,电邮,日期和时间值,元组,字符串,标签等,都遵循通用标准。REBOL旨在不需要任何额外的元语言,以元循环方式设计。语言的元环境性是因为例如用于(不仅仅)用于REBOL转义语言的定义和变换的Parse转义语言本身也是REBOL的转义语言[11]。REBOL是JSON范型的灵感来源[12]。
Gellish是自然英语的形式化子集,其包括简单语法和大型通过分类法而可扩展英语词典 ,其主要用于定义一般和领域特定术语(概念术语),而概念则按子类型 - 超类型层次结构排列(a分类法),它支持知识和要求的继承。Dictionary-Taxonomy还包括标准化的事实类型(也称为关系类型)。术语和关系类型可以用于创建和解释事实,知识,要求和其他资讯的表达。Gellish可以与SQL,RDF / XML,OWL结合使用和其他各种元语言。Gellish标准是ISO 10303-221(AP221)和ISO 15926的组合[13]。
参考资料
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.