通俗易懂地说,RDF三元组是什么?
通俗易懂地说,RDF三元组是什么?
我认为这个问题需要分成两部分来解答——什么是三元组,以及什么使得“RDF三元组”如此特殊?
首先,一个三元组就是一个陈述句,它采用“主语/谓语/宾语”的形式——也就是说,通过谓语将一个对象(主语)与另一个对象(宾语)或文字连接起来。我们都很熟悉三元组:一个三元组是二元关系的最小不可约表示形式。换句话说:电子表格是三元组的集合。例如,如果你的电子表格中有一列标题为“Paul”,一行标题为“has Sister”,并且单元格中的值为“Lisa”,那么你就有了一个三元组:Paul(主语)has Sister(谓语)Lisa(宾语/文字)。
RDF三元组之所以特殊,是因为三元组的每个部分都与一个URI相关联。因此,日常陈述句“Mike Smith知道John Doe”可能在RDF中表示为:
uri://people#MikeSmith12 http://xmlns.com/foaf/0.1/knows uri://people#JohnDoe45
"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> .
关于Adam N.的回答,我认为O.P.之前提出了关于社交网络数据的问题,所以虽然该答案很好,但是我仅仅是想在与“真正的原始”问题相关的方面进行澄清(因为我感到有责任)。
John | 是 | James的朋友 James | 是 | Jill的朋友 Jill | 喜欢 | 滑雪 滑雪 | 是 | 运动
使用这样的三元组可以拥有一个非常灵活的数据结构。
可以参考FOAF(Friend of a friend)来获得更好的例子。
{
<#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了,但是让我来试试:D
三元组由主语、谓语和宾语组成。
主语是一个URI,可以唯一地标识某个事物。例如,你的openid可以唯一地标识你。
宾语定义了主语和宾语之间的关系。
谓语是主语的某个属性。例如,一个名字。
基于这些,三元组形成了S->P的图形。添加更多的三元组,图形会变得更大。例如,你可以将同一个人作为多个三元组的主语,并通过该唯一主语连接所有的谓语。