SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
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:0xf542
75d47c665244,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:博物館 ‐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
…
活用例(マッシュアップ)
• 例: [[津波浸水地域]]
 – Semantic MediaWiki からのデータ出力機能を利用
   • [[特別:問い合わせ]]
 – saveMLAKのKML出力データを、浸水域マップをした
   東京大学生産技術研究所 沢田・竹内研究室の成
   果とマッシュアップ

他にも、アイデアさえあ
れば、もっともっと活用
できるはず!
災害復旧支援を!
                                  24
25
まとめと今後の課題
• MLAK施設リストデータの確保を:オープンデータの必
  要性
• 次に編集すべきページを推定するための一覧ページ
• 情報集約作業のたすけになるよう
 – 小人さん( 編集者)のための、縁の下の力持ち的なボット
   を目指して…。MasaoBotは one of them … 
 – たとえば 、ボットクン(kumo‐botkun)
 – 「高度に発達した編集者はボットと区別がつかない」


• (ソースコード)
 – http://github.com/masao/saveMLAK/
                                       26

Mais conteúdo relacionado

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

saveMLAK ウィキへの引き込み大作戦 ~3つの恐怖症と対策~
saveMLAK ウィキへの引き込み大作戦 ~3つの恐怖症と対策~saveMLAK ウィキへの引き込み大作戦 ~3つの恐怖症と対策~
saveMLAK ウィキへの引き込み大作戦 ~3つの恐怖症と対策~Yuka Egusa
 
saveMLAKウィキにおける共同編集コンテンツ分析の試み
saveMLAKウィキにおける共同編集コンテンツ分析の試みsaveMLAKウィキにおける共同編集コンテンツ分析の試み
saveMLAKウィキにおける共同編集コンテンツ分析の試みMasao Takaku
 
2013-02-03_Wikimedia_Conference_Japan_2013
2013-02-03_Wikimedia_Conference_Japan_20132013-02-03_Wikimedia_Conference_Japan_2013
2013-02-03_Wikimedia_Conference_Japan_2013Yuka Egusa
 
SRRGEJE(20110713)
SRRGEJE(20110713)SRRGEJE(20110713)
SRRGEJE(20110713)真 岡本
 
2012-10-07_2012年度大橘会交流会・公開シンポジウム
2012-10-07_2012年度大橘会交流会・公開シンポジウム2012-10-07_2012年度大橘会交流会・公開シンポジウム
2012-10-07_2012年度大橘会交流会・公開シンポジウムYuka Egusa
 
20020228 ku-librarians勉強会 #28 : マークアップ言語を用いた目録データの変換について(PowerPoint)
20020228 ku-librarians勉強会 #28 : マークアップ言語を用いた目録データの変換について(PowerPoint)20020228 ku-librarians勉強会 #28 : マークアップ言語を用いた目録データの変換について(PowerPoint)
20020228 ku-librarians勉強会 #28 : マークアップ言語を用いた目録データの変換について(PowerPoint)kulibrarians
 
Code4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストCode4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストMasao Takaku
 
みんなでつくる世界地図プロジェクトがつなげる人と人
みんなでつくる世界地図プロジェクトがつなげる人と人 みんなでつくる世界地図プロジェクトがつなげる人と人
みんなでつくる世界地図プロジェクトがつなげる人と人 Taichi Furuhashi
 
第27回SIGSWO - saveMLAK
第27回SIGSWO - saveMLAK第27回SIGSWO - saveMLAK
第27回SIGSWO - saveMLAKFumihiro Kato
 
EJEsymposium(20120111)
EJEsymposium(20120111)EJEsymposium(20120111)
EJEsymposium(20120111)真 岡本
 
Global Studies and Collaboration/地球共生学I 2005 @ Aoyama GSC
Global Studies and Collaboration/地球共生学I 2005 @ Aoyama GSCGlobal Studies and Collaboration/地球共生学I 2005 @ Aoyama GSC
Global Studies and Collaboration/地球共生学I 2005 @ Aoyama GSCTaichi Furuhashi
 
2013 02 09_osc2013_hamamatsu_osm
2013 02 09_osc2013_hamamatsu_osm2013 02 09_osc2013_hamamatsu_osm
2013 02 09_osc2013_hamamatsu_osmTom Hayakawa
 
ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編SATOSHI TAGOMORI
 
