为什么此wikidata sparql超时?

问题描述

查询巴拉克·奥巴马(Barack Obama)的出生日期,这似乎相对简单,为什么要花这么长时间以至于https://query.wikidata.org/超时?只有大约3个标有巴拉克·奥巴马(Barack Obama)的实体,还有大约2个标有“出生日期”的

SELECT disTINCT ?ent ?wdtProperty ?val ?valLabel WHERE { 
  
  ?ent rdfs:label|skos:altLabel "Barack Obama"@en. 
  ?wdProperty1 rdfs:label|skos:altLabel "date of birth"@en; 
  wikibase:directClaim ?wdtProperty1. 
  ?ent ?wdtProperty1 ?val . 
                                                         
} LIMIT 10

解决方法

正确的答案是

SELECT DISTINCT ?ent ?wdtProperty1 ?val
WITH
{
  SELECT ?wdtProperty1
  WHERE
  {
    [] rdfs:label|skos:altLabel "date of birth"@en; 
       wikibase:directClaim ?wdtProperty1. 
  }
} AS %get_predicate
WITH
{
  SELECT ?ent
  WHERE
  {
    ?ent rdfs:label|skos:altLabel "Barack Obama"@en. 
  }
} AS %get_subject
WHERE
{ 
  INCLUDE %get_predicate
  INCLUDE %get_subject
  ?ent ?wdtProperty1 ?val .
}

感谢https://www.wikidata.org/wiki/Wikidata:Request_a_query#Slow_query_on_label

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...