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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

1,281

Published on

第11回ウィキばな …

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

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,281
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×