はい、これは非常に可能であり、SPARQL 1.1 Federated Query W3C 勧告の内容です。SPARQL クエリでは、SERVICE
キーワードを使用して、クエリするさまざまな SPARQL エンドポイントを指定します。リンクされた推奨事項の例は次のとおりです
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name
FROM <http://example.org/myfoaf.rdf>
WHERE
{
<http://example.org/myfoaf/I> foaf:knows ?person .
SERVICE <http://people.example.org/sparql> {
?person foaf:name ?name . }
}
そこのservice
キーワードは、トリプル?person foaf:name ?name
を から取得する必要があること を示しています<http://people.example.org/sparql>
。あなたの場合、次のような結果になる可能性があります。
PREFIX ex: <http://example.org/>
SELECT ?person ?age ?weight ?resume WHERE {
values ?person { ex:Bill ex:John }
SERVICE <http://jobs.example.org/sparql> { ?person ex:resume ?resume }
SERVICE <http://age.example.org/sparql> { ?person ex:age ?age }
SERVICE <http://weight.example.org/sparql> { ?person ex:weight ?weight }
}
ただし、このクエリをどこかで実行する必要があります。ローカルで実行する場合は、3 つのトリプルストアすべてをservice
s として指定できますが、そのうちの 1 つに対してクエリを直接実行する場合は、残りの 2 つだけをservice
s として指定できます。もちろん、これはすべて、フェデレーテッド クエリをサポートする SPARQL エンジンに依存します。最近はほとんどの人がそうしていると思いますが、私は Jena (フェデレーテッド クエリをサポートしている) の経験しかありません。