将OWL文件中的更改与Jena TDB数据集同步

时间:2013-11-20 06:18:10

标签: dataset jena tdb

我正在使用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的正确方法吗?

1 个答案:

答案 0 :(得分:1)

TDB拥有自己的数据副本 - 您需要告诉它文件已更改。实际上,所有readModel操作都采用一些源语法并创建(复制)RDF三元组以存储在内存或数据库中。

如果您的文件很小,请清空数据库并重新加载。

如果文件很大,那么如果您可以获取某些更改,则将更改应用于数据库版本。