【发布时间】:2015-12-08 01:59:57
【问题描述】:
在RDF-Turtle 中,使用@base 前缀和空前缀(仅使用:)有什么区别?
【问题讨论】:
标签: rdf turtle-rdf
在RDF-Turtle 中,使用@base 前缀和空前缀(仅使用:)有什么区别?
【问题讨论】:
标签: rdf turtle-rdf
@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 和前缀名称的简单方法:前者有 <> 括号。
【讨论】:
@base 更可取,因为它具有更大的灵活性,并且没有缺点?