【问题标题】:RDF, is it valid to have a single rdf:Statement with multiple rdf:predicate triples attached?RDF,有一个带有多个 rdf:predicate 三元组的 rdf:Statement 是否有效?
【发布时间】:2020-10-09 03:32:45
【问题描述】:

根据主题,断言单个 rdf:Statement 并附加多个 rdf:predicate 三元组是否有效?

背景:我正在尝试通过基于SPARUL(即INSERT <inferred triples> WHERE <preconditions>)的简单规则来构建推断三元组。在我的数据集中,我根据rdf: 词汇表对语句进行了具体化,并且做出如下推断是有意义的:

?stmt rdf:predicate ?p; ?p rdfs:subPropertyOf ?p1 => 
  => a statement with rdf:predicate ?p1 is also asserted.

这种推断的目的主要是词汇映射:人们使用定义 ?p1 的词汇进行搜索也会找到人们使用定义了 ?p 的词汇(例如,skos:prefLabel(?p) rdfs:subPropertyOf schema:name(?p1))所陈述的陈述。

我找不到任何说明声明只能有一个 rdf:predicate 或相反的文档。在我看来,只有一个谓词才是更简洁的选择,但是,如果是这种情况,我需要复制几乎所有现有语句(包括额外的三元组,如出处或重要性分数)并使用 ?p1 作为新的谓词。

相反,如果我只是在现有的 rdf:predicate 上添加一个 rdf:predicate,则隐含的语义将是:“有两个仅因谓词而不同”并且所有搜索 ?p?p1 的查询都应该在没有问题,但我不确定我没有遗漏任何东西。

实际上,我能看到的一件事是,具体语句计数不能基于像 ?s a rdf:Statement 这样的三元组计数,但在我的情况下这似乎没什么大不了的。

【问题讨论】:

    标签: rdf semantic-web linked-data reification


    【解决方案1】:

    在这种情况下,我认为可以通过简单地使用 owl:sameAs 声明 <p> 等同于 <p1> 来轻松进行词汇映射。

    可悲的是,RDF 中的整个具体化事物都没有详细说明 - 但在常规用法中,具体化语句指的是三元组的实际实例(不是多个,就像有多个谓词时那样)

    【讨论】:

    • 谢谢,我也认为 1-1 映射很常见。回复:owl:sameAs,实际上我们通常有多个映射案例(rdfs:subPropertyOfowl:equivalentPropertyowl:inverseOf
    【解决方案2】:

    将用我从 Facebook 上的语义网络小组收集的信息来回答(非常感谢那些贡献的人)。

    通常的做法是,一个具体化的陈述只代表一个陈述。我提出的解释不适用于一个 URI 应该只代表一个实体这一事实。

    此外,可以从specs中推断出这样的唯一性(强调定冠词是我的):

    RDF 语句的谓词是 rdf:Property 的实例,由三元组的 谓词标识。

    此外,像 Jena 这样的框架不太可能适用于我的方法。

    所以,绝对不是一个好主意,我会用重复的。

    【讨论】:

      猜你喜欢
      • 2017-05-09
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      • 2020-01-03
      • 2020-03-05
      • 1970-01-01
      相关资源
      最近更新 更多