目录

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)相关推荐

  1. Atitit 知识图谱的数据来源

    Atitit 知识图谱的数据来源   2. 知识图谱的数据来源1 a) 百科类数据2 b) 结构化数据3 c) 半结构化数据挖掘AVP (垂直站点爬虫)3 d) 通过搜索日志(query record ...

  2. 不看后悔 | 分分钟教你做知识图谱大数据专家

    http://chuansong.me/n/1840839551422 知识图谱示例 假设你想搜与"联想"有关的信息,下图是谷歌搜索结果.请观察左侧和右侧红框的搜索结果有什么不同呢 ...

  3. 基于Neo4j中医方剂药材知识图谱大数据可视化分析系统的设计与开发

    基于Neo4j中医方剂药材知识图谱大数据可视化分析系统的设计与开发 设计背景 这个系统的开发初衷是笔者希望通过这个系统来学习一下Neo4j的相关技术,包括与python.java的对接.可视化等方面, ...

  4. 【NLP系列公开课】详解BERT、知识图谱、对话生成、图卷积神经网络

    大家好,我是贪心学院的小编.自从今年二月份举办的火爆的BERT.XLNet专题课以来,已经三个月没有跟大家见面了.这一次我们又给大家带来了重磅级的系列公开课,由贪心学院和京东智联云联合打造,共四次公开 ...

  5. NLP免费直播 | 两周详解BERT、知识图谱、对话生成、图卷积神经网络

    大家好,我是贪心学院的小编.自从今年二月份举办的火爆的BERT.XLNet专题课以来,已经三个月没有跟大家见面了.这一次我们又给大家带来了重磅级的系列公开课,由贪心学院和京东智联云联合打造,共四次公开 ...

  6. NLP免费直播 | 两周讲透图卷积神经网络、BERT、知识图谱、对话生成

    大家好,我是贪心学院的小编.自从今年二月份举办的火爆的BERT.XLNet专题课以来,已经三个月没有跟大家见面了.这一次我们又给大家带来了重磅级的系列公开课,由贪心学院和京东智联云联合打造,共四次公开 ...

  7. 【NLP免费系列直播】图卷积神经网络, BERT,知识图谱, 对话生成

    大家好,我是贪心学院的小编.自从今年二月份举办的火爆的BERT.XLNet专题课以来,已经三个月没有跟大家见面了.这一次我们又给大家带来了重磅级的系列公开课,由贪心学院和京东智联云联合打造,共四次公开 ...

  8. AI公司Diffbot推出世界上最大的知识图谱,数据量是谷歌的500倍

    Diffbot是一家小而美的初创公司,该公司通过计算机视觉.机器学习和人工智能来处理Web页面,目标是实现整个网页的"机器可读". 昨日,他们发布了据称是世界上有史以来最大的人类知 ...

  9. 大数据智能洞察、知识图谱、数据可视化技术

    智能五大技术方向 知识工程 面向垂直行业,结合专家知识.多源异构的碎片化知识和组织智能,引领从大数据分析到大知识工程进而大智慧系统的研发和落地应用.构建行业知识图谱,实现智能推理与知识服务,推进多机多 ...

  10. 【国内首家】第一个基于语音生成实时知识图谱的系统来啦!!!

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要8分钟 Follow小博主,每天更新前沿干货 基于文本生成知识图谱的研究很常见,但是基于语音生成知识图谱,这算是第一家. 在这个信息飞速发展的 ...

最新文章

  1. 华北理工大学轻工学院计算机在哪个校区,如何坐公交去路北区的华北理工大学轻工学院(北校区)-行政综合楼| Moovit...
  2. [转]PetShop的系统架构设计
  3. 转换汉字为unicode形式的字符串和转换unicode形式字符串转换成汉字
  4. Eclipse配置CAS client
  5. 如何更换里讯浏览器的皮肤?里讯浏览器更换皮肤的方法
  6. magento 获取类别和子类别 Display Categories and SubCategories in Magento
  7. ubuntu20.10下mysql8数据库的安装(亲测)
  8. python list删除元素速度慢_python list(python list删除元素是要注意的坑点)
  9. HttpComponents之httpclient基本使用方法
  10. ocRuntime基本功
  11. 量化交易 交易流程与框架
  12. 收藏!示波器探头的选择与使用
  13. 程序员10大修炼之道,学会这些月入百万不是梦
  14. ffmpeg学习日记5-使用ffmpeg进行h264解码
  15. Poco C++类库使用说明
  16. Macbook Pro 外接显示器后,鼠标滑动延迟
  17. 电商平台分析平台----需求六:实时统计之黑名单机制
  18. 如何查询快递单号的全部物流信息
  19. Luatos学习:Air101点灯
  20. C++与C#相比,哪个更适合开发大型游戏?

热门文章

  1. Spark 高难度对话 SQL Server - 续篇
  2. 矩阵求导公式的推导和计算(公式推导法)
  3. 小马哥服务器系统激活,Vue项目接口.md
  4. SQLServer 大容量导入导致死锁和系统变慢问题
  5. 微信生成海报 服务器性能,微信小程序生成清晰海报
  6. excel高级筛选怎么用_Excel高级筛选使用
  7. 出售主题HTML代码,房地产HTML主题
  8. 第三章:Servlet、ServletConfig、ServletContext
  9. 关于电子计算机的热点,计算机如何成为热点? 8台计算机wifi热点软件推荐
  10. 华为:链路聚合配置LACP实现提高带宽