2

对于我当前的项目,我需要加载一个数据集和不同的本体,并使用带有 TDB 和 Pubby 的 Fuseki 将所有内容公开为链接数据。Pubby 将从单个位置获取数据集并基于该位置创建 URI,因此如果我们需要多个不同的位置(如使用 2-3 个独立本体的情况),通过添加另一个数据使用 Pubby 很容易放。

数据集的概念似乎也适用于 Fuseki。

本质上,我需要公开三种类型的 URI:

  • www.mywebsite.com/project/data
  • www.mywebsite.com/project/data/structure
  • www.mywebsite.com/project/ontology

为了使用 Pubby 0.3.3 创建这样的 URI。您将必须指定如下行:

conf:dataset [
   conf:sparqlEndpoint <sparql_endpoint_url_ONE>;
   conf:sparqlDefaultGraph <sparql_default_graph_name_ONE>;
   conf:datasetBase <http://mywebsite.com/project/>;
   conf:datasetURIPattern "(data)/.*";
   (...)
]

Pubby 中指定的每个数据集都将从某个 URL(通常是 SPARQL 端点)获取其数据。对于本体,您将拥有一个使用第二个 datasetURIPattern 的数据集,如下所示:

conf:dataset [
   conf:sparqlEndpoint <sparql_endpoint_url_TWO>;
   conf:sparqlDefaultGraph <sparql_default_graph_name_TWO>;
   conf:datasetBase <http://mywebsite.com/project/>;
   conf:datasetURIPattern "(ontology)/.*";
   (...)
]

如您所见,不同之处在于:conf:sparqlEndpoint(SPARQL 端点)、conf:sparqlDefaultGraph(默认图)、conf:datasetURIPattern(使用 Pubby 创建实际 URI 时需要)。然而,我不清楚在使用 Fuseki 时如何为数据集设置单独的 URI。例如,当使用 Sesame 时,我只是创建了两个不同的存储库,当使用 Pubby 发布数据时,这个技巧就像魅力一样。没有立即明确

Fuseki官方文档中的示例提供了一个单一的数据集(只读或非只读等),但似乎都没有呈现这种情况。没有直接的例子表明 TBox 和 ABox 之间有明确的分离,尽管这是链接数据的基本原则(请参阅保持 ABox 和 TBox 拆分)。

据我了解,这应该是可能的,但如何?TBox 和 ABox 稍后可以通过使用 ( ) 在单个 SPARQL 端点下重新组合是否正确tdb:unionDefaultGraph true ;

4

1 回答 1

4

数据集的概念并不是 Jena Fuseki 独有的;它在 SPARQL 中非常重要。数据集是命名图和默认图的集合。URI 的前缀与存储三元组的位置无关(无论是在命名图中还是在默认图中)。

听起来您想将 ABox 三元组保存在一个命名图中,而将 TBox 三元组保存在另一个命名图中。然后,如果默认图是命名图的并集,您将在默认图中看到两者的内容。你可以在 Fuseki 做到这一点。

于 2014-09-29T19:11:01.653 回答