一、概念介绍

【知识图谱】

A knowledge graph consists of a set of interconnected typed entities and their attributes.

即,知识图谱是由一些相互连接的实体和他们的属性构成的。换句话说,知识图谱是由一条条知识组成,每条知识

表示为一个SPO三元组(Subject-Predicate-Object)。

【RDF】

RDF(Resource Description Framework),即资源描述框架,其本质是一个数据模型(Data Model)。它提供了一

个统一的标准,用于描述实体/资源。简单来说,就是表示事物的一种方法和手段。RDF形式上表示为SPO三元组,

有时候也称为一条语句(statement)。

知识图谱的推理主要分为两类:基于本体的推理和基于规则的推理。OWL/RDFS推理的推理机(reasoner),就能

够执行基于本体的推理。

二、本体建模和数据准备

       推荐本体建模工具【Protege】

【知识图谱基础之RDF,RDFS,OWL】

关系数据库到RDF,d2rq这个工具把mysql的数据转为RDF。

d2rq:Accessing Relational Databases as Virtual RDF Graphs

下载【D2RQ】,进入其目录,运行下面的命令生成默认的mapping文件:

generate-mapping -u root -o kg_demo_movie_mapping.ttl jdbc:mysql:///kg_demo_movie

D2RQ支持的数据库有Oracle、MySQL、PostgreSQL、SQL Server、HSQLDB、Interbase/Firebird。

使用下面的命令将我们的数据转为RDF:

.\dump-rdf.bat -o kg_demo_movie.nt .\kg_demo_movie_mapping.ttl

三、Apache jena SPARQL

Apache Jena(后文简称Jena),是一个开源的Java语义网框架(open source Semantic Web Framework

for Java),用于构建语义网和链接数据应用。

下载Jena的最新版本(fuseki和其他的功能模块不在同一个文件中,需要分别下载apache-jena和

apache- jena- fuseki)。

进入“apache-jena-X.X.X”文件夹的bat目录,使用“tdbloader.bat”将之前我们的RDF数据以TDB的方式存储。

命令如下:

.\tdbloader.bat --loc="D:\apache jena\tdb" "D:\d2rq\kg_demo_movie.nt"

【RDF查询语言SPARQL】

SPARQL即SPARQL Protocol and RDF Query Language的递归缩写,专门用于访问和操作RDF数据,是语义网

的核心技术之一。

例子(仅供参考):

周润发演了什么电影PREFIX : <http://www.kgdemo.com#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>  SELECT DISTINCT ?x WHERE { ?s :personName '周润发'.?s :hasActedIn ?m.?m :movieTitle ?x }功夫有那些演员PREFIX : <http://www.kgdemo.com#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>  SELECT DISTINCT ?x WHERE { ?m :movieTitle '功夫'.?m :hasActor ?a.?a :personName ?x }成龙和李连杰合作的电影PREFIX : <http://www.kgdemo.com#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>  SELECT DISTINCT ?x WHERE { ?p1 :personName '成龙'.?p2 :personName '李连杰'.?p1 :hasActedIn ?m.?p2 :hasActedIn ?m.?m :movieTitle ?x }巩俐参演电影大于0.8的电影PREFIX : <http://www.kgdemo.com#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>  SELECT DISTINCT ?x WHERE { ?p :personName '巩俐'.?p :hasActedIn ?m.?m :movieTitle ?x.?m :movieRating ?r.filter(?r > 0.8) } 成龙演了多少部电影PREFIX : <http://www.kgdemo.com#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>  SELECT COUNT(?x) WHERE { ?s :personName ' 成龙'.?s :hasActedIn ?x. }李连杰简介PREFIX : <http://www.kgdemo.com#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>  SELECT DISTINCT ?x WHERE { ?s :personName '李连杰'.?s :personBiography ?x. }功夫简介PREFIX : <http://www.kgdemo.com#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>  SELECT DISTINCT ?x WHERE { ?s :movieTitle '功夫'.?s :movieIntroduction ?x. }

四、KBQA Demo

python代码见github

