摘要

资源描述框架(RDF公司)是一个用于在Web中表示信息的通用语言。

本文档定义了RDF公司叫海龟允许RDF公司图完全写在一个紧凑和自然文本形式,带有常用用法模式和数据类型。海龟提供了与N个三元组[N-三重]格式和三重模式语法SPARQL公司 W3C公司建议。

本文件的状态

本节描述了本文档发布时的状态。其他文件可能取代本文件。当前列表W3C公司出版物和本技术报告的最新版本可在W3C公司技术报告索引http://www.w3.org/TR/。

本文档是RDF公司1.1文档套件。这个该文件定义了乌龟,TerseRDF公司三重语言,具体的语法RDF公司[RDF11-概念].

本文件由RDF公司工作组作为建议。如果您希望对本文件发表意见,请发送至public-rdf-comments@w3.org(订阅,档案).欢迎所有评论。

请参阅工作组的实施报告.

本文件已由W3C公司成员,由软件开发人员和其他W3C公司并由董事批准为W3C公司建议。这是一份稳定的文件,可以用作参考材料或从其他文件中引用文件。W3C公司在提出建议时,的作用是提请人们注意规范并促进其广泛部署。这增强了功能以及Web的互操作性。

本文件由一个在2004年2月5日W3C公司专利政策.W3C公司保持一个任何专利的公开清单披露与集团的可交付成果相关;该页面还包括披露专利的说明。对专利具有实际知识的个人个人认为包含基本索赔必须按照部分第6页W3C公司专利政策.

目录

1介绍

本节不规范。

本文件定义了海龟RDF公司三重语言,一种具体的语法RDF公司[RDF11-概念].

Turtle文档是一个RDF公司图表。以下海龟文档描述了绿妖精和蜘蛛侠之间的关系。

示例1
@底座<http://example.org/>。@前缀rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>。@前缀rdfs:<http://www.w3.org/2000/01/rdf-schema#>。@前缀foaf:<http://xmlns.com/foaf/0.1/>。@前缀rel:<http://www.perceive.net/schemas/relationship/>。<#green-goblin>rel:enemyOf<#spiderman>;a foaf:个人;#在漫威宇宙的背景下foaf:name“绿色地精”。<#蜘蛛侠>rel:enemyOf<#green-goblin>;a foaf:人;foaf:name“蜘蛛侠”,“ЧеЛовек-Паук”@ru。

这个例子介绍了海龟语言的许多特点:@基本IRI和相对IRI,@前缀和前缀名称,谓词列表由'分隔;',对象列表由'分隔,',信物,字面量.

海龟语法三元组SPARQL公司1.1查询语言[SPARQL11-QUERY系列]的语法三重块.这两种语法在可能的情况下共享产品名和终端名。

构造RDF公司Turtle文档中的图形定义于海龟语法正在分析.

2海龟语言

本节不规范。

Turtle文档允许写下RDF公司紧凑文本形式的图形RDF公司图表由以下部分组成三元组由主语、谓语和宾语组成。

可以在“#'它不是另一个词法标记的一部分,并继续到行的末尾。

2.1简单三元组

最简单的三重语句是一系列(主语、谓语、宾语)术语,用空格隔开,以'结尾.“在每个三人组之后。

示例2
<http://example.org/蜘蛛侠> <http://www.perceive.net/schemas/relationship/enemyOf> <http://example.org/绿色-小妖精>。

2.2谓词列表

同一个主语通常会被许多谓词引用。这个谓词ObjectList产品匹配一系列谓词和对象,用'分隔;',跟随主题。这表示了一系列RDF公司带有该主语的三元组,每个谓词和宾语分配给一个三元组。因此,“;'符号用于重复仅在谓词和宾语中变化的三元组的主语RDF公司条款。

这两个例子是写蜘蛛侠的三元组的等效方法。

示例3
<http://example.org/蜘蛛侠> <http://www.perceive.net/schemas/relationship/enemyOf> <http://example.org/绿色-小妖精>;<http://xmlns.com/foaf/0.1/name>“蜘蛛侠”。
示例4
<http://example.org/蜘蛛侠> <http://www.perceive.net/schemas/relationship/enemyOf> <http://example.org/绿色-小妖精>。<http://example.org/蜘蛛侠> <http://xmlns.com/foaf/0.1/name>“蜘蛛侠”。

2.3对象列表

与谓词一样,宾语经常用相同的主语和谓语重复。这个objectList生成匹配由“”分隔的一系列对象,'跟在谓词后面。这表示了一系列RDF公司具有相应主语和谓语的三元组,每个对象分配给一个三元组。因此,“,'符号用于重复只有宾语不同的三元组的主语和谓语RDF公司术语。

这两个例子是用两种语言书写蜘蛛侠名字的等效方法。

示例5
<http://example.org/蜘蛛侠> <http://xmlns.com/foaf/0.1/name>“蜘蛛侠”,“完成任务”@ru。
示例6
<http://example.org/蜘蛛侠> <http://xmlns.com/foaf/0.1/name>“蜘蛛侠”。<http://example.org/蜘蛛侠> <http://xmlns.com/foaf/0.1/name>“完成”。

有三种类型RDF公司期限定义于RDF公司概念:个人退休保险(国际化资源标识符),字面量空白节点。海龟提供了一个数字每种书写方式。

2.4个人退休保险

个人退休保险可以写为相对或绝对IRI或前缀名称。相对和绝对IRI包含在“<”和“>”中,可能包含数字转义序列(如下所述)。例如<http://example.org/绿色-小妖精>.

相对IRI类<#green-goblin>相对于当前基本IRI进行解析。可以使用“@底座'或'基础'指令。此操作的细节在中定义部分6.3 IRI参考

标记''在Turtle三元组的谓词位置代表IRIhttp://www.w3.org/1999/02/22-rdf-syntax-ns#类型.

