1.sparql中最除常见的标记符为:#, 他可以跟在一个URI结尾处,也可以是在一行的末尾处作为注释符(相当于c中的注释符 "//" );
2.一个简单的三元组
一个简单的三元组由<主-谓-宾>构成,主谓宾之间使用空格分开,且通常在结尾处以一个空格和一个 '.'符号结尾,如下:
<http://example.org/#spiderman> <http://www.perceive.net/schemas/relationship/enemyOf> <http://example.org/#green-goblin> . <http://example.org/#spiderman> <http://www.perceive.net/schemas/relationship/enemyOf> <http://example.org/#green-goblin> . <http://example.org/#spiderman> <http://xmlns.com/foaf/0.1/name> "Spiderman" .
第一段代码是一个三元组序列,第二段代码是2个三元组序列,两个三元组序列之间使用了空格+. 符号隔开。
3.三元组缩写
在多数情况下,我们经常会遇到两个三元组之间,主语和谓语相同的情况,这时我们可以使用标记符 ,和; 对三元组进行缩写。
分号符(;)常用语主语相同,其他不同的两个三元组情况下,例如:
<http://example.org/#spiderman> <http://www.perceive.net/schemas/relationship/enemyOf> <http://example.org/#green-goblin> ; <http://xmlns.com/foaf/0.1/name> "Spiderman" .
上段代码与下面的两个三元组情况是一样的
<http://example.org/#spiderman> <http://www.perceive.net/schemas/relationship/enemyOf> <http://example.org/#green-goblin> . <http://example.org/#spiderman> <http://xmlns.com/foaf/0.1/name> "Spiderman" .
IRIs通常是一个绝对或者相对的引用前缀名称(通常以'#'号符结尾,结尾后是一个谓语用词),它必须被'<>'符号给包含,例如:4.IRIs
<http://example.org/#green-goblin>
IRI<http://example.org/>可以有效的解决谓语相同情况下产生的歧义,例如 谓语是 “const”,它可以表示一个英文单词,也可以是c++里面的一个关键词,如果给它添加一个IRI可以解决这样的歧义,IRI可以是一个有效的网络地址,也可以是其它的路径或者资源。
IRI可以被直接写出来当然可以被定义为一个变量,关键词 '@prefix'或者'PREFIX'用于定义一个IRI,例如:
PREFIX temp:<http://example.org/#> . xxx temp:green-goblin xxxx
上段代码的三元组实际为:
<http://example.org/#green-goblin>
参考http://www.w3.org/TR/turtle/#language-features,如果有错,还望大家指正。