2010-06-12 92 views
2

我在使用Jena讀取Java中的OWL/XML文件時遇到問題。讀取OWL/XML問題

我沒有問題,閱讀RDF/XML文件,但每當我創建一個門徒OWL/XML文件,並嘗試讀它,爪哇,給出以下這個錯誤: 警告[主](RDFDefaultErrorHandler.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。我看着互聯網,找不到任何東西。 我真的很感激,如果有人給我指路。 非常感謝

回答

2

Jena不支持OWL/XML。它隨RDF/XML,Turtle(又名N3)和N-Triples的讀者一起發行。有關支持的格式列表,請參閱here

+0

我應該用什麼來讀取OWL/XML文件?是否有像耶拿這樣的圖書館來閱讀這種文件?或者,將OWL/XML轉換爲RDF/XML有意義嗎? – Mikae 2010-06-13 12:24:41

+0

只需使用RDF/XML。我很確定它可以表達OWL/XML可以表達的所有內容。 – cygri 2010-06-13 16:55:32

3

對於OWL/XML,使用OWL-API

+0

是的,我已經使用OWL-API,它的工作原理非常完美。感謝您的寶貴意見,Kaarel和cygi。 – Mikae 2010-06-14 10:02:48

0

你可以在這裏找到一個很好的答案。

我測試的是在第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格式並使用上述技術讀取文件。