1万件超の登録を実現したBotノウハウからマッシュアップまで
Upcoming SlideShare
Loading in...5
×
 

1万件超の登録を実現したBotノウハウからマッシュアップまで

on

  • 1,344 views

第11回ウィキばな ...

第11回ウィキばな
「1万件超の登録を実現したBotノウハウからマッシュアップまで」

http://wikibana.socoda.net/wiki.cgi?%c2%e8%bd%bd%b0%ec%b2%f3Wiki%a4%d0%a4%ca

Statistics

Views

Total Views
1,344
Views on SlideShare
1,344
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    1万件超の登録を実現したBotノウハウからマッシュアップまで 1万件超の登録を実現したBotノウハウからマッシュアップまで Presentation Transcript

    • 1万件超の登録を実現したBotノウハウからマッシュアップまで 高久雅生 tmasao@acm.org saveMLAKシステム担当 (物質・材料研究機構) 1
    • 自己紹介 ― わたしとウィキ ―• 独立行政法人物質・材料研究機構(茨城県つくば市) – 科学情報室(主任エンジニア) – 専門図書館の運営(システム面でのサポート対応)• Code4Lib JAPANコアメンバー – 図書館におけるウェブ技術の活用• ウィキ体験 – ウィキペディアン(2003年から; 最近はブレイク中) • ボット経験あり: [[Wikipedia:広域ブロック/rangeblocklist]] – QwikWeb(2006年から) – Pukiwiki, Hiki, (MediaWiki) 2
    • NIMS図書室 3
    • 2011‐03‐11  15:44頃 4
    • 東北関東大震災、saveMLAKとわたし• 2011年3月11日 14:46:会議室で打合せ中• 停電・断水・TX運休により帰宅難民• 筑波大学春日キャンパスだけ通電しているという 情報を得たため、21時頃に筑波大学に移動、宿泊• ひたすら夜を徹して、避難所情報や交通情報を提 供し続けた、つくば市情報システム担当 (@tsukubais )さんのツイートに感動• ARG岡本さんのツイートをきっかけに savelibrary の 活動に参加 – 自分の被災体験+ウィキ経験+Code4Lib JAPAN+… 5
    • 東北関東大震災、saveMLAKとわたし (2)• 帰宅してすぐにsavelibrary@ウィキの施設情 報 を地図にまとめる作業を開始 3/12 19:26• カーリル のマッシュアップを作成、メンテナン ス – スクレイピング • 施設情報(所在地) + Calil緯度経度 → Google Maps埋め込み (kml) 7 http://twitter.com/#!/tmasao/status/46517451839647744
    • http://maps.google.co.jp/maps/ms?ie=UTF8&hl=ja&brcurrent=3,0x34674e0fd77f192f:0xf54275d47c665244,0&msa=0&msid=207257696541767388741.00049e3e44f8717e73cf3&z=6 8
    • http://twitter.com/tmasao/status/46523534608039936 9
    • http://twitter.com/#!/tmasao/status/47334763756920832 10
    • Savelibrary時代の地図ボット• @ウィキ編集画面のHTMLから図書館の被災情 報をスクレイピング• カーリル図書館API: – 図書館の名称、都道府県、市町村名など• 図書館の名前と照合してマッチしたものの住所 を取り出して、人手で緯度経度を付与してKML形 式に変換 11
    • savelibrary時代の地図ボットresult = ( text == formal ) or ( text == short ) or ( text.gsub( /[ ・「」¥(¥)]/, "" ) == formal.gsub( /[ ・「」¥(¥)]/, "" ) ) or ( text.gsub( /¥A.+?県/, "" ) == formal.gsub( /¥A.+?県/, "" ) ) or ( text.gsub( /[市区町村]立?/, "" ) == formal.gsub( /[市区町村]立?/, "" ) ) or ( text.gsub( /¥s*中央図書館¥Z/, "図書館" ) == formal.gsub( /¥s*中央図書館¥Z/, "図書館" ) ) or ( text.gsub( /¥s*付属図書館¥Z/, "附属図書館" ) == formal.gsub( /¥s*付属図書館¥Z/, "附属図書館" ) ) or ( text.gsub( /¥s*(中央|本)館¥Z/, "" ) == formal.gsub( /¥s*(中央|本)館¥Z/, "" ) ) or ( text.gsub( /([市区町村])?立?(中央)?図書館¥Z/, ¥1図書館 ) == formal.gsub( /([市区町村])?立?(中央)?図書館¥Z/, ¥1図書館 ) ) or ( text.gsub( /本館¥Z/,  ) == formal.gsub( /本館¥Z/,  ) ) or ( text.gsub( /公民館[  ]*図書室¥Z/, 公民館 ) == formal.gsub( /公民館[  ]*図書室¥Z/, 公民館 ) ) or ( text.gsub( /[ ・「」¥(¥)]/, "" ).gsub( /学院大学/, 学院 ) == formal.gsub( /[ ・「」¥(¥)]/, "" ).gsub( /学院大学/, 学院 ) ) or ( text.gsub( /ケ/, "ヶ" ) == formal.gsub( /ケ/, "ヶ" ) ) or 12
    • savelibraryからsaveMLAKへ• このボット用スクレイピングスクリプトを活かし て、移行用データを作成(atwiki2mediawiki.rb) – 都道府県単位から、各図書館施設ページ単位へ – テキストを@ウィキ書式からMediaWikiへ変換 – (@ウィキ上の図書館リストの書式スタイルに揺れ があるのに気付かず、あちこち抜けてしまい、編集 者のみなさんに迷惑かけました…) 13
    • saveMLAKにおける施設ページ• 図書館、博物館、文書館、公民館• 不特定多数の手によって編集されたページ• 基本情報+αはさまざまな「リスト」データを元に一 括登録 (createpage)• 新規登録以外にも、編集労力・人手を省力化でき ることは多い – 「カテゴリ」(cat) – 「よみ」(check_yomi) – 「緯度経度」(geocode)• MediaWikiは編集・検索等のAPIがある。• Pywikipediabot!!! 14
    • 一括登録用ボット: createpage.py• 一件一ページ単位の登録• 重複登録を防ぐ、上書き登録を防ぐ• サーバ負荷への対応• 館種ごとに一括登録用データを提供してもらい作業 – 元データリストごとに難しさが違う • 元リスト側でも頻繁に更新が続いている(グーグル避難所情報) • リスト調査後に市町村合併…(公民館名鑑) – M: 85% (4565/5385)  「インターネットミュージアム」由来 – A: 41% (66 / 160) 「国立公文書館リンク集」ほか由来 – K: 91% (5732 / 6278) 「グーグル避難所マップ」、「全国公民 会連合会」• 一括登録されたページの一覧と、すでにページに情報 があるため、重複/上書きを避けて更新しなかったペー ジリストを出力 15
    • 公民館リストデータの登録• グーグル避難所情報 – http://shelter‐info.appspot.com/maps • (Google Fusion Tables) – 基本情報(名称、住所、緯度経度、電話番号) – 避難者情報(定員、避難者数) – 483箇所• 公民館連合会による『公民館名鑑』調査リスト – 基本情報(名称、住所、電話番号) – 5249箇所 19
    • 一括登録ボットだけではダメで・・・• 基本情報の抜け – カテゴリ:きちんと付いていないとリスト化できない… – よみ:カテゴリ一覧が悲しいことに – 緯度経度:地図に反映できない• どのページに追記が必要か?という情報が必要 → リストする。• ある程度自動化/省力化が必要 → カテゴリの自動付与:cat.py → Geocoding (Google Maps API)  → よみ入力補助• Pywikipediabot 20
    • 編集支援ボット (1) 緯度経度情報を住所から自動補完• Google Maps API から自動追記• 自動でGeocodingできないものはリストページ作業 待ちとしてリスト化 – [[利用者:Masao/NoGeocode]] – 市町村合併や住所誤字を除けばおおむね自動化可能• 課題:GMaps APIの利用制限(IPアドレスあたり、 2500件/日まで) 22
    • 編集支援ボット (2) よみの入力補助• 現状でよみ情報がはいっていない項目を都道府県単位 で一覧化 • [[利用者:Masao/Yomi_check]]./check_yomi.py ‐cat:博物館 ‐inputYomi for SLランド 3Dホラー館那須駅? SLらんど3Dほらーかんなすえき>>> SLランド 3Dホラー館那須駅 <<<‐ |よみ=+ |よみ=SLらんど3DほらーかんなすえきDo you want to accept these changes? ([y]es, [N]o) yYomi for かかみがはら航空宇宙科学博物館? 23…
    • 活用例(マッシュアップ)• 例: [[津波浸水地域]] – Semantic MediaWiki からのデータ出力機能を利用 • [[特別:問い合わせ]] – saveMLAKのKML出力データを、浸水域マップをした 東京大学生産技術研究所 沢田・竹内研究室の成 果とマッシュアップ他にも、アイデアさえあれば、もっともっと活用できるはず!災害復旧支援を! 24
    • 25
    • まとめと今後の課題• MLAK施設リストデータの確保を:オープンデータの必 要性• 次に編集すべきページを推定するための一覧ページ• 情報集約作業のたすけになるよう – 小人さん( 編集者)のための、縁の下の力持ち的なボット を目指して…。MasaoBotは one of them …  – たとえば 、ボットクン(kumo‐botkun) – 「高度に発達した編集者はボットと区別がつかない」• (ソースコード) – http://github.com/masao/saveMLAK/ 26