1

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

4

1 回答 1

1

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

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

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

于 2013-11-20T09:43:27.773 回答