SlideShare a Scribd company logo
1 of 14
Download to read offline
OpenLink Virtuoso のインストールと設定 v1.0
・ Wikidataダンプの取得
・ Mac版インストールのTips
・ Win版インストールのTips
(Mac版とほぼ同じ)
WikidataのLocal Endpoint設定について概説する。
負荷が大きいSPARQLクエリは、公式のWeb Endpointだと、ほぼほぼタイムアウトになるので、
Local Endpointが必要になる。(Ex. タンパク質の下位概念には、70万以上のクラスがある。)
ただ、公式のWeb EndpointとSPARQLの書き方が分かるので、少し面倒な部分もある。
参考資料: オープンデータ時代の標準Web API SPARQL (p.203-213)
Webコンテンツ OKBPのブログ, SPARQLthon19, TogoWiki
WikiData RDF Dump のダウンロードURL
https://dumps.wikimedia.org/wikidatawiki/entities/
現在、古崎先生が作ったWikiData NTファイル使用
subClassOf、instance、日英labelのみ
WikiDataダンプの取得
latest-truthy.nt.bz2 をダウンロードする。
データサイズ(2020年4月現在)
23.21 GB => 608.25BG (解凍後)
=> 適時、テキスト処理で必要箇所を抜き出して使う。
Openlink Virtuoso(Mac版)
GitHubから、v7.2.5.1 ダウンロード・インストール
Virtuoso の起動
=> アプリをダブルクリック
=> メニューバーの右上に、Vアイコンが表示される
=>「 Start VOS Database 」でVOSをスタート
=>「 Stop VOS Database 」でストップ
https://github.com/openlink/virtuoso-opensource/releases
Virtuosoの設定 - メモリ設定、ポート設定、ロードディレクトリの追加
/Applications/Virtuoso¥ Open¥ Source¥ Edition¥ v7.2.app/Contents/virtuoso-opensource/database/virtuoso.ini
にある設定ファイル( virtuoso.ini )を修正する
¥ => \ (半角)
に変更すること
(4)HTTPServerPortの変更
デフォルト8890でも問題ない
(2)Serverportの変更
デフォルト 1111 で問題ない
(6)ResultSetMaxRows
100000-1000000の範囲くらいで設定
(5)SQL Prefetchの設定
BYTES: 10000-100000の範囲くらいで設定
(3)PCメモリ上限の設定
コメントアウト(;)を変える
(1)MaxCheckpointRemap
の変更
128GBの場合は
NumberOfBuffers = 10900000
MaxDirtyBuffers = 8000000
DirsAllowedの追加
Mac版は絶対パス可
databaseからの相対パス可
$ open /Applications/Virtuoso¥ Open¥ Source¥ Edition¥ v7.2.app/Contents/virtuoso-
opensource/database
Virtuosoの設定 – CPRS設定、SERVICE旬の設定
http://localhost:8890/conductor/
にブラウザ(Google Chrome)でアクセスする
ID: dba、PW: dba でログインする
(2)Cross-Origin Resource
sharingを「 * 」に設定する
(4)SPARQL_SPONGEで
Selected users/groups に
SPARQL を追加する
(1)Web Application Server > Virtual Domain & Directories
> Interface 0.0.0.0 > /sparqlを探して、Editする
(3)System Admin > User Accounts > Roles
> SPARQL_SPONGE を探して、Editする
Virtuosoの設定 - PATHの追加
## パス設定の確認
$ echo $PATH
$ cat ~/.bash_profile
## Virtuosoのパスを追加
$echo 'export PATH=/Applications/Virtuoso¥ Open¥ Source¥ Edition¥ v7.2.app/Contents/virtuoso-
opensource/bin:$PATH' >> ~/.bash_profile
## 確認
$ cat ~/.bash_profile
## 適用、確認
$ source ~/.bash_profile
$ echo $PATH
$ which isql
Þ 基本的に、ファイルの読み込みには、isql を使うことを推奨
isql により、NTファイル (wikidata_min_20200306.nt) を読み込む
(ターミナル起動)
$ isql 1111 dba dba
>log_enable(2,1);
>DB.DBA.TTLP_MT(file_to_string_output(‘/Users/[YourName]/Desktop/wikidata_min_20200306
.nt'), '', ‘http://localhost:8890/wikidata_min’, 81);
※ isql でのURLのコピペにバグがある、、、
※ Conductorの Linked Data > Graphs > Graphのところに、Graphが追加されたら、OK
この場合
http://localhost:8890/wikidata_min
がGraphリストに表示れており、OK。
(Mac版の場合)wikidata_min_20200306.nt 20.34 GBを読み込むと、virtuoso-tの使用メモリは、
27.25GBくらい(+25GB)で、NTファイルの1.25倍が目安
Local EndpointでのSPARQLの動作確認
SPARQL Execution
あるいは
http://localhost:8890/sparql
で動作確認
select ?s ?p
where { ?s ?p "化合物"@ja. } limit 100
instance of (wdt:P31)
subclass of (wdt:P279*)
select ( count(?s) As ?count )
where { ?s ?p ?o }
(SPARQLの例)
Openlink Virtuoso(Win版)
GitHubから、v7.2.5.1 ダウンロード・インストール
https://github.com/openlink/virtuoso-opensource/releases
あるいは
http://vos.openlinksw.com/owiki/wiki/VOS
/VOSDownload#Microsoft%20Windows
Win版Virtuoso のLocal Endpointの立て方
セットアップ ~ SPARQLクエリを投げるまで
1. Win版 Virtuoso をダウンロード・インストール
2. Virtuoso Services Control を起動する(起動感はほぼなし)
3. Virtuosoの設定は、Mac版と同じ設定(Mac版の説明を参照のこと)
4. ブラウザ上で一度Virtuosoの起動確認( http://localhost:8890/conductor)
5. isqlを実行して、NTファイルを読み込む
6. SPARQLクエリの実行
( Win版の設定でハマった時のメモ)
別PCから接続する場合、Win側のファイアーウォール設定が必要
=> ネットワークの状態 > Windows ファイアーウォール > 詳細設定
=> 受信規則、送信規則に8890ポートとvirtuosoプログラムの許可規則を追加する
環境変数の設定が必要
環境変数で検索、パネルを開く > ユーザー環境変数Pathのところに、Virtuosoのbinパスとlibパス、
( VirtuosoHome )を追記する
intファイル内のDirsAllowedのフォルダ追加
NTファイルがあるフォルダをdatabaseディレクトリからの相対パスで書く。その際には、Win版もスラッシュ
(/)表記で書くこと。Error 4700?はコマンドの文法間違い、 Error 3200?はDirsAllowedのパスの間違い。
Win版はやや動作が不安定な
感がある。
Win版Virtuoso で実際に実行したコマンドライン
RDFデータを"C:¥Program Files¥OpenLink Software¥Virtuoso OpenSource 7.2/VirtuosoRDF"におく
> cd "C:¥Program Files¥OpenLink Software¥Virtuoso OpenSource 7.2¥database"
> isql 1111 dba dba
> log_enable(2,1);
> select cfg_item_value (virtuoso_ini_path (), 'Parameters','DirsAllowed');
cfg_item_value
VARCHAR
_______________________________________________________________________________
., ../vad, ../VirtuosoRDF
> DB.DBA.TTLP_MT(file_to_string_output('../VirtuosoRDF/wikidata_min_20200306.nt'), '',
'http://localhost:8890/wikidata_min');
Errorがでたら、一度再起動、何もメッセージが出なければ成功
(RDFデータの削除)
> isql 1111 dba dba
> shutdown();
database内の ( virtuoso.ini ) virtuoso-temp.db, virtuoso.db, virtuoso.lck, virtuoso.log, virtuoso.pxa,
virtuoso.trx を削除して、再起動する。
補足資料
Virtuoso ConductorでRDFデータを読み込む場合
(基本的に使わないこと)
Linked Data > Quad Store Upload > File
でRDFデータを読み込む
(参考)
(rdf2rdfの設定 on Mac)
$ brew install go
$ go get -u github.com/knakk/rdf2rdf
(パスの設定)
$ echo 'export PATH=/Users/sk/go/bin:$PATH' >> ~/.bash_profile
(確認)
$ which rdf2rdf
$ rdf2rdf –h
( Usage 例 )
$ cd /Users/sk/Desktop/VirtuosoRDF
$ rdf2rdf -in=wikidata_min_20200306.nt -out=wikidata_min_20200306.ttl
※ 「=」の後ろにスペースがあると動作しない
https://github.com/knakk/rdf2rdf
【Mac版設定】N-Triples <=> Turtle

More Related Content

What's hot

ナレッジグラフ/LOD利用技術の入門(前編)
ナレッジグラフ/LOD利用技術の入門(前編)ナレッジグラフ/LOD利用技術の入門(前編)
ナレッジグラフ/LOD利用技術の入門(前編)KnowledgeGraph
 
LODを使ってみよう!
LODを使ってみよう!LODを使ってみよう!
LODを使ってみよう!uedayou
 
SPARQLでマッシュアップ -LOD活用のための技術紹介-
SPARQLでマッシュアップ-LOD活用のための技術紹介-SPARQLでマッシュアップ-LOD活用のための技術紹介-
SPARQLでマッシュアップ -LOD活用のための技術紹介-uedayou
 
Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Kouji Kozaki
 
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発KnowledgeGraph
 
ナレッジグラフ入門
ナレッジグラフ入門ナレッジグラフ入門
ナレッジグラフ入門KnowledgeGraph
 
オープンデータなんかでよく使うTurtle形式なんだけどXMLと違ってどう便利なの?
オープンデータなんかでよく使うTurtle形式なんだけどXMLと違ってどう便利なの?オープンデータなんかでよく使うTurtle形式なんだけどXMLと違ってどう便利なの?
オープンデータなんかでよく使うTurtle形式なんだけどXMLと違ってどう便利なの?Tomoya Shimaguchi
 
ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)
ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)
ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)KnowledgeGraph
 
