一連のベクトルに対して k 個の最近傍を見つける単一の SPARQL クエリを作成したいと思います。1 つのベクトルの最近傍 100 個の平均ラベルを見つけるには、次のクエリを使用できます。
PREFIX : <ml://>
PREFIX vector: <ml://vector/>
PREFIX feature: <ml://feature/>
SELECT (AVG(?label) as ?prediction)
WHERE {
{
SELECT ?other_vector (COUNT(?common_feature) as ?similarity)
WHERE { vector:0 :has ?common_feature .
?other_vector :has ?common_feature .
} GROUP BY ?other_vector ORDER BY DESC(?similarity) LIMIT 100
}
?other_vector :hasLabel ?label .
}
単一のクエリで複数のベクトルに対してこれを行う方法はありますか?