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:label
和 rdfs:comment
分别表示标签和注释,rdfs:domain
和 rdfs: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
是一个匿名资源,它表示该人的住址。