使用している機能はSPARQL1.1であるため、以前のバージョンのARQではサポートされていませんでした。自分の仕事に近いクエリを作成する唯一の方法は、次のいずれかを実行することです。
さまざまな長さのユニオンパス
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT *
WHERE
{
{ ?x owl:sameAs ?y }
UNION
{ ?s owl:sameAs [ owl:sameAs ?y ] . }
UNION
{ ?s owl:sameAs [ owl:sameAs [ owl:sameAs ?y ] ] . }
# Repeat the above pattern up to whatever limit you want
}
クライアント側のコードを使用する
次のように初期クエリを発行します。
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT * WHERE { ?x owl:sameAs ?y }
値のリストを作成し、?y
値ごとに次の形式のクエリを発行します。
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT * WHERE { <constant> owl:sameAs ?y }
<constant>
毎回リストの値の1つを置き換えてから、の新しい値を?y
リストに追加します。
このアプローチで注意する必要があるのは、2番目のクエリを既に発行した値を追跡して、繰り返しクエリを保存することだけです。