我想问一下,如何在SPARQL端点的子图上(而不是整个远程SPARQL端点)进行联合SPARQL查询。
我在Virtuoso v7中获取了数据,而SPARQL端点是“http://localhost:8890/sparql”,我想对此端点的子图进行远程查询,即“http://localhost:8890/TC”,我试图
SELECT *
WHERE
{ SERVICE <http://localhost:8890/sparql>
{ SELECT ?subject ?predicate ?object
FROM <http://localhost:8890/TC>
WHERE
{ ?subject ?predicate ?object }
}
} LIMIT 50
我得到的错误是“FROM”未正确使用,所以我有两个问题:
1)我可以对SPARQL端点的子图进行远程查询吗?
2)我可以为Virtuoso v7中的每个图形使用SPARQL端点吗?
非常感谢你的帮助。
答案 0 :(得分:0)
您可以使用图形而不是来自。
在你的例子中:
SELECT *
WHERE
{
SERVICE <http://localhost:8890/sparql>
{
SELECT ?subject ?predicate ?object
WHERE
{ graph <http://localhost:8890/TC> { ?subject ?predicate ?object } }
}
} LIMIT 50
我在与dbpedia(Virtuoso)联合时,在Uniprot SPARQL端点(Virtuoso)中使用以下查询测试了此语法:
SELECT *
WHERE
{ SERVICE <http://dbpedia.org/sparql>
{select distinct ?activity where { graph <http://dbpedia.org> {?activity a <http://www.ontologydesignpatterns.org/ont/d0.owl#Activity>} } LIMIT 10
}
} LIMIT 50