Contenu connexe
Similaire à 1万件超の登録を実現したBotノウハウからマッシュアップまで (20)
Plus de Masao Takaku (20)
1万件超の登録を実現したBotノウハウからマッシュアップまで
- 2. 自己紹介
― わたしとウィキ ―
• 独立行政法人物質・材料研究機構(茨城県つくば市)
– 科学情報室(主任エンジニア)
– 専門図書館の運営(システム面でのサポート対応)
• Code4Lib JAPANコアメンバー
– 図書館におけるウェブ技術の活用
• ウィキ体験
– ウィキペディアン(2003年から; 最近はブレイク中)
• ボット経験あり: [[Wikipedia:広域ブロック/rangeblocklist]]
– QwikWeb(2006年から)
– Pukiwiki, Hiki, (MediaWiki)
2
- 5. 東北関東大震災、saveMLAKとわたし
• 2011年3月11日 14:46:会議室で打合せ中
• 停電・断水・TX運休により帰宅難民
• 筑波大学春日キャンパスだけ通電しているという
情報を得たため、21時頃に筑波大学に移動、宿泊
• ひたすら夜を徹して、避難所情報や交通情報を提
供し続けた、つくば市情報システム担当
(@tsukubais )さんのツイートに感動
• ARG岡本さんのツイートをきっかけに savelibrary の
活動に参加
– 自分の被災体験+ウィキ経験+Code4Lib JAPAN+…
5
- 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
- 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:博物館 ‐input
Yomi for SLランド 3Dホラー館那須駅? SLらんど3Dほらーかんなすえき
>>> SLランド 3Dホラー館那須駅 <<<
‐ |よみ=
+ |よみ=SLらんど3Dほらーかんなすえき
Do you want to accept these changes? ([y]es, [N]o) y
Yomi for かかみがはら航空宇宙科学博物館?
23
…
- 19. 活用例(マッシュアップ)
• 例: [[津波浸水地域]]
– Semantic MediaWiki からのデータ出力機能を利用
• [[特別:問い合わせ]]
– saveMLAKのKML出力データを、浸水域マップをした
東京大学生産技術研究所 沢田・竹内研究室の成
果とマッシュアップ
他にも、アイデアさえあ
れば、もっともっと活用
できるはず!
災害復旧支援を!
24
- 21. まとめと今後の課題
• MLAK施設リストデータの確保を:オープンデータの必
要性
• 次に編集すべきページを推定するための一覧ページ
• 情報集約作業のたすけになるよう
– 小人さん( 編集者)のための、縁の下の力持ち的なボット
を目指して…。MasaoBotは one of them …
– たとえば 、ボットクン(kumo‐botkun)
– 「高度に発達した編集者はボットと区別がつかない」
• (ソースコード)
– http://github.com/masao/saveMLAK/
26