[英]Jena API - How can I handle OWL files?
我有以下代碼來列出本體的個體:
public static void main(String[] args) {
OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
String fileName = "C:/Users/Ikno/Desktop/workspace/Jena/ontrdf.rdf";
try {
InputStream inputStream = new FileInputStream(fileName);
model.read(inputStream, "RDF/XML");
//model.read(inputStream, "OWL/XML");
inputStream.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
ExtendedIterator<Individual> itI = model.listIndividuals();
while (itI.hasNext()) {
Individual i = itI.next();
System.out.println(i.getLocalName());
}
}
該代碼是確定的,並返回所有單獨的本地名稱。 問題是,我在Protégé創建了OWL本體,將其轉換為RDF,這是由耶拿(Jena)操作的一個浪費的步驟。 如果我取消注釋model.read(inputStream, "OWL/XML");
,它給了我以下錯誤:
class org.apache.jena.riot.RiotException
[line: 266, col: 31] {E201} Multiple children of property element
耶拿(Jena)無法支持OWL格式的這種操作嗎?
作為一種選擇,您可以使用ONT-API ,它是OWL-API和Apache Jena之間的一種橋梁。 因此,它一起支持所有jena和owl-api格式(OWL / XML僅是OWL-API&protege的原始格式),但是(請注意)沒有自己的實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.