首先,需要明确的是,当我们说“RDF”时,我们的意思是(在基础上)一组三元组:
<subject1> <predicate1> <object1>
<subject2> <predicate2> <object2>
...
这是一个简单的数据库,而不是“可执行文件”。
编写 RDF 的方法有很多种。RDF/XML 是最常见的,但在您学习时并不是最明显的。N-Triples 是最简单的,你只需写出三元组:
<subject1> <predicate1> <object1> .
<subject2> <predicate2> <object2> .
...
Turtle 就像 N-Triples,但有很多捷径。这很容易写。例如,如果我们有:
<person> <age> 21 .
<person> <friend> <bob> .
<person> <friend> <alice> .
...
在turtle中,我们可以通过编写来避免重复:
<person> <age> 21 ;
<friend> <bob> ,
<alice> .
(我已经在多行上写了这个,所以你可以看到它看起来像三重版本,但遗漏了部分)
您会发现大多数 RDF 库的海龟解析器。请参阅 Jena (java)、Redland (C)、RDFLib (python)、Trine (perl) 等。它们使用 turtle 并生成三元组,就像 RDF/XML 解析器和 RDFa 解析器一样。
一旦你加载了你的RDF,你就可以查询它、处理它,无论你对任何其他数据格式做什么。
RDFa 是一种奇怪的 RDF 格式,因为它嵌入在其他东西中(当您转换为三元组时,大部分都被丢弃了)。RDFa 的目的是让 RDF 更顺畅地集成到 Web 中。同时拥有我的个人信息的 RDF 版本和 HTML 版本是重复且繁琐的部署。使用 RDFa,我可以拥有一个同时服务于浏览器和 rdf 消费者的文档。