ナレッジグラフ推論チャレンジ:応募に向けた「技術勉強会」資料
ナレッジグラフ推論チャレンジ:応募に向けた「技術勉強会」資料ナレッジグラフ推論チャレンジ:応募に向けた「技術勉強会」資料
ナレッジグラフ推論チャレンジ:応募に向けた「技術勉強会」資料KnowledgeGraph
 
セマンティック・ウェブのためのRdf owl入門解説.ch5
セマンティック・ウェブのためのRdf owl入門解説.ch5セマンティック・ウェブのためのRdf owl入門解説.ch5
セマンティック・ウェブのためのRdf owl入門解説.ch5Takahiro Kubo
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRecruit Technologies
 
汎用Web API“SPARQL”でオープンデータ検索
汎用Web API“SPARQL”でオープンデータ検索汎用Web API“SPARQL”でオープンデータ検索
汎用Web API“SPARQL”でオープンデータ検索uedayou
 
ナレッジグラフとオントロジー
ナレッジグラフとオントロジーナレッジグラフとオントロジー
ナレッジグラフとオントロジーUniversity of Tsukuba
 
CSVファイルをLODとして公開するデータソン
CSVファイルをLODとして公開するデータソンCSVファイルをLODとして公開するデータソン
CSVファイルをLODとして公開するデータソンKouji Kozaki
 
