我想将属性实例添加到此示例查询中,以仅获取作为人类实例的项目。
这是示例查询:
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