1、安装MySQL5,并新建movies库
2、导入数据
https://github.com/neohope/kg-demo-for-movie/tree/master/data/movies.sql
3、下载d2rq,并配置好JDK环境变量
http://d2rq.org/
4、利用d2rq生成mapping
generate-mapping -u movie -p password -o movies_mapping.ttl jdbc:mysql:///movies
5、手工编辑ttl,任务如下
设置正确的域名
修正类名与属性名
删除一些不需要的字段
修改前后的数据可以在这里找到
https://github.com/neohope/kg-demo-for-movie/tree/master/data/movies_mapping.ttl
https://github.com/neohope/kg-demo-for-movie/tree/master/data/movies_mapping_ok.ttl
6、输出RDF文件,用于后续的教程
dump-rdf.bat -o movies_mapping.nt movies_mapping_ok.ttl
7、启动d2r服务
d2r-server.bat movies_mapping_ok.ttl
8、访问及浏览数据
http://localhost:2020/
9、查询
http://localhost:2020/snorql/
#周星驰演过的电影
SELECT ?title WHERE {
?aPerson rdf:type :Person.
?aPerson :personName '周星驰'.
?aPerson :hasActedIn ?aMovie.
?aMovie :movieTitle ?title
}
LIMIT 10
#英雄的演员
SELECT ?actor WHERE {
?aMovie rdf:type :Movie.
?aMovie :movieTitle '英雄'.
?aPerson :hasActedIn ?aMovie.
?aPerson :personName ?actor
}
LIMIT 10
#巩俐参演的,评分高于7的电影
SELECT ?title WHERE {
?aPerson rdf:type :Person.
?aPerson :personName '巩俐'.
?aPerson :hasActedIn ?aMovie.
?aMovie :movieTitle ?title.
?aMovie :movieRating ?rating.
FILTER (?rating>=7)
}
LIMIT 10
10、通过python访问
https://github.com/neohope/kg-demo-for-movie/tree/master/src/query-d2rq.py
参考链接:
https://zhuanlan.zhihu.com/knowledgegraph
https://github.com/SimmerChan/KG-demo-for-movie