Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Stack Overflowにおける編集活動:知識の公開という観点から

Db3d00564e01b3b4efb99edeb5e40f64?s=47 Tajima Itsuro
November 16, 2019

Stack Overflowにおける編集活動:知識の公開という観点から

Db3d00564e01b3b4efb99edeb5e40f64?s=128

Tajima Itsuro

November 16, 2019
Tweet

Transcript

  1. Stack Overflowにおける 編集活動: 知識の公開という観点から 田島 逸郎(慶應義塾大学大学院) <niryuu@keio.jp>

  2. Introduction: Stack Overflowとは

  3. Stack Overflow(SO)とは • 「専門的で情熱的なプログラマーのための質問回答サ イト」 • 「世界の中の良いプログラミングの知識の総和を集合 的に増やす」目的をもって設立 →広く知識をアクセス可能な状態で公開することを目 指す

    • 1800万件の質問(2019年11月現在) https://blog.codinghorror.com/introducing-stackoverflow-com/ https://stackoverflow.com/tour https://data.stackexchange.com/
  4. Stack Overflow(SO)とは https://stackoverflow.com/

  5. Stack Overflow(SO)とは 得票数 回答数 閲覧数 タグ タイトル https://stackoverflow.com/

  6. Stack Overflow(SO)とは https://stackoverflow.com/questions/5597060/detecting-arrow-key-presses-in-javascript

  7. Stack Overflow(SO)とは 質問の タイトル 質問の本文 ソースコード 質問者 タグ 得票数 https://stackoverflow.com/questions/5597060/detecting-arrow-key-presses-in-javascript

    最新の質問 の編集者
  8. Stack Overflow(SO)とは https://stackoverflow.com/questions/5597060/detecting-arrow-key-presses-in-javascript

  9. Stack Overflow(SO)とは 回答数 得票数 質問者が 受け入れた 回答 最新の回答 の編集者 回答者

    コメント https://stackoverflow.com/questions/5597060/detecting-arrow-key-presses-in-javascript
  10. SOにおける共同作業と編集活動 • SOでの編集はWikipediaの影響を受けたもの • 「編集と履歴はStack Overflowの鍵」 • 5種類の編集の類型が「ヘルプ」に挙げられている • 文法やスペルの間違いを直す

    • 投稿の意味をより明確にする • コメントで追加された情報を含める • 小さい間違いを正し,古い投稿を更新する • 関連する情報源やハイパーリンクを加える http://blog.stackoverflow.com/audio/stackoverflow-podcast-004.mp3 https://stackoverflow.com/help/editing
  11. SOにおける編集に関する先行研究 • Liらによる共同編集モデルの研究 • 質問に対する編集行動は回答を増やす • 新参者の回答が編集されると,今後の回答が減る • Yangらによる共同編集による質問の改善に関する研究 •

    編集行動は品質(投票)を上げる • コミュニティに長くいるに従って編集行動は減る • しかし,編集を質問回答の中でどのように行っている かは明らかではない Li, Guo; Zhu, Haiyi; Lu, Tun; Ding, Xianghua; Gu, Ning. ”Is It Good to Be Like Wikipedia?: Exploring the Trade-offs of Introducing Collaborative Editing Model to Q&A Sites”. CSCW ’15:Proceedings of the 18th ACM Conference on Computer Supported Cooperative Work & Social Computing. ACM, 2015, p.1080-1091. Yang, Jie; Hauff, Claudia; Bozzon, Alessandro; Houben, Geert-Jan. “Asking the Right Question in Collaborative Q&A systems”. Proceedings of the HT'14. ACM, 2014, p.179- 189.
  12. Purpose and Method: 本研究の目的と方法

  13. 本研究の目的 •本研究は, Stack Overflowにおける編集が, 質問回答という共同作業の中で どのように行われているかという 実践の側面を理解することを 目的とする

  14. 本研究の方法 • エスノメソドロジーの方針に従う • SOにおける質問回答という現象を取り上げる • 編集活動の組織化を記述する • 分析対象:”javascript”タグのアクセスの多い質問 •

    質問数が多い • 参加者のスキルレベルが様々である • プログラミング言語自体が数年で変遷を遂げている
  15. Findings: Stack Overflowにおける 編集活動

  16. 編集活動の成り立ち • 様々なバリエーションがある • 今回は1つの質問が編集されていく様を詳細に見る

  17. “Detecting arrow key presses in JavaScript” • 2011年4月8日にmihsatheによって質問 • 4分後にMark

    Kahnによって回答→受け入れ • 2013年にSoonDeadにより編集提案 • 2013年にMattにより編集提案の受け入れと編集 • 2015年にmihsathe(質問者)によって編集 • 2018年にGiboltによって編集 • 7年間にわたって4回の編集がなされた https://stackoverflow.com/questions/5597060/detecting-arrow-key-presses-in-javascript
  18. 当初の質問 http://web.archive.org/web/20120810001747/https://stackoverflow.com/questions/5597060/detecting- arrow-keys-in-javascript 2011/4/8 内容: キーボードのキーが 押されたときに 何が押されたかを 判定したいが 矢印キーが判定でき

    ない
  19. 回答 質問の4分後 矢印キーは特殊な 判定方法がある

  20. 2013年になされた編集(1)

  21. 2013年になされた編集(1) SoonDeadによる編集提案 →受け入れ 2013/5/5

  22. 2013年になされた編集(1)は 何を目指したか 編集理由「Googleで上位 に表示されたため修正す ることを決めた」

  23. 編集1で何がどのように行われたか • 質問し,回答が受け入れられて2年後の編集である • 回答を求めることを主とした編集ではない • Googleで上位に表示されたため編集を提案した • アクセスされる知識として改善を志向している •

    では,どのようにそれを行ったのか?
  24. 2013年になされた編集(1) 適切な 固有名詞表記 文法の修正, Thanksの削除 タグの追加 ソースコードの 整形

  25. 2013年になされた編集で 何がどのように行われたか • 質問内容の細かな体裁を整え,読みやすくしていた • 固有名詞を適切な表記に(Javascript→JavaScript) • 文法の修正 • 質問と直接関係ない「ありがとう」を削除

    • タグを追加した • JavaScriptタグは質問数が多い(約180万件) • 主題をさらに絞ってアクセスできるようにしていた • ソースコードを,理解しやすく整形した • 階層構造を適切に反映していた • 質問の品質の改善によってアクセスされる知識を改善
  26. 2013年になされた編集(2) 内容に合った タイトルに 誤修正の再修正 編集提案を 受け入れた上で さらに編集を加える

  27. 2013年になされた編集(2)で 何がどのように行われたか • まず,編集1の編集提案を受け入れた • その上で, • タイトルを内容にあったものに変え • 編集1で文法を間違えて修正した部分を再修正した

    • つまり,編集1を適切な編集として受け入れ,自身もさ らに質問の改善を行った
  28. 2015年になされた編集: 質問者によるソースコードの編集 最初の質問者 新しい機能で 書き換え 内容の明確化 不要な コードの削除

  29. 2015年になされた編集で 何がどのように行われたか • 質問者自身による4年後の編集である • 編集1,2でなされた変更点に手を加えていない • 編集1,2を受け入れている • 既に回答がなされ解決がなされている質問である

    • しかし内容を改善している • 質問の品質の改善に従事している
  30. 2015年になされた編集で 何がどのように行われたか • 解決すべき問題に集中したソースコードに修正した • あってもなくても変わらない部分を削る • 古いやり方を新しいやり方に書き換えている • 質問の中で推測していた原因を修正

    • よりプログラマーにとって意味が明確になるような 形で書き換えている
  31. 2018年になされた編集: タグの追加 タグの追加 2018/4/11

  32. 2018年になされた編集で 何がどのように行われたか • 既存の類似した”keyboard-events”タグが存在するが • タグ”keypress”を追加することで • ”keypress”タグからもアクセスできるようにしている • さらにアクセスの可能性を高めている

  33. 当初の質問 http://web.archive.org/web/20120810001747/https://stackoverflow.com/questions/5597060/detecting- arrow-keys-in-javascript 2011/4/8 キーボードのキーが 押されたときに 何が押されたかを 判定したいが 矢印キーが判定でき ない

  34. 2019年現在の質問 内容に即したタイトル 文法の修正 コードの整形 意味の明確化 タグの追加 コードの現代化

  35. 一連の編集の経緯 質問 編集1 編集2 編集3 編集4 編集提案 文法など の修正 文法,タイトル

    の修正 本文,コードの ブラッシュアップ タグの追加 前の編集を受け入れながら,質問の 改善が続いていく
  36. まとめ •編集は,あくまで質問を改善することを志 向していた •編集は,その時の質問内容に即した形で, つまり直前の編集を受ける形で行われてい た •→編集という行為が連鎖によって組織され ていく

  37. 今後の課題と結論 •質問と回答によって知識が公開されすでに回答が 受け入れられた時点での編集が意味することは、 「検索可能な情報としての」質問回答の品質を良 くすること •様々なバリエーションのある現象も,連鎖的な組 織の上で分析できるだろう •参加者が実際に編集活動をどのように行っている かを明らかにした。