フォーラム:上位カテゴリの表示方法について

出典: 謎の百科事典もどき『エンペディア(Enpedia)』
ナビゲーションに移動 検索に移動
フォーラム:メインページ > 上位カテゴリの表示方法について 進行中

このフォーラムは、簡単に言うと、Enpedia:カテゴリの運用方針に基づき定められているPathnavを廃止し、カテゴリ名前空間にシステム的に「上位カテゴリ」という節を表示させてみよう!という提案になります。ここへ至った詳細についてはRest:日記/2020-09-07テンプレート・トーク:Pathnavを参照してください。なお、フォーラムを開いた本人は多忙により議論を主体的に進めるほど時間が確保できないので、私の顔色なんて気にせずどんどん話をすすめてもらって構いません。

さて、まずもって、現在は方針により、カテゴリを作成するには {{Pathnav}} テンプレートを冒頭に貼って、作成したカテゴリがどの位置にあるか引数を指定する必要があります。しかし、これは手動で上位カテゴリを引数として指定する必要があり、非常に煩わしい作業です。また、この煩わしさ故に「カテゴリ」がライトユーザーが触れずらいものとなっているように思います。他に、手動故どうしてもミスが発生してしまうことがあります。カテゴリを新規作成したことがある方なら、苦労した経験があるのではないでしょうか?加えて、(私含め)一部の利用者はPathnavが分かりずらいとも指摘しています。

このような現在のPathnavの問題点を打破するため、User:かにふとんさんがMediaWiki名前空間を操作して、下位カテゴリにシームレスに「上位カテゴリ」のタブを設けるという実現手段をテンプレート・トーク:Pathnavにて考案されました。これを採用すると、上位カテゴリは自動で表示されるようになり、カテゴリ作成の時に必要な編集はそのカテゴリの内容(「○○に関するカテゴリです」の一文)と上位カテゴリ・デフォルトソートの指定だけで済み、また上位カテゴリの修正もHotCatのみで可能になり便利です。

私としては、前述のようなPathnavの複数の問題点から、この案を採用するのがいいんじゃないかと思いますが、いかがでしょうか。--360度 (トーク) 2020-09-07T22:21:42 (JST)

議論[編集]

コメント 現状の{{Pathnav}}にある程度慣れている1編集者の身として、少し意見を述べさせていただきます。

そもそもの問題点を考えた場合、「カテゴリの乱立」が問題なのだと思います。エンペディアでカテゴリページ作成時に{{Pathnav}}を使う事を必須としているのは「カテゴリの乱立」に対する対抗策の一つとされているような気がします。Enpedia:議論の場/終わった議論 (2011年-2014年)#カテゴリについて

そしてエンペディアでカテゴリページ新規作成時に迷う事としては、{{Pathnav}}で上位カテゴリからのパスをどのように表現するか、です。複数の経路があったりすると、どの経路を選ぶかで迷い、私は2つか3つ程度を選んで{{Pathnav}}を作成したりしていました。カテゴリ:軍用機とか)