A类前缀名称是前缀标签和本地部分,由冒号“:”分隔。通过连接与前缀和本地部分关联的IRI,前缀名称被转换为IRI。@前缀'或'前缀'指令将前缀标签与IRI关联。后续'@前缀'或'前缀'指令可以重新映射相同的前缀标签。

注释

Turtle语言最初只允许包含“@'字符,用于写入前缀和基指令。不区分大小写'前缀'和'基础'添加表单以使Turtle的语法与SPARQL公司.建议序列化RDF公司使用@前缀'和'@底座'表单截止日期RDF公司1.1海龟解析器被广泛部署。

要写入http://www.perceive.net/schemas/relationship/enemyOf使用前缀名称:

  1. 为词汇IRI定义前缀标签http://www.perceive.net/schemas/relationship/作为some前缀
  2. 然后写some前缀:enemyOf这相当于写作<http://www.perceive.net/schemas/relationship/enemyOf>

这可以使用前缀声明的原始Turtle语法编写:

例7
@前缀somePrefix:<http://www.perceive.net/schemas/relationship/>。<http://example.org/绿色-小妖精>somePrefix:enemyOf<http://example.org/蜘蛛侠>。

SPARQL公司前缀声明的语法:

例8
前缀some前缀:<http://www.perceive.net/schemas/relationship/><http://example.org/绿色-小妖精>somePrefix:enemyOf<http://example.org/蜘蛛侠>。
注释

前缀名称是XML QNames的超集。它们的不同之处在于,前缀名称的本地部分可能包括:

  • 前导数字,例如。支腿:3032571国际标准银行13:978013619701
  • 非前导冒号,例如。og:视频:高度
  • 保留字符转义序列,例如。wgs:纬度

以下Turtle文档包含用Turtle编写IRI的所有不同方法的示例。

示例9
#具有所有绝对IRI的三元组<http://one.example/subject1> <http://one.example/谓词1> <http://one.example/object1(http://one.example/object1)>。@底座<http://one.example(示例)/>。<subject2><predicate2><object2>。#相对IRI,例如。http://one.example/subject2基础<http://one.example(示例)/><subject2><predicate2><object2>。#相对IRI,例如。http://one.example/subject2@前缀p:<http://two.example(示例)/>。p: subject3p:谓词3p:对象3。#前缀名称,例如。http://two.example/subject3前缀p:<http://two.example(示例)/>p: subject3p:谓词3p:对象3。#前缀名称,例如。http://two.example/subject3@前缀p:<路径/>。#前缀p:现在代表http://one.example/path/p: subject4p:谓词4p:对象4。#前缀名称,例如。http://one.example/path/subject4@前缀:<http://another.example(其他示例)/> .    # 空前缀:subject5:谓词5:对象5.#前缀名称,例如。http://another.example/suubject5(其他示例/主题5):subject6 a:主题7.#与:subject6相同<http://www.w3.org/1999/02/22-rdf-syntax-ns#类型>:主题7。<http://伝伝。示例/?用户=;频道=R%26D>a:subject8.#多脚本主题IRI。
注释

@前缀'和'@底座'指令需要尾随'.“在IRI之后,相等”前缀'和'基础'不能有尾随'.‘在指令的IRI部分之后。

2.5RDF公司直接常量

直接常量用于标识字符串、数字、日期等值。

示例10
@前缀foaf:<http://xmlns.com/foaf/0.1/>。<http://example.org/绿色-小妖精>foaf:name“Green goblin”。<http://example.org/蜘蛛侠>foaf:name“蜘蛛侠”。

2.5.1引用文字

引用文字(语法制作RDF迭代器)词法形式后跟语言标记、数据类型IRI或两者都不跟。词汇形式的表示由一个初始分隔符组成,例如。"(U+0022号机组)、允许的字符序列或数字转义序列字符串转义序列,以及最后一个分隔符。相应的RDF公司词汇形式是处理任何转义序列后分隔符之间的字符。如果存在语言标签前面有一个'@'(U+0040号机组).如果没有语言标记,则可能有数据类型IRI,前接'^^'(U+005E(东经) U+005E(东经)). Turtle中的数据类型IRI可以使用绝对IRI,一个相对IRI,或前缀名称。如果没有数据类型IRI和语言标记,则数据类型为xsd:string.

'\'(U+005C型)不能出现在任何带引号的文字中,除非是转义序列的一部分。其他限制取决于分隔符:

  • 文字由分隔'(U+0027号机组),不能包含字符',低频(U+000安),或(U+000D号).
  • 文字由分隔",不能包含字符",低频,或.
  • 文字由分隔'''不能包含字符序列'''.
  • 文字由分隔"""不能包含字符序列""".
例11
@前缀rdfs:<http://www.w3.org/2000/01/rdf-schema#>。@前缀显示:<http://example.org/vocab/show/>。@前缀xsd:<http://www.w3.org/2001/XMLSchema(http://www.w3.org/2001/XMLSchema)#>。show:218 rdfs:label“That Seventies show”^^xsd:string。#带有XML架构字符串数据类型的文本节目:218 rdfs:label“The Seventies show”^^<http://www.w3.org/2001/XMLSchema#string> . # 同上show:218 rdfs:label“那场七十年代的秀”。#又是一样的show:218 show:localName“那场七十年代的演出”@en.#带有语言标记的文字show:218 show:localName“Cette Série des Années Soixante-dix”@fr.#由单引号分隔的文字show:218 show:localName“Cette Série des Années Septante”@fr-be.#带区域子标记的文字show:218 show:blurb“”这是一个多行文字,带有嵌入的新行和引号带多引号的文字(“”)和最多两个连续撇号(“”)。“”。

2.5.2数字

数字可以像其他具有词汇形式和数据类型的文字一样书写(例如。“-5.0”^^xsd:十进制). Turtle有书写整数值、任意精度十进制值和双精度浮点值的简写语法。

