2016-09-02 4 views
0

Ich habe eine Datei mit einer Ontologie ohne Ontologie-ID (das Ontologietag <Ontology/> ist leer). Das verwendete Serialisierungsformat ist RDF/XML. Mein Ziel ist es, die Datei zu serialisieren, eine Ontologie-ID zu setzen und die Datei mit der OWLAPI zurückzuschreiben. Leider weiß ich nicht, wie ich das machen soll. Ich habe versucht, die folgenden:So legen Sie die Ontologie-ID einer anonymen Ontologie mithilfe der OWL-API fest

ontology = ontologyManager.loadOntologyFromOntologyDocument(new File("filename")); 
ontologyManager.setOntologyDocumentIRI(ontology, IRI.create("http://www.mydesiredIri.com/abc")); 
ontologyManager.saveOntology(ontology,new FileOutputStream(new File("outputfile"))); 

Durch den Code ausgeführt wird, wird die Ontology-ID an die Ontologie nicht hinzugefügt. Anstelle von <Ontology rdf:about="http://www.mydesiredIri.com/abc"/> ist das Tag noch leer. Was mache ich falsch?

Vielen Dank!

Mit freundlichen Grüßen

Antwort

0

OWLOntologyManager.setOntologyDocumentIRI() ist das Dokument IRI der Ontologie für die Einstellung, nicht die Ontologie IRI selbst. Der Unterschied zwischen den beiden ist, dass das Dokument IRI eine auflösbare URL oder ein Dateipfad ist (dh int kann zum Analysieren der Ontologie verwendet werden), während die Ontologie IRI der symbolische Name der Ontologie ist (sie muss nicht auflösbar sein) und es kann sogar fehlen - was bei anonymen Ontologien der Fall ist.

die Ontologie IRI, einzustellen verwenden:

//versionIRI can be null 
OWLOntologyID newOntologyID = new OWLOntologyID(ontologyIRI, versionIRI); 
// Create the change that will set our version IRI 
SetOntologyID setOntologyID = new SetOntologyID(ontology, newOntologyID); 
// Apply the change 
manager.applyChange(setOntologyID); 

Danach wird die Ontologie wie gewohnt speichern.

+0

Vielen Dank, Ihr Code funktioniert gut. Ich bekomme jedoch die Warnung "der Konstruktor OWLOntologyID (IRI) ist veraltet". Was ist der neue Weg, eine OWLOntologyID zu erstellen? (Ich habe im Javadoc keinen Hinweis gefunden.) – user3579222

+0

Sie können optionale Instanzen erstellen, um die Verwarnungswarnung zu entfernen. – Ignazio

Verwandte Themen