- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要将数据从 OWLOntology 对象(OWL api 的一部分)转换为模型对象(Jena Api 的一部分)。我的Java程序应该能够加载owl文件并将其内容发送到fuseki服务器。根据我读到的内容,只有使用 Jena Api 才能通过 Java 程序使用 fusioni 服务器,这就是我使用它的原因。
所以我找到了一些使用Jena api将本体发送到fuseki服务器的示例,并将其修改为这个功能:
private static void sendOntologyToFuseki(DatasetAccessor accessor, OWLOntology owlModel){
Model model;
/*
..
conversion from OWLOntology to Model
..
*/
if(accessor != null){
accessor.add(model);
}
}
此功能应该向 fusioni 服务器添加新的本体。有什么想法如何填补缺失的转换吗?或者任何其他想法,如何使用 OWL api 将本体发送到 fusioni 服务器?
我读到了这个解决方案: Sparql query doesn't upadate when insert some data through java code
但是我的java程序的目的是增量发送这些本体,因为它是相当大的数据,如果我将它们加载到本地内存中,我的计算机将无法管理它。
最佳答案
这个想法是写入 Java OutputStream
并将其通过管道传输到 InputStream
。可能的实现可能如下所示:
/**
* Converts an OWL API ontology into a JENA API model.
* @param ontology the OWL API ontology
* @return the JENA API model
*/
public static Model getModel(final OWLOntology ontology) {
Model model = ModelFactory.createDefaultModel();
try (PipedInputStream is = new PipedInputStream(); PipedOutputStream os = new PipedOutputStream(is)) {
new Thread(new Runnable() {
@Override
public void run() {
try {
ontology.getOWLOntologyManager().saveOntology(ontology, new TurtleDocumentFormat(), os);
os.close();
} catch (OWLOntologyStorageException | IOException e) {
e.printStackTrace();
}
}
}).start();
model.read(is, null, "TURTLE");
return model;
} catch (Exception e) {
throw new RuntimeException("Could not convert OWL API ontology to JENA API model.", e);
}
}
或者,您可以简单地使用 ByteArrayOutputStream
和 ByteArrayInputStream
而不是管道流。
关于java - Java 中 OWLOntology 到 Jena 模型的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46866783/
在我的程序中,我需要对 OWLOntology 的实例进行深度复制。 我想我需要创建一个新的 OWLOntologyManager: ontologyManager = OWLManager.crea
我必须使用 OWLAPI 来阅读本体;我使用这个JAVA代码: public class OwlApi { public static void main(String[] args) throws
我有一些数据来自 RabbitMQ。数据被格式化为三元组,因此来自队列的消息可能如下所示: :Tom foaf:knows :Anna 其中 : 是我要将数据导入其中的本体的标准命名空间,但导入的其他
我需要将数据从 OWLOntology 对象(OWL api 的一部分)转换为模型对象(Jena Api 的一部分)。我的Java程序应该能够加载owl文件并将其内容发送到fuseki服务器。根据我读
我是一名优秀的程序员,十分优秀!