数据类型 缩写 词汇 描述
xsd:整数 -5 “-5”^^xsd:integer 整数值可以写为可选符号和一系列数字。整数匹配正则表达式“[+-]?[0-9]+".
xsd:十进制 -5.0 “-5.0”^^xsd:十进制 任意精度的小数可以写为可选符号、零位或多位数字、小数点和一位或多位数字。小数与正则表达式“[+-]?[0-9]*\。[0-9]+".
xsd:双精度 4.2第9版 “4.2E9”^^xsd:double 双精度浮点值可以写成可选的带符号尾数,尾数可以是可选的小数点,字母“e”或“e”,以及可选的有符号整数指数。指数与正则表达式匹配“[+-]?[0-9]+“以及这些正则表达式之一的尾数:”[+-]?[0-9]+\.[0-9]+", "[+-]?\。[0-9]+“或”[+-]?[0-9]".
示例12
@前缀:<http://example.org/elements网站> .                                                                              <http://en.wikipedia.org/wiki/Helium(氦)>                                                                                  :atomicNumber 2;#xsd:整数:原子质量4.002602;#xsd:十进制:比重1.663E-4.#xsd:双精度

2.5.3布尔值

布尔值可以写为“真的'或''(区分大小写)并表示RDF公司数据类型为的文字xsd:布尔值.

例13
@前缀:<http://example.org/stats>。<http://somecountry.example/census2007>:isLandlocked false。#xsd:布尔值

2.6RDF公司空白节点

RDF公司空白节点在海龟中表示为_:后面是一个空白节点标签,它是一系列名称字符。标签中的字符是基于PN_字符_基础,自由化如下:

一个新鲜的RDF公司空白节点被分配给文档中每个唯一的空白节点标签。重复使用相同的空白节点标签可以标识相同的RDF公司空白节点。

例14
@前缀foaf:<http://xmlns.com/foaf/0.1/>。_:alice foaf:知道:鲍勃。_鲍勃·福夫:知道:爱丽丝。

2.7海龟无标记空白节点的嵌套

海龟,新鲜RDF公司匹配生产时也会分配空白节点空白节点属性列表和终端ANON公司.这两者都可能出现在主题对象三元组的位置(参见海龟语法)。那个主题或对象是新鲜的RDF公司空白节点。此空白节点还用作通过匹配谓词对象列表生产嵌入到blankNodePropertyList中。这些三元组的生成如所述谓词列表.空白节点也分配给收藏如下所述。

例15
@前缀foaf:<http://xmlns.com/foaf/0.1/>。#有人认识另一个人,他叫“鲍勃”。[]foaf:知道[foaf:name“Bob”]。

海龟语法允许空白节点属性列表要嵌套的。在这种情况下,每个内部[建立一个新的主题空白节点,该节点在],并作为当前主题谓词对象列表.

使用谓词对象列表在中空白节点属性列表是表示节点的一系列属性的常用习惯用法。

缩写:

示例16
@前缀foaf:<http://xmlns.com/foaf/0.1/>。[foaf:name“Alice”]foaf:知道[foaf:名称“Bob”;foaf:知道[foaf:name“Eve”];foaf:mbox公司<bob@example.com> ] .

对应的简单三元组:

例17
_:a<http://xmlns.com/foaf/0.1/name>“爱丽丝”。_:a<http://xmlns.com/foaf/0.1/知道>_:b。_:b<http://xmlns.com/foaf/0.1/name>“鲍勃”。_:b<http://xmlns.com/foaf/0.1/知道>_:c。_:c<http://xmlns.com/foaf/0.1/name>“伊芙”。_:b<http://xmlns.com/foaf/0.1/mbox> <bob@example.com>。

2.8收藏

RDF公司提供了收藏[RDF11-MT型]列表的结构RDF公司节点。Collections的Turtle语法可能是一个空列表RDF公司随附条款().此集合表示rdf:第一个/rdf:休息对象序列的列表结构rdf:第一个声明是所附条款的顺序().

这个(…)语法必须出现在主题对象三元组的位置(参见海龟语法)。列表顶部的空白节点是包含三元组的主题或对象。

例18
@前缀:<http://example.org/foo>。#这个三元组的对象是RDF集合空白节点:subject:谓词(:a:b:c)。#空集合值-rdf:nil:subject:谓词2()。

三。示例

本节不规范。

这个例子是海龟翻译的示例7在中RDF公司/XML语法规范(示例1.ttl):

例19
@前缀rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>。@前缀dc:<http://purl.org/dc/elements/1.1/>。@前缀ex:<http://example.org/stuff/1.0/>。<http://www.w3.org/TR/rdf-syntax-grammar>dc:title“RDF/XML语法规范(修订版)”;例如:编辑器[例如:全名“Dave Beckett”;例如:主页<http://purl.org/net/dajobe/>] .

一个示例RDF公司两个文字的集合。

例20
前缀:<http://example.org/stuff/1.0/>:a:b(“苹果”“香蕉”)。

它是(示例2.ttl):

例21
@前缀:<http://example.org/stuff/1.0/>。@前缀rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>。:a:b[rdf:第一个“苹果”;rdf:休息[rdf:第一个“香蕉”;rdf:休息rdf:无]] .

包含文字对象的两个相同三元组的示例包含换行符,以普通和长文字形式书写。本例中的换行符是line FEED字符(U+000A)。(示例3.ttl):

示例22
@前缀:<http://example.org/stuff/1.0/>。:a:b“第一行\n第二行\n更多”。:a:b“”“第一行第二行更多“”。

如语法所示收集可以是主题或一个对象。如果集合有一个或多个对象,则此主题或对象将是第一个对象的新空白节点,或rdf:无如果集合为空。

例如,

例23
@前缀:<http://example.org/stuff/1.0/>。(1 2.0 3E1):p“w”。

