Wikipedia:井戸端/subj/ビジュアルエディターに参照ツールとcitoidサービスを導入する提案

ビジュアルエディターの参照ツールとcitoidサービス、およびProveItガジェットを導入する提案[編集]

ビジュアルエディターに「参照ツール」(Cite tool)と「citoidサービス」を導入することを提案いたします。合わせてProveItガジェットの導入も提案いたします。

参照ツール[編集]

現在、ビジュアルエディターの「引用」ボタンでは脚注は直打ちでしか入力できません。参照ツールの機能とは、この引用ボタンで出典テンプレートを使えるようになる機能です。(英語版でのCiteボタンのManualタブでお試しできます。)今回の提案では基本となる4種類({{Cite web}}、{{Cite book}}、{{Cite news}}、{{Cite journal}})を選べるようにします。手順は下記の通り。

  1. チェック 各出典テンプレートでTemplateDataを作成します。出典ツールで表示される説明文になります。
  2. チェック MediaWiki:Visualeditor-cite-tool-definition.jsonを編集して出典ツールを有効にします。

citoidサービス[編集]

citoidはURL、DOI、ISBN、PMID、PMCIDのどれかを入力することでから自動生成するウェブサービスです。長々と説明するより実際使ってみたほうが早いので、英語版でのCiteボタンのAutomaticタブにてお試しください。なお、出典ツールを前提としたサービスなので、出典ツールを導入しないことで合意した場合はこちらも導入しません。導入手順は下記の通り。

  1. チェック 出典テンプレートのTemplateDataでテンプレート引数とcitoidのデータフィールド名の間のマッピングを追加します。
  2. チェック MediaWiki:Citoid-template-type-map.jsonを編集してcitoidの出典タイプと出典テンプレートの間のマッピングを追加します。

ProveItガジェット[編集]

ProveItガジェットは上記の出典ツールとcitoidサービスをソースエディターでも使えるようにするガジェットです。また、このガジェットは編集画面にGUIで出典の一覧を表示することができ、出典をクリックすると当該出典のウィキテキストに飛ぶことができます(英語版でお試しください)。まずは下記を決める必要があります。

  • デフォルトで有効にするかどうか:本提案ではデフォルトで無効にするとします。
  • タグ:このガジェットを使った編集はタグ付けされます。既定のタグ名は"ProveIt edit"ですが、本提案では簡潔に"ProveIt"とします。
  • 編集の要約:既定では「Reference edited with ProveIt」という要約が追加されますが、ここでは「脚注を編集 (ProveIt使用)」とHotCatの編集要約とおなじフォーマットにすることを提案します。

導入手順は下記の通り。

  1. チェック GUI上での引数表示を変える必要がある場合(例えば、引数の文字数長い場合、テキストボックスで表示するよう変更できます)、出典テンプレートのTemplateDataを編集します。
  2. チェック commons:MediaWiki:Gadget-ProveIt-ja.jsonを編集して、ガジェットのユーザーインターフェースを日本語化します。
  3. チェック 編集タグを追加します。
  4. チェック 後は通常のガジェット提案と同じ。

各テンプレートの変更点[編集]

下記はcitoidの導入に先立って行われる予定のテンプレート変更です。TemplateData変更は各テンプレートの出力に影響せず、この説明では省略します。

  • チェック {{Cite book}} - language=jaまたはlanguage=ja-jpの場合、{{Cite book/和書}}を使用。また、和書テンプレートに渡すlanguage引数は直で渡すのではなく、{{ISO639言語名}}で処理してから渡す。
  • チェック {{Cite journal}} - language=jaまたはlanguage=ja-jpの場合、{{Cite journal/和書}}を使用。
  • チェック {{Cite web}} - language引数は直で表示するのではなく、{{ISO639言語名}}による表記を使用。
  • チェック {{ISO639言語名}} - Luaモジュール化して、国コードつきの言語コードが入力された場合に国コードを無視するよう変更。

導入日時の予定[編集]

  • チェック 参照ツール:特に反対がない場合、2018年3月18日 (日) 14:51 (UTC)以降。
  • チェック テンプレートの変更:特に反対がない場合、2018年3月28日 (水) (UTC)以降。
  • チェック citoidサービス:Cite book及びCite journalのテンプレート修正と同時、またはそれ以降。
  • チェック ProveItガジェット:Cite book及びCite journalのテンプレート修正と同時、またはそれ以降。

