为什么RDF被认为是无模式的? 人们认为资源描述框架(RDF)是一种无模式的数据模型。然而,有一种称为RDFSchema(RDFS)的东西。那么,为什么RDF是一个无模式的数据模型呢
说RDF的唯一好处是无模式性,我是说RDF是一个建模框架;构成链接数据堆栈的许多词汇表、本体和工具不是“RDF”,但它们是通过RDF实现的。在以分布式的、类似Web的方式处理Web上的数据时,这些是必不可少的,但它们不需要RDF来工作 - 另一方面,提供了RDF的词汇表为什么RDF被认为是无模式的? 人们认为资源描述框架(RDF)是一种无模式的数据模型。然而,有一种称为RDFSchema(RDFS)的东西。那么,为什么RDF是一个无模式的数据模型呢,rdf,rdfs,rdfstore,Rdf,Rdfs,Rdfstore,说RDF的唯一好处是无模式性,我是说RDF是一个建模框架;构成链接数据堆栈的许多词汇表、本体和工具不是“RDF”,但它们是通过RDF实现的。在以分布式的、类似Web的方式处理Web上的数据时,这些是必不可少的,但它们不需要RDF来工作 - 另一方面,提供了RDF的词汇表 在我看来,只要您专门使用某些词汇表来验证RDF,它就不再是无模式的了。在这方面,它就像XML:您可以在没有模式的情况下使用它,但大多数人不会;对于关系数据库,这里有一个典型的过于简化的工作流: 创建表(架构) 插入一些行 使用R
在我看来,只要您专门使用某些词汇表来验证RDF,它就不再是无模式的了。在这方面,它就像XML:您可以在没有模式的情况下使用它,但大多数人不会;对于关系数据库,这里有一个典型的过于简化的工作流:
{
"type": "User",
"id:" "123",
"name": "John Doe"
}
有人可能会说,类型
、id
和名称
键构成了某种模式,您的应用程序可能依赖于这些模式。唯一的区别是我上面写的,模式不必预先声明
RDF在任何地方都引入了URI,但在其他方面的效果类似。在决定您使用的RDF术语(属性和类)时,实际上是在运行时构建或重用模式 RDF模式有点命名错误。它不是一种真正的模式语言,至少与XML模式或ER模型是模式的意义不同 主要区别在于:模式是规定性的:它们规定了数据必须采取的确切形式:此列必须存在,可以省略,必须与其他内容有特殊关系,等等。任何不完全符合模式的数据(通过省略某些内容,或者通过使用架构中不存在的其他列/元素/属性)被自动视为无效(当您尝试插入的数据的列数与希望插入的表的列数不符时,关系数据库会出错,等等)
另一方面,RDF模式应该更准确地称为“词汇描述语言”:它本质上是描述性的。换句话说,它提供了为数据定义词汇的方法(“这些类和关系是存在的,它们是如何结合在一起的”),但它并不强制您的数据符合该模式:拥有一个使用特定RDF模式的某些部分但不使用其他部分的RDF数据集,或者另外使用其他模式中的其他词汇表(甚至没有在任何RDF模式中明确定义的词汇表)是非常好的.您可以使用RDF而不使用RDF。RDF不需要任何模式语言。但请注意,XML模式是严格的,只有一种或两种方法可以做到这一点。RDF模式语言往往与约定有关。您可以使用RDF、OWL或任何其他语言编写模式(或创建自己的模式语言)它是无模式的,不仅是因为“你可以不用模式语言来使用它”,而且是因为“如果你想使用模式语言,你在选择模式语言时不受限制”。