是的语法糖(注意空白节点b0(b0),b1号机组b2级不要发生在RDF公司图表):

例24
@前缀rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>。_:b0-rdf:第一个1;rdf:休息_:b1。_:b1 rdf:第一个2.0;rdf:休息:b2。_:b2 rdf:第一个3E1;rdf:休息rdf:零。_:b0:p“w”。

RDF公司集合可以嵌套,并且可以涉及其他语法形式:

例25
前缀:<http://example.org/stuff/1.0/>(1[:p:q](2)):p2:q2。

是以下内容的语法糖:

例26
@前缀rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>。_:b0-rdf:第一个1;rdf:休息_:b1。_:b1 rdf:第一个_:b2。_:b2:p:q。_:b1 rdf:休息_:b3。_:b3 rdf:第一个_:b4。_:b4 rdf:第一个2;rdf:休息rdf:零。_:b3 rdf:rest rdf:nil。

4海龟与SPARQL公司

本节不规范。

这个SPARQL公司1.1查询语言F(SPARQL公司) [SPARQL11-QUERY系列]对其使用Turtle样式语法TriplesBlock生产.该作品与海龟语言的不同之处在于:

  1. SPARQL公司许可证RDF公司直接常量作为主题RDF公司三倍。
  2. SPARQL公司允许变量(?名称$名称)在三元组的任何部分。
  3. 海龟允许前缀和基声明三连击之外的任何地方。SPARQL公司,只允许在开场白(在SPARQL公司查询)。
  4. SPARQL公司使用不区分大小写的关键字,“”除外'. 海龟的@前缀@底座声明区分大小写SPARQL公司德维德前缀基础不区分大小写。
  5. '真的'和''在中不区分大小写SPARQL公司在Turtle中区分大小写。TrU(TrU)在Turtle中不是有效的布尔值。

有关更多信息,请参阅IRI的语法SPARQL公司语法的部分SPARQL公司查询文档[SPARQL11-QUERY系列].

5一致性

以及标记为非规范的章节、所有创作指南、图表、示例、,本规范中的注释是非规范性的。本规范中的其他内容是规范。

关键词必须,不能,必修的,应该,不应该,推荐,5月,可选本规范中的解释如[RFC2119协议].

本规范规定了以下方面的一致性标准:

A一致性海龟文档是符合中定义的语法和附加约束的Unicode字符串部分6 海龟语法,从乌龟博士生产。Turtle文档序列化RDF公司图表。

A一致性乌龟解析器是一个能够代表应用程序读取Turtle文档的系统。它使RDF公司数据集,如中所定义部分7 正在分析,可用于应用程序,通常通过某种形式的API。

识别海龟语言的IRI是:http://www.w3.org/ns/formats/Turtle网站

注释

本规范没有定义Turtle解析器如何处理不一致的输入文档。

5.1媒体类型和内容编码

海龟的媒介类型是文本/乌龟.Turtle内容的内容编码始终为UTF-8。Charset(字符集)需要mime类型上的参数,直到文本/媒体类型树允许在不使用charset参数。请参见部分B。 Internet媒体类型、文件扩展名和Macintosh文件类型对于媒体类型登记表。

6海龟语法

海龟文档是Unicode码[统一码]UTF-8编码的字符串。仅在U+0000到U+10FFFF(含)范围内的Unicode字符是允许。

6.1空白

空白(生产WS公司)用于分隔两个端子,否则这两个端子将被(错误地)识别为一个端子。下面用大写字母表示的规则名称表示空白的重要位置;这些构成了构建Turtle解析器的可能终端选择。

空白在生产中非常重要字符串.

6.2评论

Turtle中的评论采用“#”的形式,位于IRIREF公司字符串,并继续到行尾(用字符U+000D或U+000A标记)如果注释后没有行尾,则为文件尾标记。注释被视为空白。

6.3IRI参考

根据统一资源标识符(URI):通用语法[RFC3986协议]仅使用第5.2节中的基本算法。既不执行基于语法的规范化,也不执行基于方案的规范化(如RFC3986第6.2.2和6.2.3节所述)。根据的第6.5节,IRI引用中额外允许的字符的处理方式与URI引用中处理未保留字符的方式相同国际化资源标识符(IRI)[RFC3987号文件].

这个@底座基础指令定义了用于根据RFC3986第5.1.1节“嵌入内容的基本URI”解析相对IRI的基本IRI。第5.1.2节“封装实体的基本URI”定义了范围内基本IRI如何来自封装文档,例如带有xml:Base指令的SOAP信封或带有Content-Location标头的mime多部分文档。5.1.3中标识的“检索URI”,基本“来自检索URI的URI”,是检索特定Turtle文档的URL。如果以上都没有指定基本URI,则使用默认的基本URI(第5.1.4节,“默认基本URI”)。每个@底座基础指令相对于前一个指令设置一个新的In-Scope Base URI。

6.4转义序列

海龟文档中使用了三种逃逸形式:

可以使用各种转义序列的上下文
数字
逃逸
一串
逃逸
保留字符
逃逸
爱尔兰共和国s、 用作RDF公司条款或如中所示@前缀,前缀,@底座,或基础声明
本地名称
字符串
注释

%-编码序列位于IRI的字符范围和是明确允许以当地名称命名。这些字符以“%”的形式出现,后跟两个十六进制字符,表示相同的三个字符序列。这些序列是在处理期间解码。一个写为<http://a.example/%66oo-巴>在Turtle中指定IRIhttp://a.example/%66oo-巴而不是IRIhttp://a.example/foo-bar一个写为例如:%66oo巴带有前缀@前缀ex:<http://a.示例/>也指定IRIhttp://a.example/%66oo-巴.

6.5语法

这个电子束核燃料此处使用的是XML1.0中定义的[EBNF-注释]. 生产标签包括数字和期末“s”,例如[60年代],参考生产SPARQL公司1.1查询语言语法[SPARQL11-QUERY系列].

