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
```