【问题标题】:How to extract RDF triples with specific predicates using sparql如何使用 sparql 提取具有特定谓词的 RDF 三元组
【发布时间】:2019-04-24 08:34:35
【问题描述】:

我将一组 RDF 三元组上传到本地 Virtuoso 端点。

在所有这些三元组中,我想只提取其主题至少具有谓词http://www.w3.org/2000/01/rdf-schema#labelhttp://www.w3.org/2000/01/rdf-schema#comment 的那些。

例如,从这些三元组中:

<http://dbpedia.org/resource/AccessibleComputing> <http://www.w3.org/2000/01/rdf-schema#label> "AccessibleComputing"@en .
<http://dbpedia.org/resource/AfghanistanGeography> <http://www.w3.org/2000/01/rdf-schema#label> "AfghanistanGeography"@en .
<http://dbpedia.org/resource/AfghanistanGeography> <http://www.w3.org/2000/01/rdf-schema#comment> " ... " .
<http://dbpedia.org/resource/Austroasiatic_languages> <http://www.w3.org/2000/01/rdf-schema#comment> " ... " .
<http://dbpedia.org/resource/AccessibleComputing> <http://dbpedia.org/ontology/wikiPageWikiLink> <http://dbpedia.org/resource/Computer_accessibility> .
<http://dbpedia.org/resource/AfghanistanGeography> <http://dbpedia.org/ontology/wikiPageWikiLink> <http://dbpedia.org/resource/Afghanistan_Geography> .

我想得到:

<http://dbpedia.org/resource/AfghanistanGeography> <http://www.w3.org/2000/01/rdf-schema#label> "AfghanistanGeography"@en .
<http://dbpedia.org/resource/AfghanistanGeography> <http://www.w3.org/2000/01/rdf-schema#comment> " ... " .
<http://dbpedia.org/resource/AfghanistanGeography> <http://dbpedia.org/ontology/wikiPageWikiLink> <http://dbpedia.org/resource/Afghanistan_Geography> .

是否可以使用一个(或多个)SPARQL 查询来做到这一点?

感谢您的帮助

【问题讨论】:

    标签: sparql rdf virtuoso triplestore


    【解决方案1】:

    这可以通过CONSTRUCT WHERE 查询来完成:

    CONSTRUCT WHERE {
        ?s rdfs:label ?label.
        ?s rdfs:comment ?comment.
        ?s ?p ?o
    }
    

    这是CONSTRUCT 的简化形式,可在CONSTRUCT {} 部分和WHERE {} 部分相同时使用。

    【讨论】:

      【解决方案2】:

      一种方法是使用DESCRIBE,例如:

      DESCRIBE ?s 
      WHERE {
        ?s rdfs:label ?label .
        ?s rdfs:comment ?comment .
      }
      

      或者CONSTRUCT

      CONSTRUCT { ?subject ?predicate ?object} 
      WHERE {
        ?subject ?predicate ?object .
        FILTER EXISTS {
           ?subject rdfs:label ?label .
           ?subject rdfs:comment ?comment .
        }
      }
      

      【讨论】:

      • DESCRIBE 的行为取决于 SPARQL 存储,它可能包括不需要的额外三元组,或者省略需要的三元组。所以根据所使用的商店,它可能不是一个好的选择。
      猜你喜欢
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-18
      • 1970-01-01
      相关资源
      最近更新 更多