OWL API-如何向OWL文件添加新类,属性,个人?

时间:2015-07-24 14:31:28

标签: java ontology owl-api

我想在一个由protege创建的OWL文件中添加一个新类属性。我需要更新owl文件。这是我试图添加一个类的代码。但它没有更新原始的OWL文件。只有netbeans IDE的输出提供更新的OWL文件。

 OWLDataFactory df = OWLManager.getOWLDataFactory();

 OWLEntity entity = df.getOWLEntity(EntityType.CLASS, IRI.create("#newclass"));

 OWLAxiom declare = df.getOWLDeclarationAxiom(entity);
 manager.addAxiom(ontology,declare );

2 个答案:

答案 0 :(得分:0)

您需要创建一个OWL存储器对象:

AbstractOWLStorer storer = new FunctionalSyntaxStorer();

这里我正在创建一个以功能语法格式存储本体的存储器。您可以为不同的格式(XML等)使用不同的构造函数。

storer.storeOntology(ontology, new FileDoumentTarget(new File(filePath)), new FunctionalSyntaxDocumentFormat());

有关您要存储本体的格式的更多具体细节,请在线查看文档: http://owlcs.github.io/owlapi/apidocs_4_0_2/org/semanticweb/owlapi/util/AbstractOWLStorer.html

答案 1 :(得分:0)

您需要将本体实际保存回文件。使用

func buttonTapped(sender: UIButton) {
    let point = sender.convertPoint(CGPointZero, toView:tableView)
    let indexPath = tableView.indexPathForRowAtPoint(point)!
    // check for last item in table
    if indexPath.row < tableView.numberOfRowsInSection(indexPath.section) {
        let newIndexPath = NSIndexPath(forRow:indexPath.row + 1 inSection:indexPath.section)
        tableView.scrollToRowAtIndexPath(
             newIndexPath, atScrollPosition:.Top, animated: true)
    }

}

实现这一点。