如何使用不同的 ModelSpec 将 JENA OntModel 克隆到另一个
How to clone a JENA OntModel to another with a different ModelSpec
我在耶拿有一个带有 OWL_MEM_RDFS_INF ModelSpec 的 OntModel。但是我创建了一个实用程序来计算模型中的个人、财产等的数量。正如所解释的 here 执行 model.listIndividuals()
方法需要永远,这是正常的,因为我正在使用一些推理能力。
进一步证明,因为如果我使用基本的 OWL_MEM ModelSpec,我没有任何问题。
我尝试克隆模型图并使用另一个 ModelSpec,方法是使用 here 的解释:
Model copyOfOntModel = ModelFactory.createModelForGraph(model.getGraph());
OntModel newModel = new OntModelImpl(OntModelSpec.OWL_MEM, copyOfOntModel);
但是当我执行model.listIndividuals()
方法时,它仍然需要很长时间。有没有办法克隆模型但使用基本的 ModelSpec 为例?
我应用了 UniformedUser 所说的,但由于 getRawModel()
方法的结果不是 OntModel
,我只是做了:
Model _model = model.getRawModel();
OntModel newModel = new OntModelImpl(OntModelSpec.OWL_MEM, _model);
而且效果很好!!
我在耶拿有一个带有 OWL_MEM_RDFS_INF ModelSpec 的 OntModel。但是我创建了一个实用程序来计算模型中的个人、财产等的数量。正如所解释的 here 执行 model.listIndividuals()
方法需要永远,这是正常的,因为我正在使用一些推理能力。
进一步证明,因为如果我使用基本的 OWL_MEM ModelSpec,我没有任何问题。
我尝试克隆模型图并使用另一个 ModelSpec,方法是使用 here 的解释:
Model copyOfOntModel = ModelFactory.createModelForGraph(model.getGraph());
OntModel newModel = new OntModelImpl(OntModelSpec.OWL_MEM, copyOfOntModel);
但是当我执行model.listIndividuals()
方法时,它仍然需要很长时间。有没有办法克隆模型但使用基本的 ModelSpec 为例?
我应用了 UniformedUser 所说的,但由于 getRawModel()
方法的结果不是 OntModel
,我只是做了:
Model _model = model.getRawModel();
OntModel newModel = new OntModelImpl(OntModelSpec.OWL_MEM, _model);
而且效果很好!!