知识图谱——领域知识问答系统简单介绍相关推荐

  1. 知识图谱入门2-1:实践——基于医疗知识图谱的问答系统

    注:欢迎关注datawhale:https://datawhale.club/ 系列: 知识图谱入门一:知识图谱介绍 知识图谱入门2-1:实践--基于医疗知识图谱的问答系统 知识图谱入门2-2:用户输 ...

  2. 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part4):结合问题分类的问题解析与检索语句生成

    前序文章: [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part1):项目介绍与环境准备 [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part2):图谱数据准备与导入 [知识图谱] ...

  3. python知识图谱问答系统代码_知识图谱和问答系统

    知识图谱和问答系统 发布时间:2018-06-19 05:32, 浏览次数:606 1. 前言 知识图谱(knowledge graph),是下一代搜索引擎.问答系统等智能应用的基础设施 ,目前出现的 ...

  4. 如何构建知识图谱和问答系统

    前言 问答系统是NLP在业界最为重要的落地场景之一,但由于其全链路比较复杂,学习的时候难以入手.这是一个基础的图谱构建和问答系统的项目,为大家学习问答系统提供一个思路. ps:之前断断续续写了知识图谱 ...

  5. 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part5-完结):信息检索与结果组装

    前序文章: [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part1):项目介绍与环境准备 [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part2):图谱数据准备与导入 [知识图谱] ...

  6. 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part2):图谱数据准备与导入

    前序文章: [知识图谱]实践篇--基于医疗知识图谱的问答系统实践(Part1):项目介绍与环境准备 背景 前文已经介绍了该系统的环境准备.下面介绍图谱数据获取,数据主要从:http://jib.xyw ...

  7. “基于医疗知识图谱的问答系统”代码解析(一)

    "基于医疗知识图谱的问答系统"代码解析(一) build_medicalgraph.py -建立医疗知识图谱的代码解析 "基于医疗知识图谱的问答系统"代码解析( ...

  8. 菜哥学知识图谱(通过“基于医疗知识图谱的问答系统”)(二)(搭建系统)

    上接菜哥学知识图谱(通过"基于医疗知识图谱的问答系统")(一) 3.搭建项目2 被小学生拖累连跪5把,近期不搞了- 继续搭建项目.先把neo4j启动起来. 编辑build_medi ...

  9. 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part1):项目介绍与环境准备

    背景 上一个实践项目是:[知识图谱]实践篇--基于知识图谱的<红楼梦>人物关系可视化及问答系统实践.这个属于入门级的项目,可以了解一下neo4j的一些基本操作,以及简单的问答处理.下面进行 ...

最新文章

  1. 计算机等级必须在学校考吗,计算机等级考试可以跳过一级考二级吗
  2. 互联网老师论坛高调炫耀收入:硕士毕业三年,月入九万多!
  3. SAP PM 初级系列21 - 一个技术关闭的维修工单不能再被修改了!
  4. 日常生活小技巧 --WIN7出现“发生验证错误 要求的函数不受支持”问题
  5. 每天一道LeetCode-----最长无重复子串
  6. emWin 2天速成实例教程002_多个页面窗口切换
  7. Orchard中如何配置远端发布
  8. 互联网日报 | 6月4日 星期五 | 蚂蚁消费金融获批开业;腾讯云四个国际数据中心同步开服;滴滴App上线“老人打车”模式...
  9. SQL Server中的部分存储过程
  10. 对JSP和Servlet的理解
  11. 用python解决约瑟夫环
  12. javaScript判断输入框是否为空
  13. paip.模块化设计中常用属性与常用方法
  14. matlab高通滤波函数,巴特沃斯高通滤波器—matlab实现
  15. 简单的一种图像冷暖色温转换(MATLAB)
  16. node.js egg框架接入微信公总号
  17. SSR是什么?Vue中怎么实现?
  18. html长图转换成pdf,iOS将HTML页面转换成PDF文件保存到本地并分享传输文件
  19. PHPexcel 导出身份证处理
  20. CPU性能是否受年龄影响?

热门文章

  1. 有限元三角形单元的等效节点力
  2. 百度地图获取行政区边界坐标
  3. 耶鲁大学计算机科学专业 录取,杜克大学和耶鲁大学计算机科学专业申请对比...
  4. C#网络应用编程——复习总结
  5. 实力在线,超久续航,电动车品牌排行前列的绿源当仁不让
  6. spring-boot-starter-data-redis
  7. 三剑客之Docker Swarm
  8. 【NOIP模拟】 (11.6) T1 Blash数集
  9. Android应用商店上架技巧(企业版)
  10. 莪的拽、像省田各号①样没尽頭队——需求改进原型设计