一応、{{#categorytree:{{PAGENAME}}|mode=inverse|hideroot=on}} を試しに追記してプレビューして見ましたが、上位カテゴリが下位カテゴリのように表示されている?と感じました。

360度さんのしたい事はこの書き込みを見た限りだと、概ね「カテゴリの整理や作成」になるのかなと思っています。きちんとした構造にしたいと。そうなった時にHotCatのみでは{{Pathnav}}を修正できない事が問題に感じるのだと思います。

Enpedia:カテゴリの運用方針に基づき定められているPathnavを廃止」というのは「Enpedia:カテゴリの運用方針」を変えることになるため、安易には行えないかなと思います。「カテゴリの整理や作成」をしたいのでしたら、まずは末端に近い一部のカテゴリをターゲットとし、時間をかけて徐々にボトムアップしていくような手法を取るのが無難、という事になるかなと感じました。--Shingo.a (トーク) 2020-09-08T23:54:04 (JST)

返信
>カテゴリの乱立
私見では現状、カテゴリはもう少し細分化してもいいのかなとは思ってます(Ex.○○県の鉄道駅…などは記事がそろい次第、47都道府県とも作成していいと思う)。この程度には細分化したほうが、カテゴリを一種の「記事一覧」としてみるときに見やすいと思うのです。ただし、そこまで細分化しなくても!みたいなカテゴリも散見される(≓乱立されている)のもまた事実なので、現在は5件以上でカテゴリが新規作成できることになっていますが、ここに加えて「今後ある程度他に入る記事が新規作成されることが想定されること」のような条件をもう一言付け加えてもいいのかも。(未来永劫5・6件のカテゴリは不適?/Enpedia・トーク:カテゴリの運用方針の提案に近い)
>HotCatのみでは{{Pathnav}}を修正できない事が問題
最初の提案の文章、そのあたりが雑なのすみません。勿論それも大きな要因ですが、Pathnavを手作業で丹精込めて作成しても、(かにふとんさんの提案したシステムより)どこか分かりにくいというか分かり辛く感じるのが一番のポイントですね。「カテゴリの作成や整理」をするときに、分かりやすいシステムならば手作業であっても作成や修正の作業することはやぶさかではありませんが、より分かりやすく表示する方法があるならば、折角ならばそれで作成したいという所存です。ただし、どちらが分かりやすいのかは個人差があると思いますのでその辺りは調整が必要かもしれませんが。
>方針の改定が必要
最終的にはそれをどう改定するのか(どのような改定が必要なのか)このフォーラムで草案をまとめてもらい、適切な場にもっていって投票、のような流れを考えてフォーラム立ててます。--360度 (トーク) 2020-09-09T10:40:24 (JST)
返信(360度さん宛) なんだか技術的な解決が可能であれば、それほど改定せずとも済みそうな感じですね。--Shingo.a (トーク) 2020-09-09T20:55:56 (JST)
返信 (Shingo.aさん宛) まさに「2つか3つ程度を選んでPathnavを作成」できうる点を問題視していました。将来のカテゴリ整備時にPathnavが現状と乖離していた場合、それが経年変化によるものなのか、Pathnav作成者が意図的に省略したものなのか区別できないという問題が発生します。加えてカテゴリの運用方針には「5件以上が望ましい」という条件があるため、記事数の増減だけを理由にカテゴリ作成・削除が行われやすい環境にあるともいえます(これを問題視するならば方針改正が必要となり、やはりハードルが高くなります)。
こうした問題点を解決するために上位カテゴリのリンクを自動生成したい、という提案意図を理解していただいた上で、仮に「Pathnavの見た目そのままで上位カテゴリを自動表示する」という提案(方法はまだ思いついてませんが……)であれば賛成されますでしょうか?--かにふとん (トーク) 2020-09-09T11:36:37 (JST)
返信(かにふとんさん宛) 提案意図は理解しております。まずは共通の認識を築けたようで嬉しいです。確かに「Pathnavの見た目そのままで上位カテゴリを自動表示する」という技術的な解決手法があれば、それが一番ですね。当方はMediaWikiのExtension?とか詳しくないので実現可能かどうかちょっと分かりかねますが…。{{Pathnav3}}みたいな感じで別途用意して選択肢を増やしてもらえれば理想的ですね。--Shingo.a (トーク) 2020-09-09T20:55:56 (JST)

「Pathnavの見た目そのままで上位カテゴリを自動表示する」関連[編集]

報告 最上位カテゴリから現在のカテゴリまでの最短経路を動的に表示できないかなーとか思ってちょっと方法を探してたのだけれど、最短経路問題みたいなアルゴリズム組む事になる気がして、なんだかそこまでは無理そうだった、という個人の感想の報告です。
CategoryTree拡張機能を見てみたけど「Pathnavの見た目そのままで上位カテゴリを自動表示する」っていうのは引数調整する程度では再現できないですね。参考までにとWikipediaのPathnavを見た感じでも、パス構造が変化した場合は手動での修正を想定しているようです。もし動的にできればWikipediaのPathnavを超える事になりそうですけどね。
引き続き調べてみて、何かあればまた報告予定。--Shingo.a (トーク) 2020-09-11T22:31:06 (JST)

報告 いろいろ調べたけど自分には無理そうだった、という結論。私は今まで通りの方法で一応できるしそれでいいやーという。後は他の方々にお任せします。--Shingo.a (トーク) 2020-09-17T20:16:49 (JST)
報告 Luaモジュール化できないかなぁと調べてみたのですが、下位カテゴリ&下位ページは取得できても上位カテゴリは取得できなさそうです。ページ全体を取得してカテゴリリンクを抽出すれば無理やり行けるかもしれませんが、サーバー負荷がヤバそう。。。--かにふとん (トーク) 2020-10-11T22:08:26 (JST)
報告 ちょっと興味が湧いたので、CategoryTreeのAPIを使って経路を表示するUserJSを書いてみました。今のところは枝切りを一切していない(ループ対策だけ)のですべての経路が表示されています。枝切りアルゴリズムの実験用ですね。なおapi.phpを叩く回数を減らすためにキャッシュ機構を用意したのですが、キャッシュ確認のタイミングが噛み合っていなくて少し多めにリクエストを出すバグがあります。2回目以降はちゃんとキャッシュを読むのでリクエスト回数は激減するのですが…。--Sigsign (トーク) 2020-11-25T17:57:47 (JST)
カテゴリ:大阪府で試してみましたがちゃんと動いてそうですね。あとはここからどうやって枝切りすればいいのか……(当初案のようにCategoryTreeの見た目で上位カテゴリを表示しとけばその心配はない、とも言えますが。)--かにふとん (トーク) 2020-11-28T09:54:12 (JST)
  • コメント これを実装する場合、本当はサーバー側で一回だけPathnavを自動で構築してそのデータを表示する方がキャッシュを持たないユーザーが訪れる度に多くのリクエストが発生するであろうcommon.jsよりサーバーの負荷が少なそうですが、今の所現実的ではなさそうですね。common.jsで実装する場合どこからEnpedia:ボットに記載されている「ボット」に該当するかということも気になります。--N1 (トーク) 2021-05-20T22:09:40 (JST)
  • コメント 従来の手動Pathnavの場合、上位カテゴリの枝が多すぎる際に主要であろうと思われる枝のみを選択して表示させることができるメリットがありますが、自動Pathnavに切り替える場合はここをどうするかも考えた方が良いかもしれません。--N1 (トーク) 2021-05-20T22:09:40 (JST)

枝切りロジック案[編集]

pathnavの存在意義が「全ての道はカテゴリ:カテゴリに通ず」であると仮定した場合、簡潔に実装できそうなロジックはこんな感じになるかなと。

  • (最上位カテ, 親カテ) の組み合わせは全網羅
  • 「最上位カテ~親カテ」の経路が複数ある場合は最短経路のみを表示
  • ただし内部処理では枝切りせず全探索しておいて、ループを検出した場合は別途エラー表示

こうすることで、カテゴリ:カテゴリ以外で行き止まりになってしまったカテゴリの洗い出しもできれば。--かにふとん (トーク) 2020-11-28T11:47:18 (JST)

  • sigsignさんのやつを改造して適当に作ってみた。非同期まわりの勝手がよくわからず、枝を辿るごとにDOMを再構築するという力業なので速度はお察しです。--かにふとん (トーク) 2021-04-06T20:45:24 (JST)

投票[編集]

迷ったら投票で白黒つけてしまえ!ということで。フォーラム:書きかけテンプレートの廃止についてを参考に投票を実施します。

  • 提案内容: Enpedia:カテゴリの運用方針の改定
  • 改定が決まった際の手順
  • 要するに?
    • カテゴリページを作る時に{{Pathnav}}を手動で貼るのを廃止します。その代わりに「下位カテゴリ」セクションの上に「上位カテゴリ」セクションができて、ここに上位カテゴリが自動で反映されるようになります。
    • これによって{{Pathnav}}をいちいち手動で貼る手間や、{{Pathnav}}が実態と全然違って不快に思うことがなくなります。
  • 投票期間: ~11/14 23:59まで~11/21 23:59:59まで --360度 (トーク) 2022-11-08T18:36:27 (JST)下線部加筆360度 (トーク) 2022-11-08T20:26:04 (JST)◆投票期間延長360度 (トーク) 2022-11-15T17:17:40 (JST)

方針の改定に賛成[編集]

  1. 360度 (トーク) 2022-11-08T18:36:27 (JST)
  2. seron|talk&contribs 2022-11-08T18:57:30 (JST)
  3. こうき (問い合わせ記録) 2022-11-08T21:03:13 (JST)
  4. --Fusianasan1350 (トーク) 2022-11-09T00:44:51 (JST)

方針の改定に反対[編集]

  1. 下記のとおり、対応方法がハッキリ決まっていないので、改訂は時期尚早ではないかと。謎の管理者もどき BadEditor 2022-11-15T17:39:28 (JST)

コメント[編集]

  • 6年前から改定派です。{{Pathnav}}は手動でやっているので、カテゴリページを作る時に手間がかかる割に、実態と乖離していることが決して少なくありません。それでも存続にこだわるべきデザイン的に優れた面があるのか、というとそんなことがあるとも思いません。いち早く、かにふとんさんの提案のように、下位カテゴリとシームレスに上位カテゴリ節を作って自動化されることを望みます。--360度 (トーク) 2022-11-08T18:36:27 (JST)
  • かにふとんさん曰く、いくつかのMediaWiki空間ページ「にぶっこんで頑張る」....ということらしいのですが、これは問題なく動作することを確認済みなのでしょうか?(例えば、他ウィキなどで) それ次第だと思います。---謎の管理者もどき BadEditor 2022-11-08T19:13:23 (JST)
    • テスト用に置いてるウィキで軽く確認しただけなので、方向性が決まったら私が頑張って再度確認します(それでも全パターンは網羅しきれないはずで、あとは運用しながらバグ出しつつ対処しましょう)。--かにふとん (トーク) 2022-11-08T19:56:00 (JST)
      • 昔テストウィキの実験見せてもらったときには問題ない感じだったような覚えなので大丈夫じゃないですか?それに、複雑な操作をするわけではないので、もし致命的な失敗をしたらもとに戻せばいいだけです(PathnavをBotで剥がすのを最後にしたのは失敗を考慮してのことです)。--360度 (トーク) 2022-11-08T20:22:15 (JST)
  • テストウィキで再度試してみたのですが、「下位カテゴリなし・上位カテゴリあり」の場合で思ったような結果にならないことを確認しました。本来categorytreeがないページにcategorytreeを差し込もうとするとツリー表示にならないようで、MediaWiki空間で無理やりやるのは諦めてJavaScriptか何かでcategorytreeを差し込んでやらない限りは難しそうです。
  • ……と考えながら気が付きました。本議論中でSigsignさんがJavaScriptでcategorytreeのAPIを叩いているやんけ。てなわけでAPIの取得結果を無加工で挿入するUserJSを作りました。これならほぼゼロリスクでいけそうです。--かにふとん (トーク) 2022-11-08T22:47:13 (JST)
    • 直近1つ上のカテゴリが表示されるだけ、ですかね。こちらで例示して頂いたような、上位カテゴリの「ツリー」の表示は叶わないのでしょうか。---謎の管理者もどき BadEditor 2022-11-08T23:14:05 (JST)
      • API直叩きなんて上手い話はダメそうですね。別の方法を考えます(元議論でも書いた通り、mw:Extension:Header Footermw:Extension:PageNoticeが使えれば話は楽です、が使えない想定で動いておきます)。--かにふとん (トーク) 2022-11-09T00:12:14 (JST)
        • お手数かけていただいたようで恐縮です。また検証ありがとうございます。なるほど、検討していた方法では厳しそうな感じということですね。そうであれば、とりあえず投票に関しては予定通り実施しあらかじめ合意を得ておき、どなたか良い感じの方法を開発できたら即時実行する形にしましょうか。--360度 (トーク) 2022-11-09T20:39:32 (JST)
  • MediaWikiメッセージを編集する方式も、APIを叩く方式も難しいようであれば、やはりこのやり方がいいんではないかな、と思います。---謎の管理者もどき BadEditor 2022-11-11T02:19:30 (JST)
  • まだ明確に賛成か反対か決まっていませんが、ひとまず思った事をいくつか下にコメントします。--N1 (トーク) 2022-11-14T01:38:34 (JST)
    • 方針を改定する場合でも2番目({{Pathnav}}の白紙化)に関しては少なくとも{{Pathnav}}はカテゴリ同士の位置関係を表示する以外の用法が存在しており(また実際に多くのページでその用法で使われており)その意味で完全な白紙化は不都合が予想されるため現時点では反対します。完全な白紙化ではなくカテゴリ同士の位置関係を表示するための{{Pathnav}}に限り自動化された時点でそれと置き換える様に非表示にするのが自然かもしれません(まだ深く考えていませんが)。--N1 (トーク) 2022-11-14T01:38:34 (JST)編集--N1 (トーク) 2022-11-14T02:06:29 (JST)
    • あるカテゴリが未作成のカテゴリを経由する構造になっている場合にも自然なナビゲーションができる点はPathnavの強みでした。それがこの変更によってどう響くかが気になるところです。--N1 (トーク) 2022-11-14T01:38:34 (JST)
    • とりあえず自動化を導入して様子を見ること自体は悪くないと思います。--N1 (トーク) 2022-11-14T01:38:34 (JST)
    • Pathnavの手動生成及び状況に合わせた更新を行う手間が省けるといったメリットを受けることができ、その点は良いと思います。--N1 (トーク) 2022-11-14T01:38:34 (JST)
    • 投票期間が少し短い気がしました。--N1 (トーク) 2022-11-14T01:38:34 (JST)
  • 報告 Enpedia:カテゴリの運用方針のページに{{意見募集}}を貼ってこのページに誘導しました。--N1 (トーク) 2022-11-14T01:52:18 (JST)
    • 「カテゴリ同士の位置関係を表示する以外の用法」というのは、具体的にはどのページのことか、教えて頂けると幸いです。---謎の管理者もどき BadEditor 2022-11-14T01:53:37 (JST)
  • 予定していた投票期間が終わりました。はやく実施してしまいたいというのもあって投票期間は1週間とやや短めにしていましたが、短いという指摘もあり、また実施までもうしばらくかかりそうなので急ぐ理由もありませんから、もう1週間延長します。新しい投票期間は11月21日23:59:59までとします。--360度 (トーク) 2022-11-15T17:17:40 (JST)
    • 投票期間が終わりましたが、結局どうなったんですかね?2023年の11月21日までだった可能性が・・・?)---謎の管理者もどき BadEditor 2022-11-26T09:08:20 (JST)

仕切りなおし[編集]

  • この議論のことをすっかり失念していました。失礼しました。投票の結果より(代替となる実施方法が確立したら)Pathnavを自動化することに対してコミュニティは肯定的であるということを確認しました。◆しかし上記の議論でみなさまご存じの通り、まだ実施方法が確立しておりません。ですので、これは予備調査ということで、もしどなたかいい感じの実施方法を確立していただいた場合には、この投票ですでにコミュニティの合意形成が済んでいるとみなして、方針の改定・カテゴリ空間のPathnav除去・システムメッセ―ジの編集など一連の作業を(これ以上の合意の確認をせずに)出来るということで一旦仕切り直しとしたいと思います。◆なお、作業に当たっては、その新しい方法が本当に問題ないかについて、コミュニティの第三者へ確認する過程は忘れずにお願いします(「いい感じの確立した実施方法に変更する」ことの合意はとれていますが、その方法が本当に「いい感じの確立した実施方法なのか」について問題がないかなどの確認が必要ということです)。--360度 (トーク) 2022-11-27T12:34:44 (JST)
    • 例えば、半年経っても誰もいい案を思いつかなかった時には、この方法でいく――という風に期限を切ってみるのはどうでしょうか。---謎の管理者もどき BadEditor 2022-11-28T23:42:38 (JST)
    • 議論をよくよく見直したら、Extention の導入(mw:Extension:Header Footermw:Extension:PageNotice)という手もあるのですよね。これは rxy さんの協力がないと実現できない方法なわけですが、今後 {{Pathnav}} 関連の些末な編集が一切なくなり、長期的に見るとサーバーへの負荷がかなり減る ―― というメリットを提示すれば、対応してもらえる可能性はあるのではないかな、と思ってます。---謎の管理者もどき BadEditor 2023-03-18T14:05:54 (JST)

【@rxyさん】拡張機能の mw:Extension:Header Footermw:Extension:PageNotice を導入することは可能でしょうか。導入すると、カテゴリの Pathnav の細かな編集が恒久的に無くなりますので、長い目で見るとかなりサーバーの負担を軽減できるのではないかなと思います。

「導入しない」ならしないで別の対策法を協議しますので、ご回答をよろしくお願いいたします。― BadEditor 2023-11-15T20:01:44 (JST)


とりあえず、「Enpedia:カテゴリの運用方針」から「Pathnavについて」の記述を除去していいでしょうか? 上の投票でその部分は合意を得られていると思いますので。。。(個人的には、カテゴリをいじる時にPathnav も書き換えなければいけないのは死ぬほどダルいです。)― BadEditor 2024-01-13T10:54:27 (JST)

コメントPathnavは閲覧側としては見やすいと思うので、機能は残す感じにできないですかね?--摩耶 (トーク) 2024-01-21T15:45:46 (JST)

再・仕切り直し[編集]

結局、この案でよいと思うんですけど、どうですか?

難点としては、何千(何万?)ページでテンプレートの貼り替えを行う必要がある点ですね。-- BadEditor 2024-09-08T14:56:02 (JST)

(追記)
  • {{Pathnav}} が、カテゴリページでは表示されないようにする(テンプレートに一行付け足せばOK)
  • これから先、カテゴリページを編集する時は {{Pathnav}} を外して {{上位カテゴリ}} を付けることを推奨する
こういう運用にすれば、(一応)ほんの5分で移行は完了しますね。(しばらくの間、ほとんどのカテゴリに「上位カテ」の表示がない状態は続きますが。)
(追記2)
少々「力技」にはなりますが、全カテゴリページへの {{上位カテゴリ}} の追加を JavaScript で行うという手もありそうです。記事の冒頭にシェアボタンを追加しているのと同じように....(詳細未検証)-- BadEditor 2024-09-25T14:47:47 (JST)