维基数据查询超时

use*_*574 8 sparql wikidata

我想将属性实例添加到此示例查询中,以仅获取作为人类实例的项目。

这是示例查询:

SELECT ?entityLabel (YEAR(?date) as ?year) 
WHERE
{
    BIND(MONTH(NOW()) AS ?nowMonth)
    BIND(DAY(NOW()) AS ?nowDay)

    ?entity wdt:P569 ?date .
    FILTER (MONTH(?date) = ?nowMonth && DAY(?date) = ?nowDay)
    SERVICE wikibase:label {
        bd:serviceParam wikibase:language "en" .
    }
}
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

这是我使用属性实例调整后的版本:

SELECT ?entityLabel (YEAR(?date) as ?year) 
WHERE
{
    ?entity wdt:P31 wd:Q5 .

    BIND(MONTH(NOW()) AS ?nowMonth)
    BIND(DAY(NOW()) AS ?nowDay)

    ?entity wdt:P569 ?date .
    FILTER (MONTH(?date) = ?nowMonth && DAY(?date) = ?nowDay)
    SERVICE wikibase:label {
        bd:serviceParam wikibase:language "en" .
    }
}
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

但我也只添加了一行,现在我得到了查询超时。有谁知道我如何云改进我的查询,以便我不会超时。

小智 2

这将超时,因为查询服务将尝试在限制所有 wdt:P31 wd:Q5 之前启动它们。

您可以在以下位置查看更多详细信息: https://www.wikidata.org/wiki/Wikidata:SPARQL_query_service /query_optimization