Problème de lecture OWL / XML
Question
J'ai un problème de lecture OWL / fichiers XML de Java en utilisant Jena.
Je n'ai pas de problème de lecture RDF / fichiers XML, mais chaque fois que je crée un fichier OWL / XML à partir Protege et essayer de le lire, Java donne cette erreur ci-dessous: WARN [main] (RDFDefaultErrorHandler.java:36) Exception dans le thread java.lang.NullPointerException "principal" à com.hp.hpl.jena.rdf.arp.impl.XMLHandler.endElement (XMLHandler.java:143)
Le code que j'utilise pour récupérer RDF / XML est ci-dessous:
OntModel ontModel = ModelFactory.createOntologyModel();
InputStream in = FileManager.get().open(inputFileName);
if (in == null) {
throw new IllegalArgumentException( "File: " + inputFileName + " not found");
}
ontModel.read(in, "");
Ce code fonctionne avec RDF / XML parfaitement. Cependant, je ne peux pas lire un OWL / XML. Je regardais Internet et je ne pouvais pas trouver quoi que ce soit. Je voudrais vraiment apprécier, si quelqu'un me montre un chemin. Un grand merci
La solution
Jena ne supporte pas OWL / XML. Il est livré avec les lecteurs pour RDF / XML, tortue (N3 a.k.a.) et N-Triples. Voir par exemple ici pour la liste des formats pris en charge.
Autres conseils
Pour une utilisation OWL / XML OWL-API .
Vous pouvez trouver une bonne réponse ici.
- http://answers.semanticweb.com/questions/15004/using-jena-to-access-an-owlxml-file-made-from-protege
J'ai testé le code fourni dans la 4ème réponse et cela fonctionne pour moi à 100%. Je copiais la réponse ici pour vous.
String inputFileName = "D:\Ontologia\OntoSME_V7.owl";
OntModel onto = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM, null);
try {
InputStream in = FileManager.get().open(inputFileName);
onto.read(in, "RDF/XML");
} catch (JenaException je) {
System.out.println("ERROR" + je.getMessage());
je.printStackTrace();
System.exit(0);
}
vous pouvez utiliser protege pour enregistrer le fichier dans RDF / format XML et lire le fichier avec la technique ci-dessus.