【问题标题】:On the difference between a data model vs data format关于数据模型与数据格式之间的区别
【发布时间】:2015-10-18 23:19:48
【问题描述】:
我最近不得不向听众解释数据模型和数据格式之间的区别。他们想解释为什么我们不使用 XML 来做我们用 RDF 做的基本事情。虽然我能解释一堆东西,比如分布式数据模型、推理等等。但我有点能解释数据模型和数据格式之间的区别。
我想知道是否有更简单的答案。我认为与其给出很多点,就像我所做的那样,对于一个简单的用户来说不容易理解,它会清楚地揭示为什么我们需要一个简单的 XML 上的数据模型。然后可以继续解释任何数据模型。
【问题讨论】:
标签:
xml
rdf
semantics
semantic-web
semantic-markup
【解决方案1】:
数据模型定义了计算机系统中使用的概念及其与外部世界概念的语义关系。例如:HOTEL 实体代表旅行者可以预订住宿的单个酒店、旅馆或游轮。
数据格式定义了计算机系统中这些概念如何使用位和字节表示(可能通过 XML 或 JSON 等中间层,因为如果您用 XML 或 JSON 定义它,那么位和字节表示是隐含的)。例如:HOTEL 实体表示为一个名为 <t:hotel> 的 XML 元素,...
【解决方案2】:
根据RDF具体回答
RDF 1.1 Concepts and Abstract Syntax 规范将 RDF 描述如下:
资源描述框架 (RDF) 是一个框架
表示网络中的信息。
然后继续说就是这样
一种抽象语法(一种数据模型),用于链接所有基于 RDF 的
语言和规范
由于它是一种抽象语法,它独立于您写下数据的方式,即数据格式。
JSON 和 XML 恰好是我们可以写入 RDF 数据的两种数据格式示例,但它们并不是唯一的一种。使用 RDF 的优势在于我们拥有一致的数据模型,我们可以根据需要与之交互的系统以不同的数据格式表示该模型。
例如,完全自动化的系统会更喜欢 Turtle 之类的东西,甚至是自定义二进制格式而不是 JSON/XML,因为这些格式的解析和处理速度要快得多(更不用说数据传输更紧凑了)。
观众理解问题可能是因为在很多 JSON 和 XML 的情况下,数据模型和数据格式之间没有真正的分离。所以用户不习惯认为这两件事是分开的。 JSON 尤其如此,它专门设计为尽可能接近 Javascript 数据结构的文字序列化。