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。基本声明将用于将其解析为绝对IRIhttp://example.org/base/name
:phone
不是相对的IRI,而是带有前缀的名称(前缀为空)。(空)前缀声明将用于将其解析为绝对IRIhttp://example.org/prefix/phone
区分IRI和Turtle中带前缀的名称的简单方法:前者有
括号。从您的回答中,我知道在语法上有差异,但我一直在问自己,我应该使用哪一个,为什么它们都存在?@hoijui一个原因是,基本URI提供了一种机制来使用数据中的相对路径,然后使用外部基本URI(而不是文件中声明的任何内容)来解析它们。这对于在多个位置托管相同的数据非常有用。因此@base
更可取,因为它允许更大的灵活性,并且没有负面影响?