Virtuosoにいくつかの名前付きグラフが保存されていますが、提供されたリストから最も多くの用語に一致するグラフを見つけたいと思います。
私のクエリはプログラムで作成され、次のようになります。
SELECT DISTINCT ?graph (count(DISTINCT ?match) as ?matches)
WHERE {
GRAPH ?graph {
{?match rdf:label "term 1"}
UNION {?match rdf:label "term 2"}
UNION {?match rdf:label "term 3"}
...
}
}
ORDER BY DESC(?matches)
各用語は別のUNION句になります。
これを行うためのより良い方法はありますか?クエリは長くて醜く速くなり、用語が多すぎるとVirtuosoは文句を言います。