1

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

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

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

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

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

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

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

4

2 回答 2

3

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

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

于 2020-06-18T23:29:46.360 回答
0

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

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

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

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

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

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

于 2020-06-23T22:39:42.017 回答