Изменить предопределенную онтологию с помощью jena - PullRequest
1 голос
/ 26 октября 2010

Я создал свою онтологию Протеже. моя онтология имеет несколько классов и экземпляров. Теперь я собираюсь добавить другие классы и экземпляры по jena, поэтому я пишу приведенный ниже код, чтобы создать новый класс и один экземпляр в этом классе. имя нового класса - «персона», а имя нового экземпляра - «базовый». Когда я запускаю этот код в Java, он работает без ошибок и создает класс и экземпляр. но когда я возвращаюсь в протеже, я не вижу нового класса и нового экземпляра. Есть ли у вас идеи, чтобы помочь мне. спасибо

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();
}

1 Ответ

4 голосов
/ 26 октября 2010

Вы, похоже, не сохранили измененную модель:

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