SlideShare una empresa de Scribd logo
1 de 12
リンク生成ツール
   -Silk-

      2012/07/24
  Linked Data勉強会

     南 佳孝
Silkとは
• 2つの異なるデータソースの
  データ項目間のリンクを生成するツール

 – リンクするデータ項目の条件を設定できる
 – SPARQL endpointsを利用できる

 – 利用形態
                       Hadoopベース
  •   Single Machine
  •   MapReduce               APIを提供
  •   Server
                                   Web上でテスト
  •   Workbench
Silkの使い方
• インストール
 – http://www4.wiwiss.fu-berlin.de/bizer/silk/
 – ↑からダウンロードして解凍するだけ
• 設定ファイルの作成
 – XMLファイル
 – リンクするデータ項目の条件を設定
 – Silk Link Specification Language (Silk-LSL)で記述
• 実行
 – java -DconfigFile=test.xml -jar C:hogehogesilk.jar
設定できる条件
• Prefix
   – NamespaceのPrefixを設定
• DataSources
   – データソースを指定
      • sparql endpointのURLを設定
• LinkType
   – マッチしたデータをリンクするプロパティを設定
• 比較条件
   – sparqlクエリで比較対象のデータを設定
   – 比較方法を設定
• Output
   – 出力するファイル名とフォーマット
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を指定可
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>
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形式で記述
比較方法
• 文字列ベースで距離比較 • パラメータ
 – 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               • 比較対象を設定
パスの記述方法
• SPARQLで取得した値からパスを指定する
 –/
      • プロパティ経由で次の値を取得
        – 例)博物館→名称
 –
      • プロパティ経由で前の値を取得
        – 例)蝶が収蔵されている博物館
 – []
      • 言語タグなどのフィルター
• TransformInput で変換も可能
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>
テストケース
• 対象データ
 – LODACの博物館情報(20万件)
 – LODACの生物情報
  • 標本が収蔵されている博物館(120万件)
• 処理数とかかった時間
 – 20万かける120万=2400億回
 – 11時間
処理スピードについて
• 処理するサーバ次第
 – 対象の件数が多いと幾何級数的に遅くなる場
   合がある
  • OFFSETなどに時間がかかることが原因
                            例えば、こんなクエリを投げてい
                                   る

  SELECT DISTINCT ?a ?o
  WHERE {
       ?a <http://lod.ac/ns/species#scientificName> ?o .
  } OFFSET 54000 LIMIT 1000

Más contenido relacionado

La actualidad más candente

Web技術勉強会 第25回
Web技術勉強会 第25回Web技術勉強会 第25回
Web技術勉強会 第25回龍一 田中
 
LODを使ってみよう!
LODを使ってみよう!LODを使ってみよう!
LODを使ってみよう!uedayou
 
SPARQLアプリケーション開発
SPARQLアプリケーション開発SPARQLアプリケーション開発
SPARQLアプリケーション開発Toshiaki Katayama
 
Rとcdisc@moss10 公開用
Rとcdisc@moss10 公開用Rとcdisc@moss10 公開用
Rとcdisc@moss10 公開用Masafumi Okada
 
SPARQLでマッシュアップ -LOD活用のための技術紹介-
SPARQLでマッシュアップ-LOD活用のための技術紹介-SPARQLでマッシュアップ-LOD活用のための技術紹介-
SPARQLでマッシュアップ -LOD活用のための技術紹介-uedayou
 
LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」
LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」
LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」National Institute of Informatics (NII)
 
Sparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップSparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップChubu University
 

La actualidad más candente (9)

Web技術勉強会 第25回
Web技術勉強会 第25回Web技術勉強会 第25回
Web技術勉強会 第25回
 
LODを使ってみよう!
LODを使ってみよう!LODを使ってみよう!
LODを使ってみよう!
 
SPARQLアプリケーション開発
SPARQLアプリケーション開発SPARQLアプリケーション開発
SPARQLアプリケーション開発
 