20120701saveMLAK_okamoto2
20120701saveMLAK_okamoto220120701saveMLAK_okamoto2
20120701saveMLAK_okamoto2真 岡本
 
機関リポジトリとresearchmapの連携〜IRDBマッチングプロジェクト報告〜
機関リポジトリとresearchmapの連携〜IRDBマッチングプロジェクト報告〜機関リポジトリとresearchmapの連携〜IRDBマッチングプロジェクト報告〜
機関リポジトリとresearchmapの連携〜IRDBマッチングプロジェクト報告〜Yutaka HAYASHI
 
宇宙データを使った世界同時開催ハッカソン「International Space Apps Challenge」の日本開催
宇宙データを使った世界同時開催ハッカソン「International Space Apps Challenge」の日本開催宇宙データを使った世界同時開催ハッカソン「International Space Apps Challenge」の日本開催
宇宙データを使った世界同時開催ハッカソン「International Space Apps Challenge」の日本開催Tsubasa Yumura
 
Otemon(20101220)
Otemon(20101220)Otemon(20101220)
Otemon(20101220)真 岡本
 
OpenStreetMapのタグに見る世界の記述
OpenStreetMapのタグに見る世界の記述OpenStreetMapのタグに見る世界の記述
OpenStreetMapのタグに見る世界の記述Toshikazu Seto
 
Wikibana(20110827)
Wikibana(20110827)Wikibana(20110827)
Wikibana(20110827)真 岡本
 
OkayamaLib(20110809)
OkayamaLib(20110809)OkayamaLib(20110809)
OkayamaLib(20110809)真 岡本
 

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

saveMLAK ウィキへの引き込み大作戦 ~3つの恐怖症と対策~
saveMLAK ウィキへの引き込み大作戦 ~3つの恐怖症と対策~saveMLAK ウィキへの引き込み大作戦 ~3つの恐怖症と対策~
saveMLAK ウィキへの引き込み大作戦 ~3つの恐怖症と対策~
 
saveMLAKウィキにおける共同編集コンテンツ分析の試み
saveMLAKウィキにおける共同編集コンテンツ分析の試みsaveMLAKウィキにおける共同編集コンテンツ分析の試み
saveMLAKウィキにおける共同編集コンテンツ分析の試み
 
2013-02-03_Wikimedia_Conference_Japan_2013
2013-02-03_Wikimedia_Conference_Japan_20132013-02-03_Wikimedia_Conference_Japan_2013
2013-02-03_Wikimedia_Conference_Japan_2013
 
SRRGEJE(20110713)
SRRGEJE(20110713)SRRGEJE(20110713)
SRRGEJE(20110713)
 
2012-10-07_2012年度大橘会交流会・公開シンポジウム
2012-10-07_2012年度大橘会交流会・公開シンポジウム2012-10-07_2012年度大橘会交流会・公開シンポジウム
2012-10-07_2012年度大橘会交流会・公開シンポジウム
 
20020228 ku-librarians勉強会 #28 : マークアップ言語を用いた目録データの変換について(PowerPoint)
20020228 ku-librarians勉強会 #28 : マークアップ言語を用いた目録データの変換について(PowerPoint)20020228 ku-librarians勉強会 #28 : マークアップ言語を用いた目録データの変換について(PowerPoint)
20020228 ku-librarians勉強会 #28 : マークアップ言語を用いた目録データの変換について(PowerPoint)
 
Code4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストCode4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェスト
 
みんなでつくる世界地図プロジェクトがつなげる人と人
みんなでつくる世界地図プロジェクトがつなげる人と人 みんなでつくる世界地図プロジェクトがつなげる人と人
みんなでつくる世界地図プロジェクトがつなげる人と人
 
第27回SIGSWO - saveMLAK
第27回SIGSWO - saveMLAK第27回SIGSWO - saveMLAK
第27回SIGSWO - saveMLAK
 
EJEsymposium(20120111)
EJEsymposium(20120111)EJEsymposium(20120111)
EJEsymposium(20120111)
 
Global Studies and Collaboration/地球共生学I 2005 @ Aoyama GSC
Global Studies and Collaboration/地球共生学I 2005 @ Aoyama GSCGlobal Studies and Collaboration/地球共生学I 2005 @ Aoyama GSC
Global Studies and Collaboration/地球共生学I 2005 @ Aoyama GSC
 
