Silkについて
- 1. リンク生成ツール
-Silk-
2012/07/24
Linked Data勉強会
南 佳孝
- 2. Silkとは
• 2つの異なるデータソースの
データ項目間のリンクを生成するツール
– リンクするデータ項目の条件を設定できる
– SPARQL endpointsを利用できる
– 利用形態
Hadoopベース
• Single Machine
• MapReduce APIを提供
• Server
Web上でテスト
• Workbench
- 3. Silkの使い方
• インストール
– http://www4.wiwiss.fu-berlin.de/bizer/silk/
– ↑からダウンロードして解凍するだけ
• 設定ファイルの作成
– XMLファイル
– リンクするデータ項目の条件を設定
– Silk Link Specification Language (Silk-LSL)で記述
• 実行
– java -DconfigFile=test.xml -jar C:hogehogesilk.jar
- 4. 設定できる条件
• Prefix
– NamespaceのPrefixを設定
• DataSources
– データソースを指定
• sparql endpointのURLを設定
• LinkType
– マッチしたデータをリンクするプロパティを設定
• 比較条件
– sparqlクエリで比較対象のデータを設定
– 比較方法を設定
• Output
– 出力するファイル名とフォーマット
- 5. PrefixとDataSources
<Prefixes>
<Prefix id="rdfs" namespace="http://www.w3.org/2000/01/rdf-schema#" />
<Prefix id="species" namespace="http://lod.ac/ns/species#" />
<Prefix id="owl" namespace="http://www.w3.org/2002/07/owl#" />
</Prefixes> fileと指定することも可
その場合は、formatの指定が必要
※RDF/XML、N-TRIPLE、TURTLE、TTL、N3
<DataSources>
<DataSource id="lodac" type="sparqlEndpoint">
<Param name="endpointURI" value="http://lod.ac/sparql" />
</DataSource>
<DataSource id="species" type="sparqlEndpoint">
<Param name="endpointURI" value="http://lod.ac/species/sparql" />
</DataSource>
</DataSources> その他に、login、password、instanceList、
PageSize、graph、pauseTime、retryCount、
RetryPauseを指定可
- 7. LinkageRule
比較方法とそのパラメータを指定
<LinkageRule>
<Aggregate type="average">
<Compare metric="levenshteinDistance" threshold="2.0">
<Input path="?a/rdfs:label[@lang='ja']" />
<Input path="?b/species:museumName" />
</Compare>
</Aggregate>
</LinkageRule>
比較対象をPath形式で記述
- 8. 比較方法
• 文字列ベースで距離比較 • パラメータ
– levenshteinDistance – required (optional)
• 置換や挿入の回数 • 両方のインスタンスがあ
– levenshtein る場合のみ
• 正規化され、0~1の間 – weight (optional)
– jaro – threshold
• 人名に特化した手法 • 文字列間の距離(-1~1)
– jaroWinkler – distanceMeasure
– equality • jaccard、dice、
softjaccard、num、date、
• イコールなら0 dateTime、wgs84
– Inequality – Inputs
• イコールなら1 • 比較対象を設定
- 10. Outputs
デフォルトは下記に出力
ユーザディレクトリ/.silk/outoput
<Outputs>
<Output type="file" minConfidence="0.95">
<Param name="file" value="accepted_links.nt" />
<Param name=“format” value=“ntriples” />
</Output>
<Output type="file" maxConfidence="0.95">
<Param name="file" value="verify_links.nt" /> ntriplesかalignmentを指定
<Param name="format" value="alignment" />
</Output>
</Outputs>
- 11. テストケース
• 対象データ
– LODACの博物館情報(20万件)
– LODACの生物情報
• 標本が収蔵されている博物館(120万件)
• 処理数とかかった時間
– 20万かける120万=2400億回
– 11時間
- 12. 処理スピードについて
• 処理するサーバ次第
– 対象の件数が多いと幾何級数的に遅くなる場
合がある
• OFFSETなどに時間がかかることが原因
例えば、こんなクエリを投げてい
る
SELECT DISTINCT ?a ?o
WHERE {
?a <http://lod.ac/ns/species#scientificName> ?o .
} OFFSET 54000 LIMIT 1000