我正在使用JENA TDB来存储读取为OntModel的OWL文件。相同的代码是:
public static void initializeModel(){
dataset=TDBFactory.createDataset("Path/to/TDBDir");
Model b = dataset.getDefaultModel();
ontModel= ModelToOntModel(b);
FileManager.get().readModel( ontModel, "Path/to/sourceOWL.owl");
jListener= new JenaListener(ontModel,"MODEL");
ontModel.register(jListener);
}
我正面临一个问题,如果owl文件在外部更改(特别是当我们从owl文件中删除某些内容时),当应用程序未运行并再次重新运行应用程序时,数据集似乎在根据owl文件的状态不一致,因为从owl文件中删除的实体仍然存在于ontModel
中(因为这些旧条目在TDB中仍然存在),这在我们的案例中是不可取的。
有没有办法克服这类问题?这样数据集与我的OWL文件保持一致?或者上面显示的方法不是创建TDB的正确方法吗?
答案 0 :(得分:1)
TDB拥有自己的数据副本 - 您需要告诉它文件已更改。实际上,所有readModel
操作都采用一些源语法并创建(复制)RDF三元组以存储在内存或数据库中。
如果您的文件很小,请清空数据库并重新加载。
如果文件很大,那么如果您可以获取某些更改,则将更改应用于数据库版本。