【发布时间】:2018-08-09 09:59:16
【问题描述】:
我已经找到了一种使用 Openllet 推理器和 Jena TDB 推断三元存储内容的方法,但它似乎不是最优的。这是我的解决方案:
Reasoner reasoner = PelletReasonerFactory.theInstance().create();
InfModel infModel = ModelFactory
.createInfModel(reasoner, dataset.getNamedModel(KD.URI));
/*
* To extract the model, a transaction must be open in READ mode.
*/
dataset.begin(ReadWrite.READ);
ModelExtractor me = new ModelExtractor(infModel);
dataset.end();
/*
* To replace a currently existing named model within the dataset, a transaction must be open in WRITE mode.
*/
dataset.begin(ReadWrite.WRITE);
dataset.replaceNamedModel(KD.URI, me.extractModel());
dataset.commit();
dataset.end();
这可行,但我想知道一种比实际替换数据集中的命名模型更优雅的方法。在理想情况下,我还希望推理是连续的(一旦将三元组插入到图形中,数据就会在现场自动推断出来),但我不知道这是否可能。
【问题讨论】:
标签: java jena semantic-web ontology pellet