如果SPARQL查询的结果是资源怎么办?

时间:2014-01-16 15:18:17

标签: rdf sparql

如果是

之类的查询
SELECT * {?s ?p ?o}

返回?o作为资源(uri),如http://example.com#george_michael,如何更深入地获取同一查询中此资源的rdfs:label

1 个答案:

答案 0 :(得分:2)

SPARQL是一种查询图形的语言。 SPARQL查询是一个可以匹配图形的模式。模式?s ?p ?o只匹配任何三元组。如果要匹配其他三元组,只需在图形模式中添加相应的三元模式:

SELECT * {
  ?s ?p ?o .
  ?o rdfs:label ?label .
}

当然,您提到“假设”?o恰好是一种资源,这表明您可能对拥有的?o的值感兴趣一个rdfs:label。在这种情况下,您需要使用optional

SELECT * {
  ?s ?p ?o .
  optional { ?o rdfs:label ?label . }
}