gpt4 book ai didi

java - 在耶拿复制 OWL 本体

转载 作者:行者123 更新时间:2023-12-01 10:01:11 27 4
gpt4 key购买 nike

我正在尝试使用 Jena API 复制 OWL 本体,每次都向该本体添加一个新语句。但一开始它应该得到原始本体,没有新的语句。

以下代码每次都会在前一个语句之上添加一个新语句。

this runs in a for loop{

OntModel curOnto = onto1.getOntology();

curOnto.add(s,p,o);

/*printing the statement from onto1
it seems it is adding new statement in onto1 on top of previous statement*/

int lineNum = 0;
for (StmtIterator i = onto1.getOntology().listStatements(); i.hasNext();) {
Statement stmt = i.nextStatement();
System.out.println( lineNum++ + " - " + PrintUtil.print(stmt));
}
}

正如其他帖子中所建议的,我尝试像这样复制本体:

Model copyOnto = ModelFactory.createModelForGraph(onto1.getOntology().getGraph());
OntModel curOnto = new OntModelImpl(onto1.getOntology().getSpecification(), copyOnto);

但还是一样,它不断在onto1中添加新的语句。我需要在每次运行 for 循环时在 curOnto 中获取 onto1 的原始副本。有什么帮助吗?

提前致谢。

最佳答案

上面的建议(使用org.apache.jena.rdf.model.ModelFactory#createModelForGraph)是错误的。所有信息都保存在图表中。所以你需要复制整个图(所有三元组)。它可以通过方法org.apache.jena.graph.GraphUtil#addInto

来完成(例如)

关于java - 在耶拿复制 OWL 本体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36794731/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com