使用Apache Jena从URL获取RDF

时间:2013-08-15 12:17:33

标签: java rdf jena

我有抓取程序从包含RDF数据的网站抓取网址。 我试着像Jena一样得到它

Model model = ModelFactory.createDefaultModel();
model.read(url);
model.write(System.out);

urlString,第一行执行,调试器停止第二行,然后返回第一行(因为循环)。 url是网页链接。 我也尝试获取页面的HTML代码,然后将该字符串传递给read函数,但它也不起作用。

我真的是RDF和Jena的新手,而且我的Java经验并不是很广泛,所以任何帮助都很好。

1 个答案:

答案 0 :(得分:1)

您从url阅读模型所获得的代码是正确的。例如,这是一个完整的示例,它从RDF / XML规范的section 2.13 Typed Node Elements中读取一个示例:

import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;

public class RetrieveRemoteRDF {
    public static void main(String[] args) {
        final String url = "http://www.w3.org/TR/REC-rdf-syntax/example14.nt";
        final Model model = ModelFactory.createDefaultModel();
        model.read(url);
        model.write(System.out);
    }
}

输出(在默认的RDF / XML序列化中)是:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:j.0="http://example.org/stuff/1.0/" > 
  <rdf:Description rdf:about="http://example.org/thing">
    <dc:title>A marvelous thing</dc:title>
    <rdf:type rdf:resource="http://example.org/stuff/1.0/Document"/>
  </rdf:Description>
</rdf:RDF>

如果您遇到问题,似乎必须归因于传递给url的{​​{1}}。