Wikidataを編集してみよう!
Wikidataを編集してみよう!Wikidataを編集してみよう!
Wikidataを編集してみよう!Kouji Kozaki
 

What's hot (20)

ナレッジグラフ/LOD利用技術の入門(前編)
ナレッジグラフ/LOD利用技術の入門(前編)ナレッジグラフ/LOD利用技術の入門(前編)
ナレッジグラフ/LOD利用技術の入門(前編)
 
DBpedia Japaneseとは?
DBpedia Japaneseとは?DBpedia Japaneseとは?
DBpedia Japaneseとは?
 
LODを使ってみよう!
LODを使ってみよう!LODを使ってみよう!
LODを使ってみよう!
 
RDF Refineの使い方
RDF Refineの使い方RDF Refineの使い方
RDF Refineの使い方
 
SPARQLでマッシュアップ -LOD活用のための技術紹介-
SPARQLでマッシュアップ-LOD活用のための技術紹介-SPARQLでマッシュアップ-LOD活用のための技術紹介-
SPARQLでマッシュアップ -LOD活用のための技術紹介-
 
Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方
 
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
Linked Open Data勉強会2020 後編:SPARQLの簡単な使い方、SPARQLを使った簡単なアプリ開発
 
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
 
ナレッジグラフ入門
ナレッジグラフ入門ナレッジグラフ入門
ナレッジグラフ入門
 