Rとcdisc@moss10 公開用
Rとcdisc@moss10 公開用Rとcdisc@moss10 公開用
Rとcdisc@moss10 公開用
 
RとCDISC
RとCDISCRとCDISC
RとCDISC
 
SPARQLでマッシュアップ -LOD活用のための技術紹介-
SPARQLでマッシュアップ-LOD活用のための技術紹介-SPARQLでマッシュアップ-LOD活用のための技術紹介-
SPARQLでマッシュアップ -LOD活用のための技術紹介-
 
LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」
LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」
LODI/Linked Open Data連続講義 第1回 「オープンデータからLinked Open Dataへ」
 
Rawler基本
Rawler基本Rawler基本
Rawler基本
 
Sparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップSparql epcuでlodをマッシュアップ
Sparql epcuでlodをマッシュアップ
 

Similar a Silkについて

Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方linzhixing
 
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-uedayou
 
負荷テストことはじめ
負荷テストことはじめ負荷テストことはじめ
負荷テストことはじめKazumune Katagiri
 
Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207Jun Ohtani
 
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京Koichiro Sasaki
 
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回yamahige
 
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)Issei Nishigata
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情takezoe
 
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame IntroductionYu Ishikawa
 
XLWrapについてのご紹介
XLWrapについてのご紹介XLWrapについてのご紹介
XLWrapについてのご紹介Ohsawa Goodfellow
 
Elasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめElasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめ朋哉 池田
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成弘毅 露崎
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについてtako pons
 
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門Daiyu Hatakeyama
 
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractSpring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractTakeshi Ogawa
 
Springでdao 20070413
Springでdao 20070413Springでdao 20070413
Springでdao 20070413Funato Takashi
 
Why dont you_create_new_spark_jl
Why dont you_create_new_spark_jlWhy dont you_create_new_spark_jl
Why dont you_create_new_spark_jlShintaro Fukushima
 
Rユーザのためのspark入門
Rユーザのためのspark入門Rユーザのためのspark入門
Rユーザのためのspark入門Shintaro Fukushima
 
Css2014 ruo ando_2014-10-23-01
Css2014 ruo ando_2014-10-23-01Css2014 ruo ando_2014-10-23-01
Css2014 ruo ando_2014-10-23-01Ruo Ando
 

Similar a Silkについて (20)

Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
 
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
 
負荷テストことはじめ
負荷テストことはじめ負荷テストことはじめ
負荷テストことはじめ
 
Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207
 
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
 
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
 
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
Solr6 の紹介(第18回 Solr勉強会 資料) (2016年6月10日)
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
 
Azure DataLake 大全
Azure DataLake 大全Azure DataLake 大全
Azure DataLake 大全
 
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
 
XLWrapについてのご紹介
XLWrapについてのご紹介XLWrapについてのご紹介
XLWrapについてのご紹介
 
Elasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめElasticsearchの基本動作まとめ
Elasticsearchの基本動作まとめ
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
 
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
 
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractSpring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contract
 
Springでdao 20070413
Springでdao 20070413Springでdao 20070413
Springでdao 20070413
 
Why dont you_create_new_spark_jl
Why dont you_create_new_spark_jlWhy dont you_create_new_spark_jl
Why dont you_create_new_spark_jl
 
Rユーザのためのspark入門
Rユーザのためのspark入門Rユーザのためのspark入門
Rユーザのためのspark入門
 
Css2014 ruo ando_2014-10-23-01
Css2014 ruo ando_2014-10-23-01Css2014 ruo ando_2014-10-23-01
Css2014 ruo ando_2014-10-23-01
 

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を指定可
  • 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. 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 • 比較対象を設定
  • 9. パスの記述方法 • SPARQLで取得した値からパスを指定する –/ • プロパティ経由で次の値を取得 – 例)博物館→名称 – • プロパティ経由で前の値を取得 – 例)蝶が収蔵されている博物館 – [] • 言語タグなどのフィルター • TransformInput で変換も可能
  • 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