java - 使用jena修改预定义本体

标签 java semantic-web jena ontology owl

我通过 Protege 创建了我的本体。我的本体有一些类和实例。现在我要通过 jena 添加其他类和实例,这就是为什么我编写以下代码以在此类中创建一个新类和一个实例的原因。新类的名称是“person”,新实例的名称是“base”。当我在 java 中运行此代码时,它可以正常工作并创建类和实例。但是当我回到 protege 时,我看不到新类和新实例。你有什么想法可以帮助我吗? 谢谢

public void create_model(){                   
    modelMem = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM);
    ModelMaker modelMaker = ModelFactory.createFileModelMaker("Ontologies/VBnet.owl");
    Model modeltmp = modelMaker.createDefaultModel();
    modelMem = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM, modeltmp);
    System.out.println("Model has been Successfully Built");

}
public void addFile() {
    System.out.println("Loading from FOAF instance File");
    InputStream inFoafInstance =FileManager.get().open("Ontologies/VBnet.owl");
    modelMem.read(inFoafInstance, defaultNameSpace);
    //inFoafInstance.close();
    System.out.println(modelMem.toString());

}
public void adddata() {
   OntClass person = modelMem.createClass(defaultNameSpace + "Person");
   Individual l1 = modelMem.createIndividual( defaultNameSpace + "base", person );
   for (Iterator i = l1.listRDFTypes(true); i.hasNext(); )
       System.out.println( l1.getURI() + " is asserted in class " + i.next() );
}

public static void main(String[] args) {
    AddInfo add=new AddInfo();
    add.create_model();
    add.addFile();
    add.adddata();
}

最佳答案

您似乎没有保存更改后的模型:

OutputStream out = new FileOutputStream("altered.rdf");
modelMem.write( out, "RDF/XML-ABBREV"); // readable rdf/xml
out.close();

关于java - 使用jena修改预定义本体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4021098/

相关文章:

sparql - SPARQL 1.1 中任意属性路径的边界

java - 遍历耶拿的匿名/空白节点

java - 为实时跑道入侵预防系统选择哪个知识库/基于规则的推理引擎

java - 类的ArrayList作为参数

java - 将 doc 转换为 pdf

Sparql 键与不同的值

java - 在html(servlet/jsp)中打印jena结果集

java - JOptionPan 文本的部分突出显示

java - 如何在Web应用中构建良好的安全架构?

rdf - 语义网中的个体和属性