【问题标题】:How can I parse RDF data into model? (java, jena)如何将 RDF 数据解析为模型? (爪哇,耶拿)
【发布时间】:2017-05-15 16:21:32
【问题描述】:

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

我现在所做的事情是这样的:

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

rdfdata 是我收到的数据(字符串)。但我得到以下异常:

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

问题出在哪里,我该如何解决? 将数据读入模型是否正确,还是我必须先做一些事情? 对不起,我的英语不好。 :)

【问题讨论】:

    标签: xml parsing rdf jena


    【解决方案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-

    【讨论】:

      【解决方案2】:

      你的错误信息说:

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

      看着它,它似乎报告说无法打开名为 &lt;?xml version="1.0" encoding="UTF-8" ?&gt;... 的文件或 URI。这是有道理的,因为这不太可能是正确的文件名。

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

      (如果这个猜测是正确的,那么)故事的寓意:回想一下,在编写错误消息时,程序员通常至少尝试提供帮助,因此“这是什么胡言乱语^错误信息试图告诉我?'

      【讨论】:

      • 读取(字符串网址)。我看不出问题出在哪里,因为我给了它一个字符串。是的,它是一个 rdf/xml 文件。
      • 好的,我现在更改了我的代码,我首先将 url 内容保存在一个文件中,然后从中读取。谢谢!
      • 在查看Model.read(String,String) 的文档时,我的猜测似乎是错误的,第一个参数确实应该是 URL。换句话说,不,我现在看不出有什么明显的错误。嗯:无论程序员多么努力,这确实不是一个有用的错误消息...如果您更改了代码以使其工作,您可能想回答自己的问题。
      猜你喜欢
      • 1970-01-01
      • 2016-08-14
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 2023-04-03
      • 1970-01-01
      相关资源
      最近更新 更多