1、RDF/XML
RDF图有节点和有标签的有向边,边连接节点对,这被表示为一组RDF三元组,其中每个三元组包含一个subject nodes目标节点、 predicate谓词和object nodes对象节点。
节点是RDF URI references,RDF literals,blank nodes
谓词是RDF URI references,可以解释为两个节点之间的关系,也可以解释为为某个subject节点定义属性值(object节点)
节点和谓词必须用XML术语表示——元素名称、属性名称、元素内容和属性值。使用XML命名空间中定义的XML QNames表示RDF URI references。
所有QNames都有一个由URI reference和简短本地名称local name组成的namespace name。此外QNames可以有一个短前缀;也可以使用默认的名称空间声明来声明,而没有前缀(但是仍然有一个名称空间名称)。local name 位于namespace name (URI reference)之后。
节点表示椭圆形,并包含RDF URI reference,谓词标记为RDF URI reference,纯文字节点表示为矩形。空白节点的node元素可以采用ex:homePage和ex:fullName
2、RDF/XML语法规范
rdf:Description:
描述节点元素
ex:editor ex:homePage :
属性元素,”ex”是一个命名空间前缀
rdf:about :
一个属性,指定并添加描述的资源的统一资源标识符(URI)、
rdf:resource
属性,来缩短空的节点元素形式。“rdf:resource”属性的值是客体节点的RDF URI引用。
Languages: xml:lang
xml:lang属性,可以在RDF/XML表示中标识内容的语言,从而更好地处理多语言信息
XML Literals: rdf:parseType="Literal"
作为property element不是property attribute,使用rdf:parseType="Literal"表示
类型化字面量Typed Literals: rdf:datatype
通过使用rdf:datatype属性,允许在RDF中指定字面量的数据类型,将字面量与特定的数据类型关联起来,例如整数、浮点数、日期等,以便更准确地描述字面量的含义和语义。
标识空白节点Identifying Blank Nodes: rdf:nodeID
可以使用rdf:nodeID="blank node identifier"来替换rdf:about="RDF URI reference"或rdf:resource="RDF URI reference"
省略空白节点Omitting Blank Nodes: rdf:parseType="Resource"
让属性元素变成一个“属性-节点”元素,它本身可以包含其他的属性元素和属性属性。但是在“属性-节点”元素上不允许使用Property attributes和rdf:nodeID属性
Typed Node Elements
rdf:type谓词,称为类型化节点元素。通常与RDF词汇表中的内置类一起使用:rdf:Seq, rdf:Bag, rdf:Alt, rdf:Statement, rdf:Property and rdf:List.
3、RDF/Turtle
Turtle文档是RDF图的文本表示
(主要与xml对比)
包括三种类型的RDF Term:IRIs,literals,blank nodes
3.1 IRIs
1、IRIs的表示:用尖括号“<>”括起来,并且可以包含数字转义序列。例如:<http://example.org/#green-goblin>。其中,absolute IRIs是完整的URI,而relative IRIs会相对于当前基本IRI进行解析。
2、relative IRIs的解析:(例如:<#green-goblin>)会相对于当前基本IRI进行解析。可以使用'@base'或'BASE'指令来定义新的基本IRI。
3、'a'标记的含义:在Turtle三元组中,谓词位置上的标记'a'表示IRI http://www.w3.org/1999/02/22-rdf-syntax-ns#type。这个标记通常用来表示资源的类型。
4、前缀名称的表示和转换为IRI:前缀名称由前缀标签和本地部分组成,中间用冒号":"分隔。使用'@prefix'或'PREFIX'指令可以将前缀标签与IRI关联起来。后续的'@prefix'或'PREFIX'指令可以重新映射相同的前缀标签。
5、添加了不区分大小写的'PREFIX'和'BASE'形式,以使Turtle的语法与SPARQL的语法保持一致
3.2 RDF Literals
字面值用于标识字符串、数字、日期等值
Quoted Literals(带引号的字面量)
1、Quoted Literals的结构:
Quoted Literals的结构由一个初始分隔符开始,例如"(U+0022),然后是一系列允许的字符、数字转义序列或字符串转义序列,最后是一个结束分隔符。对应的RDF词法形式是分隔符之间的字符,经过处理任何转义序列后得到的结果。
2、语言标签和数据类型IRI:
如果存在语言标签,它会跟在'@' (U+0040)之后。如果没有语言标签,可能会有一个数据类型IRI,该IRI以 '^^' (U+005E U+005E)开始。如果没有数据类型IRI和语言标签,则默认的数据类型是xsd:string。
3、限制和转义字符:
转义字符'\' (U+005C) 不能出现在任何带引号的字面量中,除非它是转义序列的一部分。
用 ' 分隔的字面量不能包含字符 '
用 " 分隔的字面量不能包含字符 "
用 ''' 分隔的字面量不能包含字符 ''' 的序列。
用 """ 分隔的字面值不能包含字符 """ 序列
4、Numbers
Turtle提供了一种简写语法来表示整数值、任意精度的十进制值和双精度浮点数值。
5、booleans
可以写成true或false
RDF Blank Nodes
表示为_: 后面跟着一个空白节点标签
参考RDF官方语法规则文献整理