2015-04-24 51 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#编写,这将为您提供一些语言的枚举类型(这可以帮助避免拼写错误,字符串比较等)。 –