在Apache Jena中导入rdf / xml:小写首选异常

时间:2014-02-14 11:56:48

标签: java apache rdf jena

我正在尝试使用Apache Jena中的以下代码导入RDF / XML文件:

Path input = Paths.get("C:\Users\Admin\Documents");
Model model = ModelFactory.createDefaultModel() ; 
model.read(input+File.separator+"foaf.rdf", "RDF/XML") ;

正在导入的文件是here

运行测试代码时,会返回以下异常:

Exception in thread "main" org.apache.jena.riot.RiotException: <C:\Users\Admin\Documents\foaf.rdf> 
  Code: 11/LOWERCASE_PREFERRED in SCHEME: 
    lowercase is preferred in this component

该消息非常有用且不言自明! 但是,你有解决这个问题的方法吗?

2 个答案:

答案 0 :(得分:9)

问题在于它需要一个URI,而不是文件名。它将C:...视为(未知)URI方案'C'。

请尝试以下方法:

Path input = Paths.get("C:\Users\Admin\Documents", "foaf.rdf");
Model model = ModelFactory.createDefaultModel() ; 
model.read(input.toUri().toString(), "RDF/XML") ;

答案 1 :(得分:2)

我不知道apache jena是什么或者做什么但是你可以尝试小写“c:”但这可能不会起作用所以你可以试试

file:/c:/my/path