1

我刚刚被介绍到语义网和它的功能系列,但我很难理解其中的一些,我希望有人可以向我解释。

据我了解,RDF 可以用多种语法编写。RDF/XML、Turtle 等。

现在,我了解了 XML。它是如何呈现的以及如何解析它。但是,有些人使用海龟语法编写,但他们如何解析这些信息?我似乎找不到任何语言的单一库来“提取”以乌龟语法编写的信息为另一种形式。N3也是如此。如何使用?执行还是其他?

我似乎能够理解RDFa。这是一种将 RDF 实现到 XHTML 中的方法。对我来说,这是将 RDF 实现为“某物”的一种方式。但是我怎么能把它和乌龟、N3 或类似的东西比较呢?

提前致谢。

4

2 回答 2

6

首先,需要明确的是,当我们说“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 消费者的文档。

于 2010-06-14T14:54:26.923 回答
0

作为编程技能有限的人,我发现 PHP 的ARC2 库使 RDF 非常容易处理。网站上有很好的文档和很好的示例可供入门。它包括所有常见格式的解析器,包括turtle,如果您不喜欢它,它甚至会进行格式检测并选择正确的解析器。

在解析 RDF 时,ARC 会生成两种不同类型的关联数组,它们非常简单。这些结构的描述可以在这里找到。

我从没想过我会这么说,但 PHP + ARC 实际上让 RDF 的工作变得...有趣。

于 2010-06-15T04:33:26.397 回答