2014-01-16 37 views
1

如果像如果SPARQL查询的结果是资源会怎么样?

SELECT * {?s ?p ?o} 

回报?o作为一个资源(URI),如http://example.com#george_michael查询,我怎么能去更深,在同一个查询中获取例如该资源的rdfs:label

+1

在以评论[我的回答(http://stackoverflow.com/a/21165839/1281433),你说你已经尝试过它。你是否正确定义了'rdfs'命名空间?如果StackOverflow包含的代码不能像您期望的那样工作,并且您可以显示预期的结果和实际结果,那么StackOverflow的问题通常是最好的。如果您已经尝试了类似的内容,但没有返回您期望的结果,请添加_complete_查询(包括前缀声明)到问题中,以及您获得的实际结果,或者错误消息是否为错误。 –

回答

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 . } 
} 
+0

我试过这个,但它不工作。 – user3156345

+0

@ user3156345对此没有什么作用? –

相关问题