Linked Open Dataとは
Linked Open DataとはLinked Open Dataとは
Linked Open Dataとは
 
オープンデータなんかでよく使うTurtle形式なんだけどXMLと違ってどう便利なの?
オープンデータなんかでよく使うTurtle形式なんだけどXMLと違ってどう便利なの?オープンデータなんかでよく使うTurtle形式なんだけどXMLと違ってどう便利なの?
オープンデータなんかでよく使うTurtle形式なんだけどXMLと違ってどう便利なの?
 
ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)
ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)
ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)
 
Web API入門
Web API入門Web API入門
Web API入門
 
ナレッジグラフ推論チャレンジ:応募に向けた「技術勉強会」資料
ナレッジグラフ推論チャレンジ:応募に向けた「技術勉強会」資料ナレッジグラフ推論チャレンジ:応募に向けた「技術勉強会」資料
ナレッジグラフ推論チャレンジ:応募に向けた「技術勉強会」資料
 
セマンティック・ウェブのためのRdf owl入門解説.ch5
セマンティック・ウェブのためのRdf owl入門解説.ch5セマンティック・ウェブのためのRdf owl入門解説.ch5
セマンティック・ウェブのためのRdf owl入門解説.ch5
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
 
汎用Web API“SPARQL”でオープンデータ検索
汎用Web API“SPARQL”でオープンデータ検索汎用Web API“SPARQL”でオープンデータ検索
汎用Web API“SPARQL”でオープンデータ検索
 
ナレッジグラフとオントロジー
ナレッジグラフとオントロジーナレッジグラフとオントロジー
ナレッジグラフとオントロジー
 
CSVファイルをLODとして公開するデータソン
CSVファイルをLODとして公開するデータソンCSVファイルをLODとして公開するデータソン
CSVファイルをLODとして公開するデータソン
 
Wikidataを編集してみよう!
Wikidataを編集してみよう!Wikidataを編集してみよう!
Wikidataを編集してみよう!
 

More from Satoshi Kume

ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデートChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデートSatoshi Kume
 
230517_chatGPT_v01.pdf
230517_chatGPT_v01.pdf230517_chatGPT_v01.pdf
230517_chatGPT_v01.pdfSatoshi Kume
 
20230314_R-universe.pdf
20230314_R-universe.pdf20230314_R-universe.pdf
20230314_R-universe.pdfSatoshi Kume
 
211204_japan_r_v01
211204_japan_r_v01211204_japan_r_v01
211204_japan_r_v01Satoshi Kume
 
211104 Bioc Asia workshop
211104 Bioc Asia workshop211104 Bioc Asia workshop
211104 Bioc Asia workshopSatoshi Kume
 
CRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @ BioPackathon
CRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @ BioPackathonCRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @ BioPackathon
CRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @ BioPackathonSatoshi Kume
 
Exchange program 071128
Exchange program 071128Exchange program 071128
Exchange program 071128Satoshi Kume
 
D3 slides (Satoshi Kume)
D3 slides (Satoshi Kume)D3 slides (Satoshi Kume)
D3 slides (Satoshi Kume)Satoshi Kume
 
AI学会 合同研究会2020 発表スライド (201120)
AI学会 合同研究会2020 発表スライド (201120)AI学会 合同研究会2020 発表スライド (201120)
AI学会 合同研究会2020 発表スライド (201120)Satoshi Kume
 
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)Satoshi Kume
 
201209 Biopackathon 12th
201209 Biopackathon 12th201209 Biopackathon 12th
201209 Biopackathon 12thSatoshi Kume
 
