什么是RDF三联?

时间:2008-11-07 19:04:14

标签: data-structures rdf xml-namespaces n-triples

用外行人的话说,什么是RDF三联?

14 个答案:

答案 0 :(得分:59)

我认为这个问题需要分为两部分 - 什么是三元组,什么使“RDF三元组”如此特别?

首先,正如这里的大多数其他评论者已经指出的那样,三元组是“主语/谓词/对象”形式的语句 - 即将一个对象(主语)链接到另一个对象(对象)或语句的语句字面意思,通过谓词。我们都熟悉三元组:三元组是二元关系的最小不可约表示。用简单的英语:电子表格是三元组的集合,例如,如果电子表格中的列标题为“Paul”,而行的标题为“has Sister”,则单元格中的值为“Lisa”。在这里你有三个:保罗(主题)有姐妹(谓语)丽莎(文字/对象)。

RDF三元组的特殊之处在于三元组的每个部分都有一个与之关联的URI,因此日常声明“Mike Smith知道John Doe”可能在RDF中表示为:

uri://people#MikeSmith12 http://xmlns.com/foaf/0.1/knows uri://people#JohnDoe45

电子表格的类比是,通过为URI的每个部分提供唯一的地址,您可以为电子表格中的单元格提供整个地址空间....因此您原则上可以粘贴每个单元格(如果以RDF三元组表示) )将电子表格放入不同服务器上的不同文档中,并通过单个查询重新构建电子表格。

编辑: This section官方文档解决了原始问题。

答案 1 :(得分:36)

RDF Triple是一个将一个对象与另一个对象相关联的语句。例如:

"gcc" "Compiles" "c" .
"gcc" "compiles" "Java" . 
"gcc" "compiles" "fortran" .
"gcc" "has a website at" <http://gcc.gnu.org/> .
"gcc" "has a mailing list at" <mailto:gcc-help@gcc.gnu.org> .
"c" "is a" "programming language" .
"c" "is documented in" <http://www.amazon.com/Programming-Language-Prentice-Hall-Software/dp/0131103628/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1226085111&sr=8-1> .

答案 2 :(得分:12)

  

RDF文件应解析为a   三元组列表。

     

三重奏由主题组成,a   谓词和对象。但是做什么   这些实际意味着什么?

     

主题是主题。它   识别三元组是什么对象   描述

     

谓词定义了一段   我们给出的对象中的数据   值得。

     

对象是实际值。

来自:http://www.robertprice.co.uk/robblog/archive/2004/10/What_Is_An_RDF_Triple_.shtml

答案 3 :(得分:10)

关于亚当N的答案。我相信O.P. asked a previous question regarding data for a social network,所以尽管答案很好,但我只会澄清“原始原始”问题。 (因为我觉得有责任)。

    John | Is a Friend of | James
    James | Is a friend of | Jill
    Jill | Likes | Snowboarding
    Snowboarding | Is a | Sport

使用这样的三元组,您可以拥有非常灵活的数据结构。

查看Friend of a friend (FOAF)可能是一个更好的例子。

答案 4 :(得分:6)

RDF是一种语言,即用于编码和解码信息(某些上下文中的数据)的符号,语法和语义系统。

在RDF中,观察单位(数据)由一个由三部分组成的句子表示:主语,谓词,宾语。基本上,这是自然语言演讲的基本结构。

用于表示参与RDF表示的实体关系的实体(事物)的符号是IRI(包括HTTP URI)。 RDF句子的每个主语和谓词(以及可选的,对象)组件由IRI表示。

语法(语法)是主题,谓词和对象排列顺序的抽象(意味着它可以使用各种符号表示)。

语义(最常被忽略的部分)是关于RDF语句中主语,谓词和对象角色的含义。

当您使用HTTP URI来表示RDF语句主题,谓词和(可选)对象时,您最终会得到构成Web的结构化数据(实体关系类型的集合) - 就像您今天在全球范围内一样网页。

当RDF语句中的谓词(特别是)的语义同时是机器和人类可理解时,您有一个实体关系类型的Web,它提供强大的信息编码,这是知识(推理和推理)的基础。

以下是简单RDF语句的示例:

{
    <#this>             a  schema:WebPage                          .
    <#this>  schema:about  dbpedia:Resource_Description_Framework  .
    <#this>  skos:related  <https://stackoverflow.com/questions/30742747/convert-a-statement-with-adjective-in-rdf-triple/30836089#30836089>   . 
}

我已经使用大括号括起示例,以便此帖子变成基于RDF的实时链接数据演示,由相对HTTP URI和基于#的片段标识符(索引)提供。

本文中嵌入的RDF语句的结果,由纳米化提供(在文本被接受的任何地方嵌入RDF语句):

  1. Basic Entity Description Page - 每个语句都由一个解析为其描述的超链接标识(主题,谓词,对象部分)
  2. Deeper Faceted Browsing Page - 通过构成数据网或链接数据网的超链接,通过跟随你的方式进行深入探索和发现的替代视图。
  3. Description of an embedded statement - 关于特定的RDF声明。
  4. 这里是使用我们的Structured Data Sniffer Browser Extension使用RDF-Turtle表示法从这篇文章中嵌入的三元组生成的可视化: enter image description here

答案 5 :(得分:5)

请注意,它可能会变得有点复杂。 RDF三元组也可以被视为主题或对象,因此您可以使用以下内容:    巴特 - &gt;说 - &gt; (三元组 - &gt;可以是 - &gt;对象)

答案 6 :(得分:3)

自从我使用RDF以来已经有一段时间了,但在这里:D

三元组是主语,谓语和宾语。

主题是唯一标识某事物的URI。例如,您的openid可以唯一标识您。

