如何在 Blazegraph 中处理多个图表?

问题描述 投票:0回答:1

我正在使用在 Blazegraph 上下载并加载的公共图表。 我现在熟悉该图上的 SELECT 和 CONSTRUCT 请求。 我不知道这是否重要,但该图包含多个前缀:

@prefix schema: <http://schema.org/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix olo: <http://purl.org/ontology/olo/core#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
....

我现在想要另一个包含内部数据的图表(例如用户帐户),因为将存在与公共图的链接(例如用户是否“喜欢”公共图的节点);

我想将这两个图分开,例如:

  • 更新时用新版本替换公共图
  • 保存我的内部图表的备份
  • ...

如何做到这一点? 有好的做法吗?

graph rdf rdfs triplestore blazegraph
1个回答
0
投票

我想到了几个解决方案。

解决方案 1:命名图

可以在单个图形数据库中将数据分割成子图(正式称为命名图)。这允许您在逻辑上分离查询。例如,

INSERT DATA {
    GRAPH <http://example/my_public_graph> {
        subject pred obj .
    } 
}

SPARQL 规范有更多关于从它们查询的信息。

解决方案 2:使用联合查询分离 Blazegraph 实例

另一个解决方案是运行两个 Blazegraph 实例,每个实例具有不同类型的数据。您可以将查询从一个查询联合到另一个查询以执行数据并集

解决方案 3:移除 Blazegraph

Blazegraph 对于所有实用目的来说已经死了。更现代的 DBMS 将允许您在同一实例上运行多个图形。例如,GraphDB 或 Stardog。

© www.soinside.com 2019 - 2024. All rights reserved.