0

我有这样的数据:

<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?

4

2 回答 2

1
DESCRIBE ?c
where {?s <http://wikidata.dbpedia.org/resource/Q1000047> <http://purl.org/voc/vrank#hasRank> ?c}

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

于 2019-02-13T18:09:20.603 回答
1

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

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

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

于 2016-11-28T15:09:55.487 回答