201126 Wikidata クラス階層 SPARQL検索
201126 Wikidata クラス階層 SPARQL検索201126 Wikidata クラス階層 SPARQL検索
201126 Wikidata クラス階層 SPARQL検索Satoshi Kume
 
201111_biopackathon_11th_v00pre
201111_biopackathon_11th_v00pre201111_biopackathon_11th_v00pre
201111_biopackathon_11th_v00preSatoshi Kume
 
200612_BioPackathon_ss
200612_BioPackathon_ss200612_BioPackathon_ss
200612_BioPackathon_ssSatoshi Kume
 
How_to_install_OpenCV_ver1.0
How_to_install_OpenCV_ver1.0How_to_install_OpenCV_ver1.0
How_to_install_OpenCV_ver1.0Satoshi Kume
 
CentOS_slide_ver1.0
CentOS_slide_ver1.0CentOS_slide_ver1.0
CentOS_slide_ver1.0Satoshi Kume
 
Mac_Terminal_ver1.0
Mac_Terminal_ver1.0Mac_Terminal_ver1.0
Mac_Terminal_ver1.0Satoshi Kume
 

More from Satoshi Kume (20)

ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデートChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
 
230517_chatGPT_v01.pdf
230517_chatGPT_v01.pdf230517_chatGPT_v01.pdf
230517_chatGPT_v01.pdf
 
20230314_R-universe.pdf
20230314_R-universe.pdf20230314_R-universe.pdf
20230314_R-universe.pdf
 
211204_japan_r_v01
211204_japan_r_v01211204_japan_r_v01
211204_japan_r_v01
 
211104 Bioc Asia workshop
211104 Bioc Asia workshop211104 Bioc Asia workshop
211104 Bioc Asia workshop
 
CRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @ BioPackathon
CRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @ BioPackathonCRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @ BioPackathon
CRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @ BioPackathon
 
Exchange program 071128
Exchange program 071128Exchange program 071128
Exchange program 071128
 
D3 slides (Satoshi Kume)
D3 slides (Satoshi Kume)D3 slides (Satoshi Kume)
D3 slides (Satoshi Kume)
 
AI学会 合同研究会2020 発表スライド (201120)
AI学会 合同研究会2020 発表スライド (201120)AI学会 合同研究会2020 発表スライド (201120)
AI学会 合同研究会2020 発表スライド (201120)
 
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
 
201209 Biopackathon 12th
201209 Biopackathon 12th201209 Biopackathon 12th
201209 Biopackathon 12th
 
201126 Wikidata クラス階層 SPARQL検索
201126 Wikidata クラス階層 SPARQL検索201126 Wikidata クラス階層 SPARQL検索
201126 Wikidata クラス階層 SPARQL検索
 
201111_biopackathon_11th_v00pre
201111_biopackathon_11th_v00pre201111_biopackathon_11th_v00pre
201111_biopackathon_11th_v00pre
 
200612_BioPackathon_ss
200612_BioPackathon_ss200612_BioPackathon_ss
200612_BioPackathon_ss
 
How_to_install_OpenCV_ver1.0
How_to_install_OpenCV_ver1.0How_to_install_OpenCV_ver1.0
How_to_install_OpenCV_ver1.0
 
CentOS_slide_ver1.0
CentOS_slide_ver1.0CentOS_slide_ver1.0
CentOS_slide_ver1.0
 
R_note_ODE_ver1.0
R_note_ODE_ver1.0R_note_ODE_ver1.0
R_note_ODE_ver1.0
 
Mac_Terminal_ver1.0
Mac_Terminal_ver1.0Mac_Terminal_ver1.0
Mac_Terminal_ver1.0
 
R_note_02_ver1.0
R_note_02_ver1.0R_note_02_ver1.0
R_note_02_ver1.0
 
R note 01_ver1.2
R note 01_ver1.2R note 01_ver1.2
R note 01_ver1.2
 

