SPARQL端点的子图上的联合SPARQL查询

时间:2017-10-30 16:03:31

标签: sparql semantic-web virtuoso triplestore federated-queries

我想问一下,如何在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端点吗?

非常感谢你的帮助。

1 个答案:

答案 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