深蓝学院的知识图谱课程需要安装以下软件:
1、 mysql
2、 pytorch
3、 pycharm
4、jupyter notebook
不用安装,下载即可使用
4、 Protege-5.5.0
5、 neo4j-community
6、 apache-jena
7、 apache-jena-fuseki-3.12.0
8、 d2rq-0.8.1
安装过程中碰到一些问题,总结一下方便后来者吧(其实直接在系统里安装好环境比虚拟机要好用很多):
mysql在mac上我们使用brew来管理是最方便的,安装brew如果使用国外默认地址会很慢,已经有高手写好了脚本,让你可以选择国内最大的几个镜像来安装,整个过程交互式的,没有难度了:
/bin/zsh -c"$(curl -fsSL https://gitee.com/huwei1024/HomebrewCN/raw/master/Homebrew.sh)"
感谢作者(https://blog.csdn.net/qq_29496469/article/details/113834952)
然后就可以使用
brew install mysql 来安装mysql最新版了
mysql.server start来启动
mysql.server stop 关闭
命令行访问mysql -uroot
如果要客户端访问,可以用pycharm,也可以用mysql workbench(官网的)
pytorch是python的库,省心点可以用anaconda,可以管理整个python环境,为不同的项目创建不同的环境,安装相同包的不同版本,个人数据科学省心推荐,但是公司要购买,可以用Miniforge3的conda代替(如果你的mac是最新的M1芯片,那么是不能安装anaconda的,只能使用Miniforge3的conda,命令行管理,其实对熟悉的人来说更方便),anaconda是可视化的,且提供了pycharm/jupyter notebook/jupyter lab等软件.
安装好anaconda或Miniforge3的conda之后,就可以用
conda install pytorch 来安装pytorch1.8.0版了
下面是直接可用的软件,在使用d2rq和jena的时候还是遇到很多问题的,先提供一下百度网盘地址,节省下载时间:
链接: https://pan.baidu.com/s/110AkcS1_ctzy-b9xceMRdg 密码: moj6
问题1:d2rq运行报错:
./generate-mapping -u root -o kg_demo_movie_mapping.ttl jdbc:mysql:///kg_demo_movie
Database connection to jdbc:mysql:///kg_demo_movie failed (user: root): Unknown initial character set index '255' received from server. Initial client character set can be forced via the 'characterEncoding' property. (E54)
这个错误实际上是mysql-connect-java包有问题,下载5.1版最新的5.1.49,放到lib/db-drivers中,把原来的5.1.18删除,可以过了,只是有个提示,ssl默认的,可以指定关闭ssl
./generate-mapping -u root -o kg_demo_movie_mapping.ttl jdbc:mysql:///kg_demo_movie\?useSSL=false
这样是完全没有任何报错的
5.1.49版mysql-java包也在百度网盘中.
问题2:
./dump-rdf -o kg_demo_movie.nt ./kg_demo_movie_mapping.ttl
这个报错java.lang.IllegalArgumentException: Invalid version number: Version number may be negative or greater than 255
这个是我机器上的java版本是1.8.0.281,小版本281超过了255造成的,作者毕竟很早之前写的了...那时恐龙还是满地跑的...
有两个解决方案:安装jdk-11.0.10_osx-x64_bin.dmg,这个jdk小版本号不超过255,就搞定了.
还有就是安装1.8.0.xx降级版了(如果一定要用1.8的话)
搞定之后就可以启动d2rq-server了,这里略过了一些修改实体定义文件的细节,有需要的可以私信交流,movie项目运作起来应该看起来是这样的:
http://localhost:2020
在首页底部有SPARQL入口,基于ajax的sparql,链接:http://localhost:2020/snorql/
周星驰演过哪些电影:
SELECT ?n WHERE {
?s rdf:type :Person.
?s :personName "周星驰".
?s :hasActedIn ?o.
?o :movieTitle ?n
}
LIMIT 10
少林足球的演员表:
SELECT ?n WHERE {
?s rdf:type :Movie.
?s :movieTitle "少林足球".
?a :hasActedIn ?s.
?a :personName ?n
}
LIMIT 10
问题3:apache-jena用了最新版3.17,
Server ERROR Exception in initialization: the loading of content into /apache-jena-fuseki-3.17.0/run/configuration/fuseki_conf.ttl#model_inf was aborted because of Read-only object file
解决方案:
这是由于fuseki版本升级所导致的问题,ja:baseModel <#tdbGraph> ;改为 ja:MemoryModel <#tdbGraph> ;即可顺利运行。
问题4:运行后的fuseki_server没有数据,并没有add one等正常按钮,原因是设置问题,默认localhost被关闭了,解决:
进入 apache-jena-fuseki-3.17.0\run
修改 shiro.ini 配置文件
注释 /$/** = localhostFilter,然后重启