我是 SPARQL 和 Wikidata 的新手。我试图让我的用户在维基数据中搜索人,而且只有人,我不希望任何结果是摩托车品牌或任何东西。
所以我在这里玩了以下查询:
SELECT ?person ?personLabel WHERE {
?person wdt:P31 wd:Q5.
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en".
?person rdfs:label ?personLabel .
}
FILTER regex(?personLabel, "Albert", "i").
}
LIMIT 10
尽管这最终会返回一个结果,但它几乎没有我想要的那么快。请注意,如果您尝试使用更大的名称进行上述查询,它也会超时。
在这里找到的所有示例查询都假定您已经有一个可以从中查询的实体。而在我的情况下,您无事可做,因为我正在尝试查询具有特定名称的人。我可能对我正在使用的数据库的内部工作做出了一些错误的假设,但我不确定它们是什么。
有任何想法吗?