如何将RDF数据解析到模型中? (java,jena)

时间:2017-05-15 16:21:32

标签: xml parsing rdf jena

我正在尝试解析RDF数据并将其加载到模型实例。但是,我不想从文件中读取数据,而是通过http get通过URI获取数据。

我现在所做的事情是:

    Model model = ModelFactory.createDefaultModel();
    model.read(rdfdata, null);
    model.write(System.out);

rdfdata是我收到的数据(String)。但我得到以下例外:

Exception in thread "main" org.apache.jena.riot.RiotNotFoundException: Not found: <?xml version="1.0" encoding="UTF-8" ?> [...] 

问题在哪里,我该如何解决? 将数据读入模型是否正确或者之前我必须做些什么? 对不起,我的英语不好。 :)

2 个答案:

答案 0 :(得分:1)

model.read()方法直接获取URL。而不是将数据读入字符串只需将URL直接传递给它。第二个参数要么传递null,要么传递“RDF / XML”。

请查看此处的文档。 https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/Model.html#read-java.lang.String-java.lang.String-

答案 1 :(得分:0)

您的错误消息显示:

Not found: <?xml version="1.0" encoding="UTF-8" ?> [...]

盯着它,出现,它报告名称为<?xml version="1.0" encoding="UTF-8" ?>...的文件或URI无法打开。这是有道理的,因为它不太可能是正确的文件名。

检查model.read()的文档,特别是检查它的第一个参数是什么。还要检查rdfdata是什么:它是文件路径还是URI? (它看起来像是RDF / XML文件的内容)。

(如果这个猜测是对的,那么)故事的道德:回想一下,在编写错误信息时,程序员通常至少尝试有所帮助,因此'这是多么的胡言乱语^试图告诉我的错误信息?'