对于我当前的项目,我需要加载一个数据集和不同的本体,并使用带有 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 ;
。