【问题标题】:How to obtain ALL namespaces used in Jena RDF Model如何获取 Jena RDF 模型中使用的所有命名空间
【发布时间】:2013-03-21 17:01:16
【问题描述】:

我正在使用 com.hp.hpl.jena.rdf.model.Model.listNameSpaces() 来获取 Jena RDF 模型中的命名空间。

但我注意到该模型可以包含具有 listNameSpaces 方法未列出的名称空间的语句对象。

例如,相机图(http://www-users.cs.york.ac.uk/~jc/teaching/arin/camera.owl.turtle)包含以下对象,但它们的命名空间没有出现在命名空间列表中:

http://www.dbpedia.org/resource/尼康 http://www.w3.org/2001/XMLSchema#十进制

有人知道为什么没有列出这两个 ns 吗?谢谢。

//压缩代码:

Model model = ModelFactory.createDefaultModel();
RDFReader reader = model.getReader("TURTLE");
InputStream in = FileManager.get().open("http://www-users.cs.york.ac.uk/~jc/teaching/arin/camera.owl.turtle");
reader.read(model, in, null);

NsIterator listNameSpaces = model.listNameSpaces();
while (listNameSpaces.hasNext())
{
  System.out.println("Namespace from iterator: " + listNameSpaces.next());
}

【问题讨论】:

    标签: namespaces rdf jena turtle-rdf


    【解决方案1】:

    API documentation for that method 说:

    返回的命名空间是 (a) 在模型中用作属性的每个 URI 和 (b) 作为 rdf:type 语句的对象出现的每个 URI 的命名空间。

    由于 dbpedia:Nikonxsd:decimal 分别用作 Literal 的对象和类型,因此该方法不返回命名空间。

    文档还声明:

    (你可能不想要这个方法;你更可能想要 Model 支持的 PrefixMapping 方法。)

    他们记录在案here

    【讨论】:

    • 谢谢@Ben。 model.getNsPrefixMap() 提供了 NS。
    猜你喜欢
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 2011-06-21
    • 2020-01-26
    • 2011-04-14
    相关资源
    最近更新 更多