RDF 参考手册学习笔记

RDF(Resource Description Framework)是一种用于描述资源的框架,它允许我们以机器可读的形式对资源进行描述和交换。

RDF 三元组

RDF 最基本的概念是“三元组”,即主语、谓语和宾语,其中主语是被描述的资源,谓语是该资源的某个属性或关系,宾语是该属性或关系的取值。例如:

Copy Code
<http://example.org/resource/JohnDoe> <http://xmlns.com/foaf/0.1/name> "John Doe" .

这里,主语是 <http://example.org/resource/JohnDoe>,宾语是 "John Doe",谓语是 <http://xmlns.com/foaf/0.1/name>,表示该资源的名称是“John Doe”。

RDF 格式

RDF 可以以多种不同的格式来表示,包括 RDF/XML、Turtle 和 JSON-LD 等。例如,上面的三元组可以用 Turtle 格式表示如下:

Copy Code
@prefix foaf: <http://xmlns.com/foaf/0.1/> . <http://example.org/resource/JohnDoe> a foaf:Person ; foaf:name "John Doe" .

这里,@prefix 表示命名空间前缀,a 表示类型,; 表示分隔符,. 表示语句结束。

RDF Schema

RDF Schema 是一种用于描述 RDF 中类和属性的语言,它可以用来定义类的层次结构、属性的域和值域等。例如,我们可以用 RDF Schema 定义一个简单的人类类型如下:

Copy Code
@prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . foaf:Person a rdfs:Class ; rdfs:label "Person" ; rdfs:comment "A person." . foaf:name a rdf:Property ; rdfs:label "Name" ; rdfs:comment "The full name of a person." ; rdfs:domain foaf:Person ; rdfs:range xsd:string .

这里,我们定义了一个 foaf:Person 类型和一个 foaf:name 属性,rdfs:labelrdfs:comment 分别表示标签和注释,rdfs:domainrdfs:range 分别表示属性的域和值域。

示例

下面是一个简单的 RDF 图,它描述了一个人的姓名、年龄和住址:

Copy Code
@prefix foaf: <http://xmlns.com/foaf/0.1/> . <http://example.org/resource/JohnDoe> a foaf:Person ; foaf:name "John Doe" ; foaf:age 30 ; foaf:based_near [ a foaf:Location ; foaf:lat 51.5 ; foaf:long -0.1 ] .

这里,foaf:based_near 是一个匿名资源,它表示该人的住址。