【问题标题】:SPARQL queries with blank-nodes as subjects以空白节点为主题的 SPARQL 查询
【发布时间】:2017-04-12 07:18:42
【问题描述】:

我有这样的数据:

<http://wikidata.dbpedia.org/resource/Q1000019>  <http://purl.org/voc/vrank#hasRank>
                                 [<http://purl.org/voc/vrank#rankValue> "0.15"^^xsd:float] .
<http://wikidata.dbpedia.org/resource/Q100004>   <http://purl.org/voc/vrank#hasRank>
                                 [<http://purl.org/voc/vrank#rankValue> "0.15"^^xsd:float] .
<http://wikidata.dbpedia.org/resource/Q1000047>  <http://purl.org/voc/vrank#hasRank>
                                 [<http://purl.org/voc/vrank#rankValue> "0.15"^^xsd:float] .

我正在尝试这样的查询:

SELECT ?c WHERE {?s <http://purl.org/voc/vrank#hasRank> ?c}

这只是返回一个空白节点。如何获得此处引号之间的值 0.15?

【问题讨论】:

  • 它返回一个空白节点,因为属性hasRank 的值是一个空白节点。您必须解决空白节点,即在您的情况下获取 rankValue 的值。这可以看作是一条链,即?s :hasRank ?rank . ?rank :rankValue ?value
  • 使用属性路径:?s vrank:hasRank/vrank:rankValue ?v。来源:people.aifb.kit.edu/ath

标签: sparql dbpedia wikidata blank-nodes


【解决方案1】:

您可以只提升您在数据中看到的模式(稍微重新格式化):

SELECT ?c 
WHERE 
{ 
    ?s <http://purl.org/voc/vrank#hasRank> [ 
        <http://purl.org/voc/vrank#rankValue> ?c 
    ]
}

解释一下,[ ... content ... ] 是为了在turtle 和sparql 中方便地引入一个bnode(通常在一个对象位置)并添加该bnode 的一些属性。

【讨论】:

    【解决方案2】:
    DESCRIBE ?c
    where {?s <http://wikidata.dbpedia.org/resource/Q1000047> <http://purl.org/voc/vrank#hasRank> ?c}
    

    这将为您提供有关您的 BN (?c) 的所有信息

    【讨论】:

      猜你喜欢
      • 2017-10-11
      • 2018-03-13
      • 2017-10-22
      • 2014-03-16
      • 2016-03-14
      • 2012-04-04
      • 2016-06-09
      • 1970-01-01
      • 2021-01-30
      相关资源
      最近更新 更多