Virtuoso 图数据库
1、virtuoso 是一种图数据库,根据下图请看2019年各图数据库的排名
2、下载virtuoso数据库时,一般下载已经编译好的generic版本https://sourceforge.net/projects/virtuoso/files/virtuoso/
3、下载好后进行解压,一般解压到/usr/local目录下,可以选择配置环境变量,vim /etc/profile, 如下
4、将virtuoso-openlink下的database文件夹中的virtuoso.ini.sample重命名为virtuoso.ini
5、启动终端,cd到database目录下,输入virtuoso-t -fd即可启动服务
6、在浏览器中输入http://localhost:8890进入8890端口网页即可打开其初始页面。点击conductor,输入用户名和密码(都是dba),可进入数据库服务页面。
7、点击linkedata之后再点击Quad Store Upload就可以加载rdf数据了,其中FIle是你需要上传的ttl格式或者xml格式的rdf数据(virtuoso支持多种格式的rdf数据,不止这两种)。其中的Named Graph IRI需要你自己来设定。作为测试我们将其改为http://localhost:8890/test。点击Upload完成上传数据。
8、在项目kbqa-ar-smcnn-master中,就需要根据自己安装的virtuoso数据库,修改kbqa-ar-smcnn-master/freebase_data/dump_virtuoso_data目录下的virtuoso.ini 文件
9、接下来就是启动virtuoso图数据库了,执行语句
virtuoso-t +foreground +configfile ./virtuoso.ini
## Start the Virtuoso server
This may need to be under the root user.
```
virtuoso-t +foreground +configfile ./virtuoso.ini
```
## Set up
Run the setup script. This takes a long time. It fetches datasets, does some preprocesses, and dumps Freebase triples into Virtuoso.
```
sh data_setup.sh
'''
向数据库中写入数据,这里面因为网络的原因修改了data_step.sh文件,除了修改一点内容外,基本按照此文件顺序进行处理数据
## Training
(1)- entity detection model
```
cd entity_detection
sh process.sh (https://www.jianshu.com/p/c15150fe44b9)
这其中有需要注意的地方,Virtuoso的ISQL与系统现有的unixODBC的那个ISQL冲突(会出现[ISQL]ERROR: Could not SQLConnect错误信息),所以需要将virtuoso的bin目录下的isql重命名。我将其重命名为isql-vt,这样在终端输入isql-vt 1111 dba dba即可进入isql。
python predict.py --trained_model XXX --results_path results --save_qadata
""
(2)- relation detection model
```
cd relation_ranking
python seqRankingLoader.py --batch_size 64 --neg_size 50 #Create training data for relation detection
sh process.sh
python predict.py --trained_model XXX --results_path results --predict
```