Sparql 连接问题
Sparql join issue
我对 SPARQL 和 RDF 有点陌生,虽然我很喜欢它,但我被卡住了!
因此,我的应用程序创建了一个带有标签 'test6' 和唯一 ID 的内容,它会自动创建一个与 'test6' 关联的默认章节,带有 ID 和标签 'Overview' .我想要与标签为 'test6' 的事物相关联的所有章节标签,即 'Overview'
因此存在以下三元组(注意,我必须 trim 谓词,因为 Whosebug 限制了帖子中的链接):
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 .
}
它returns一个空集。
我知道我可以使用三元组的对象作为另一个对象的主体来加入它们,对吗?
如果我使用可选{}即:
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} .
}
它 returns 以下内容:
<[{
"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
(无论如何文字都不能成为主题)。
我对 SPARQL 和 RDF 有点陌生,虽然我很喜欢它,但我被卡住了!
因此,我的应用程序创建了一个带有标签 'test6' 和唯一 ID 的内容,它会自动创建一个与 'test6' 关联的默认章节,带有 ID 和标签 'Overview' .我想要与标签为 'test6' 的事物相关联的所有章节标签,即 'Overview'
因此存在以下三元组(注意,我必须 trim 谓词,因为 Whosebug 限制了帖子中的链接):
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 .
}
它returns一个空集。
我知道我可以使用三元组的对象作为另一个对象的主体来加入它们,对吗?
如果我使用可选{}即:
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} .
}
它 returns 以下内容:
<[{
"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
(无论如何文字都不能成为主题)。