我在sesame中有两个存储库,其中一个包含完整数据,另一个包含几个链接到主数据的字段的数据。
示例:
uri,skos:prefLabel,skosAltLabel等。
uri,customField
所以基本上我想查询customField上的二级数据,它会返回uri,可以映射到主数据并获取其他详细信息。
所以它们是关联数据集。
那么可以一次查询芝麻上的链接存储库吗?
答案 0 :(得分:1)
SPARQL 1.1支持http://localhost:8080/openrdf-sesame
子句,该子句允许您在单个查询结果中组合来自多个SPARQL端点的结果。由于Sesame Server将每个存储库公开为SPARQL端点,因此您可以使用它来对多个存储库执行查询。
例如,假设您在Primary
运行的芝麻服务器有两个存储库,Secondary
和http://localhost:8080/openrdf-sesame/repositories/Primary
。两个存储库的SPARQL查询端点分别为http://localhost:8080/openrdf-sesame/repositories/Secondary
和Primary
。
您可以在一个存储库(例如 SELECT *
WHERE {
# data from Primary dataset
?uri a skos:Concept ;
skos:prefLabel ?prefLabel ;
skos:altLabel ?altLabel .
# data from Secondary dataset
SERVICE <http://localhost:8080/openrdf-sesame/repositories/Secondary> {
?uri :customField ?customFieldValue .
}
}
)上执行SPARQL,然后在查询中引用另一个存储库,如下所示:
FederationSail
另一种方法是使用function mouseInHandler(){
$(this).find(".items_buttons").show();
};
function mouseOutHandler(){
$(this).find(".items_buttons").hide();
};
$('tr').hover(mouseInHandler,mouseOutHandler);
在Sesame中设置联合存储库。这是一种将几个芝麻数据库组合在一起形成一个&#34;虚拟&#34;存储库 - 联合会。您可以在联合上执行查询,结果将包括联合的所有成员数据库中的数据(无需指定要查询的端点,就像使用SERVICE子句时需要执行的操作一样)。
可以通过Workbench以编程方式设置联合,或者(如果您正在使用Sesame Server和Workbench)。只需选择新的存储库&#39;,然后选择联盟商店&#39;商店类型下拉列表中的选项。给它一个id和一个描述,然后在下一个屏幕上,你可以选择哪些数据库应该是联邦的一部分。