繁体   English   中英

Sparql加入问题

[英]Sparql join issue

我对SPARQL和RDF有点陌生,尽管我喜欢它,但我还是被卡住了!

因此,我的应用程序创建了一个带有标签“ test6”,唯一标识的东西,并自动创建了一个与“ test6”相关联的默认章节,并带有一个标识和标签“概述”。 我希望所有与谁的标签相关的章节标签都是“ test6”,即“概述”

因此存在以下三元组(请注意,我必须修剪谓词,因为stackoverflow限制了帖子中的链接):

local:qUak8jXvdkw someOntology:label test6

local:qUak8jXvdkw someOntology:hasChapter qUak8jXvdkwOverview

local:qUak8jXvdkwOverview someOntology:label Overview

当我运行此查询时:

PREFIX someOntology: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT ?id, ?chapterId, ?chapterLabel 
WHERE 
{ 
    ?id someOntology:label 'test6' . 
    ?id someOntology:hasChapter ?chapterId . 
    ?chapterId someOntology:label ?chapterLabel .  
} 

它返回一个空集。

我知道我可以使用三元组的对象作为另一个的主题加入它们,对吗?

如果我使用OPTIONAL {},即:

PREFIX someOntology: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT ?id, ?chapterId, ?chapterLabel 
WHERE 
{ 
    ?id someOntology:label 'test6' . 
    ?id someOntology:hasChapter ?chapterId . 
    OPTIONAL{?chapterId someOntology:label ?chapterLabel} .  
}

它返回以下内容:

<[{
"id":{"type":"uri","value":"local:qUak8jXvdkw"},
"chapterId":{"type":"literal","value":"qUak8jXvdkwOverview"},
"chapterLabel":{}
}]>

我正在使用4store(如果有的话)。

预先感谢您的任何指点..

文字和数据中的URI之间的混淆。

数据有:

local:qUak8jXvdkw someOntology:hasChapter qUak8jXvdkwOverview
local:qUak8jXvdkwOverview someOntology:label Overview

(上面引用的第一行是否在qUak8jXvdkwOverview上松开了“”-结果表明它具有)

这部分

?id someOntology:hasChapter ?chapterId .

导致结果:

"chapterId":{"type":"literal","value":"qUak8jXvdkwOverview"},

所以这里的?chapterId是文字"qUak8jXvdkwOverview"

但是查询则具有:

?chapterId someOntology:label ?chapterLabel . 

因此,这里的?chapterId是URI local:qUak8jXvdkwOverview (无论如何,文字都不能作为主题)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM