更新时间:2022-10-04 08:47:30
本节书摘来自华章出版社《语义网基础教程(原书第3版)》一 书中的第2章,第2.3节,作者:(希)Grigoris Antoniou(荷)Paul Groth(荷)Frank van Harmelen(荷)Rinke Hoekstra ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
我们已经看到了一种RDF语法,即图形化的语法。但是这种语法既不是机器可解释的,也不是标准化的。本节介绍一种标准的机器可解释的语法,称为Turtle,另外还将简要介绍一些其他语法。
Turtle(Terse RDF Triple Language)是一种基于文本的RDF语法。Turtle文本文件使用的后缀名是“.ttl”。我们之前已经见到如何使用Turtle写一个声明。下面是一个例子:
URL包含在尖括号中。一个声明的主语、属性和宾语依次出现,由句号结尾。事实上,我们能够仅使用这种方法来编写整个RDF图。
假设我们想要向图中添加Baron Way Apartment有3个房间。可以将下面Turtle中的声明添加到图中。
上述例子相对而言不容易使用。为使其更加清晰,Turtle提供了一些构造子来使书写变得更加容易。
注意,使用限定名来指称资源时,资源两侧的尖括号被去掉了。其次,我们能够混用这些限定名与常规URL并匹配它们。
Turtle还允许在我们重复使用某些主语的时候不需要再重复书写。在上面的例子中,swp:BaronWayApartment被用作两个三元组的主语。这可以通过在一个声明的结尾处使用一个分号来使书写更加紧凑。例如:
如果主语和谓语都被重复使用,我们可以在声明的结尾处使用一个逗号。例如,如果希望扩展该例子,说明Baron Way Building不仅位于Amsterdam还位于Netherlands,可以在Turtle中这样写:
最后,Turtle允许我们简写常见的数据类型。例如,数字可以不使用引号来写。如果数字包含一个小数点(例如14.3),那么它们就被解释为小数。如果它们不包含一个小数点(例如1),那么它们就被解释成整型数。这更加简化了该例子:
在这个方法中,位于花括号中但是之前没有URL的声明不是一个特定图的一部分。它称为默认图。
除了Turtle之外,还存在其他一些可用于编写RDF的语法。其中有两个标准的语法:RDF/XML和RDFa。
这个标注将生成和之前Turtle表示的完全一样的RDF。因为RDF被编码在诸如span、paragraph和link之类的标签中,所以在显示HTML页面时不会被浏览器解析。和RDF/XML类似,命名空间使用xmlns声明来编码。一些情况下,必须使用方括号来告诉解析器我们正在使用前缀。主语通过about属性(attribute)来标识。属性通过rel或property属性(attribute)来标识。当一个声明的宾语是一个资源时使用rel,而当一个声明的宾语是文字时使用property。谓语和主语通过使用HTML层次结构来关联。
上述每种RDF语法适用于不同的场景。然而必须意识到尽管可能会使用不同的语法,但它们的底层数据模型和语义是相同的。迄今为止我们已经讨论了如何通过URL标识来编写事物的声明。但是这些声明的含义是什么?一个计算机应该如何解释这些生成的声明?这些问题将在下一节介绍RDF的模式语言时讨论。