知识图谱-你不知道的sparql路径查询
sparql语言是W3C制定并推荐的知识图谱查询语言
(⊙o⊙)…重要的话说到这里结束,废话少说,开始正文!
关于sparql,虽然网上的中文资料较少,但是也有些基本内容叙述,此处不赘述,本文主要讲的是sparql的多重路径查询,以下通过一个很小的RDF例子来说明,RDF内容大概长这个样子,关于唐高祖李渊的家谱
<rdf:RDFxmlns:ns1="http://www.huoyo.org/relationship/"xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
><rdf:Description rdf:about="http://www.huoyo.org/person/李虎"><ns1:儿子rdf:resource="http://www.huoyo.org/person/李昞"/></rdf:Description><rdf:Description rdf:about="http://www.huoyo.org/person/李昞"><ns1:儿子rdf:resource="http://www.huoyo.org/person/李渊"/></rdf:Description><rdf:Description rdf:about="http://www.huoyo.org/person/李渊"><ns1:儿子 rdf:resource="http://www.huoyo.org/person/卫怀王李玄霸"/><ns1:女儿 rdf:resource="http://www.huoyo.org/person/万春公主"/>...等等省略一片<ns1:儿子 rdf:resource="http://www.huoyo.org/person/鲁王李灵夔"/><ns1:儿子 rdf:resource="http://www.huoyo.org/person/荆王李元景"/><ns1:儿子 rdf:resource="http://www.huoyo.org/person/汉王李元昌"/><ns1:儿子 rdf:resource="http://www.huoyo.org/person/霍王李元轨"/><ns1:父亲 rdf:resource="http://www.huoyo.org/person/李昞"/></rdf:Description>
- 查询所有的三元组
select ?s ?p ?o ?results where{?s ?p ?o}
- 查询李虎的儿子
# PREFIX 为资源前缀定义,为了在select中简写资源而定义# 如:http://www.huoyo.org/person/李虎 ->p:李虎PREFIX p: <http://www.huoyo.org/person/>PREFIX r: <http://rwww.huoyo.org/relationship/>select ?o where{p:李虎 r:儿子 ?o}
- 查询李虎的孙子
# 根据图谱:# 李虎-儿子->李昞# 李昞-儿子->李渊# 李渊->儿子-李世民PREFIX p: <http://www.huoyo.org/person/>PREFIX r: <http://rwww.huoyo.org/relationship/>select ?re where{p:李虎 r:儿子 ?o . # . 一定不能省略?o r:儿子 ?re #递推}
- 查询李虎的曾孙
基本版
# 根据图谱:# 李虎-儿子->李昞# 李昞-儿子->李渊# 李渊->儿子-李世民PREFIX p: <http://www.huoyo.org/person/>PREFIX r: <http://rwww.huoyo.org/relationship/>select ?re2 where{p:李虎 r:儿子 ?o . # . 一定不能省略?o r:儿子 ?re . #递推?re r:儿子 ?re2 #再递推}
优化版
# 根据图谱:# 李虎-儿子->李昞# 李昞-儿子->李渊# 李渊->儿子-李世民PREFIX p: <http://www.huoyo.org/person/>PREFIX r: <http://rwww.huoyo.org/relationship/>select ?re2 where{p:李虎 r:儿子/r:儿子/r:儿子 ?re2 # 有了/,老子是不是可以递推了}
感觉关系有点长,真的要这样下去吗?有用过neo4j的cypher语句的可能知道,路径是可以跳着查询的,而不需要明确中间到底经过了那些’儿子’,sparql中有这种东东吗?有!
- 路径查询-李虎的儿子
# 根据图谱:# 李虎-儿子->李昞# 李昞-儿子->李渊# 李渊->儿子-李世民PREFIX p: <http://www.huoyo.org/person/>PREFIX r: <http://rwww.huoyo.org/relationship/>select ?re2 where{p:李虎 (r:儿子){1} ?re2 # 有本事继续递推呀}
- 路径查询-李虎的孙子
# 根据图谱:# 李虎-儿子->李昞# 李昞-儿子->李渊# 李渊->儿子-李世民PREFIX p: <http://www.huoyo.org/person/>PREFIX r: <http://rwww.huoyo.org/relationship/>select ?re2 where{p:李虎 (r:儿子){2} ?re2 # 真的递推不动了}
- 路径查询-李虎的儿子和孙子
# 根据图谱:# 李虎-儿子->李昞# 李昞-儿子->李渊# 李渊->儿子-李世民PREFIX p: <http://www.huoyo.org/person/>PREFIX r: <http://rwww.huoyo.org/relationship/>select ?re2 where{p:李虎 (r:儿子){1,2} ?re2 # 突然感觉在哪里见过...}
(r:儿子){1,2}(r:儿子)\{1,2\}(r:儿子){1,2} 感觉怎么那么像正则表达式啊,正则里面还支持+、∗、∣+、*、|+、∗、∣这些,我得验证一下
- 路径查询-李虎子孙后代
# 根据图谱:# 李虎-儿子->李昞# 李昞-儿子->李渊# 李渊->儿子-李世民PREFIX p: <http://www.huoyo.org/person/>PREFIX r: <http://rwww.huoyo.org/relationship/>select ?re2 where{p:李虎 (r:儿子|r:女儿)+ ?re2 }
竟然成功了,妈妈再也不用当心我只会一层一层的递推了!
- 特别注意
在超级大的图中不要随意使用∗/+*/+∗/+,查询容易奔溃
知识图谱-你不知道的sparql路径查询相关推荐
- 【知识图谱】(task3)知识图谱的存储和查询
note 用图数据库的场景: 高性能关系查询:需要快速遍历许多复杂关系的任何用例,如欺诈检测,社交网络分析,网络和数据库基础设施等: 模型的灵活性:任何依赖于添加新数据而不会中断现有查询池的用例.模型 ...
- 论文小综 | 知识图谱中的复杂查询问答
作者 | 张文,浙江大学博士,研究兴趣为知识图谱表示与推理 陈名杨,浙江大学在读博士生,研究兴趣为知识图谱表示与推理 本文将介绍近两年4篇关于知识图谱中的复杂查询问答(Complex Query An ...
- NeuIPS|在知识图谱上嵌入逻辑查询
今天为大家带来斯坦福大学Jure Leskovec教授课题组发表在NeuIPS上的一篇论文.本文引入了一个框架GQE,以便在不完整的知识图谱上有效地对合取逻辑查询进行预测.在本文的方法中,作者在低维空 ...
- 知识图谱:SPARQL的基本语法示例
# 前言 SPARQL的英文全称为SPARQL Protocol and RDF Query Language,是为RDF开发的一种查询语言和数据获取协议.由于RDF数据是以三元组的形式进行表示的,因 ...
- 【知识图谱】SPARQL入门
文章目录 什么是SPARQL? 什么是RDF? URI和URL SPARQL语法入门 一.引言 1.1 文档大纲 1.2 文档约定 1.2.1 命名空间(Namespaces) 1.2.2 数据描述 ...
- SHU语义网与知识图谱
SHU语义网与知识图谱 文章目录 SHU语义网与知识图谱 前言 课程笔记 第一讲:语义网概述 第二讲:RDF和RDFs RDF部分 RDFs及其形式语义 第三讲:本体论与OWL语言 本体论 OWL语言 ...
- 【Query Embedding on Hyper-relational Knowledge Graphs】 超关系知识图谱上的查询嵌入 论文结果复现
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.背景知识 二.写作动机 三.技术概述 1.查询嵌入: 2.超关系知识图谱: 3. 超关系查询: 四.模型概述: 五 ...
- 基于向量空间的知识图谱查询及结果解释
2019独角兽企业重金招聘Python工程师标准>>> 知识图谱是一个宏大的数据模型,可以构建庞大的"知识"网络,包含世间万物构成的"实体"以 ...
- 【论文阅读】强化学习与知识图谱关系路径发现
论文标题:DeepPath: A Reinforcement Learning Method for Knowledge Graph Reasoning 中文标题:深度路径:知识图谱推理的强化学习方法 ...
最新文章
- 刷新ImageNet纪录,GAN不只会造假!DeepMind用它做图像分类,秒杀职业分类AI
- leetcode算法题--Minimum Depth of Binary Tree
- 客户端手册_山东省税务局社保费管理客户端企业缴费操作手册
- java中map集合的修改_map集合修改其中元素(示例代码)
- having and group by
- MySQL排序查询介绍
- 慧联A8最新检测使用教程V2.0.3
- python 线性回归 统计检验 p值_PAST:最简便易用的统计学分析软件教程(一)软件基本信息介绍...
- 开源极速的人脸跟踪-基于OpenTLD与RNet
- HTML+JS实现可编辑表格
- scrapy 保存html页面,28.用配合scrapy的方式爬取本地保存的html
- 基于Java毕业设计医院诊疗信息管理源码+系统+mysql+lw文档+部署软件
- AVC/HEVC/VVC/AV1 帧间预测:运动估计、运动补偿
- The simplest Singleton
- 解决阿里云ESC启动kube-proxy服务时出现错误 亲测有效
- python找零_python 找零问题 动态规划
- 收集整理一些常用的PHP类库, 资源以及技巧. 以便在工作中迅速的查找所需...
- 微信小程序(三)详解篇
- java微秒精度怎么弄,java时间精确到微秒
- wps表格怎么添加附页_现场质量评定表