电影知识图谱demo(二) —— D2RQ初探随记
一、安装踩坑
虽然不知道是否安装流程复杂化了,但整通了。
首先是下载地址官网,不过我不知道为什么下载下来里面的generate-mapping之类的完全用不了,会显示command not found
,折腾了一阵发现github上的是可以的.
下载之后看readme提到要装git、Java JDK和Apache Ant(官方Quick start没提这个),前两个电脑里都有,后面的ant是没有的,看博客里都没提到要装,但手册要求就整上再说。整体安装是没什么坑的,基本上按照网上的就出来了,基本就是下载之后改下路径。
另一个坑就是驱动版本的问题,这里我用的是mysql,不过显示如下:
MacBooktekiMacBook-Air:d2rq-0.8.1 macbook$ ./generate-mapping -o mapping.ttl -d com.mysql.jdbc.Driver -u root -p 123456 jdbc:mysql://localhost/Academic
>> Database connection to jdbc:mysql://localhost/Academic failed (user: root): Client does not support authentication protocol requested by server; consider upgrading MySQL client (E54)
在网上下了一个mysql-connector-java-5.1.47.jar
的版本替换掉/d2rq-0.8.1/lib/db-drivers/mysql-connector-java-5.1.18-bin.jar
就可以成功运行。mysql-connector-java-5.1.47.jar百度云盘下载地址,提取码: 2huj 。
二、新手教程
-
就是前面安装准备工作
-
先创建一个数据库用来后面的转化,使用http://d2rq.org/d2rq-language上的iswc-mysql.sql脚本创建数据库Academic:
# 以下皆在命令行格式下
# 连接数据库服务器,然后需要输入密码
mysql -u root -p
>> Enter password:
# 创建数据库
CREATE DATABASE Academic;
# 选择使用该数据库
USE Academic;
# 导入sql
source ./iswc-mysql.sql
- d2rq文件目录下执行以下命令以下命令即可生成mapping.ttl
./generate-mapping -o mapping.ttl -d com.mysql.jdbc.Driver -u root -p 123456 jdbc:mysql://localhost/Academic
其中:
- -o mapping.ttl –> 表示生成一个mapping.ttl的映射文本
- -d com.mysql.jdbc.Driver –> 表示连接Mysql数据库,这里是驱动注册
- -u root –> 表示数据库Academic用户名为root
- -p 123456 –> 表示数据库Academic密码为123456
- jdbc:mysql://localhost/Academic –> 本地数据库URI
-
使用
./d2r-server mapping.ttl
启动服务 -
使用
./dump-rdf.bat
可以生成真正的RDF数据
三、在自己的数据上实践
- 首先将之前的电影知识图谱demo(一)中的数据转化到本地的数据库中,这里我使用的是Navicat Premium直接创建表导入
注:这里的命名稍微改了下,因为在使用过程中遇到了bug,不过具体不知道是不是这个的问题,大家在使用过程中稍微主要列名就行
2.如上面的格式一样,使用./generate-mapping生成map:./generate-mapping -o mapping.ttl -d com.mysql.jdbc.Driver -u root -p 123456 jdbc:mysql://localhost/Movie
看提示新版本应该可以自动获取和数据库的连接服务,不过我这里用的还是老版本。生成的mapping.ttl文件如下,可以使用Protege进行修改:
- 使用
./d2r-server mapping.ttl
启动服务,打开浏览器输入 http://localhost:2020, 便可以默认的 HTML 浏览器、DF 浏览器以及 SPARQL 查询端对我们的数据进行访问
- 使用`./dump-rdf -o kg_demo_movie.nt ./mapping.ttl`` 生成真正的RDF数据
当然不止能生成.nt,其支持导出的RDF格式有TURTLE
、RDF/XML
、RDF/XML-ABBREV
、N3
和N-TRIPLE
。N-TRIPLE
是默认的输出格式。