首页 > 解决方案 > SPARQL:找出用于链接的属性

问题描述

因此,我想扩展以下查询:

SELECT ?item ?itemLabel ?p ?superItem ?superItemLabel
WHERE { 
  wd:Q146 (wdt:P279 | wdt:P31 | wdt:P361 )+ ?item.
  ?item   ( wdt:P279 | wdt:P31 | wdt:P361) ?superItem.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}

如果您在Wikidata 查询服务中运行它,您会看到一个空列。在那里,我希望该物业负责该特定链接。所以要么wdt:P279要么wdt:P31要么wdt:P361

这有可能吗?如果是的话怎么办?

标签: sparqlwikidata-query-service

解决方案


可以将 print 属性与关键字一起用于三元组VALUES

PREFIX bd: <http://www.bigdata.com/rdf#> 
PREFIX wd: <http://www.wikidata.org/entity/> 
PREFIX wdt: <http://www.wikidata.org/prop/direct/> 
PREFIX wikibase: <http://wikiba.se/ontology#> 

SELECT ?item ?itemLabel ?p ?superItem ?superItemLabel
WHERE { 
  wd:Q146 (wdt:P279 | wdt:P31 | wdt:P361 )+ ?item.

  VALUES ?p { wdt:P279  wdt:P31  wdt:P361 }
  ?item  ?p ?superItem.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
LIMIT 50

演示: http: //linkedwiki.com/query/Find_out_which_property_is_used_for_link

文档:https ://www.w3.org/TR/sparql11-query/#inline-data


推荐阅读