「スーパーロボット大戦Wiki:旧wikiからの移植/未移植記事」の版間の差分

提供: スーパーロボット大戦Wiki
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の1版が非表示)
3行目: 3行目:
 
== 調査結果 ==
 
== 調査結果 ==
 
*[[スーパーロボット大戦Wiki:旧wikiからの移植/未移植記事/2013年3月21日まで|2013年3月21日まで]]
 
*[[スーパーロボット大戦Wiki:旧wikiからの移植/未移植記事/2013年3月21日まで|2013年3月21日まで]]
 +
*[[スーパーロボット大戦Wiki:旧wikiからの移植/未移植記事/2013年4月6日まで|2013年4月6日まで]]
 +
 +
== 背景 ==
 +
これまで、スーパーロボット大戦Wikiの移植作業では、移植する記事の一覧を作成してきていませんでした。移植作業は終盤に差し掛かっておりますが、移植漏れの記事や担当者が決まっていない未移植の記事が存在します。また、「移植済み」表示が為されておらず、移植済みかの確認が容易でない記事も存在します。今後、移植や「移植済み」表示をするべき記事を明確にするために、これらの記事の一覧を作成しました。
 +
 +
== 方法 ==
 +
手作業では記載漏れが発生しやすいため、プログラムを用いて一覧を生成しました(プログラムはRuby言語およびUNIXのシェルスクリプトで書かれています)。
 +
 +
#[http://hiki.cre.jp/SRW/?c=index 旧wikiの「ページ一覧」]を変換し、旧wikiの全記事の一覧を作成する。
 +
#MediaWiki APIを用いて新wikiの全記事の一覧を作成する。
 +
#1. の各項目について、2. に含まれていないものを「未移植記事」とする。ただし、移植の前後で名前が変化している記事も存在するので、記事名が一致するかどうかは[[#新しい記事名を求めるアルゴリズム|後述のアルゴリズム]]に従って判断する。
 +
#[[利用者:りこりす|りこりすさん]]から旧wikiの記事に含まれる全テキストをいただき、「新サイトへの移植済み」が含まれない記事の一覧を作成する。これを「『移植済み』非表示記事」とする。
 +
#「『移植済み』非表示記事」を「未移植記事」とそうでないものに分類する。それぞれをMediaWiki書式の表に変換し、一覧記事を作成する。
 +
 +
=== 新しい記事名を求めるアルゴリズム ===
 +
旧wikiの記事(日本語名を<var>page_name</var>とする)の新wikiでの記事名を求めるアルゴリズムは以下の通り。
 +
 +
#<var>page_name</var>の「+」と「=」をそれぞれ「+」と「=」に変換する。
 +
#<var>page_name</var>という名前の記事が新wikiにも存在すれば、<var>page_name</var>を新しい記事名とする。
 +
#<var>page_name</var>が「○○○(〜)」という形の場合
 +
##「○○○ (〜)」(半角括弧の前に半角スペースを挿入)という名前の記事が新wikiに存在すれば、それを新しい記事名とする。
 +
##「○○○/〜」(半角括弧の代わりに半角スラッシュで区切る)という名前の記事が新wikiに存在すれば、それを新しい記事名とする。
 +
##「○○○」が「精神コマンド一覧」・「強化パーツ一覧」・「特殊能力一覧」・「特殊技能一覧」・「エースボーナス一覧」・「中断メッセージ一覧」・「合体攻撃一覧」・「使用技一覧」・「オプション情報」のいずれかを含む場合、「一覧」・「情報」を消去する(その結果を「△△△」とする)。「△△△/〜」という名前の記事が新wikiに存在すれば、それを新しい記事名とする。
 +
#以上のいずれの場合でもなければ、新しい記事名は存在しないとする。

2013年4月6日 (土) 20:34時点における最新版

旧wikiから新wikiへ移植されていない記事の一覧です。

調査結果[ソースを編集]

背景[ソースを編集]

これまで、スーパーロボット大戦Wikiの移植作業では、移植する記事の一覧を作成してきていませんでした。移植作業は終盤に差し掛かっておりますが、移植漏れの記事や担当者が決まっていない未移植の記事が存在します。また、「移植済み」表示が為されておらず、移植済みかの確認が容易でない記事も存在します。今後、移植や「移植済み」表示をするべき記事を明確にするために、これらの記事の一覧を作成しました。

方法[ソースを編集]

手作業では記載漏れが発生しやすいため、プログラムを用いて一覧を生成しました(プログラムはRuby言語およびUNIXのシェルスクリプトで書かれています)。

  1. 旧wikiの「ページ一覧」を変換し、旧wikiの全記事の一覧を作成する。
  2. MediaWiki APIを用いて新wikiの全記事の一覧を作成する。
  3. 1. の各項目について、2. に含まれていないものを「未移植記事」とする。ただし、移植の前後で名前が変化している記事も存在するので、記事名が一致するかどうかは後述のアルゴリズムに従って判断する。
  4. りこりすさんから旧wikiの記事に含まれる全テキストをいただき、「新サイトへの移植済み」が含まれない記事の一覧を作成する。これを「『移植済み』非表示記事」とする。
  5. 「『移植済み』非表示記事」を「未移植記事」とそうでないものに分類する。それぞれをMediaWiki書式の表に変換し、一覧記事を作成する。

新しい記事名を求めるアルゴリズム[ソースを編集]

旧wikiの記事(日本語名をpage_nameとする)の新wikiでの記事名を求めるアルゴリズムは以下の通り。

  1. page_nameの「+」と「=」をそれぞれ「+」と「=」に変換する。
  2. page_nameという名前の記事が新wikiにも存在すれば、page_nameを新しい記事名とする。
  3. page_nameが「○○○(〜)」という形の場合
    1. 「○○○ (〜)」(半角括弧の前に半角スペースを挿入)という名前の記事が新wikiに存在すれば、それを新しい記事名とする。
    2. 「○○○/〜」(半角括弧の代わりに半角スラッシュで区切る)という名前の記事が新wikiに存在すれば、それを新しい記事名とする。
    3. 「○○○」が「精神コマンド一覧」・「強化パーツ一覧」・「特殊能力一覧」・「特殊技能一覧」・「エースボーナス一覧」・「中断メッセージ一覧」・「合体攻撃一覧」・「使用技一覧」・「オプション情報」のいずれかを含む場合、「一覧」・「情報」を消去する(その結果を「△△△」とする)。「△△△/〜」という名前の記事が新wikiに存在すれば、それを新しい記事名とする。
  4. 以上のいずれの場合でもなければ、新しい記事名は存在しないとする。