java - 向现有 RDF 本体添加更多个体

标签 java rdf jena

我有一个大约 20MB 的 RDF 本体。我尝试添加个人,如下面的代码所示。

FileManager.get().addLocatorClassLoader(RDFWriter.class.getClassLoader());
OntModel model = ModelFactory.createOntologyModel(OntModelSpec.RDFS_MEM_RDFS_INF);
model.read("Ontology/LocationOntology_New2.owl");
String preFix = "LocationOntology_New.owl#";
OntClass Region = model.getOntClass(preFix+"Region");
Individual sabara = model.createIndividual(preFix+"Sabaragamuwa",Region);
try {
    PrintStream p = new PrintStream("Ontology/LocationOntology_New2.owl");
    model.write(p,null);
    p.close();
} catch (FileNotFoundException e) {
    e.printStackTrace();  
}

但是这段代码需要花费很多时间才能将模型写回到加载的文件中。看起来它从头开始编写所有内容(不更新现有文件)。有人知道如何解决这个问题吗?

最佳答案

我认为这个问题无法解决。这意味着耶拿必须决定你做出什么样的改变。事实上,如果您只添加了新实例,那么将它们附加到文件中就足够了。但是,您也可能会进行更改,例如向某个类添加父类(super class),然后必须更新该类定义。

关于java - 向现有 RDF 本体添加更多个体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19537789/

相关文章:

java - calc() 类型方法中的 else if 语句返回不正确的值

xml - 使用 XSLT 将 XML 文件转换为 RDF/XML

java - 一旦我编写了内置函数,我需要做什么才能让推理机意识到它?

java - Cygwin 上的 tdbloader : Gettging FileNotFoundException: d:\cygdrive\d\. ...\node2id.idn

java - 如何将类变量重置为默认值0?

java.net.MalformedURLException : unknown protocol: rsrc

rdf - SPARQL 通过变量而不是行数来限制查询结果

lucene - Jena Text 查询性能在处理大型数据集时会急剧下降

jena - 有没有免费的猫头鹰推理器可以推理而不将所有数据加载到内存中?

java - Collectors.toMap() 中映射的默认值