【问题标题】:Jena RDF resource URI with fragment带有片段的 Jena RDF 资源 URI
【发布时间】:2013-02-25 15:01:17
【问题描述】:

在将 RDF-XML 读入 Jena 模型时遇到问题。我用

FileManager fileManager = FileManager.get();
Model model = fileManager.loadModel(url);

资源 URI,如

http://kulturarvsdata.se/resurser/aukt/geo/county#01

结果像

http://kulturarvsdata.se/resurser/aukt/geo/01

在 Jena 模型中的资源中,即 URI 片段部分被剥离。

我已尝试向 Jena 提供基本 URI:

Model model = fileManager.loadModel(url, "http://kulturarvsdata.se/resurser/aukt/geo/county#", "RDF/XML");

但这没什么区别。

我是不是误解了什么,或者有没有办法说服 Jena 保留 URI 片段?

【问题讨论】:

    标签: rdf jena


    【解决方案1】:

    我认为你的问题是基本 URI 不像turtle 和 SPARQL 中的前缀那样工作。

    http://kulturarvsdata.se/resurser/aukt/geo/county 开始:

    <rdf:RDF xml:base="http://kulturarvsdata.se/resurser/aukt/geo/county#">
        ...
    

    然后你就有了资源:

       <County rdf:about="01">...
    

    rdf:about URI 是相对于提供的基础 http://kulturarvsdata.se/resurser/aukt/geo/county# 解析的。请注意,我说的是“已解决”而不是“连接”,这是前缀的作用。相对于基数解析01 得到http://kulturarvsdata.se/resurser/aukt/geo/01

    base 末尾的片段 (#) 在实践中没有任何作用。您需要做的是将您的 abouts 替换为:

    <County rdf:about="#01">...
    

    (本质上你不能使用文档库来使所有链接都成为内部链接。内部链接必须使用片段)

    【讨论】:

    • 谢谢!这很有意义。我会将其传递给管理数据集的人员。
    • 小更新,我下载了资源并玩了一下,该建议适用于使用 rdf:about 的资源。有趣的是,那些使用 rdf:ID 的人需要原始设置,片段标记在 xml:base 中。我认为规范中有一些东西可以解释为什么......
    • 哦,是的,rdf:ID 可以工作(见stackoverflow.com/questions/7118326/…)。但是,您不需要 base 中的片段。
    • 哦,好吧,我学到了一些新东西!首先,我对 rdf:ID 的语义有一个完全错误的印象。
    猜你喜欢
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 2016-12-21
    相关资源
    最近更新 更多