【发布时间】:2014-09-26 09:53:45
【问题描述】:
我正在使用来自 PHP 的以下 SPARQL 查询,其中 $title 对于所有五个查询三元组都是相同的:
SELECT * WHERE {
{ <http://dbpedia.org/resource/$title> rdfs:label ?pageTitle . }
UNION
{ <http://dbpedia.org/resource/$title> owl:sameAs ?sameAs . }
UNION
{ <http://dbpedia.org/resource/$title> dbpedia-owl:abstract ?abstract . }
UNION
{ <http://dbpedia.org/resource/$title> dbpedia-owl:thumbnail ?thumbnail . }
UNION
{ <http://dbpedia.org/resource/$title> dbpedia-owl:wikiPageID ?wikiID . }
}
有没有办法简化这一点,使$title 在查询中只指定一次?我在想某个地方可能会涉及一个匿名节点?也许? :-)
【问题讨论】:
-
你有什么理由想要在这里建立一个工会,特别是?看起来您的结果将是一个包含五列(每个变量一列)的表,但在每一行中,这些列中的一列将有一个值。您是否更喜欢包含两列的解决方案:一列表示属性,一列表示值?
-
@JoshuaTaylor 你是对的,因为dbpedia.org/sparql 的 HTML 输出(使用网络浏览器)你会得到你所描述的,但是 JSON 输出给了我一些没那么无用的东西:o)是有一种方法可以获得你所描述的输出而不做那些联合的事情(例如来自jimkont的答案 - 我正要尝试)
标签: php rdf sparql dbpedia triples