RDF和RDFS有什么关系?

39

我一直在阅读有关语义Web技术,如RDF/RDFS和"本体论"的文章,但想知道它们之间的关系?目前这些术语似乎可以互换使用,或者我没有理解一个基本概念。


2
请参见以下链接中的回答:https://dev59.com/f3I-5IYBdhLWcg3wqqTh#16004706 - loopasam
我发现这篇文章非常有启发性。<br>(https://dev59.com/f3I-5IYBdhLWcg3wqqTh#1813585) - NixRam
6个回答

45

基本定义

  1. RDF是一个概念。
  2. RDF也是一个词汇表的名称。
  3. RDFS是另一个词汇表的名称。
  4. “本体论”只是“词汇表”的同义词。

解释

  1. RDF是一个概念

RDF是一种描述事物的概念或方法。 RDF的概念是使用一组三个术语来描述/定义任何事物,例如“Ana有苹果”、“苹果很好吃”,这两个字符串在概念上都是完全有效的RDF描述。无论您在哪里以及如何存储所述数据(文件、纸张、沙滩上的绘画或墙壁上的油画),最重要的是将数据描述为三元组(使用RDF概念)。 语义网络是使用此概念(RDF)构建的。

  1. RDF是一个词汇表的名称

注意:词汇表仅是存储在文件或其他位置的一组术语定义。这些术语旨在通常被重用来描述数据。因此,您拥有自己的数据和词汇表,现在可以开始使用词汇表中的术语向数据添加描述。

RDF是一个标准词汇表,提供一组术语。 您可以在此处查看RDF词汇表。

RDF词汇表提供的术语可帮助您进行一些基本的标准描述,例如:

假设您有以下数据:“Ana”和“Person”。因此,为了以标准语义网络方式描述您的“Ana”是一个“Person”,您必须在某个地方存储以下三元组:

    PREFIX rdf:<https://www.w3.org/1999/02/22-rdf-syntax-ns>
    <http://yourdomain.com/Ana> rdf:type <http://yourdomain.com/Person>

"rdf:type"是在RDF词汇表中定义的术语,每当您使用它时,您正在描述其前面(主体)的数据是放置在其后面(对象)的数据(类)的实例。

通常,RDF词汇表提供了用于创建类的实例基本描述的术语。

  1. RDFS是另一个词汇表的名称

RDFS是一种标准的词汇表,就像RDF一样。如果在RDF词汇表中有帮助您给出实例基本定义/描述的术语,在RDFS词汇表中,您可以使用术语来定义/描述类。例如,您有术语rdfs:subClassOf的定义。使用此术语,您可以描述一个类是另一个类的子类。

    PREFIX rdfs:<https://www.w3.org/2000/01/rdf-schema#>
    <http://yourdomain.com/Teacher> rdfs:subClassOf <http://yourdomain.com/Person>  

因此,RDF有用于创建实例的术语,而RDFS具有用于创建类的术语。通过同时使用两者,您可以开始对数据进行更详细的描述。如果您想要进行更复杂的描述,则可以使用OWL,它是另一组能够提供这种功能的术语。OWL使用RDF和RDFS术语定义。

注意:某些RDF术语使用RDFS术语定义,而某些RDFS术语则使用RDF术语定义。如果您想要检查词汇表之间的链接,可以查看链接。

  1. "ontology"只是术语"vocabulary"的同义词

"Ontology"只是"vocabulary"的另一个名称。这两个是相同的东西。您可以将本体论视为更复杂的词汇表,但这不是一条规则。 这是来自官方网站的说法

'“词汇表”和“本体论”之间没有明确的区分。'


1
有时我觉得本体论有时也被用作OWL的同义词。 - Hibou57
1
我认为声称“本体论和词汇表意味着相同的事情”是一种严重的过度简化;引用本评论末尾的资源进行解释:“本体论描述了领域内共同的概念(词汇表)和概念之间的关系(即,它代表了一片知识领域)”。请参阅Owen Conlan的课程幻灯片,特别是课程从元数据到链接数据中的“语义Web”和“本体论入门”部分。 - toraritte
最后一点,虽然来自官方来源,但我觉得没有意义。让我试着证明一下:根据“词汇”的定义,RDF和RDFS会给我们提供必要的单词或工具。但是句子或本体本身尚未形成。我的问题是,难道我们不需要明确使用词汇中定义的元素,例如类、属性和关系,才能实际构建实体之间的链接以获得结果本体吗? - aashima

19

RDF、RDFS和本体论不是可以互换的术语。 RDF(资源描述框架)是一个概念性数据模型,可以使用N3、Turtle、RDF/XML等各种格式呈现(序列化)。

RDFS(RDF Schema)是“表示网络上简单RDF词汇的通用语言” [1]

RDFS的元素可用于构建本体论。当然,如果您需要更多的本体论表达能力,并且需要编码一些无法使用RDFS元素完成的属性,则始终可以选择OWL选项。


13

RDF和RDFS不能互换使用。

RDF基于通过主语、谓语和宾语表达方式(即三元组)对资源(在本例中是Web)进行陈述。主语表示资源,谓语表示主语和宾语之间的关系。总的来说,RDF是一种概念数据建模方法。

RDFS提供了一种描述相关资源(RDF)及其之间关系的机制。这些属性的示例包括类、子类、范围和域。

因此,从本质上讲,RDFS是RDF的语义扩展。一个人可以有一个Animal和Dog的RDF实例,而RDFS可以指定Animal是一个类,而Dog是Animal的子类。


2
但尽管class是一个rdfs:class,但有一个rdf:type。这让我感觉像是RDF并没有被实现,而RDFS后来才实现了它,或者我漏掉了什么东西。 - Hibou57
2
@Hibou57 这对回答你的问题很有帮助:https://www.w3.org/TR/rdf-schema/#ch_classes => RDF 不知道类。它不要求 rdf:type 指向一个类,而只需要指向一个资源。rdf:type 必须指向一个类的要求只是由 RDF-S 规范制定的:“rdf:type 是 rdf:Property 的一个实例,用于说明一个资源是一个类的实例。”(https://www.w3.org/TR/rdf-schema/#ch_type) “[RDFSchema] 对类型的使用施加了额外的限制。”(https://www.w3.org/TR/1999/REC-rdf-syntax-19990222/#model) - Niklas Peter
1
@Hibou57 我也曾经遇到过关于“rdfs:”和“rdf”的混淆,后来我在RDF 1.1 Primer中找到了以下句子:“构造物具有两个不同的前缀(rdf:和rdfs:)这一事实是一个有点烦人的历史遗产,为了向后兼容而被保留。” - Chris

5
RDF定义了主语->谓语->宾语的抽象模型,并倡导使用非专有标准进行交换和描述。
具体实现方式由开发者自行选择;有许多序列化格式和写谓语的规范。后一类规范,即定义谓语集合的规范称为词汇表。其中之一是RDFS。还有许多其他词汇表:FOAF、OWL、SSN等。

2
RDF是一种建模数据的方式。在RDF中,您可以使用三元组来建模数据并创建图形。在关系型数据库中,您将数据建模为互相关联的表格。RDFS用于提供模式级信息,类似于关系数据库中表格的列字段。 您可以查看这个几乎相同的问题的答案以了解更多信息:“RDF和OWL之间有什么区别?” (链接:What is the difference between RDF and OWL?)

还有一个密切相关的问题在这里:https://dev59.com/imkw5IYBdhLWcg3w8fBJ#9549513 - William Greenly

1
本体论是一个通用术语,用于指定概念的规范。RDF和RDF是基于本体论的语言。 RDF是最小本体论表示,通过谓词表达两个个体之间的关系。 RDFS是RDF的扩展,可以实现包含关系。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接