【发布时间】:2020-04-15 10:54:52
【问题描述】:
我在阅读book 时遇到了这一行:
"SPARQL FROM 子句提供了另一种定义自定义联合图的方法。FROM 子句用于标识查询的默认图。最典型的用途是标识单个 RDF 图。但是,如果多个 FROM在查询中指定子句,然后这些图的内容被合并(通常在内存中)以提供联合图,它将形成查询的默认图。因此,SPARQL 的这一特性可以提供另一个组装数据集的有用的图形无关视图的方法。”
这里说“这些图被合并(通常在内存中)以提供联合图”。
我是 Apache Jena 的新手,所以这让我想到这么大的 GRAPH 联合会发生在内存中吗?
所以我使用 TDB 来存储我的图并使用 SPARQL 查询它们,我想查询“在多个 FROM 子句中给出的 2 个特定图的 GRAPH 联合”或“所有命名图的 GRAPH 联合”:
这些 UNION 会在我使用 ARQ 查询 TDB 的 Java 代码中发生在内存中吗?
这不会导致 OutOfMemory 错误很多次,因为 Graphs 可能很多吗?
这似乎是菜鸟问题,请原谅我在耶拿的初学者经验。
【问题讨论】:
-
我不能专门为 Apache Jena 说话,但一般来说这不是真的。我没有立即意识到任何计算内存中多个 FROM 子句的联合的 SPARQL 引擎或数据库系统(当然,除非您计算实际的内存数据库)。可能有一些我不知道的情况,但这绝对不是“典型”情况。
-
它不在 Apache Jena 的内存中。对图联合的每次访问都看起来像是一个图(没有重复)。在最坏的情况下,这可能会占用一些内存 - 但它只与访问的三元组成正比,而不是整个图。
标签: sparql rdf jena triplestore named-graphs