あなたが説明しているように見える方法でサブグラフを相互に明示的に格納することはできないため、あなたが望むことを正確に行うことはできません。ただし、すべてのトリプルを単一のグラフに入れることができます。これで十分であることが証明されます。
PREFIX : <http://example.org/>
INSERT
{
# Output triples in the desired graph
GRAPH ?name { ?s ?p ?o }
}
WHERE
{
# Use a sub-query to find all relevant graphs and concatenate their names together
{
SELECT (GROUP_CONCAT(STR(?g)) AS ?strName) (URI(?strName) AS ?name)
WHERE
{
GRAPH ?g { ?s ?p :o1 }
}
GROUP BY ?g
}
# Join the name to all the relevant triples
GRAPH ?g
{
?s ?p :o1 .
?s ?p ?o .
}
}
したがって、これは少しハッキーですが、大まかにやりたいことを行う必要があります。サブクエリを使用して、関連するトリプルを持つすべてのグラフを検索し、それらの名前を連結して URI に変換します。これにより、非常に無効な URI が作成される可能性があり、クエリの後の手順が機能しない可能性があることに注意してください。
次に、そのグラフ名を、目的のサブジェクトを持つトリプルを含むグラフからのすべてのトリプルと一緒に結合します。
最後に、これらを新しく作成された名前でグラフに出力します。ストアによっては、不正なグラフ名を作成した可能性があるため、これが機能しない可能性があります。
これはあなたが望むものとは異なるかもしれませんが、うまくいけば正しい方向に向けることができます.