【知识图谱】04RDF数据生成(使用D2RQ)
目录
1、生成TTL文件
2、修正TTL文件
2.1、删除 prefix vocab
2.2、增加主键描述:
2.3、删除冗余描述
2.4、修改属性描述值
2.5、修改关联表单属性值
2.6、修改后预览
生成RDF使用了D2RQ,安装配置见链接:
https://blog.csdn.net/shankezh/article/details/115013272
----------------------------------------------------------------------
1、生成TTL文件
使用如下命令:
C:\Program Files\d2rq-0.8.1>generate-mapping -u root -p .root -o kg_movie_map.ttl jdbc:mysql:///kg_movie
其中参数:
-u -p 是数据库的用户名和密码
-o 指输出文件,文件名称为kg_movie_map.ttl
jdbc:mysql:///kg_movie 实际写为 jdbc:mysql:/localhost//kg_movie ,因为localhost可以省略,所以是三个斜杠,kg_movie指的是数据库table名称。
2、修正TTL文件
主要涉及增加主键,删除冗余描述,修改属性
2.1、删除 prefix vocab
如下图红框内整行删除。
2.2、增加主键描述:
@prefix : <http://www.kg_movie.com#> .
如下图红框:
2.3、删除冗余描述
先删除vocab,操作如下图:
actor,movie,genre三个类都会生成xx_albel 和 xx_xx_id ,全部删除,如actor删除下图两个红框,同理,自行删除movie和genre的对应内容,这里删除的属于冗余描述,不影响后续:
2.4、修改属性描述值
ttl文件中,对于属性的描述值,修正为数据库字段的描述,这样也同时和我们使用protege设计的owl文件对应上了,如下图,同理自行修改movie和genre的属性值:
2.5、修改关联表单属性值
关联表单指的是actor_to_movie 和 movie_to_genre这两张,这里我们要印刷我们当初在protege设计的hasActedIn和hasGenre,修改如下:
很好理解,属于actor类别,hasActednIn,结果映射为movie类型,主谓宾齐全,至于为什么要把actor_to_movie改为hasActedIn,不改也行,但用的时候就得用actor_to_movie来做宾语了,这样就不和我们设计protege一致了。
同理修改另一张表的,如下:
2.6、修改后预览
修改后的kg_movie.ttl文件内容全文如下:
@prefix map: <#> .
@prefix db: <> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix d2rq: <http://www.wiwiss.fu-berlin.de/suhl/bizer/D2RQ/0.1#> .
@prefix jdbc: <http://d2rq.org/terms/jdbc/> .
@prefix : <http://www.kg_movie.com#> .map:database a d2rq:Database;d2rq:jdbcDriver "com.mysql.jdbc.Driver";d2rq:jdbcDSN "jdbc:mysql:///kg_movie";d2rq:username "root";d2rq:password ".root";jdbc:autoReconnect "true";jdbc:zeroDateTimeBehavior "convertToNull";.# Table actor
map:actor a d2rq:ClassMap;d2rq:dataStorage map:database;d2rq:uriPattern "actor/@@actor.actor_id@@";d2rq:class :actor;d2rq:classDefinitionLabel "actor";.map:actor_actor_bio a d2rq:PropertyBridge;d2rq:belongsToClassMap map:actor;d2rq:property :actor_bio;d2rq:propertyDefinitionLabel "actor actor_bio";d2rq:column "actor.actor_bio";.
map:actor_actor_chName a d2rq:PropertyBridge;d2rq:belongsToClassMap map:actor;d2rq:property :actor_chName;d2rq:propertyDefinitionLabel "actor actor_chName";d2rq:column "actor.actor_chName";.
map:actor_actor_foreName a d2rq:PropertyBridge;d2rq:belongsToClassMap map:actor;d2rq:property :actor_foreName;d2rq:propertyDefinitionLabel "actor actor_foreName";d2rq:column "actor.actor_foreName";.
map:actor_actor_nationality a d2rq:PropertyBridge;d2rq:belongsToClassMap map:actor;d2rq:property :actor_nationality;d2rq:propertyDefinitionLabel "actor actor_nationality";d2rq:column "actor.actor_nationality";.
map:actor_actor_constellation a d2rq:PropertyBridge;d2rq:belongsToClassMap map:actor;d2rq:property :actor_constellation;d2rq:propertyDefinitionLabel "actor actor_constellation";d2rq:column "actor.actor_constellation";.
map:actor_actor_birthplace a d2rq:PropertyBridge;d2rq:belongsToClassMap map:actor;d2rq:property :actor_birthplace;d2rq:propertyDefinitionLabel "actor actor_birthplace";d2rq:column "actor.actor_birthplace";.
map:actor_actor_birthday a d2rq:PropertyBridge;d2rq:belongsToClassMap map:actor;d2rq:property :actor_birthday;d2rq:propertyDefinitionLabel "actor actor_birthday";d2rq:column "actor.actor_birthday";.
map:actor_actor_repWorks a d2rq:PropertyBridge;d2rq:belongsToClassMap map:actor;d2rq:property :actor_repWorks;d2rq:propertyDefinitionLabel "actor actor_repWorks";d2rq:column "actor.actor_repWorks";.
map:actor_actor_achiem a d2rq:PropertyBridge;d2rq:belongsToClassMap map:actor;d2rq:property :actor_achiem;d2rq:propertyDefinitionLabel "actor actor_achiem";d2rq:column "actor.actor_achiem";.
map:actor_actor_brokerage a d2rq:PropertyBridge;d2rq:belongsToClassMap map:actor;d2rq:property :actor_brokerage;d2rq:propertyDefinitionLabel "actor actor_brokerage";d2rq:column "actor.actor_brokerage";.# Table actor_to_movie (n:m)
map:actor_to_movie__link a d2rq:PropertyBridge;d2rq:belongsToClassMap map:actor;d2rq:property :hasActedIn;d2rq:refersToClassMap map:movie;d2rq:join "actor_to_movie.actor_id => actor.actor_id";d2rq:join "actor_to_movie.movie_id => movie.movie_id";.# Table genre
map:genre a d2rq:ClassMap;d2rq:dataStorage map:database;d2rq:uriPattern "genre/@@genre.genre_id@@";d2rq:class :genre;d2rq:classDefinitionLabel "genre";.map:genre_genre_name a d2rq:PropertyBridge;d2rq:belongsToClassMap map:genre;d2rq:property :genre_name;d2rq:propertyDefinitionLabel "genre genre_name";d2rq:column "genre.genre_name";.# Table movie
map:movie a d2rq:ClassMap;d2rq:dataStorage map:database;d2rq:uriPattern "movie/@@movie.movie_id@@";d2rq:class :movie;d2rq:classDefinitionLabel "movie";.map:movie_movie_bio a d2rq:PropertyBridge;d2rq:belongsToClassMap map:movie;d2rq:property :movie_bio;d2rq:propertyDefinitionLabel "movie movie_bio";d2rq:column "movie.movie_bio";.
map:movie_movie_chName a d2rq:PropertyBridge;d2rq:belongsToClassMap map:movie;d2rq:property :movie_chName;d2rq:propertyDefinitionLabel "movie movie_chName";d2rq:column "movie.movie_chName";.
map:movie_movie_foreName a d2rq:PropertyBridge;d2rq:belongsToClassMap map:movie;d2rq:property :movie_foreName;d2rq:propertyDefinitionLabel "movie movie_foreName";d2rq:column "movie.movie_foreName";.
map:movie_movie_prodTime a d2rq:PropertyBridge;d2rq:belongsToClassMap map:movie;d2rq:property :movie_prodTime;d2rq:propertyDefinitionLabel "movie movie_prodTime";d2rq:column "movie.movie_prodTime";.
map:movie_movie_prodCompany a d2rq:PropertyBridge;d2rq:belongsToClassMap map:movie;d2rq:property :movie_prodCompany;d2rq:propertyDefinitionLabel "movie movie_prodCompany";d2rq:column "movie.movie_prodCompany";.
map:movie_movie_director a d2rq:PropertyBridge;d2rq:belongsToClassMap map:movie;d2rq:property :movie_director;d2rq:propertyDefinitionLabel "movie movie_director";d2rq:column "movie.movie_director";.
map:movie_movie_screenwriter a d2rq:PropertyBridge;d2rq:belongsToClassMap map:movie;d2rq:property :movie_screenwriter;d2rq:propertyDefinitionLabel "movie movie_screenwriter";d2rq:column "movie.movie_screenwriter";.
map:movie_movie_genre a d2rq:PropertyBridge;d2rq:belongsToClassMap map:movie;d2rq:property :movie_genre;d2rq:propertyDefinitionLabel "movie movie_genre";d2rq:column "movie.movie_genre";.
map:movie_movie_star a d2rq:PropertyBridge;d2rq:belongsToClassMap map:movie;d2rq:property :movie_star;d2rq:propertyDefinitionLabel "movie movie_star";d2rq:column "movie.movie_star";.
map:movie_movie_length a d2rq:PropertyBridge;d2rq:belongsToClassMap map:movie;d2rq:property :movie_length;d2rq:propertyDefinitionLabel "movie movie_length";d2rq:column "movie.movie_length";.
map:movie_movie_releaseTime a d2rq:PropertyBridge;d2rq:belongsToClassMap map:movie;d2rq:property :movie_releaseTime;d2rq:propertyDefinitionLabel "movie movie_releaseTime";d2rq:column "movie.movie_releaseTime";.
map:movie_movie_language a d2rq:PropertyBridge;d2rq:belongsToClassMap map:movie;d2rq:property :movie_language;d2rq:propertyDefinitionLabel "movie movie_language";d2rq:column "movie.movie_language";.
map:movie_movie_achiem a d2rq:PropertyBridge;d2rq:belongsToClassMap map:movie;d2rq:property :movie_achiem;d2rq:propertyDefinitionLabel "movie movie_achiem";d2rq:column "movie.movie_achiem";.# Table movie_to_genre (n:m)
map:movie_to_genre__link a d2rq:PropertyBridge;d2rq:belongsToClassMap map:movie;d2rq:property :hasGenre;d2rq:refersToClassMap map:genre;d2rq:join "movie_to_genre.movie_id => movie.movie_id";d2rq:join "movie_to_genre.genre_id => genre.genre_id";.
本篇内容完成。
【知识图谱】04RDF数据生成(使用D2RQ)相关推荐
- Atitit 知识图谱的数据来源
Atitit 知识图谱的数据来源 2. 知识图谱的数据来源1 a) 百科类数据2 b) 结构化数据3 c) 半结构化数据挖掘AVP (垂直站点爬虫)3 d) 通过搜索日志(query record ...
- 不看后悔 | 分分钟教你做知识图谱大数据专家
http://chuansong.me/n/1840839551422 知识图谱示例 假设你想搜与"联想"有关的信息,下图是谷歌搜索结果.请观察左侧和右侧红框的搜索结果有什么不同呢 ...
- 基于Neo4j中医方剂药材知识图谱大数据可视化分析系统的设计与开发
基于Neo4j中医方剂药材知识图谱大数据可视化分析系统的设计与开发 设计背景 这个系统的开发初衷是笔者希望通过这个系统来学习一下Neo4j的相关技术,包括与python.java的对接.可视化等方面, ...
- 【NLP系列公开课】详解BERT、知识图谱、对话生成、图卷积神经网络
大家好,我是贪心学院的小编.自从今年二月份举办的火爆的BERT.XLNet专题课以来,已经三个月没有跟大家见面了.这一次我们又给大家带来了重磅级的系列公开课,由贪心学院和京东智联云联合打造,共四次公开 ...
- NLP免费直播 | 两周详解BERT、知识图谱、对话生成、图卷积神经网络
大家好,我是贪心学院的小编.自从今年二月份举办的火爆的BERT.XLNet专题课以来,已经三个月没有跟大家见面了.这一次我们又给大家带来了重磅级的系列公开课,由贪心学院和京东智联云联合打造,共四次公开 ...
- NLP免费直播 | 两周讲透图卷积神经网络、BERT、知识图谱、对话生成
大家好,我是贪心学院的小编.自从今年二月份举办的火爆的BERT.XLNet专题课以来,已经三个月没有跟大家见面了.这一次我们又给大家带来了重磅级的系列公开课,由贪心学院和京东智联云联合打造,共四次公开 ...
- 【NLP免费系列直播】图卷积神经网络, BERT,知识图谱, 对话生成
大家好,我是贪心学院的小编.自从今年二月份举办的火爆的BERT.XLNet专题课以来,已经三个月没有跟大家见面了.这一次我们又给大家带来了重磅级的系列公开课,由贪心学院和京东智联云联合打造,共四次公开 ...
- AI公司Diffbot推出世界上最大的知识图谱,数据量是谷歌的500倍
Diffbot是一家小而美的初创公司,该公司通过计算机视觉.机器学习和人工智能来处理Web页面,目标是实现整个网页的"机器可读". 昨日,他们发布了据称是世界上有史以来最大的人类知 ...
- 大数据智能洞察、知识图谱、数据可视化技术
智能五大技术方向 知识工程 面向垂直行业,结合专家知识.多源异构的碎片化知识和组织智能,引领从大数据分析到大知识工程进而大智慧系统的研发和落地应用.构建行业知识图谱,实现智能推理与知识服务,推进多机多 ...
- 【国内首家】第一个基于语音生成实时知识图谱的系统来啦!!!
点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要8分钟 Follow小博主,每天更新前沿干货 基于文本生成知识图谱的研究很常见,但是基于语音生成知识图谱,这算是第一家. 在这个信息飞速发展的 ...
最新文章
- 华北理工大学轻工学院计算机在哪个校区,如何坐公交去路北区的华北理工大学轻工学院(北校区)-行政综合楼| Moovit...
- [转]PetShop的系统架构设计
- 转换汉字为unicode形式的字符串和转换unicode形式字符串转换成汉字
- Eclipse配置CAS client
- 如何更换里讯浏览器的皮肤?里讯浏览器更换皮肤的方法
- magento 获取类别和子类别 Display Categories and SubCategories in Magento
- ubuntu20.10下mysql8数据库的安装(亲测)
- python list删除元素速度慢_python list(python list删除元素是要注意的坑点)
- HttpComponents之httpclient基本使用方法
- ocRuntime基本功
- 量化交易 交易流程与框架
- 收藏!示波器探头的选择与使用
- 程序员10大修炼之道,学会这些月入百万不是梦
- ffmpeg学习日记5-使用ffmpeg进行h264解码
- Poco C++类库使用说明
- Macbook Pro 外接显示器后,鼠标滑动延迟
- 电商平台分析平台----需求六:实时统计之黑名单机制
- 如何查询快递单号的全部物流信息
- Luatos学习:Air101点灯
- C++与C#相比,哪个更适合开发大型游戏?
热门文章
- Spark 高难度对话 SQL Server - 续篇
- 矩阵求导公式的推导和计算(公式推导法)
- 小马哥服务器系统激活,Vue项目接口.md
- SQLServer 大容量导入导致死锁和系统变慢问题
- 微信生成海报 服务器性能,微信小程序生成清晰海报
- excel高级筛选怎么用_Excel高级筛选使用
- 出售主题HTML代码,房地产HTML主题
- 第三章:Servlet、ServletConfig、ServletContext
- 关于电子计算机的热点,计算机如何成为热点? 8台计算机wifi热点软件推荐
- 华为:链路聚合配置LACP实现提高带宽