コメント[編集]

質問 素晴らしいガジェットの提案、ありがとうございます。citoidサービスについての質問なのですが、日本語版ウィキペディアでは出典としてCiniiの論文がよく用いられている気がするのですが、{{cite book}}や{{cite journal}}のncidやnaidに対応していただくことは可能なのでしょうか?(個人的には{{NDLDC}}にも対応して欲しいというのはありますがこれは難しいので)--MawaruNeko会話2018年3月4日 (日) 15:27 (UTC)[返信]
返信 2種類の対応が考えられます。(1) NCIDやNAIDを入力するだけで出典を生成できるようにする。これはcitoid内で実装される形になります。もしNCIDとNAIDの規格がわかれば、こちらからPhabricatorにて要望を出せます。(2) CiniiのURLを入力して生成される出典でncidとnaid引数を含むようにする。citoidは内部でZoteroのtranslatorライブラリを使用しており、これを変更することでncidとnaidを返すことができます。それが終わり次第、出典テンプレートのTemplateDataを編集することで対応が完了します。後者についてもうちょっと考えてみます。--ネイ会話2018年3月4日 (日) 17:33 (UTC)[返信]
返信 ありがとうございます。CiniiのnaidなどはURLに直接IDが書いてある形式で、URLに.jsonをつけるとJSONデータが得られるようです。JSONデータの仕様は[1][2]で公開されていて、他にもRDFでも取得できるらしいです。Zoteroのtranslatorも、CiNii.jsでnaidには既に対応しているようですね。--MawaruNeko会話2018年3月5日 (月) 15:11 (UTC)[返信]
賛成 これは良いですね。特に、追加時のaccessdate自動挿入や、accessdate補填時の現在日は非常に助かります。提案の詳細についても、特に問題ないと思います。強いてコメントするなら、ProveItガジェットはなぜデフォルトで無効とするのでしょうか?問題がないことが確認できてからデフォルト有効しようとお考えなのでしょうか?--翼のない堕天使会話2018年3月4日 (日) 15:29 (UTC)[返信]
返信 ProveItは常に最新版が使われるようコモンズからjsを読み込む実装となっているので、ソースエディターをむやみに重くしたくないという考えからデフォルトで無効としました。ProveItによる負荷があまり問題にならないという合意がなされた場合、デフォルトで有効にすることに反対しません。--ネイ会話2018年3月4日 (日) 17:33 (UTC)[返信]
なるほど。やはり負荷を気にしての提案ということですね。このガジェットは、ウィキペディアにとって重要な、検証可能性を満たすことを補助する機能だと考えています。と、すれば、デフォルトで有効とし、すべての利用者で使えるようにした方がよいと考えています。とはいえ、負荷を確認してから、というのであれば、最初にデフォルトで無効で実装するのでも、よいと思います。--翼のない堕天使会話2018年3月4日 (日) 23:56 (UTC)[返信]
「参照ツール」と「ProveItガジェット」については導入に 賛成 します。Citoidも史上まれに見る最高のサービスですね!……と言いたいところですが、ISBNやISSNを食わせて吐き出されるCiteテンプレートが英語のウェブサイトWorldCatをデータベースに使ったもので、和書表示に対応できません。例えば、ISBN 978-4-88367-243-1の書誌情報は「Toshokan no horei to seisaku. Goto, Toshiyuki, 1977-, 後藤, 敏行, 1977-. Jusonbo. 2015.3. ISBN 9784883672431. OCLC 907279198.」として出力されてしまいます。そこで質問なのですが、特定のプロジェクトだけ、別なデータベースを使って処理することはできるのでしょうか? 例えば、NDLのAPIにアクセスし、dcterms:languagejpnな時は、NDLのデータを({{Cite book|ja-ja}}を使って)、そうでないときはWorldCatのデータを改めて取得しなおしてこれを使う、というのが日本語版には一番フィットするような気がいたします。勿論、英語出典しか使わない人もいらっしゃると思うので、取りあえず暫定的に現在の使用で稼働させ、問題を先延ばしにしてもいいとは思いますけど……。なお、NDLのAPIは「APIのご利用について」にて
非営利目的でのご利用にあたっては、手続き等は必要ありません。(中略)営利目的でのご利用にあたっては、無償提供/有償提供に関わらず、利用申請が必要です。(「国立国会図書館のAPIを使った機能自体は無償だけれども、その機能を提供するシステムは有償である」という場合や、「広告収入等が発生する」場合は、営利目的に該当します。)
ということで、少なくともウィキペディア内で使う分には申請は不要であると考えております。--軽快(旧名: Kkairri会話2018年3月10日 (土) 12:25 (UTC)[返信]
報告 MawaruNekoさんのNAIDとNCIDに関する要望、軽快さんの和書表示に関する要望をまとめてphabricator:T189485として提出しました。ProveItガジェットがcitoidなしでも使えるかどうかはわかりません(おそらく可能と思われますが、テストはしていません。もちろん、テスト環境があれば話は別です)ので、わたしとしてはcitoidを導入しつつ、上記の2要望についても並行してcitoidの開発チームとの議論を続けたいのですが、いかがしましょうか。--ネイ会話2018年3月12日 (月) 13:52 (UTC)[返信]
コメント さっそく、返信がきましたのでご報告いたします。
  1. NAIDとNCID対応:citoid側で開発を進めることができますが、時間がかかるとのこと。
  2. NDL APIで日本語書誌であるかを確認、日本語書誌の場合はNDLのデータを、それ以外の場合はWorldCatのデータを使う:citoid側で開発を進めることができますが、時間がかかるとのこと。
  3. 日本語書誌の場合に{{Cite book ja-jp}}を使う:書誌の種類ごとにテンプレートを切り替えるようJSONで指定しているだけなので、対応は難しいとのこと。ただし、サービスが返すデータに言語コードが含まれるので、ウィキペディア側で対応できる可能性があります。例えば、{{Cite book|language=ja-jp}}(またはlanguage=ja)と引数指定した場合に{{Cite book|和書}}を呼び出すようにすれば、citoidで和書表示に対応できます。なお、この変更を行う場合には{{Cite journal}}も同時に変更すべきでしょう。
以上となります。1番と2番の開発を待つ間に導入を続けてもいいか、および3番の変更を実施すべきかについて意見がほしいところです。--ネイ会話2018年3月12日 (月) 16:31 (UTC)[返信]
コメント phab作成及び報告ありがとうございます。私の意見としては、3のテンプレート修正を行った後に導入でよいと思います。(念のため書いておきますが、)3のテンプレート修正は、無名引数1が「和書」の場合に和書版のテンプレート呼び出しをするようになっているだけなので、そこにlanguage指定も確認するようにする簡単な修正で対応可能です。
ただし、開発の見込みは確認しておきたいですね。--翼のない堕天使会話2018年3月12日 (月) 23:33 (UTC)[返信]
コメント {{Cite book}}並びに{{Cite journal}}にて告知テンプレートを貼り、Wikipedia:コメント依頼にも追記しました。あわせて導入の予定日時も記述しておきました。開発の見込みについては現在Phabricatorにて確認中です。--ネイ会話2018年3月15日 (木) 16:50 (UTC)[返信]
(追記) {{Cite book/sandbox}}並びに{{Cite journal/sandbox}}にて変更案を作成しました。なお、language引数を指定して和書表示とした場合、言語名が正しく表示されないため、Cite book/和書に渡すlanguage引数に{{ISO639言語名}}を使用するよう変更しました。{{Cite web}}でも同じ問題があるため、併せて同じ提案をいたします。そちらは{{Cite web/sandbox}}で変更案を作成しました。テンプレートの変更点も多くなりましたので、#各テンプレートの変更点でまとめてみました。--ネイ会話2018年3月17日 (土) 07:29 (UTC)[返信]
{{Cite web}}と{{Cite journal}}については別件議論中であること、先にお伝えしておきべきでした。{{Cite journal}}に関しては、明日にでも修正実施するうえ、Cite journal自体に修正が入るわけではないので、問題ないのですが、Cite webは3/28に保護ページの修正依頼実施予定としています。何度も修正依頼かけるのもアレなので、3案件(website,format,language)同時申請とした方がよいかと思います。
また、テストケースで検証したのですが、国コード付きだと正常に表示されないようです({{ISO639言語名}}は言語コード用なので、当然といえば当然ですが)。phabを見る限り、国コード付きが返る場合もあるようですが、問題ないのでしょうか?--翼のない堕天使会話2018年3月17日 (土) 09:21 (UTC)[返信]
(あと、直接関係ないのですが、{{Cite web}}の告知に、websiteの議論についても追加いただけると助かります。)--翼のない堕天使会話2018年3月17日 (土) 09:24 (UTC)[返信]
3/28に同時に実施することに賛成し、併せて#導入日時の予定を編集しました。国コード付きの場合は国コードを無視するか、{{RFC5646言語名}}を作成するか、国コード付きの言語コードを受け付けないかの3択になりますが、どうしましょうか。一応出典をいくつか試してみましたが、いずれもjaが返る模様です。(websiteの提案告知を追加しました。)--ネイ会話2018年3月17日 (土) 11:06 (UTC)[返信]
導入日時の件、ご理解いただきありがとうございます。また、告知の追加についても感謝します。国コード付きの場合についてですが、Mvolz氏の、「ja or ja-jp depending on the source」との発言は、個人的には見逃せない部分です。ほとんどがjaで返るのだとしても、ja-jpが返る可能性があるのであれば、対応する必要があると考えます。ただ、{{RFC5646言語名}}だと、RFC5646の範囲が広すぎて、開発が大変になりそうです。一番簡単な方法は、{{ISO639言語名}}をLuaモジュール化したうえで、ハイフン以降は無視するコードとするように変更することじゃないかなと思います。単純に国コードを無視するのでもいいのですが、最適な関数ありましたかね?モジュール:Stringを利用して実現しようとすると(実現したいことに対して)すごくめんどくさいコードになりますよね。。。--翼のない堕天使会話2018年3月17日 (土) 11:28 (UTC)[返信]
(インデント戻す)さっそく、モジュール:ISO639言語名Template:ISO639言語名/sandboxTemplate:ISO639言語名/testcasesを作成させていただきました。合わせて、#各テンプレートの変更点を更新、ならびにTemplate:ISO639言語名で告知しました。--ネイ会話2018年3月17日 (土) 12:42 (UTC)[返信]
早速のご対応ありがとうございます。修正点確認しましたが、おおむね問題ないと思います。(好き嫌いのレベルですが、テンプレート本体より前にdocが書いてあるのが気になりました(笑)docがnoincludeでテンプレート本体がincludeonlyなので、害はないですが(笑))
あと、docで「複合的な表記には対応していません。」というのは、テンプレート修正後に変更が必要ですね。
また、{{ISO639言語名}}も保護テンプレートなので、一緒に修正依頼かける必要がありますね。{{Cite web}}といっしょに依頼かけようと思います。--翼のない堕天使会話2018年3月17日 (土) 21:20 (UTC)[返信]

報告 予告通り、特に反対がなかったため参照ツールを有効にしました。何か問題がございましたらどうぞお申し付けください。--ネイ会話2018年3月18日 (日) 15:28 (UTC)[返信]

報告 合意が得られたものとし、Wikipedia:管理者伝言板/保護ページ編集#Cite_webおよびWikipedia:管理者伝言板/保護ページ編集#ISO639言語名にて、保護ページの編集依頼を行いました。--翼のない堕天使会話2018年3月28日 (水) 10:56 (UTC)[返信]
報告 ISO639言語名、Cite web、MediaWiki:Gadget-ProveIt-ja.jsonの編集作業が完了しました。後ほど作業を継続します。--ネイ会話2018年3月30日 (金) 14:00 (UTC)[返信]
報告 Cite book、Cite journal、MediaWiki:Gadget-ProveIt.js‎の編集作業が完了したほか、Wikipedia:ProveItを翻訳作成しました。残りは明日か明後日に継続します。--ネイ会話2018年3月30日 (金) 16:00 (UTC)[返信]
報告 各出典テンプレートにおけるcitoid用マッピングとProveIt用設定の追加、MediaWiki:Citoid-template-type-map.jsonの編集、ProveItの編集タグの追加、ProveItガジェットの導入が完了しました。これにて全手順が終了しました。まだバグが残っている可能性もありますので、もし何かございましたらWikipedia:バグの報告またはWikipedia‐ノート:ProveItなどで報告していただければ幸いです。--ネイ会話2018年3月31日 (土) 15:29 (UTC)[返信]