Rdf @base和空前缀之间的差异

Rdf @base和空前缀之间的差异,rdf,turtle-rdf,Rdf,Turtle Rdf,在中,使用@base前缀和空前缀(仅使用:)之间的区别是什么?@base不是前缀声明,而是。。。嗯,一个基本声明。它声明文档的基本位置,所有相关IRI都将根据该位置进行解析@prefix:是一种前缀声明(在本例中为默认前缀或空前缀),所有带有空前缀的前缀名称都将根据该声明进行解析 尽管它们都是写IRI的方法,但相对IRI与前缀名不是一回事。它们遵循不同的句法规则 例如: @base <http://example.org/base/> @prefix : <http://ex

在中,使用
@base
前缀和空前缀(仅使用
)之间的区别是什么?

@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 .
@base
@前缀:
rdf:类型rdf:属性。
:phone rdf:type rdf:Property。
在本例中,
name
是一个相对的IRI。基本声明将用于将其解析为绝对IRI
http://example.org/base/name

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


区分IRI和Turtle中带前缀的名称的简单方法:前者有
括号。

从您的回答中,我知道在语法上有差异,但我一直在问自己,我应该使用哪一个,为什么它们都存在?@hoijui一个原因是,基本URI提供了一种机制来使用数据中的相对路径,然后使用外部基本URI(而不是文件中声明的任何内容)来解析它们。这对于在多个位置托管相同的数据非常有用。因此
@base
更可取,因为它允许更大的灵活性,并且没有负面影响?