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路径查询相关推荐

  1. 【知识图谱】(task3)知识图谱的存储和查询

    note 用图数据库的场景: 高性能关系查询:需要快速遍历许多复杂关系的任何用例,如欺诈检测,社交网络分析,网络和数据库基础设施等: 模型的灵活性:任何依赖于添加新数据而不会中断现有查询池的用例.模型 ...

  2. 论文小综 | 知识图谱中的复杂查询问答

    作者 | 张文,浙江大学博士,研究兴趣为知识图谱表示与推理 陈名杨,浙江大学在读博士生,研究兴趣为知识图谱表示与推理 本文将介绍近两年4篇关于知识图谱中的复杂查询问答(Complex Query An ...

  3. NeuIPS|在知识图谱上嵌入逻辑查询

    今天为大家带来斯坦福大学Jure Leskovec教授课题组发表在NeuIPS上的一篇论文.本文引入了一个框架GQE,以便在不完整的知识图谱上有效地对合取逻辑查询进行预测.在本文的方法中,作者在低维空 ...

  4. 知识图谱:SPARQL的基本语法示例

    # 前言 SPARQL的英文全称为SPARQL Protocol and RDF Query Language,是为RDF开发的一种查询语言和数据获取协议.由于RDF数据是以三元组的形式进行表示的,因 ...

  5. 【知识图谱】SPARQL入门

    文章目录 什么是SPARQL? 什么是RDF? URI和URL SPARQL语法入门 一.引言 1.1 文档大纲 1.2 文档约定 1.2.1 命名空间(Namespaces) 1.2.2 数据描述 ...

  6. SHU语义网与知识图谱

    SHU语义网与知识图谱 文章目录 SHU语义网与知识图谱 前言 课程笔记 第一讲:语义网概述 第二讲:RDF和RDFs RDF部分 RDFs及其形式语义 第三讲:本体论与OWL语言 本体论 OWL语言 ...

  7. 【Query Embedding on Hyper-relational Knowledge Graphs】 超关系知识图谱上的查询嵌入 论文结果复现

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.背景知识 二.写作动机 三.技术概述 1.查询嵌入: 2.超关系知识图谱: 3. 超关系查询: 四.模型概述: 五 ...

  8. 基于向量空间的知识图谱查询及结果解释

    2019独角兽企业重金招聘Python工程师标准>>> 知识图谱是一个宏大的数据模型,可以构建庞大的"知识"网络,包含世间万物构成的"实体"以 ...

  9. 【论文阅读】强化学习与知识图谱关系路径发现

    论文标题:DeepPath: A Reinforcement Learning Method for Knowledge Graph Reasoning 中文标题:深度路径:知识图谱推理的强化学习方法 ...

最新文章

  1. 刷新ImageNet纪录,GAN不只会造假!DeepMind用它做图像分类,秒杀职业分类AI
  2. leetcode算法题--Minimum Depth of Binary Tree
  3. 客户端手册_山东省税务局社保费管理客户端企业缴费操作手册
  4. java中map集合的修改_map集合修改其中元素(示例代码)
  5. having and group by
  6. MySQL排序查询介绍
  7. 慧联A8最新检测使用教程V2.0.3
  8. python 线性回归 统计检验 p值_PAST:最简便易用的统计学分析软件教程(一)软件基本信息介绍...
  9. 开源极速的人脸跟踪-基于OpenTLD与RNet
  10. HTML+JS实现可编辑表格
  11. scrapy 保存html页面,28.用配合scrapy的方式爬取本地保存的html
  12. 基于Java毕业设计医院诊疗信息管理源码+系统+mysql+lw文档+部署软件
  13. AVC/HEVC/VVC/AV1 帧间预测:运动估计、运动补偿
  14. The simplest Singleton
  15. 解决阿里云ESC启动kube-proxy服务时出现错误 亲测有效
  16. python找零_python 找零问题 动态规划
  17. 收集整理一些常用的PHP类库, 资源以及技巧. 以便在工作中迅速的查找所需...
  18. 微信小程序(三)详解篇
  19. java微秒精度怎么弄,java时间精确到微秒
  20. wps表格怎么添加附页_现场质量评定表

热门文章

  1. 基于装载率结合路径最短来设计几个循环送货的线路
  2. 【信息保护论】Ch10. 可信赖的第三方机构: CA认证
  3. Robustness Correctness
  4. 【前端学习】D1:HTML简介与HTML标签
  5. 前端基本功(三):javascript中让人脑壳疼的this关键字
  6. EEPROM24C02概述
  7. DDR5内存彻底白菜价,国外大厂却整出了比着火更离谱的骚操作
  8. 科大讯飞使用android SDK出现21001错误码
  9. H5盲盒源码商|城盲盒源码PHP+视频搭建视频部署教程
  10. 【转】KK:科技发展的六个趋势