该对象定义主题和对象的关联方式。

谓词是主题的某些属性。例如一个名字。

鉴于此,三元组形成图S-> P。给定更多三元组,图表增长。例如,您可以将同一个人识别为一堆三元组的主题,然后您可以通过该唯一主题连接所有谓词。

答案 7 :(得分:3)

即使他被投票支持,我也不得不同意A Pa的一部分。

背景:我是一名语言学家,拥有该专业的博士学位,并从事计算语言学工作。

声明“......一个由三部分组成的句子:主语,谓语,宾语。基本上,这是自然语言语言的基本结构”(其中A Pa引用来自Kingsley Uyi Idehen的答案)是完全错误的。这不仅仅是金斯利这样说的,我从RDF三元组的许多倡导者那里听到过它。

出于多种原因这是错误的,例如:谓词(英语,可以说,以及许多其他自然语言)由动词(或类似动词的东西)+对象(以及可能的其他补语)组成。绝对不是英语的句法结构是Subj-Pred-Obj的情况。

此外,并非所有英语自然语言句子都有对象;不及物动词,特别是根据定义不带对象。天气动词(以及其他内容)甚至不会采用“真正的”主题(“它下雨”的“它”没有虔诚)。而另一方面,像“给”这样的双及物动词同时具有直接和间接的对象。然后有像“put”这样的动词除了直接对象之外还带有一个locative,或者“tell”带有一个对象和一个子句。更不用说辅助,如时间和方式状语。

是的,当然你可以将嵌入式条款表示为嵌入式三元组(在某种程度上你可以将任何语句表示为三元组,我希望你已经明确表示,你不能),但是我不知道认为你可以在RDF中做(至少我从来没有看到它完成,似乎需要四倍)是同时拥有一个对象和一个嵌入子句。同样是直接和间接对象,也可以是辅助对象。

因此无论RDF三元组的动机如何,我都希望拥护者不要假装有语言动机,或者三元组以任何方式类似于自然语言语法。因为他们没有。

答案 8 :(得分:2)

RDF Triple是一个实际表达式,它定义了一种表示对象之间关系的方式。三元组有三个部分:Subject,Predicate和Object(通常以相同的顺序编写)。谓词将客体与客体联系起来。

主题----谓词---&gt;对象

更多有用的信息可以在以下网址找到:

http://www.w3.org/TR/rdf-concepts/

答案 9 :(得分:2)

人们可以将三元组视为一种句子来说明一个单一的事实&#34;关于资源。首先要理解RDF Triple,你应该知道RDF中的每一件事都是用URI http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference或空节点http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node来定义的。

RDF Triple包含三个组成部分: - 1)主题 2)谓词 3)对象 例如: - Pranay有Car Ferrari 这里的主题是Pranay,hasCar是一个谓词,法拉利是一个对象。每个都使用RDF-URI定义。有关详细信息,请访问: - http://www.w3.org/TR/owl-ref/

答案 10 :(得分:1)

简单答案可以是RDF三元组是使用RDF数据模型的某些知识表示。此模型基于制作陈述的概念,以 subject-predicate-object 表达式的形式提供有关资源(特别是Web资源URI)的概念。 RDF也是 Web上数据交换的标准模型。即使底层模式不同,RDF也具有促进数据合并的功能,并且特别是支持模式的发展,而不需要更改所有数据使用者。我建议这篇文章知道如何:https://www.w3.org/DesignIssues/RDF-XML.html

答案 11 :(得分:1)

Triple以示例解释

是否存在与用户和问题相关的表格。

TABLE dc:creator
-------------------------
| Question |   User     |
-------------------------
|    45    |   485527   |
|    44    |   485527   |
|    40    |   485528   |

这可以概念性地表达为三个RDF triples,如...

<question:45> <dc:creator> <user:485527>
<question:44> <dc:creator> <user:485527>
<question:40> <dc:creator> <user:485528>

...以便每行转换为一个triple,将用户与问题联系起来。每个三元组的一般形式可以描述为:

<Subject> <Predicate> <Object>

关于RDF的一个专长是,您可以(或必须)使用URIs / IRIs来识别entities以及relations。查找更多here。这使得每个人都可以reuse already existing关系(谓词)并发布关于任意实体in the www的陈述。

将SO答案与其创建者相关的示例:

<https://stackoverflow.com/a/49066324/1485527>   
<http://purl.org/dc/terms/creator> 
<https://stackoverflow.com/users/1485527>

答案 12 :(得分:1)

作为一名开发人员,我努力了一段时间,直到我最终了解RDF及其它的含义,主要是因为我总是通过代码而不是通过数据来了解世界。

鉴于此已发布在StackOverflow上,这是Java的类比,最终让我为之点击:RDF三元组用于记录类的方法/参数对代码的编码。

所以:

  • 包名称为“主题”的类
  • 此类的一种方法是谓词
  • 方法上的参数是对象,它们本身由类表示
  • 上下文是导入语句,以避免编写类的完整规范名称

这种类比的唯一点在于,谓词也具有名称空间,而方法则没有。但是,当使用谓词时,在类实例(作为主体和对象)之间创建的整体关系反映了调用方法以执行某些操作的想法。

基本上,RDF是要对OO进行编码的数据。

答案 13 :(得分:0)

请参阅: http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-triple

RDF三元组包含三个组件:

  • 主题,它是RDF URI引用或空白节点
  • 谓词,这是一个RDF URI引用
  • 对象,它是RDF URI引用,文字或空白节点

其中文字本质上是带有可选语言标签的字符串, 空白节点也是字符串。 URI,文字和空白节点必须 来自成对的不相交集。