【问题标题】:SPARQL query to construct sub-graph with select paths (paths have different lengths)SPARQL 查询以构建具有选择路径的子图(路径具有不同的长度)
【发布时间】:2013-12-30 13:50:31
【问题描述】:

是否可以使用单个 SPARQL 查询从下图中CONSTRUCT 包含节点 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 sparql


    【解决方案1】:

    如果您以合法的 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>
    

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-21
      相关资源
      最近更新 更多