作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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/
另请参阅:Is this a good substr() for C? strtok() 和 friend 跳过空字段,我不知道如何告诉它在这种情况下不要跳过而是返回空。 我能看到的大多数分词器都有
这个问题在这里已经有了答案: What is a NullPointerException, and how do I fix it? (12 个答案) 关闭 6 年前。 编辑:排序。解决方案见底部
我是一名优秀的程序员,十分优秀!