gpt4 book ai didi

rdf - SPARQL 查询构造带有选择路径的子图(路径有不同的长度)

转载 作者:行者123 更新时间:2023-12-04 00:36:44 24 4
gpt4 key购买 nike

是否可以使用单个 SPARQL 查询从下图中构造包含节点 A、B、C、E、F(但没有 D、G、H)的 RDF 子图:

:A :p :B .
:A :q :C .
:A :r :D .
:A :s :E . :E :t :F .
:A :u :G . :G :v :H .

我知道如何制定返回 { A-p-B, A-q-C } 的 SPARQL 查询(即两条路径各包含 1 个语句)和一个返回 { A-s-E E-t-F } 的查询(即一条路径包含 2 个语句)。但是可以将两者折叠成单个 SPARQL CONSTRUCT 查询,如果是这样,那看起来会怎样?

最佳答案

如果您以合法的 RDF 序列化形式提供数据,则处理数据会容易得多,这样我们就可以轻松地对其运行查询。这是我们实际可以查询的形式的数据:

@prefix : <http://stackoverflow.com/q/20840883/1281433/> .

:A :p :B .
:A :q :C .
:A :r :D .
:A :s :E . :E :t :F .
:A :u :G . :G :v :H .

如果您只想要由节点 A、B、C、E 和 F 导出的子图,您可以简单地要求所有三元组,其中主语和宾语都来自该集合。例如:

prefix : <http://stackoverflow.com/q/20840883/1281433/>

construct {
?s ?p ?o
}
where {
values ?s { :A :B :C :E :F }
values ?o { :A :B :C :E :F }
?s ?p ?o
}

这会产生以下结果(在您的符号、N3 和 RDF/XML 中):

A-p-B
A-q-C
A-s-E E-t-F
@prefix :      <http://stackoverflow.com/q/20840883/1281433/> .

:E :t :F .

:A :p :B ;
:q :C ;
:s :E .
<rdf:RDF
xmlns="http://stackoverflow.com/q/20840883/1281433/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="http://stackoverflow.com/q/20840883/1281433/A">
<s>
<rdf:Description rdf:about="http://stackoverflow.com/q/20840883/1281433/E">
<t rdf:resource="http://stackoverflow.com/q/20840883/1281433/F"/>
</rdf:Description>
</s>
<q rdf:resource="http://stackoverflow.com/q/20840883/1281433/C"/>
<p rdf:resource="http://stackoverflow.com/q/20840883/1281433/B"/>
</rdf:Description>
</rdf:RDF>

关于rdf - SPARQL 查询构造带有选择路径的子图(路径有不同的长度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20840883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com