RDF,附加一个 rdf:Statement 多个 rdf:predicate 三元组是否有效?

RDF, is it valid to have a single rdf:Statement with multiple rdf:predicate triples attached?

根据主题,断言单个 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,则隐含的语义将是:"there are two which differ by predicate only" 以及搜索 ?p?p1 的所有查询应该没有问题,但我不确定我没有遗漏任何东西。

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

在这种情况下,我认为可以通过使用 owl:sameAs.

简单地声明 <p> 等同于 <p1> 来轻松地进行词汇映射

不幸的是,RDF 中的整个具体化内容都未明确说明 - 但常规用法是具体化语句指的是三元组的实际实例(不是多个,当有多个谓词时就是这种情况)

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

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

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

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

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

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