Openlink Virtuoso v01

  • 1. OpenLink Virtuoso のインストールと設定 v1.0 ・ Wikidataダンプの取得 ・ Mac版インストールのTips ・ Win版インストールのTips (Mac版とほぼ同じ) WikidataのLocal Endpoint設定について概説する。 負荷が大きいSPARQLクエリは、公式のWeb Endpointだと、ほぼほぼタイムアウトになるので、 Local Endpointが必要になる。(Ex. タンパク質の下位概念には、70万以上のクラスがある。) ただ、公式のWeb EndpointとSPARQLの書き方が分かるので、少し面倒な部分もある。 参考資料: オープンデータ時代の標準Web API SPARQL (p.203-213) Webコンテンツ OKBPのブログ, SPARQLthon19, TogoWiki
  • 2. WikiData RDF Dump のダウンロードURL https://dumps.wikimedia.org/wikidatawiki/entities/ 現在、古崎先生が作ったWikiData NTファイル使用 subClassOf、instance、日英labelのみ WikiDataダンプの取得 latest-truthy.nt.bz2 をダウンロードする。 データサイズ(2020年4月現在) 23.21 GB => 608.25BG (解凍後) => 適時、テキスト処理で必要箇所を抜き出して使う。
  • 3. Openlink Virtuoso(Mac版) GitHubから、v7.2.5.1 ダウンロード・インストール Virtuoso の起動 => アプリをダブルクリック => メニューバーの右上に、Vアイコンが表示される =>「 Start VOS Database 」でVOSをスタート =>「 Stop VOS Database 」でストップ https://github.com/openlink/virtuoso-opensource/releases
  • 4. Virtuosoの設定 - メモリ設定、ポート設定、ロードディレクトリの追加 /Applications/Virtuoso¥ Open¥ Source¥ Edition¥ v7.2.app/Contents/virtuoso-opensource/database/virtuoso.ini にある設定ファイル( virtuoso.ini )を修正する ¥ => \ (半角) に変更すること (4)HTTPServerPortの変更 デフォルト8890でも問題ない (2)Serverportの変更 デフォルト 1111 で問題ない (6)ResultSetMaxRows 100000-1000000の範囲くらいで設定 (5)SQL Prefetchの設定 BYTES: 10000-100000の範囲くらいで設定 (3)PCメモリ上限の設定 コメントアウト(;)を変える (1)MaxCheckpointRemap の変更 128GBの場合は NumberOfBuffers = 10900000 MaxDirtyBuffers = 8000000 DirsAllowedの追加 Mac版は絶対パス可 databaseからの相対パス可 $ open /Applications/Virtuoso¥ Open¥ Source¥ Edition¥ v7.2.app/Contents/virtuoso- opensource/database
  • 5. Virtuosoの設定 – CPRS設定、SERVICE旬の設定 http://localhost:8890/conductor/ にブラウザ(Google Chrome)でアクセスする ID: dba、PW: dba でログインする (2)Cross-Origin Resource sharingを「 * 」に設定する (4)SPARQL_SPONGEで Selected users/groups に SPARQL を追加する (1)Web Application Server > Virtual Domain & Directories > Interface 0.0.0.0 > /sparqlを探して、Editする (3)System Admin > User Accounts > Roles > SPARQL_SPONGE を探して、Editする
  • 6. Virtuosoの設定 - PATHの追加 ## パス設定の確認 $ echo $PATH $ cat ~/.bash_profile ## Virtuosoのパスを追加 $echo 'export PATH=/Applications/Virtuoso¥ Open¥ Source¥ Edition¥ v7.2.app/Contents/virtuoso- opensource/bin:$PATH' >> ~/.bash_profile ## 確認 $ cat ~/.bash_profile ## 適用、確認 $ source ~/.bash_profile $ echo $PATH $ which isql Þ 基本的に、ファイルの読み込みには、isql を使うことを推奨
  • 7. isql により、NTファイル (wikidata_min_20200306.nt) を読み込む (ターミナル起動) $ isql 1111 dba dba >log_enable(2,1); >DB.DBA.TTLP_MT(file_to_string_output(‘/Users/[YourName]/Desktop/wikidata_min_20200306 .nt'), '', ‘http://localhost:8890/wikidata_min’, 81); ※ isql でのURLのコピペにバグがある、、、 ※ Conductorの Linked Data > Graphs > Graphのところに、Graphが追加されたら、OK この場合 http://localhost:8890/wikidata_min がGraphリストに表示れており、OK。 (Mac版の場合)wikidata_min_20200306.nt 20.34 GBを読み込むと、virtuoso-tの使用メモリは、 27.25GBくらい(+25GB)で、NTファイルの1.25倍が目安
  • 8. Local EndpointでのSPARQLの動作確認 SPARQL Execution あるいは http://localhost:8890/sparql で動作確認 select ?s ?p where { ?s ?p "化合物"@ja. } limit 100 instance of (wdt:P31) subclass of (wdt:P279*) select ( count(?s) As ?count ) where { ?s ?p ?o } (SPARQLの例)
  • 10. Win版Virtuoso のLocal Endpointの立て方 セットアップ ~ SPARQLクエリを投げるまで 1. Win版 Virtuoso をダウンロード・インストール 2. Virtuoso Services Control を起動する(起動感はほぼなし) 3. Virtuosoの設定は、Mac版と同じ設定(Mac版の説明を参照のこと) 4. ブラウザ上で一度Virtuosoの起動確認( http://localhost:8890/conductor) 5. isqlを実行して、NTファイルを読み込む 6. SPARQLクエリの実行 ( Win版の設定でハマった時のメモ) 別PCから接続する場合、Win側のファイアーウォール設定が必要 => ネットワークの状態 > Windows ファイアーウォール > 詳細設定 => 受信規則、送信規則に8890ポートとvirtuosoプログラムの許可規則を追加する 環境変数の設定が必要 環境変数で検索、パネルを開く > ユーザー環境変数Pathのところに、Virtuosoのbinパスとlibパス、 ( VirtuosoHome )を追記する intファイル内のDirsAllowedのフォルダ追加 NTファイルがあるフォルダをdatabaseディレクトリからの相対パスで書く。その際には、Win版もスラッシュ (/)表記で書くこと。Error 4700?はコマンドの文法間違い、 Error 3200?はDirsAllowedのパスの間違い。 Win版はやや動作が不安定な 感がある。
  • 11. Win版Virtuoso で実際に実行したコマンドライン RDFデータを"C:¥Program Files¥OpenLink Software¥Virtuoso OpenSource 7.2/VirtuosoRDF"におく > cd "C:¥Program Files¥OpenLink Software¥Virtuoso OpenSource 7.2¥database" > isql 1111 dba dba > log_enable(2,1); > select cfg_item_value (virtuoso_ini_path (), 'Parameters','DirsAllowed'); cfg_item_value VARCHAR _______________________________________________________________________________ ., ../vad, ../VirtuosoRDF > DB.DBA.TTLP_MT(file_to_string_output('../VirtuosoRDF/wikidata_min_20200306.nt'), '', 'http://localhost:8890/wikidata_min'); Errorがでたら、一度再起動、何もメッセージが出なければ成功 (RDFデータの削除) > isql 1111 dba dba > shutdown(); database内の ( virtuoso.ini ) virtuoso-temp.db, virtuoso.db, virtuoso.lck, virtuoso.log, virtuoso.pxa, virtuoso.trx を削除して、再起動する。
  • 13. Virtuoso ConductorでRDFデータを読み込む場合 (基本的に使わないこと) Linked Data > Quad Store Upload > File でRDFデータを読み込む (参考)
  • 14. (rdf2rdfの設定 on Mac) $ brew install go $ go get -u github.com/knakk/rdf2rdf (パスの設定) $ echo 'export PATH=/Users/sk/go/bin:$PATH' >> ~/.bash_profile (確認) $ which rdf2rdf $ rdf2rdf –h ( Usage 例 ) $ cd /Users/sk/Desktop/VirtuosoRDF $ rdf2rdf -in=wikidata_min_20200306.nt -out=wikidata_min_20200306.ttl ※ 「=」の後ろにスペースがあると動作しない https://github.com/knakk/rdf2rdf 【Mac版設定】N-Triples <=> Turtle