GraphDB 可以用 OWL 推理加载 1000 万条语句吗?

Can GraphDB load 10 million statements with OWL reasoning?

我正在努力加载大部分 Drug Ontology OWL files and most of the ChEBI OWL files into GraphDB free v8.3 repository with Optimized OWL Horst 推理。

这可能吗?除了 "be patient?"

我应该做点什么吗?

详情:

我正在使用 loadrdf offline bulk loader to populate an AWS r4.16xlarge instance 488.0 GiB 和 64 vCPUs

整个周末,我尝试了不同的 池缓冲区大小 并发现大多数这些文件单独加载速度最快的是 2,000 或 20,000 条语句的池缓冲区,而不是建议的200,000。我还在 loadrdf 脚本中添加了 -Xmx470g。大多数 OWL 文件将在不到一小时内单独加载。

昨晚美国东部时间晚上 10 点左右,我开始同时加载下面列出的所有文件。 现在11个小时过去了,还有几百万条语句要走。现在加载率在70条/秒左右。似乎我的 RAM 只使用了 30%,但 CPU 负载一直在 60 左右。

我正在尝试加载的文件:

+-------------+------------+---------------------+
|    bytes    | statements |        file         |
+-------------+------------+---------------------+
| 471,265,716 | 4,268,532  | chebi.owl           |
| 61,529      | 451        | chebi-disjoints.owl |
| 82,449      | 1,076      | chebi-proteins.owl  |
| 10,237,338  | 135,369    | dron-chebi.owl      |
| 2,374       | 16         | dron-full.owl       |
| 170,896     | 2,257      | dron-hand.owl       |
| 140,434,070 | 1,986,609  | dron-ingredient.owl |
| 2,391       | 16         | dron-lite.owl       |
| 234,853,064 | 2,495,144  | dron-ndc.owl        |
| 4,970       | 28         | dron-pro.owl        |
| 37,198,480  | 301,031    | dron-rxnorm.owl     |
| 137,507     | 1,228      | dron-upper.owl      |
+-------------+------------+---------------------+

@MarkMiller 你可以看看 Preload 工具,它是 GraphDB 8.4.0 版本的一部分。它专为以恒定速度处理大量数据而设计。请注意,它无需推理即可工作,因此您需要加载数据,然后更改规则集并重新推理语句。

http://graphdb.ontotext.com/documentation/free/loading-data-using-preload.html

只需输入@Konstantin Petrov 的正确建议,格式更简洁。 所有这些查询都应该 运行 在感兴趣的存储库中 ...在解决这个问题的某个时候,我误导自己认为我应该连接到 SYSTEM 在 运行 查询这些查询时进行回购。

所有这些查询还需要以下前缀定义

prefix sys: <http://www.ontotext.com/owlim/system#>

这并没有直接解决 timing/performance 将大型数据集加载到 OWL 推理存储库的问题,但它确实展示了如何在将大量三元组加载到 OWL 后切换到更高级别的推理无推理("empty" 规则集)存储库。

可以从查询当前推理 level/rule 集开始,然后在每次插入后 运行 同样的 select 语句。

SELECT ?state ?ruleset { ?state sys:listRulesets ?ruleset }

添加预定义规则集

INSERT DATA { _:b sys:addRuleset "rdfsplus-optimized" }

将新规则集设置为默认规则

INSERT DATA { _:b sys:defaultRuleset "rdfsplus-optimized" }

重新推断...可能需要很长时间!

INSERT DATA { [] <http://www.ontotext.com/owlim/system#reinfer> [] }