知识图谱:RDF图数据模型与SPARQL查询语言

RDF图数据模型

RDF资源

1、现实世界中每个概念、实体和事件都可以对应一个资源,可以表示具体的事物也可以是抽象的概念,以及属性;
2、每个资源都用IRI(Internationalized Resource Identifier,国际化资源标识符)进行标识;
3、RDF 允许引入不包含任何IRI 标示的资源,被称为空白结点或者匿名资源,用于标示一种存在变量。空白结点不能用IRI 来全局处理,所以为了区分不同的空白结点,RDF 解析器一般会为每个空白结点分配一个系统生成的内部名。

国际化资源标识符IRI

IRI 是一个用来标识资源的字符串,是数据集中资源的一个唯一的身份ID;当原始的IRI长度过长时,为了方便表达可以引入前缀(prefix)命名空间等方式来简化,以下是常见前缀

前缀IRI
rdfs:http://www.w3.org/2000/01/rdf-schema#
rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#
xsd:http://www.w3.org/2001/XMLSchema
sfn:http://www.w3.org/ns/sparql#
dbr:http://dbpedia.org/resource/
dbo:http://dbpedia.org/ontology/
dbp:http://dbpedia.org/property/

RDF三元组

每个资源的一个属性及属性值,或者它与其他资源的一条关系,都被表示成<主体, 谓词, 客体>的三元组形式,一个三元组又称为陈述

  • 所谓主体,它是一个资源或者是一个空白节点;
  • 所谓属性/谓词,是用来描述资源之间的语义关系,或者描述某个资源和属性值之间的关系;
  • 所谓客体,它可以是一个资源,也可以是一个字面值,也可以是一个空白节点

RDF数据集

  • 给定资源标识符集合ℐ、空白节点 集合ℬ和字面值ℒ,一条三元组t是 属于(ℐ ∪ ℬ)×ℐ×(ℐ ∪ ℬ ∪ ℒ)的一个元素
  • 一个RDF 数据集是(ℐ ∪ ℬ)×ℐ×(ℐ ∪ ℬ ∪ ℒ)的一个子集

RDF图

  • 三元组的主体和客体就是RDF 图中的一系列节点
  • 一个谓词的资源标识符在同一张图里可能充当节点,也可能充当边

RDF空白节点

空白节点(Blank Node) 是指没有统一资源标识符(IRI)同时在知识图谱数据集外部不需要直接访问的节点
空白节点的引入可以更加方便地表达多元关系和结构化的数据值

RDF Schema

RDF Schema(简称RDFS),用来表达实体与类别,以及类别之间、以及属性与属性之间、属性的定义域、值域之间的关系
RDF 预定义了一些核心概念和核心属性,这些概念并不提供某个具体领域专用的类别和属性,但是RDFS 为定义某个领域的本体概念提供了基础

核心类

  • rdfs:Class: 所有类的类
  • rdfs:Resouce: 所有资源的类
  • rdfs:Literal: 所有字面值的类
  • rdfs:Property: 所有属性的类

核心属性

  • rdf:type: 连接一个资源和它属于的类别
  • rdfs:subClassOf: 连接一个类别和它的父类
  • rdfs:subPropertyOf: 连接一个属性和它的子属性
  • rdfs:domain: 定义一个属性的作用域(它的主语的类别)
  • rdfs:range: 定义一个属性的作用域(它的宾语的类别)

SPARQL查询语言

SPARQL语法

在这里插入图片描述

SPARQL的六种查询模式

  1. 选择查询(SELECT 查询),⽤来从RDF 数据中选择出满⾜条件的值来构造⼀张关系表并返回;
  2. 构造查询(CONSTRUCT 查询),⽤来从RDF 数据中选择出满⾜条件的值并⽤这些值按条件构造⼀个新的RDF 数据;
  3. 询问查询(ASK 查询),⽤来从RDF 数据中判定出RDF 数据中是否有满⾜条件的值并返回True/False;
  4. 描述查询(DESCRIBE 查询),⽤来从RDF 数据中选择出⼀个RDF 数据图来描述某些特点的资源;
  5. 插⼊语句(INSERT 语句),向RDF 数据中插⼊⼀个或者多个三元组;
  6. 删除语句(DELETE 语句),从RDF 数据中删除⼀个或者多个三元组。

SPARQL图模式

WHERE子句中表示查询语句的正文部分称为图模式
示例:
在这里插入图片描述

SPARQL操作符优先级

  • 从大到小:(group)、UNION、AND、OPTIONAL、FILTER
  • OPTIONAL操作符是左结合的

SPARQL图模式二叉树

在这里插入图片描述

SPARQL结果修饰

  1. 排序(ORDER BY),⽤来对结果进⾏排序;
SELECT ?x ?label WHERE { ?x rdfs:label ?label } ORDER BY ?label
  1. 映射(PROJECTION),⽤来从结果中取若干变量组成新的结果;
SELECT ?label WHERE { ?x rdfs:label ?label }
  1. 去重(DISTINCT),⽤来只返回不同的结果;
SELECT DISTINCT ?label WHERE { ?x rdfs:label ?label }
  1. 偏移(OFFSET),⽤来使结果在指定的数量后开始;
SELECT ?label WHERE { ?x rdfs:label ?label } OFFSET 2
  1. 限定结果数量(LIMIT),⽤来对结果数量设置了上限
SELECT ?label WHERE { ?x rdfs:label ?label } LIMIT 3

SPARQL1.1的新特性

  • 属性路径(Property Path)

所谓属性路径(Property Path),就是找出RDF 数据上两点间满足属性限制条件的路径。这个属性限制条件允许用属性组成的正则表达式来表达

SELECT ?x WHERE { dbr:James_Watt dbo:influenceBy∗ ?x }
  • 联邦查询(Federated Query)

所谓联邦查询(Federated Query),就是允许查询调用远程的其它SPARQL查询接口来与当前的结果进行组合

SELECT ?name WHERE {
dbr:James_Watt dbo:influenceBy ?person .
SERVICE <https://dbpedia.org/sparql> {
?person dbo:name ?name . }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值