使用多个数据源的 SPARQL 查询

SPARQL query using multiple datasources

我有我的默认图表,我需要使用 DBpedia 扩展数据。

我已经使用 owl:sameAs 属性.

将我数据中的所有实例映射到它们各自来自 DBpedia 的 URI

本次查询returns所有owl:sameAs数据: (我的终点:http://dydra.com/brunopenteado/br_municipalities/@query

select * 
  where 
    { 
      ?mun owl:sameAs ?db .
    } 
  limit 10

现在我想使用我的数据从 DBpedia 查询 rdfs:label

如何构建一个查询来读取我的数据并扩展到 DBpedia 属性?

我试过这样的查询,但没有返回任何结果。

select * 
  from <http://dydra.com/brunopenteado/br_municipalities/sparql>
  from <http://pt.dbpedia.org/sparql>
where 
  { 
    ?mun owl:sameAs ?dbp .
    ?dbp rdfs:label ?name
  } 
limit 10

FROM 不起作用,因为它用于识别当前数据源中的图表。您可以使用 SERVICE 关键字从单个查询访问多个 SPARQL 端点。

select * 
where 
{ 
   SERVICE <http://dydra.com/brunopenteado/br_municipalities/sparql>
   {
      ?mun owl:sameAs ?dbp .
      ?dbp rdfs:label ?name
   }

   SERVICE <http://pt.dbpedia.org/sparql>
   {
      ?mun owl:sameAs ?dbp .
      ?dbp rdfs:label ?name
   }
}

您可能希望将 OPTIONAL 添加到您的服务查询中。有关详细信息,您可以阅读 the specs.