我想获取所有实体的 P31 属性的所有 DISTINCT 类型值。例如 :
这里的查询:
SELECT DISTINCT ?item ?itemLabel ?itemDescription
WHERE {
VALUES (?property) {
(wdt:P31)
}
?article schema:about ?item .
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}LIMIT 100
结果是异常超时:
SPARQL-QUERY: queryStr=SELECT DISTINCT ?item ?itemLabel ?itemDescription
WHERE {
VALUES (?property) {
(wdt:P31)
}
?article schema:about ?item .
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}LIMIT 100
java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask.get(FutureTask.java:205)
at com.bigdata.rdf.sail.webapp.BigdataServlet.submitApiTask(BigdataServlet.java:292)
at com.bigdata.rdf.sail.webapp.QueryServlet.doSparqlQuery(QueryServlet.java:678)
at com.bigdata.rdf.sail.webapp.QueryServlet.doGet(QueryServlet.java:290)
at com.bigdata.rdf.sail.webapp.RESTServlet.doGet(RESTServlet.java:240)
at com.bigdata.rdf.sail.webapp.MultiTenancyServlet.doGet(MultiTenancyServlet.java:273)
在其他有问题的评论的帮助下,这里是正确的查询:
SELECT ?type ?typeLabel WHERE {
{
SELECT DISTINCT ?type WHERE { ?item wdt:P31 ?type. }
OFFSET 0 LIMIT 10000
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr". }
}