我想编写一个 SPARQL 查询来查找一组向量的 k 个最近邻居。要查找单个向量的 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 .
}
有没有办法在单个查询中对多个向量执行此操作?