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

时间:2017-10-23 14:06:28

标签: sparql rdf owl graphdb

我正在努力将大部分Drug Ontology OWL files和大多数ChEBI OWL files加载到GraphDB免费v8.3存储库中并进行Optimized OWL Horst推理。

这可能吗?我应该做些什么而不是“耐心等待吗?”

详细信息:

我正在使用loadrdf offline bulk loader填充AWS r4.16xlarge instance,其中包含488.0 GiB和64个vCPU

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

昨晚美国东部时间晚上10点左右,我开始同时加载下面列出的所有文件。 现在是11个小时之后,还有数百万条陈述要发布。负载率现在约为70 /秒。看起来只有30%的RAM被使用,但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      |
+-------------+------------+---------------------+

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

只需输入更完整的格式,就可以输入@Konstantin Petrov的正确建议。 所有这些查询都应该在感兴趣的存储库中运行 ......在某些时候,我会误以为我应该在运行时连接到SYSTEM repo这些问题。

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

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

这并没有直接解决将大型数据集加载到OWL推理存储库中的时间/性能,但它确实显示了在将大量三元组加载到无推理之后如何切换到更高级别的推理(& #34;空&#34;规则集)存储库。

可以从查询当前推理级别/规则集开始,然后在每次插入后运行同一个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> [] }