介绍
Turtle句法
Turtle文档允许以紧凑的文本形式写下RDF图。它由一系列指令、三元组语句或空白行组成。
注释:在#之后给出,并继续到行的末尾。
简单的三元组是一个(主语、谓词、宾语)项的序列,由空格分隔,并在每个三元组之后由’.’结尾。
RDF术语有三种类型:RDF URI引用(简称URIs)、文字和空白节点。
2.1. RDF术语
2.1.1. URI引用
URI被写在“<”和“>”中,可以是绝对的RDF URI引用,也可以相对于当前base URI。
# this is not a complete turtle document
<http://example.org/path/>
<http://example.org/path/#fragment>
</path>
<#fragment>
<>
2.1.2. @prefix
URIs也可以通过使用@prefix指令来缩写,该指令允许为重复URIs的长前缀声明短前缀名称。这对于许多在附近的URIs命名空间中定义的RDF词汇表都是有用的,可用采用与XML命名空间机制类似的工作方式。
一旦定义了一个前缀,例如@prefix foo: <http://example.org/ns#>,在文档中稍后提及URI可以使用一个限定的名称来启动foo:代表更长的URI。例如,限定名称foo:bar是URI http://example.org/ns#bar的速写。
# this is a complete turtle document
@prefix foo: <http://example.org/ns#> .
@prefix : <http://other.example.org/ns#> .
foo:bar foo: : .
:bar : foo:bar .
2.1.3. 换行符
当文本不包含换行符时,可以使用双引号来编写文本,如”simple literal”。或者当文本可能包含换行符时,使用三双引号来编写文本,如”“”long literal”“”。
# this is not a complete turtle document
“a string”
“”“a string”“”
“”“a string
with newlines
“””
2.1.4. 语言后缀
文字可以包含一个语言后缀,或者是数据类型URI,但两者不能同时给出。语言通过简单附加“@+语言标记”来表示。数据类型URIs通过追加^ ^,然后遵循任何合法URI形式(完整或合格)以给出数据类型URI。
# this is not a complete turtle document
“chat”
“chat”@en
“chat”@fr
“foo”^^<http://example.org/my/datatype>
“”“10”“”^^xsd:decimal
2.1.5. 空白节点
空白节点被写为_:nodeID以从给定的nodeID中提供一个空节点。生成的空白节点也可以用[],这对于从谓词对象列表或集合的根中为每一对RDF三元组提供主语是有用的。
# this is not a complete turtle document
_:me
_:a1234
2.1.6. 转义字符
文字和URIs也可以包含转义字符、不可打印字符,并通过代码点编号对Unicode字符进行编码(尽管它们也可以直接给出,编码为UTF-8)。转义字符有:
\t (U+0009, tab)
\n (U+000A, 换行)
\r (U+000D, 回车)
\” (U+0022, 双引号 -只允许字符串内可用)
> (U+003E, 大于号 – 只允许URIs内可用)
\ (U+005C, 反斜线)
\uHHHH or \UHHHHHHHH 用于十六进制代码写入Unicode字符,其中H是十六进制数字。
2.2. URIs缩写
2.2.1. @base
可以使用@base指令在文档中更改当前base URI。它允许URIs的进一步缩写,但通常用于简化数据中的URIs,其中前缀指令用于描述数据的词汇表。
只要这个指令出现,它就定义所有相关URIs解析所针对的base URI。这包括URIs、限定名称、前缀指令以及稍后的基本指令。
# this is a complete turtle document
# In-scope base URI is the document URI at this point
<a1> <b1> <c1> .
@base <http://example.org/ns/</
Turtle语法介绍
最新推荐文章于 2024-06-30 17:59:31 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)