.ttl Turtle 文件可以有两个空前缀吗?

Can a .ttl Turtle file have two empty prefixes?

有没有可能有一个带有两个空前缀的 Turtle 文件?

假设我们有一个带有以下前缀声明的 .ttl 文件:

@prefix : <http://www.example.com/example#> .
@prefix ex2: <http://www.ex2.com/ex2#> .
@prefix ex3: <http://www.ex3.com/ex3#> .
@prefix : <http://www.empty.com/empty#> .
...

所有空前缀将在哪里解析:http://www.example.com/example#http://www.empty.com/empty#

specification 将其定义为一个映射 Map[prefix -> IRI] 所以,不,不能有两个相同的前缀(包括空前缀)。

您可以在一个文件中有多个定义,但一次只能有一个定义在范围内

例如:

@prefix : <http://example.com/one#> .
:s :p :o .
@prefix : <http://example.com/two#> .
:s :p :o .

会产生两个三元组,因为文件是按顺序解析的,所以遇到三元组定义时的前缀映射决定了它的解析方式。

虽然这是完全有效的输入,但您将很难找到一个允许您将其作为输出生成的库。实际上,最好避免在文件处理过程中重新定义前缀,因为这会降低文件的可读性并降低在文件中剪切和粘贴内容的能力。