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

时间:2018-04-16 15:01:48

标签: rdf turtle-rdf

有可能有一个带有两个空前缀的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#

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

例如:

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

会导致两个三元组,因为文件是按顺序解析的,因此在遇到三重定义的点处的前缀映射决定了它的解析方式。

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