その点で、私は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
これは最終的に結果を返しますが、私が望むほど速くはありません。これよりも大きな名前で上記のクエリを実行すると、タイムアウトになることにも注意してください。
ここにあるすべてのサンプル クエリは、クエリ元のエンティティが既にあることを前提としています。私の場合、特定の名前の人を照会しようとしているので、何もする必要はありません。私が使用しているデータベースの内部動作について、おそらく間違った仮定をしているのでしょうが、それらが何であるかはわかりません。
何か案は?