图数据库RDF

RDF 数据库

RDF 是 图数据库;用的查询语言是 SPARQL
维基数据用的就是RDF

三元组 triple

以"三元组"( triple)的方式,描述事物与事物之间的直接关系。

在语法上呈现为主语 + 谓语 + 宾语,指的是两个事物和它们之间的关系。

每个 RDF 三元组的结尾是一个英文的句号

谓语

RDF 要求,谓语(即事物之间的关系)必须有明确定义。

谓语是给定的,就可以用主语去查询宾语,或者用宾语去查询主语

任何组织和个人,都可以定义自己的谓语

RDF 官方定义了一套常用的谓语,URL https://www.w3.org/1999/02/22-rdf-syntax-ns

小明是学生。

写成 RDF 三元组就是

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns>

小明 rdf:type 学生 .

<!-- rdf:type是一个常用谓语,RDF 允许把它简写成a -->
小明 a 学生 .

案例

甲壳虫是一个乐队,成员有 John Lennon、Paul McCartney、Ringo Starr 和George Harrison。他们都是艺术家,1963年出版过一张专辑《Please Please Me》,里面包含《Love Me Do》这首单曲,长度125秒。

在这里插入图片描述

<!-- 谓语的 URL,及其对应的前缀。 -->
PREFIX : <http://foo.com/tutorial/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns>

<!-- 甲壳虫是一个乐队,成员有 John Lennon、Paul McCartney、Ringo Starr 和George Harrison。 -->
甲壳虫 rdf:type Band .
甲壳虫 :name "甲壳虫" .
甲壳虫 :member John_Lennon .
甲壳虫 :member Paul_McCartney .
甲壳虫 :member Ringo_Starr .
甲壳虫 :member George_Harrison .

<!-- 他们都是艺术家 -->
John_Lennon      a 艺术家 .
Paul_McCartney   a 艺术家 .
Ringo_Starr      a 艺术家 .
George_Harrison  a 艺术家 .

<!-- 谓语相同可以合并 -->
甲壳虫 a 乐队 ;
      :name "甲壳虫" ;
      :member John_Lennon, Paul_McCartney, George_Harrison, Ringo_Starr .

<!-- 1963年出版过一张专辑《Please Please Me》里面包含《Love Me Do》 -->
Please_Please_Me a 专辑 ;
                 :name "Please Please Me" ;
                 :date "1963" ;
                 :artist "甲壳虫" ;
                 :track Love_Me_Do .

<!-- 《Love Me Do》这首单曲,长度125秒。 -->
Love_Me_Do       a Song ;
                 :name "Love Me Do" ;
                 :length 125 .


SPARQL 查询语言

SPARQL 查询的语法

SELECT <variables>
WHERE {
   <graph pattern>
}
  • <variables>是所要提取主语或宾语,
  • <graph pattern>是所要查询的三元组模式

例:

-- 查询专辑
SELECT ?album
WHERE {
   ?album rdf:type :Album .
}

?album是一个变量,名字随意,第一个字符必须是问号?
?album这个变量是主语,根据rdf:type这个谓语,可以得到:Album

  • 返回结果变量可以用星号*代替
  • WHERE这个关键词在SELECT查询里面可以省略
  • 最后一个三元组的结尾句号也可以省略

简写为

SELECT * { ?album a :Album }

多条件查询

SELECT ?album ?artist
{
   ?album a :Album .
   ?album :artist ?artist .
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值