图数据库RDF

文章目录

  • RDF 数据库
    • 三元组 triple
      • 谓语
    • 案例
  • SPARQL 查询语言
    • 例:

RDF 数据库

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

三元组 triple

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

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

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

谓语

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

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

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

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

小明是学生。

写成 RDF 三元组就是

PREFIX rdf: 

小明 rdf:type 学生 .


小明 a 学生 .

案例

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

图数据库RDF_第1张图片


PREFIX : 
PREFIX rdf: 


甲壳虫 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 .


Please_Please_Me a 专辑 ;
                 :name "Please Please Me" ;
                 :date "1963" ;
                 :artist "甲壳虫" ;
                 :track Love_Me_Do .


Love_Me_Do       a Song ;
                 :name "Love Me Do" ;
                 :length 125 .


SPARQL 查询语言

SPARQL 查询的语法

SELECT <variables>
WHERE {
   <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 .
}

你可能感兴趣的:(DB)