SPARQL 查询以获取由两个主题共享(连接到)的对象

问题描述 投票:0回答:0

我有下图

@prefix : <http://example.org/> .

:JupiterAtmsphere     :isComposedOf      :Nitrogen.
:JupiterAtmsphere     :isComposedOf      :Helium.
:EarthAtmosphere      :isComposedOf      :Nitrogen.

:comet_1              :hasDiscoverer     :JohnSmith.
:comet_5              :hasDiscoverer     :JohnSmith.
:comet_3              :hasDiscoverer     :JaneLee.

我想返回由多个主题共享的所有谓词和对象。该查询试图回答以下问题:哪些“主体”共享“客体”?我希望查询返回:Nitrogen 作为 :JupiterAtmspher 和 :EarthAtmspher 共享的对象,以及 :JohnSmith 作为 :comet_1 和 :comet_5 共享的对象 然而,挑战在于我希望查询是通用的(无需事先了解图形的主题、谓词或对象)。换句话说,我正在设计一个通用的查询,并且可以应用于不同的本体,而不管它们的词汇量如何。

我尝试了以下查询,但没有得到预期的结果:

SELECT ?class1 ?class2 ?p1   ?o
WHERE {
  ?class1       ?p1         ?o.
  ?class2       ?p2         ?o.
FILTER (?p1 = ?p2) 
sparql rdf ontology
© www.soinside.com 2019 - 2024. All rights reserved.