質問
Jena を使用して Java から OWL/XML ファイルを読み取るときに問題が発生します。
RDF/XML ファイルの読み取りには問題ありませんが、Protege から OWL/XML ファイルを作成して読み取ろうとすると、Java で次のエラーが発生します。WARN [MAIN](RDFDEFAULTERRORRORHANDLER.JAVA:36)スレッドの例外 "Main" Java.lang.nullpointerexceptionのcom.hp.hpl.jena.rdf.arp.impl.xmlhandler.endelement(xmlhandler.java:143)
RDF/XML を取得するために使用するコードは以下のとおりです。
OntModel ontModel = ModelFactory.createOntologyModel();
InputStream in = FileManager.get().open(inputFileName);
if (in == null) {
throw new IllegalArgumentException( "File: " + inputFileName + " not found");
}
ontModel.read(in, "");
このコードは RDF/XML で完全に動作します。しかし、OWL/XMLを読み取ることができません。インターネットを見ましたが、何も見つかりませんでした。誰かが私に方法を教えてくれれば、本当に感謝します。どうもありがとう
解決
Jena は OWL/XML をサポートしていません。RDF/XML リーダー、Turtle (別名: Turtle) が付属しています。N3) と N-Triples。たとえばを参照してください ここ サポートされている形式のリストについては、
他のヒント
OWL / XMLを使用する場合、
OWL-API でます。
ここで良い答えが見つかります。
- http://answers.semanticweb.com/questions/15004/using-jena-to-access-an-owlxml-file-made-from-protege
4番目の回答で提供されているコードをテストしましたが、100%機能します。答えをここにコピーしました。
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);
}
protege を使用してファイルを RDF/XML 形式で保存し、上記の手法でファイルを読み取ることができます。
所属していません StackOverflow