最近我从 OWL API 切换到 Jena,希望能提高插入和查询数据的性能。
因此,我首先使用 Jena SDB 将我的 OWL 本体加载到基于 MySQL 的三重存储中。因此我用
model.read("owl-concepts.turtle")
Jena 在三重存储(在 Mysql 表中)中创建了大约 1500 个节点。最初,我对大量节点感到有些惊讶。但这似乎是合理的,因为 OWL 本体包含大约 80 个具有多个数据和对象属性的 OWL 类。
为了从本体中读取数据(个人),我利用了 Jena SDB 接口。我检索了一个模型并基于该模型创建了一个 ontModel。我使用该 ontModel 来修改个人,例如:
ontModel.createIndividual(...);
ontModel.getIndividual(....);
individual.remove();
对于 ontModel,我使用了 OWL_MEM;根据文档,这应该意味着没有应用推理。
我意识到,基于所描述的方法,个人数据的修改并不像我预期的那么快。平均而言,插入一个简单的人需要 2 到 30 秒。
于是我开始问:使用 Jena 中的模型接口是否是修改数据的推荐方式,还是这种方法性能低下,而应该使用 SPARQL 来修改数据?我最初的计划是仅将 SPARQL 用于查询部分......
将感谢每一个专家意见或您与耶拿的经验。