知识图谱构建——D2R的使用(二)
D2R简介和使用
上一节介绍了关系型数据库mysql和nosql类型数据库导入电影数据的过程。下面介绍从关系型数据库进行知识抽取的过程D2R转换。
D2R介绍
D2R:Database to RDF是从抽取关系型抽取知识的一种方式。数据库表名直接映射到RDF中的类,字段映射到类的属性。类之间的关系可以从表示关系的表中得出。
D2RQ主要包括 D2R Server, D2RQ Engine 以及 D2RQ Mapping 语言。
官网:http://d2rq.org/
架构如下图:
具体安装教程参考:D2RQ安装及使用
数据转化流程
首先要开启mysql 服务器,将mysql数据转换成RDF数据的命令:
generate-mapping -u root -p root -o kg_movie.ttl jdbc:mysql:///kg_movie
执行完毕后,生成了映射文件kg_movie.ttl [在d2rp目录下],做以下修改:
1.删除/注释掉第一个黄色框里的内容
2.添加第二个黄色框里的内容
3.第三、四个黄框 是和第一个对应 就是把文件里面vocab 全部删除 [这一步可以打开notepad++ 直接 ctrl+F 替换 vocab 为空 ]
修改完成后的文件已经放在github上。
接下来开始转化为RDF、通过使用如下命令将kg_movie.ttl转化为kg_movie.nt的RDF文件。
dump-rdf.bat -o kg_movie.nt kg_movie.ttl
导出的n-triple 文件在目录中可以看到。
以上两部分完成对数据的转换。
D2R-SPARQL 查询
可以利用D2R-server提供sparql查询:在主目录下输入命令
d2r-server.bat kg_movie.ttl
打开浏览器:http://localhost:2020
可以查看相关数据:
点击主页面的Sparql endpoint 即可进行sparql 查询:
但是这在查询另一个演员时,显示结果确是一样,原因还没搞懂。【之后搞明白原因再更新】
Python脚本进行交互
构建基于知识图谱的应用,我们希望将SPARQL查询集成在代码当中,对其进行包装便于后续开发。这里介绍一个Python第三方库:SPARQLWrapper。如其名,这是一个Python下的包装器,可以让我们十分方便地和endpoint进行交互。下面是通过SPARQLWrapper,向D2RQ endpoint发送查询“巩俐参演的评分大于7的电影有哪些”,得到结果的代码。
from SPARQLWrapper import SPARQLWrapper, JSONsparql = SPARQLWrapper("http://localhost:2020/sparql")
sparql.setQuery("""PREFIX : <http://www.kgdemo.com#>PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>SELECT ?n WHERE {?s rdf:type :Person.?s :personName '巩俐'.?s :hasActedIn ?o.?o :movieTitle ?n.?o :movieRating ?r.FILTER (?r >= 7)}
""")
sparql.setReturnFormat(JSON)
results = sparql.query().convert()for result in results["results"]["bindings"]:print(result["n"]["value"])
运行结果:
2046
Memoirs of a Geisha
荆轲刺秦王
大红灯笼高高挂
霸王别姬
活着
唐伯虎点秋香
秋菊打官司
菊豆
Hong gao liang
画魂
风月
Piao Liang Ma Ma
The Hand
以上就是D2R的使用方法 。
所有数据在这里:https://github.com/HoloLen/KG-demo-movie
参考
https://blog.csdn.net/weixin_41104835/article/details/88615715
知识图谱构建——D2R的使用(二)相关推荐
- 知识图谱构建实验笔记(二):知识图谱搭建过程与总结
文章目录 引言 命名实体识别 1. 数据预处理 2. 构建模型并预测 3. 总结 关系抽取 1. 数据预处理 2. 模型构建并预测 3. 总结 数据入库 load csv方式 neo4j-admin ...
- ChatGPT结合知识图谱构建医疗问答应用 (一) - 构建知识图谱
一.ChatGPT结合知识图谱 在本专栏的前面文章中构建 ChatGPT 本地知识库问答应用,都是基于词向量检索 Embedding 嵌入的方式实现的,在传统的问答领域中,一般知识源采用知识图谱来进行 ...
- [知识图谱构建] 二.《Neo4j基础入门》基础学习之创建图数据库节点及关系
该系列文章主要讲解知识图谱及Neo4j图数据库的用法,本篇文章是作者学习<Neo4j基础入门>书籍的在线笔记,主要讲解Neo4j的基础知识及基本语法,希望大家喜欢. 前文: [知识图谱构建 ...
- 深度应用驱动的医学知识图谱构建(二)
更多分享请关注公众号 系统之神与我同在 数研院医学知识图谱构建 1.模型建立 医学领域的知识图谱由于其知识专业性强,行业通常采用自 上而下的方式,先构建Schema,再抽取知识. 数研院医学知识图谱S ...
- CCKS-2017 行业知识图谱构建与应用-下篇
http://www.sohu.com/a/192557627_99934777 摘要: 这篇是PPT的下半部分,更加偏重于实战中关键技术的难点剖析. 行业知识图谱关键技术 上篇我们讲行业知识图谱生命 ...
- 知识图谱系统课程笔记(二)——知识抽取与挖掘
知识图谱系统课程笔记(二)--知识抽取与挖掘 文章目录 知识图谱系统课程笔记(二)--知识抽取与挖掘 OWL.RDF与RDFS关系 知识抽取任务定义和相关比赛 知识抽取技术 知识获取关键技术与难点 知 ...
- 一站式了解多模态、金融、事理知识图谱构建指南 | AI ProCon 2020
整理 | 许爱艳 出品 | AI科技大本营(ID:rgznai100) [导读]7 月 3-4 日,由 CSDN 主办的第三届 AI 开发者大会(AI ProCon 2020)在线上举行.本次大会有超 ...
- 肖仰华:知识图谱构建的三要素、三原则和九大策略 | AI ProCon 2019
演讲嘉宾 | 肖仰华(复旦大学教授.博士生导师,知识工场实验室负责人) 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 近两年,知识图谱技术得到了各行各业的关注,无论是企业公 ...
- 知识图谱构建技术初探
自底向上--知识图谱构建技术初探 from: https://www.anquanke.com/post/id/149122 发布时间:2018-06-28 16:00:40 文/阿里安全 染青 &q ...
最新文章
- Java服务端人脸识别实战开发优化
- 【计算机网络】计算机网络 OSI 参考模型 ( 计算机网络分层结构 | OSI 七层参考模型 | 应用层 | 表示层 | 会话层 | 传输层 | 网络层 | 数据链路层 | 物理层 )
- 操作系统课设——吃水果问题
- 机器学习 处理不平衡数据_在机器学习中处理不平衡数据
- 酷客多小程序实现小程序之间跳转功能,让小程序玩出新花样
- apb外设怎么分配地址
- Docker学习总结(29)——Docker核心技术与实现原理
- 运维,请警惕脚本灾难!
- 多普达,D600,Coreplayer可用的序列号(版本未查看)。
- Skyline软件二次开发初级——8如何在WEB页面中的三维地图上管理信息树
- Android开发——电话簿
- html背景图怎么做成水印,如何制作出有水印feel的PPT背景图片
- fb2 android,FBReader PDF plugin app
- matlab日历制作
- 修改Google Chrome主页
- 936烙铁芯发热芯型号判断
- Redis的初步使用教程
- IP协议及MAC帧格式
- 2019DevFest | 从互联网前端到2B交付型前端-探索面向交付的实用前端技术栈
- chrome 报错connection is not private. NET::ERR_CERT_COMMON_NAME_INVALID Provisional headers warning
热门文章
- 理想低通滤波器、Butterworth滤波器和高斯滤波器(matlab)
- html中搜索栏怎么写,html搜索框怎么做
- 津门杯GoOSS和302重定向漏洞
- 计算机网络保研面试题整理(自用)
- CTime和CTimeSpan
- 1822 - Failed to add the foreign key constraint. Missing index for constraint ‘fk_tno_course‘ in the
- 【参考文献】骨骼肌成肌细胞低血清培养​
- 《Large scale GAN training for high fidelity natural image synthesis》论文阅读记录
- 网页源代码隐藏域中存在密码
- 【Redux 和 React-Recux】