2015-04-24 47 views
0

在jena api中有類rdfcat,它是一個工具來轉換數據文件格式 ,它可以使用從commande線就像例子, 我需要執行該工具從裏面的java代碼, 我試了代碼,但我失敗了。如何使用rdfcat從java代碼

public static void main(String[] args) { 
    rdfcat rdf=new rdfcat(); 

    String[] t={"-x f:/foaf.owl -out ttl"}; 
    rdf.main(t); 

    String string=rdf.getCheckedLanguage("owl"); 
    System.out.println("************************************************************"); 
    Map<String,String> m=rdf.unabbreviate; 
    Iterator iterator =m.keySet().iterator(); 
    while(iterator.hasNext())System.out.println(iterator.next()); 
    System.out.println("************************************************************"); 
    System.out.println(string); 

} 

回答

1

耶拿對此沒有任何具體的具體說明。命令行參數應該是各種參數的數組,但您只傳遞一個參數。也就是說,

String[] t={"-x f:/foaf.owl -out ttl"}; 

一個 String作爲一個構件的陣列。如果你要打電話rdfcat的主,你需要做的:

String[] t={"-x", "f:/foaf.owl", "-out", "ttl"}; 

也就是說,這似乎是一種奇怪的事情。你幾乎可以很容易地,但更靈活地將輸入加載到模型中,然後以任何你想要的格式寫出來。

+0

謝謝,johuna taylor,是的,這正是我需要做的,有一個來自曼徹斯特大學的網絡服務在這裏mowl-power.cs.man.ac.uk:8080/converter/,它與owlapi一起工作,我需要在java代碼中實現它,如果你有另一種方式來由jena轉換文件格式,它會更好 – user3310460

+0

是的,我發現它,OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC); model.read(「file:/// f:/foaf.owl」); \t \t \t \t FileOutputStream fo = new FileOutputStream(new File(「f:/file.owl」)); model.write(fo,「N-TRIPLE」); – user3310460

+0

@ user3310460你打算*寫出一個包含推論的模型嗎? Pellet Reasoner規範將包含推理。如果你只是想轉換格式,你可以這樣做:Model Model = ModelFactory.createDfaultModel();順便說一句,使用資源試用來讀取模型會很好,而RDFDataMgr提供了一種替代方法以Model#編寫,這將爲您提供一些語言的枚舉類型(這可以幫助避免拼寫錯誤,字符串比較等)。 –