Openlink Virtuoso的安裝與初階使用

這些年玩過不少SPARQL Endpoints,如D2RARC2OWLIM(現在的GraphDB)、最早接觸的4Store 和符合OGC GeoSPARQL規範的BBN Parliament,一直沒有機會好好研究一下 Openlink Virtuoso,從W3C Wiki中對於SPARQL Endpoints的整理,和其它領域的整理中,如醫學,不難發現,Openlink Virtuoso是一套建立SPARQL Endpoint常用的軟體。

Virtuoso有開源版和商業版,到了第7版後二種版本的差異不太,對於學研單位實驗室的使用,和早期POC開發而言,提供充足的功能,從官網的比較看來,商業版會比開源版多了一些的功能,例如,第三方關連式資料庫的連結、叢集(clustering)、和資料複製(data replication)等。

安裝

Virtuoso可支援Linux、Solars、Mac OSx和Windows等作業系統,除了有開源碼可以自行編譯外,也有便利的安裝方式,如

  1. Windows有Binaries 的安裝檔
  2. Ubuntu 上 apt-get install
  3. OSx 上 brew install virtuoso

以Mac OS X中的brew安裝為例,是在 /usr/local/Cellar/virtuoso/7.2.4.2,Virtuoso安裝的主要內容和結構可以詳見http://vos.openlinksw.com/owiki/wiki/VOS/VirtConfigScale

其中有幾個重要的部份:

  • virtuoso.ini 是VDBMS的設定檔,位在 /usr/local/Cellar/virtuoso/7.2.4.2/lib/virtuoso/db (位置有可以會不一樣)

  • virtuoso-t 是啟動Virtuoso server的指令,須配合virtuoso.ini 執行,例如,
 $virtuoso-t -c var/lib/virtuoso/db/virtuoso.ini

或者,加上-f,讓server運作的情形在幕前(front)顯示,例如,

 $virtuoso-t -f -c var/lib/virtuoso/db/virtuoso.ini

  • iSQL(Interactive SQL) 是Virtuoso的查詢程式。

進入系統

Virtuoso啟動後,預設會跑在8890埠上。在左上角輸入預設的帳號和密碼,dba和dba,即可進入系統。

載入資料

要載入Virtuoso中的方法有很多,可以從前端網面的介面輸入,可以由後端,透過iSQL來載入,詳細可參考 「RDF Insert Methods in Virtuoso 」,這篇就以N3的資料為例 ,參考「Load TTL (TURTLE or N3 resource) datasets into Virtuoso Graph IRI」的說明,來操作資料如何載入。

在載入前,需先在virtuoso.ini中,在DirsAllowed加入放資料集的路徑,例如資料是放在/tmp的話,就需要把./tmp加入,最後,在iSQL的介面中,輸入以下的命令,資料即可儲存到Virtuoso。

SQL> DB.DBA.TTLP_MT (file_to_string_output ('/tmp/tap.nt'), '', 'http://tap.linkedopendata.tw');

查詢

待資料輸入後,可以到SPARQL介面 http://localhost:8890/sparql  查詢資料,如

SELECT * WHERE {
?a ?b ?c
} LIMIT 10

這個SPARQL查詢會隨機地反應出10的結果。

另一個查詢方式則是可以利用iSQL的介面,

SPARQL SELECT * WHERE {
?a ?b ?c
} LIMIT 10

或者直接在Terminal上,用iSQL查詢,先把SPARQL查詢用文字編輯器編寫好,如上述的SPARQL查詢寫在test.sparql,並在terminal上輸入下列命令,一樣可以得到查詢結果。

$ isql 127.0.0.1:1111 dba dba test.sparql > results.txt

 

 

如何安裝4store

所謂的「triplestore」也就是用來儲存的RDF的資料庫,並可以應用類似SQL的語言來查詢。現在已經有許多發展不錯的triplestore。這裡介紹一個輕簡的triplestore—4store的安裝。

1.安裝相關套件

sudo apt-get install build-essential libpcre3-dev libglib2.0-dev ncurses-dev libreadline-dev libtool libxml2-dev libxslt-dev automake git-core

2.安裝raptor

wget http://download.librdf.org/source/raptor2-2.0.0.tar.gz
tar -xvzf raptor2-2.0.0.tar.gz
cd raptor2-2.0.0

3.安裝rasqal

wget http://download.librdf.org/source/rasqal-0.9.22.tar.gz
tar -xvzf rasqal-0.9.22.tar.gz
cd rasqal-0.9.22
./configure –enable-query-languages=”sparql laqrs” && make && sudo make install

4.安裝4store

git clone git://github.com/garlik/4store.git
cd 4store
git checkout a907f3e0a3717c16dabe383d1834df6f8090b97a
./autogen.sh
./configure –enable-no-prefixes
make && sudo make install

5. 測試4store

make test