Silkについて

4,074 views
4,020 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,074
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
14
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Silkについて

  1. 1. リンク生成ツール -Silk- 2012/07/24 Linked Data勉強会 南 佳孝
  2. 2. Silkとは• 2つの異なるデータソースの データ項目間のリンクを生成するツール – リンクするデータ項目の条件を設定できる – SPARQL endpointsを利用できる – 利用形態 Hadoopベース • Single Machine • MapReduce APIを提供 • Server Web上でテスト • Workbench
  3. 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. 4. 設定できる条件• Prefix – NamespaceのPrefixを設定• DataSources – データソースを指定 • sparql endpointのURLを設定• LinkType – マッチしたデータをリンクするプロパティを設定• 比較条件 – sparqlクエリで比較対象のデータを設定 – 比較方法を設定• Output – 出力するファイル名とフォーマット
  5. 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を指定可
  6. 6. LinkTypeとデータセット<LinkType>owl:sameAs</LinkType><SourceDataset dataSource="lodac" var="a"> <RestrictTo> ?a rdf:type foaf:Organization SPARQLで記述 </RestrictTo></SourceDataset><TargetDataset dataSource="species" var="b"> <RestrictTo> ?b species:museumName ?o </RestrictTo></TargetDataset>
  7. 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. 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 • 比較対象を設定
  9. 9. パスの記述方法• SPARQLで取得した値からパスを指定する –/ • プロパティ経由で次の値を取得 – 例)博物館→名称 – • プロパティ経由で前の値を取得 – 例)蝶が収蔵されている博物館 – [] • 言語タグなどのフィルター• TransformInput で変換も可能
  10. 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. 11. テストケース• 対象データ – LODACの博物館情報(20万件) – LODACの生物情報 • 標本が収蔵されている博物館(120万件)• 処理数とかかった時間 – 20万かける120万=2400億回 – 11時間
  12. 12. 処理スピードについて• 処理するサーバ次第 – 対象の件数が多いと幾何級数的に遅くなる場 合がある • OFFSETなどに時間がかかることが原因 例えば、こんなクエリを投げてい る SELECT DISTINCT ?a ?o WHERE { ?a <http://lod.ac/ns/species#scientificName> ?o . } OFFSET 54000 LIMIT 1000

×