2013 02 09_osc2013_hamamatsu_osm
2013 02 09_osc2013_hamamatsu_osm2013 02 09_osc2013_hamamatsu_osm
2013 02 09_osc2013_hamamatsu_osm
 
ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編
 
20120701saveMLAK_okamoto2
20120701saveMLAK_okamoto220120701saveMLAK_okamoto2
20120701saveMLAK_okamoto2
 
機関リポジトリとresearchmapの連携〜IRDBマッチングプロジェクト報告〜
機関リポジトリとresearchmapの連携〜IRDBマッチングプロジェクト報告〜機関リポジトリとresearchmapの連携〜IRDBマッチングプロジェクト報告〜
機関リポジトリとresearchmapの連携〜IRDBマッチングプロジェクト報告〜
 
宇宙データを使った世界同時開催ハッカソン「International Space Apps Challenge」の日本開催
宇宙データを使った世界同時開催ハッカソン「International Space Apps Challenge」の日本開催宇宙データを使った世界同時開催ハッカソン「International Space Apps Challenge」の日本開催
宇宙データを使った世界同時開催ハッカソン「International Space Apps Challenge」の日本開催
 
Otemon(20101220)
Otemon(20101220)Otemon(20101220)
Otemon(20101220)
 
OpenStreetMapのタグに見る世界の記述
OpenStreetMapのタグに見る世界の記述OpenStreetMapのタグに見る世界の記述
OpenStreetMapのタグに見る世界の記述
 
Wikibana(20110827)
Wikibana(20110827)Wikibana(20110827)
Wikibana(20110827)
 
OkayamaLib(20110809)
OkayamaLib(20110809)OkayamaLib(20110809)
OkayamaLib(20110809)
 

Mais de Masao Takaku

201709 研究室紹介 milk
201709 研究室紹介 milk201709 研究室紹介 milk
201709 研究室紹介 milkMasao Takaku
 
20171002 takaku lab-intro
20171002 takaku lab-intro20171002 takaku lab-intro
20171002 takaku lab-introMasao Takaku
 
20161003 takaku lab-intro
20161003 takaku lab-intro20161003 takaku lab-intro
20161003 takaku lab-introMasao Takaku
 
高久研究室の紹介(2016年度)
高久研究室の紹介(2016年度)高久研究室の紹介(2016年度)
高久研究室の紹介(2016年度)Masao Takaku
 
20160424 wikipedia town-tsukubasan-takaku
20160424 wikipedia town-tsukubasan-takaku20160424 wikipedia town-tsukubasan-takaku
20160424 wikipedia town-tsukubasan-takakuMasao Takaku
 
高久研究室の紹介(KLIS MILK 2015-10)
高久研究室の紹介(KLIS MILK 2015-10)高久研究室の紹介(KLIS MILK 2015-10)
高久研究室の紹介(KLIS MILK 2015-10)Masao Takaku
 
研究室紹介・高久研究室
研究室紹介・高久研究室研究室紹介・高久研究室
研究室紹介・高久研究室Masao Takaku
 
Linked Dataの概要と課題
Linked Dataの概要と課題Linked Dataの概要と課題
Linked Dataの概要と課題Masao Takaku
 
高久研究室・研究室紹介
高久研究室・研究室紹介高久研究室・研究室紹介
高久研究室・研究室紹介Masao Takaku
 
Wikipediaとは? Wikipediaに投稿する方法
Wikipediaとは? Wikipediaに投稿する方法Wikipediaとは? Wikipediaに投稿する方法
Wikipediaとは? Wikipediaに投稿する方法Masao Takaku
 
研究室紹介:高久研究室
研究室紹介:高久研究室研究室紹介:高久研究室
研究室紹介:高久研究室Masao Takaku
 
Helping Memory Institutions in the Networked Information Society
Helping Memory Institutions in the Networked Information SocietyHelping Memory Institutions in the Networked Information Society
Helping Memory Institutions in the Networked Information SocietyMasao Takaku
 
20131123 enjukaigi
20131123 enjukaigi20131123 enjukaigi
20131123 enjukaigiMasao Takaku
 
