为什么RDF被认为是无模式的? 人们认为资源描述框架(RDF)是一种无模式的数据模型。然而,有一种称为RDFSchema(RDFS)的东西。那么,为什么RDF是一个无模式的数据模型呢

为什么RDF被认为是无模式的? 人们认为资源描述框架(RDF)是一种无模式的数据模型。然而,有一种称为RDFSchema(RDFS)的东西。那么,为什么RDF是一个无模式的数据模型呢,rdf,rdfs,rdfstore,Rdf,Rdfs,Rdfstore,说RDF的唯一好处是无模式性,我是说RDF是一个建模框架;构成链接数据堆栈的许多词汇表、本体和工具不是“RDF”,但它们是通过RDF实现的。在以分布式的、类似Web的方式处理Web上的数据时,这些是必不可少的,但它们不需要RDF来工作 - 另一方面,提供了RDF的词汇表 在我看来,只要您专门使用某些词汇表来验证RDF,它就不再是无模式的了。在这方面,它就像XML:您可以在没有模式的情况下使用它,但大多数人不会;对于关系数据库,这里有一个典型的过于简化的工作流: 创建表(架构) 插入一些行 使用R

说RDF的唯一好处是无模式性,我是说RDF是一个建模框架;构成链接数据堆栈的许多词汇表、本体和工具不是“RDF”,但它们是通过RDF实现的。在以分布式的、类似Web的方式处理Web上的数据时,这些是必不可少的,但它们不需要RDF来工作

-

另一方面,提供了RDF的词汇表


在我看来,只要您专门使用某些词汇表来验证RDF,它就不再是无模式的了。在这方面,它就像XML:您可以在没有模式的情况下使用它,但大多数人不会;对于关系数据库,这里有一个典型的过于简化的工作流:

  • 创建表(架构)
  • 插入一些行
  • 使用RDF,就像使用其他非(t-only)SQL解决方案一样,您可以反过来使用它。只需开始创建一些数据,就可以动态创建模式

    毕竟,如果您有一个文档数据库,并插入一些JSON对象

    {
      "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或任何其他语言编写模式(或创建自己的模式语言)它是无模式的,不仅是因为“你可以不用模式语言来使用它”,而且是因为“如果你想使用模式语言,你在选择模式语言时不受限制”。