笔记:

  1. 单引号中的关键字('@底座', '@前缀', '', '真的', '')区分大小写。双引号中的关键字(“基础", "前缀“)是区分大小写的。
  2. 转义序列加州大学夏令营ECHAR公司区分大小写。
  3. 当标记输入并选择语法规则时,将选择最长的匹配。
  4. 当带有大写名称的规则用作终端时,Turtle语法为LL(1)和LALR(1)。
  5. 语法的入口点是乌龟博士.
  6. 在有符号数字中,符号和数字之间不允许有空格。
  7. 这个 [162年代] ANON公司 ::= '['WS公司*']' token允许在[]第条。为了清楚起见,语法中使用了单空格版本。
  8. 字符串'@前缀'和'@底座'匹配的模式语言标签,虽然两者都不是”前缀“也不是”基础“是注册语言子标记.本规范没有定义引用的文字是否后跟这些标记(例如。“A”@底座)是海龟语。
[1] 乌龟博士 ::= 陈述*
[2] 陈述 ::= 指令 | 三元组'.'
[3] 指令 ::= 前缀ID | 基础 | sparqlPrefix(sparql前缀) | sparqlBase数据库
[4] 前缀ID ::= '@前缀'PNAME_NS公司 IRIREF公司'.'
[5] 基础 ::= '@底座'IRIREF公司'.'
[5秒] sparqlBase数据库 ::= "基础" IRIREF公司
【6秒】 sparqlPrefix(sparql前缀) ::= "前缀" PNAME_NS公司 IRIREF公司
[6] 三元组 ::= 主题 谓词对象列表 | 空白节点属性列表 谓词对象列表?
[7] 谓词对象列表 ::= 动词 对象列表(';'(动词 对象列表)?)*
[8] 对象列表 ::= 对象(','对象)*
[9] 动词 ::= 谓语 |''
[10] 主题 ::= iri公司 | 空白节点 | 收集
[11] 谓语 ::= iri公司
[12] 对象 ::= iri公司 | 空白节点 | 收集 | 空白节点属性列表 | 字面意义的
[13] 字面意义的 ::= RDF迭代器 | 数字文字 | 布尔文字
[14] 空白节点属性列表 ::= '['谓词对象列表']'
[15] 收集 ::= '('对象*')'
[16] 数字文字 ::= 整数 | 十进制的 | 双倍
[128秒] RDF迭代器 ::= 字符串(语言标签 |'^^'iri公司)?
[133秒] 布尔文字 ::= '真的'|''
[17] 字符串 ::= 字符串_ ITERAL_QUOTE | 字符串_ ITERAL_SINGLE_QUOTE | 字符串_ ITERAL_LONG_SINGLE_QUOTE | STRING_LITERAL_LONG_报价
[135秒] iri公司 ::= IRIREF公司 | 前缀名称
[136秒] 前缀名称 ::= PNAME_LN(姓名) | PNAME_NS公司
[137秒] 空白节点 ::= 空白_代码_标签 | ANON公司

码头生产