研究室紹介 (情報経営・図書館主専攻)
研究室紹介 (情報経営・図書館主専攻)研究室紹介 (情報経営・図書館主専攻)
研究室紹介 (情報経営・図書館主専攻)Masao Takaku
 

Mais de Masao Takaku (20)

研究室紹介
研究室紹介研究室紹介
研究室紹介
 
201709 研究室紹介 milk
201709 研究室紹介 milk201709 研究室紹介 milk
201709 研究室紹介 milk
 
20171002 takaku lab-intro
20171002 takaku lab-intro20171002 takaku lab-intro
20171002 takaku lab-intro
 
タスク重要
タスク重要タスク重要
タスク重要
 
教科書LOD
教科書LOD教科書LOD
教科書LOD
 
20161003 takaku lab-intro
20161003 takaku lab-intro20161003 takaku lab-intro
20161003 takaku lab-intro
 
高久研究室の紹介(2016年度)
高久研究室の紹介(2016年度)高久研究室の紹介(2016年度)
高久研究室の紹介(2016年度)
 
20160424 wikipedia town-tsukubasan-takaku
20160424 wikipedia town-tsukubasan-takaku20160424 wikipedia town-tsukubasan-takaku
20160424 wikipedia town-tsukubasan-takaku
 
高久研究室の紹介(KLIS MILK 2015-10)
高久研究室の紹介(KLIS MILK 2015-10)高久研究室の紹介(KLIS MILK 2015-10)
高久研究室の紹介(KLIS MILK 2015-10)
 
研究室紹介・高久研究室
研究室紹介・高久研究室研究室紹介・高久研究室
研究室紹介・高久研究室
 
Linked Dataの概要と課題
Linked Dataの概要と課題Linked Dataの概要と課題
Linked Dataの概要と課題
 
高久研究室・研究室紹介
高久研究室・研究室紹介高久研究室・研究室紹介
高久研究室・研究室紹介
 
JuNii2 Validator
JuNii2 ValidatorJuNii2 Validator
JuNii2 Validator
 
Web API入門
Web API入門Web API入門
Web API入門
 
Wikipediaとは? Wikipediaに投稿する方法
Wikipediaとは? Wikipediaに投稿する方法Wikipediaとは? Wikipediaに投稿する方法
Wikipediaとは? Wikipediaに投稿する方法
 
研究室紹介:高久研究室
研究室紹介:高久研究室研究室紹介:高久研究室
研究室紹介:高久研究室
 
Helping Memory Institutions in the Networked Information Society
Helping Memory Institutions in the Networked Information SocietyHelping Memory Institutions in the Networked Information Society
Helping Memory Institutions in the Networked Information Society
 
20131123 enjukaigi
20131123 enjukaigi20131123 enjukaigi
20131123 enjukaigi
 
研究室紹介 (情報経営・図書館主専攻)
研究室紹介 (情報経営・図書館主専攻)研究室紹介 (情報経営・図書館主専攻)
研究室紹介 (情報経営・図書館主専攻)
 
研究室紹介
研究室紹介研究室紹介
研究室紹介
 

Último

UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Último (9)

UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

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

  • 1. 1万件超の登録を実現した Botノウハウからマッシュアップまで 高久雅生 tmasao@acm.org saveMLAKシステム担当 (物質・材料研究機構) 1
  • 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
  • 6. 東北関東大震災、saveMLAKとわたし (2) • 帰宅してすぐにsavelibrary@ウィキの施設情 報 を地図にまとめる作業を開始 3/12 19:26 • カーリル のマッシュアップを作成、メンテナン ス – スクレイピング • 施設情報(所在地) + Calil緯度経度 → Google Maps埋め込み (kml) 7 http://twitter.com/#!/tmasao/status/46517451839647744
  • 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:博物館 ‐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
  • 20. 25
  • 21. まとめと今後の課題 • MLAK施設リストデータの確保を:オープンデータの必 要性 • 次に編集すべきページを推定するための一覧ページ • 情報集約作業のたすけになるよう – 小人さん( 編集者)のための、縁の下の力持ち的なボット を目指して…。MasaoBotは one of them …  – たとえば 、ボットクン(kumo‐botkun) – 「高度に発達した編集者はボットと区別がつかない」 • (ソースコード) – http://github.com/masao/saveMLAK/ 26