Rdf SPARQL查询以使用选择的路径(路径具有不同的长度)构造子图

Rdf SPARQL查询以使用选择的路径(路径具有不同的长度)构造子图,rdf,sparql,Rdf,Sparql,是否可以使用单个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 . 我知道如何构造一个SPARQL查询,返回{a-p-B,a-q-C}(即两条路径各包含一条语句)和一条返回{a-s-e-t-F}(即一条路径包含两条语句)。但是,可以将这两种方法合并为单个SPARQL构造查询,如果是这样的话,效果如何?如

是否可以
使用单个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 .

我知道如何构造一个SPARQL查询,返回{a-p-B,a-q-C}(即两条路径各包含一条语句)和一条返回{a-s-e-t-F}(即一条路径包含两条语句)。但是,可以将这两种方法合并为单个SPARQL
构造
查询,如果是这样的话,效果如何?

如果以合法的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 .
@前缀:。
:E:t:F。
:A:p:B;
:q:C;
:s:E。

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 
}
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 .