【问题标题】:RDFS vs SKOS, when to use what?RDFS vs SKOS,什么时候用什么?
【发布时间】:2021-11-28 16:22:05
【问题描述】:

当我学习语义网络和 sparql 时,感觉 RDFS 和 SKOS 似乎提供了非常相似的语义关系建模功能。例如,

  • RDFS - rdfs:subClassOf, rdfs:superClassOf 可用于对层次结构进行建模
  • SKOS - skos:narrower、skos:broader 可用于对层次结构进行建模

两者都提供双向传递性。

虽然

  • SKOS 通过 skos:narrowerTransitive、skos:broaderTransitive、skos:related、skos:closeMatch 等提供更明确的属性来建模传递性、相关关系和匹配
  1. 这是正确的理解吗?
  2. 在建模时是否有任何指导来选择正确的模式?
  3. 如果我认为 skos 语义提供上述优势,为什么 dbpedia 与 skos 相比使用了很多 rdfs?

谢谢!

【问题讨论】:

    标签: semantic-web rdfs skos


    【解决方案1】:

    RDFS 和 SKOS 之间的主要区别在 SKOS 规范中进行了概述:

    https://www.w3.org/TR/skos-reference/#L1045

    SKOS 数据模型的元素是类和属性,数据模型的结构和完整性由这些类和属性的逻辑特征以及它们之间的相互依赖关系定义。这可能是 SKOS 最强大但可能令人困惑的方面之一,因为在更高级的应用程序中,SKOS 还可以与 OWL 一起使用,以表达和交换有关领域的知识。但是,SKOS 不是一种正式的知识表示语言。

    不是一种正式的知识表示语言,推理没有标准化,与其他知识库的互操作性可能较低。

    对于选择的原因,我不能代表 dbpedia 发言,但这对我来说似乎是一个足够好的理由,所以如果这是其中的一部分,我不会感到惊讶。

    【讨论】:

    • 谢谢,有帮助
    【解决方案2】:

    RDFS 和 SKOS 可以很容易地并排使用,因为它们的侧重点有些不同。

    RDFS 是直接来自 RDF 数据模型及其序列化的东西。它从 RDF 推理/蕴含机制开始,它模拟了任何人都可以从三元组 a b c 推断出的最基本的东西——b 是一个属性,因此我们需要 rdf:typerdf:Property 来表达这个事实(这就是为什么这两个不在rdfs:)。更进一步,我们的 RDFS 再次从rdf:type(使其范围成为类)和rdf:Property(推断它是一个类,并允许描述子属性)开始。然后我们就有了 OWL,它可以进行更大程度的推理,但也可以检测(或创建)矛盾。

    RDFS 专注于推理;它的所有类和属性都以它为中心:rdfs:domainrdfs:range 是根据rdf:type 的推断定义的; rdfs:subClassOfrdfs:subPropertyOf 是根据任意属性的推断等定义的。当然(与 OWL 一起)也可以使用它来描述词汇表本身,使其成为一种元 RDF 语言(但是,不像 OWL ,它可以描述自己)。

    RDFS 类似于经典的面向对象语言,但它也可以表示类的类等。“作为一个实例”(rdf:type)和“作为一个子类”之间也有区别(rdfs:subClassOf)。

    SKOS 忽略了 RDF 所看到的类和属性,因为它源于我们人类在我们周围观察到的情况:我们通常不谈论“汽车类别”,而是谈论汽车。集合和类留给逻辑学家和哲学家,而我们只剩下概念。概念是我们在我们周围看到的事物,有些适用于广泛的事物(汽车、电动汽车),有些仅适用于一件事(我邻居的车)。我们不需要高阶集合论来谈论它们,SKOS 也不需要,一切都被描述为一个单独的概念,有些比其他的更一般/抽象。此外,从某种意义上说,SKOS 明确禁止进入更高阶,因为概念不是概念方案的规则。

    SKOS 可能在理论上受到限制,但它仍然很强大。有时,用它来谈论模糊的概念更容易(“我的邻居的车”是一个阶级还是个人?SKOS 不在乎),有时需要描述不适合 RDFS 层次结构的概念全部(相关、紧密/精确匹配),不一定让计算机理解,但绝对适合人类。

    SKOS 的模型让我想起了 JavaScript,你没有传统的类,而是使用原型来表达继承,类似于 skos:broader。对此,类是对象,对象是类;实例和子类没有区别。

    希望您现在看到是否使用一个或另一个的答案是在各自的位置使用 both。您将 RDFS/OWL 用于词汇或推理,当您需要严格的定义时,您将 SKOS 用于概念/分类法,当您需要模糊的定义时,但有些地方两者都可以完美使用。

    【讨论】:

    • @IS4- 感谢您提供更易于理解的解释
    猜你喜欢
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    • 2015-05-14
    • 2018-10-28
    • 2021-02-01
    • 1970-01-01
    • 2011-09-28
    相关资源
    最近更新 更多