【问题标题】:Turtle difference between @base and empty prefix@base 和空前缀之间的乌龟区别
【发布时间】:2015-12-08 01:59:57
【问题描述】:

RDF-Turtle 中,使用@base 前缀和空前缀(仅使用:)有什么区别?

【问题讨论】:

    标签: rdf turtle-rdf


    【解决方案1】:

    @base 不是前缀声明,而是...嗯,基本声明。它声明了文档的基本位置,所有相对 IRI 都根据该位置进行解析。 @prefix : 是一个前缀声明(在这种情况下为默认或空前缀),所有带有空前缀的 前缀名称 都会根据该声明进行解析。

    尽管它们都是写下 IRI 的两种方式,但相对 IRI 与前缀名称不同。它们遵循不同的语法规则。

    例如:

    @base <http://example.org/base/> 
    @prefix : <http://example.org/prefix/> 
    
    <name> rdf:type rdf:Property .
    :phone rdf:type rdf:Property .
    

    在此示例中,name 是一个相对 IRI。基本声明将用于将其解析为绝对 IRI http://example.org/base/name

    :phone 不是一个相对的 IRI,而是一个前缀名称(带有一个空前缀)。 (空)前缀声明将用于将其解析为绝对 IRI http://example.org/prefix/phone

    在 Turtle 中区分 IRI 和前缀名称的简单方法:前者有 &lt;&gt; 括号。

    【讨论】:

    • 从你的回答我看出,语法上是有区别的,但我一直在问自己,我应该使用哪一个,为什么它们都存在?
    • @hoijui 一个原因是基础 URI 提供了一种在数据中使用相对路径的机制,然后使用 external 基础 URI(而不是文件中声明的任何内容) ) 来解决它们。这对于在多个位置托管相同数据等事情很有用。
    • 所以@base 更可取,因为它具有更大的灵活性,并且没有缺点?
    猜你喜欢
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 2014-04-19
    • 2014-10-16
    • 1970-01-01
    相关资源
    最近更新 更多