[18] IRIREF公司 ::= '<' ([^#x00-#x20<>“{}|^`\]| 加州大学夏令营)*'>'/*#x00=空#01-#x1F=控制代码#x20=空格*/
[139秒] PNAME_NS公司 ::= PN_参考? '以下为:'
[140秒] PNAME_LN(姓名) ::= PNAME_NS公司 PN_本地
[141秒] 空白_代码_标签 ::= '_:'(PN_查尔斯_U |[0-9]) ((PN_字符 |'.')* PN_字符)?
[144秒] 语言标签 ::= '@' [字母]+('-' [a-zA-Z0-9型]+)*
[19] 整数 ::= [+-]? [0-9]+
[20] 十进制的 ::= [+-]? [0-9]*'.' [0-9]+
[21] 双倍 ::= [+-]? ([0-9]+'.' [0-9]* 指数 |'.' [0-9]+ 指数 |[0-9]+ 指数)
[154秒] 指数 ::= [电子工程师] [+-]? [0-9]+
[22] 字符串_ ITERAL_QUOTE ::= '"' ([^#x22#x5C#xA#xD]| ECHAR公司 | 加州大学夏令营)*'"'/*#x22=“#x5C=\#xA=新行#xD=回车*/
[23] 字符串_ ITERAL_SINGLE_QUOTE ::= "'”([^#x27#x5C#xA#xD]| ECHAR公司 | 加州大学夏令营)*"'"/*#x27='#x5C=\#xA=新行#xD=回车*/
[24] 字符串_ ITERAL_LONG_SINGLE_QUOTE ::= "'''" (("'"|"''")? ([^'\]| ECHAR公司 | 加州大学夏令营))*"'''"
[25] STRING_LITERAL_LONG_报价 ::= '"""' (('"'|'""')? ([^"\]| ECHAR公司 | 加州大学夏令营))*'"""'
[26] 加州大学夏令营 ::= '\u个'十六进制 十六进制 十六进制 十六进制 |'\U型'十六进制 十六进制 十六进制 十六进制 十六进制 十六进制 十六进制 十六进制
[159秒] ECHAR公司 ::= '\' [tbnrf“”(待定)\]
[161秒] WS公司 ::= #x20个 | #x9个 | #x天 | #xA公司/*#x20=空格#x9=字符制表#xD=回车#xA=换行*/
[162年代] ANON公司 ::= '['WS公司*']'
[163秒] PN_字符_基础 ::= [A-Z(A-Z)]|[a-z型]|[#x个00立方厘米-#x个00年6月]|[#x个00日8-#x个00层6]|[#x个00年8月-#x个02英尺]|[#x个0370-#x个037天]|[#x个037楼-#x个1层消防]|[#x个200摄氏度-#x个200天]|[#x个2070-#x个218楼]|[#x个2C00个-#x个2英尺]|[#x个3001-#x个D7FF型]|[#x个F900型-#x个FDCF公司]|[#x个FDF0型-#x个FFFD公司]|[#x个10000-#x个EFFF公司]
[164秒] PN_查尔斯_U ::= PN_字符_基础 |'_'
[166年代] PN_字符 ::= PN_查尔斯_U |'-'|[0-9]| #x个00亿B7 |[#x个0300-#x个036英尺]|[#x个203F年-#x个2040]
[167秒] PN_参考 ::= PN_字符_基础((PN_字符 |'.')* PN_字符)?
[168秒] PN_本地 ::= (PN_查尔斯_U |'以下为:'|[0-9]| PLX公司) ((PN_字符 |'.'|'以下为:'| PLX公司)*(PN_字符 |'以下为:'| PLX公司))?
[169年代] PLX公司 ::= 百分比 | PN_LOCAL_ESC系统
[170年代] 百分比 ::= '%'十六进制 十六进制
[171秒] 十六进制 ::= [0-9]|[A-F公司]|[a-f型]
[172秒] PN_LOCAL_ESC系统 ::= '\' ('_'|'~'|'.'|'-'|'!'|'$'|'&'|"'"|'('|')'|'*'|'+'|','|';'|'='|'/'|'?'|'#'|'@'|'%')

7正在分析

这个RDF公司1.1概念和抽象语法规范[RDF11-概念]定义三种类型的RDF公司期限以下为:个人退休保险,字面量空白节点.文字由词汇形式和一个可选的语言标签[业务连续性第47页]或数据类型IRI。一个额外的类型,前缀,在解析期间用于将字符串标识符映射到命名空间IRI。本节映射符合中语法的字符串部分6.5 语法通过将匹配结果和词法标记的字符串映射到RDF公司术语或其组成部分(例如语言标签、文字的词汇形式)。语法产品更改解析器状态并发出三元组。

7.1分析器状态

解析海龟需要五项状态:

7.2RDF公司学期建造师

此表将产品和词法标记映射到RDF公司条款或的组件RDF公司条款在中列出部分7 正在分析以下为:

生产类型程序
IRIREF公司爱尔兰共和国取“<”和“>”之间的字符数字转义序列未转义,以形成IRI的unicode字符串。根据执行相对IRI解析第6.3节.
PNAME_NS公司前缀用于前缀IDsparqlPrefix(sparql前缀)生产前缀与规则的第一个参数匹配的可能为空的unicode字符串是名称空间映射.
爱尔兰共和国用于前缀名称生产iri公司是中的值名称空间映射对应于规则的第一个参数。
PNAME_LN(姓名)爱尔兰共和国可能为空前缀由第一序列识别,PNAME_NS公司. The名称空间映射 必须有相应的命名空间。IRI的unicode字符串是通过取消转义保留字符在第二个参数中,PN_本地,并将其连接到命名空间.
字符串_ ITERAL_SINGLE_QUOTE词汇形式取最外面的“”之间的字符数字一串未转义序列,以形成词汇形式的unicode字符串。
字符串_ ITERAL_QUOTE词汇形式取最外层“”之间的字符数字一串未转义序列,以形成词汇形式的unicode字符串。
字符串_ ITERAL_LONG_SINGLE_QUOTE词汇形式取最外层“”之间的字符数字一串未转义序列,以形成词汇形式的unicode字符串。
STRING_LITERAL_LONG_报价词汇形式取最外层“”之间的字符数字一串未转义序列,以形成词汇形式的unicode字符串。
语言标签语言标签后面的字符@形成language标记的unicode字符串。
RDF迭代器字面意义的文字具有第一个规则参数的词汇形式,字符串。如果“^^”iri规则匹配,数据类型为iri公司文字没有语言标签。如果语言标签规则匹配,数据类型为rdf:langString语言字符串语言标签是语言标签。如果两者都不匹配,则数据类型为xsd:string文字没有语言标签。
整数字面意义的文本具有输入字符串的词法形式,数据类型为xsd:整数.
十进制的字面意义的文本具有输入字符串的词法形式,数据类型为xsd:十进制.
双倍字面意义的文本具有输入字符串的词法形式,数据类型为xsd:双精度.
布尔文字字面意义的文字具有真的,取决于与输入匹配的数据类型xsd:布尔值.
空白_代码_标签空白节点与第二个参数匹配的字符串,PN_本地,是中的键bnode标签。如果映射中没有对应的空白节点,则分配一个。
ANON公司空白节点将生成一个空白节点。
空白节点属性列表空白节点将生成一个空白节点。注意以下规则空白节点属性列表在下一节中。
收集空白节点对于非空列表,将生成一个空白节点。注意以下规则收集在下一节中。
爱尔兰共和国对于空列表,生成的IRI为rdf:无。请注意以下规则:收集在下一节中。

7.3RDF公司Triples施工人员

Turtle文档定义了RDF公司图表由一组RDF公司三倍的第条。这个主题生产设置cur主题.这个动词生产设置curPredicate(当前谓词).每个对象 N个在文档中生成RDF公司三倍的:cur主题 curPredicate(当前谓词) N个.

属性列表:

开始空白节点属性列表生产记录cur主题curPredicate(当前谓词)、和集cur主题写成小说空白节点 B类.完成空白节点属性列表生产恢复cur主题curPredicate(当前谓词).匹配生成的节点空白节点属性列表是空白节点B类.

收藏:

开始收集生产记录cur主题curPredicate(当前谓词).每个对象在中收集生产有一个cur主题以小说为背景空白节点 B类和一个curPredicate(当前谓词)设置为rdf:第一个.对于每个对象对象n个在第一个生成三元组之后:对象n-1个 rdf:休息 对象n个.完成收集生产增加了三倍curSubject rdf:rest rdf:无.和恢复cur主题curPredicate(当前谓词)匹配生成的节点收集是第一个空白节点B类对于非空列表和rdf:无用于空列表。

7.4解析示例

本节不规范。

以下信息丰富的示例显示了使用LALR(1)解析器解析此Turtle文档时执行的语义操作:

例27
@前缀ericFoaf:<http://www.w3.org/People/Eric/ericP-foaf.rdf#>。@前缀:<http://xmlns.com/foaf/0.1/>。ericFoaf:ericP:givenName“Eric”;:知道<http://norman.walsh.name/knows/who/dan-brickley> ,[:mbox<mailto:timbl@w3.org>]中,<http://getopenid.com/amyvdh>。

答:。在HTML文档中嵌入Turtle

本节不规范。

HTML格式[HTML5]脚本标签可用于在文档中嵌入数据块。通过这种方式,Turtle可以很容易地嵌入到HTML中。

例28
<script type=“text/curl”>@前缀dc:<http://purl.org/dc/terms/>。@前缀frbr:<http://purl.org/vocb/frbr/core#>。<http://books.example.com/works/45U8QJGZSQKDH8N>a frbr:工作;dc:creator“Wil Wheaton”@en;dc:title“只是一只极客”@en;frbr:实现<http://books.example.com/products/9780596007683.图书>,<http://books.example.com/products/9780596802189.EBOOK(电子图书)>。<http://books.example.com/products/9780596007683.图书>a frbr:表达式;dc:类型<http://books.example.com/product-types/BOOK>。<http://books.example.com/products/9780596802189.EBOOK(电子图书)>a frbr:表达式;dc:类型<http://books.example.com/product-types/EBOOK>。</script>

海龟内容应放在脚本标记为类型属性设置为文本/乌龟.<>符号不需要在脚本标记内部转义。嵌入式海龟的字符编码将匹配HTML文档编码。

A.1款XHTML(XHTML)

本节不规范。

与JavaScript一样,Turtle也是为HTML编写的(文本/html)在XHTML中使用时可能会中断(application/xhtml+xml). 该解决方案与JavaScript使用的解决方案相同。

例29
<script type=“text/curl”>#<![CDATA(CDATA)[@前缀frbr:<http://purl.org/vocb/frbr/core#>。<http://books.example.com/works/45U8QJGZSQKDH8N>a frbr:工作。# ]]></script>

当嵌入到XHTML中时,Turtle数据块必须包含在CDATA部分中。这些CDATA标记必须在Turtle注释中。如果字符序列“]]>“发生在文档中,必须使用字符串转义(\u005d\u0054\u003e). 这也将使海龟在作为两者的多语言文字文件中安全文本/htmlapplication/xhtml+xml。未能使用CDATA节或转义“]]>“可能会导致XML文档格式不正确。

A.2款用HTML解析海龟

本节不规范。

解析嵌入的Turtle之间没有语法或语法差异和普通海龟文档。从HTMLDOM解析的Turtle文档将是字符数据流,而不是UTF-8编码字节流。如果HTML文档已被解析为DOM,则无需解码。每个脚本数据块被认为是它自己的Turtle文档。@前缀@底座Turtle数据块中的声明的作用域是该数据块,不会影响其他数据块。HTML属性或XHTMLxml:lang语言属性对数据块的解析没有影响。封装HTML文档的基URI根据RFC3986第5.1.1节提供了“嵌入内容的基URI”。

B。Internet媒体类型、文件扩展名和Macintosh文件类型

联系人:
埃里克·普鲁德·霍姆沃
另请参见:
如何注册介质类型W3C公司规范
互联网媒体类型注册,使用一致性
TAG调查结果2002年6月3日(2002年9月4日修订)

Turtle的互联网媒体类型/MIME类型为“文本/乌龟”。

建议Turtle文件在所有平台上都具有扩展名“.ttl”(全部小写)。

建议将存储在Macintosh HFS文件系统上的Turtle文件指定为“TEXT”文件类型。

以下信息已经提交给IESG供IANA审查、批准和注册。

类型名称:
文本
子类型名称:
乌龟
所需参数:
可选参数:
字符集-传输非ASCII数据时需要此参数。如果存在字符集总是UTF-8型.
编码注意事项:
Turtle的语法是通过Unicode代码点表示的[统一码]. 编码始终为UTF-8[UTF-8型].
Unicode代码点也可以使用\uXXXX(U+0000到U+FFFF)或\UXXXXXXXX语法表示(对于U+10000以上),其中X是十六进制数字[0-9A-Fa-f]
安全注意事项:
Turtle是一种通用断言语言;应用程序可以评估给定的数据以推断更多断言或取消引用IRI,调用该IRI方案的安全考虑。特别要注意[RFC3023协议]HTTP IRI第10节。从不准确或恶意数据源获得的数据可能会导致不准确或误导性的结论,以及对非预期IRI的取消引用。必须注意使咨询资源中的信任与数据预期用途的敏感性相一致;可能的医疗推断可能需要不同于旅行计划推断的信任度。
Turtle用于表示任意应用数据;安全考虑因使用领域而异。适用于文本的安全工具和协议(例如PGP加密、MD5总和验证、密码保护压缩)也可以用于Turtle文档。必须实施反映嵌入信息敏感性的安全/隐私协议。
海龟可以表达呈现给用户的数据,例如:,RDF公司架构标签。从不受信任的Turtle文档中检索到的应用程序呈现字符串必须确保恶意字符串不会被用来误导读者。XML媒体类型注册中的安全注意事项([RFC3023协议]第10节)提供了关于任意数据和标记的表达的额外指导。
海龟使用IRI作为术语标识符。解释海龟表达的数据的应用程序应解决以下安全问题国际化资源标识符(IRI)[RFC3987号文件]第8节,以及统一资源标识符(URI):通用语法[RFC3986协议]第7节。
多个IRI可能具有相同的外观。不同脚本中的字符可能看起来相似(西里尔字母“о”可能与拉丁字母“o”相似)。后面跟着一个字符通过组合字符可以与另一个字符具有相同的视觉表示(拉丁语小写字母E后跟组合急性语调具有相同的视觉表现如拉丁文小写字母E和ACUTE)。任何在Turtle中编写或解释数据的人或应用程序都必须注意使用与预期语义匹配的IRI,并避免使用看起来相似的IRI。可以找到有关相似字符匹配的更多信息在里面Unicode安全注意事项[安全单向代码]和国际化资源标识符(IRI)[RFC3987号文件]第8节。
互操作性注意事项:
没有已知的互操作性问题。
发布规范:
本规范。
使用此媒体类型的应用程序:
已知没有广泛部署的应用程序使用此媒体类型。它可能被一些使用其数据的web服务和客户端使用。
其他信息:
幻数:
Turtle文档的开头附近可能有字符串“@前缀”或“@base”(区分大小写)或字符串“prefix”或“base”(不区分大小写。
文件扩展名:
“.ttl”
基本URI:
Turtle“@base<IRIref>”或“base<IRIref>”术语可以更改文档中稍后顺序使用的查询语言中相对IRIref的当前基本URI。
Macintosh文件类型代码:
“文本”
联系人和电子邮件地址以获取更多信息:
埃里克·普鲁德·霍姆沃<eric@w3.org>
预期用途:
通用
使用限制:
作者/更改控制器:
海龟规格是RDF公司工作组。这个W3C公司保留对本规范的变更控制。

C、。鸣谢

论文中描述了这项工作的新语法RDF公司其中讨论了其他RDF公司句法与背景海龟(提交给WWW2004,简称N三元组Plus(加)那里)。

这项工作是在欧洲语义网高级开发(SWAD-Europe)由欧盟IST-7计划IST-2001-34732资助的项目(2002-2004年)以及在学习与研究技术研究所布里斯托尔大学,英国(2002年至2005年9月)。

格雷格对这个版本做出了宝贵的贡献Kellogg、Andy Seaborn、Sandro Hawke和RDF公司工作组。

通过更广泛的社区的审查过程,该文件得到了改进。

D。更改日志

D.1款自以下日期以来的更改一月2014年建议

D.2款更改自二月2013年候选人推荐一月2014年建议

D.3款更改自2011年8月第一份公开工作草案候选人推荐

D.4款更改自2008年1月团队提交第一份公开工作草案

另请参见预(pre)-W3C公司提交更改日志.

E.公司。工具书类

E.1类规范性引用文件

【BCP47】
A.菲利普斯;M.戴维斯。用于识别语言的标签2009年9月。IETF最佳当前实践。网址:http://tools.ietf.org/html/bcp47
[EBNF-注释]
蒂姆·布雷;让·保利;C.M.Sperberg McQueen;伊芙·马勒;弗朗索瓦·耶尔戈。EBNF符号2008年11月26日。W3C建议。网址:http://www.w3.org/TR/REC xml/#sec-符号
[RDF11-概念]
理查德·基加尼亚克(Richard Cyganiak)、大卫·伍德(David Wood)、马库斯·兰塔勒(Markus Lanthaler)。RDF 1.1概念和抽象语法。W3C建议书,2014年2月25日。网址:http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/。最新版本可在http://www.w3.org/TR/rdf11-概念/
[RFC2119]
S.布拉德纳。RFC中用于指示需求级别的关键词。1997年3月。互联网RFC 2119。网址:http://www.ietf.org/rfc/rfc2119.txt
[RFC3023]
Murata先生;圣洛朗教堂;D.科恩。XML媒体类型(RFC 3023)2001年1月。无线电频率控制。网址:http://www.ietf.org/rfc/rfc3023.txt网站
[RFC3986]
T.Berners-Lee;R.菲尔丁;L.Masinter。统一资源标识符(URI):通用语法(RFC 3986)2005年1月。无线电频率控制。网址:http://www.ietf.org/rfc/rfc3986.txt
[RFC3987]
杜尔斯先生;M.Suignard。国际化资源标识符(IRI)2005年1月。无线电频率控制。网址:http://www.ietf.org/rfc/rfc3987.txt
[联合编码]
Unicode标准。网址:http://www.unicode.org/versions/latest/
[UTF-8]
F.耶尔戈。UTF-8,ISO 10646的转换格式IETF RFC 3629。2003年11月。网址:http://www.ietf.org/rfc/rfc3629.txt

E.2类参考资料

[百万分之五]
罗宾·伯洪(Robin Berjon);史蒂夫·福克纳;特拉维斯·利希德(Travis Leithead);埃里卡·多伊尔·纳瓦拉;特蕾莎·奥康纳;西尔维娅·菲佛。HTML52014年2月4日。W3C候选人推荐。网址:http://www.w3.org/TR/html5/
[N-三重]
安迪·西伯恩(Andy Seabourne),加文·卡托尔斯(Gavin Carothers)。RDF 1.1 N三元组W3C建议书,2014年2月25日。网址:http://www.w3.org/TR/2014/REC-n-triples-20140225/。最新版本可在http://www.w3.org/TR/n-triples网站/
[RDF11-MT]
Patrick J.Hayes,Peter F.Patel-Schneider。RDF 1.1语义。W3C建议书,2014年2月25日。网址:http://www.w3.org/TR/2014/REC-rdf11-mt-20140225/。最新版本可在http://www.w3.org/TR/rdf11-mt/
[SPARQL11-QUERY]
史蒂文·哈里斯;Andy Seaborne。SPARQL 1.1查询语言。2013年3月21日。W3C建议。网址:http://www.w3.org/TR/sparql11-query网站/
[单码安全]
马克·戴维斯;米歇尔·希格纳德(Michel Suignard)。Unicode安全注意事项。网址:http://www.unicode.org/reports/tr36/