Counter: 6509, today: 1, yesterday: 0

共通アーカイブ基盤整備計画について語りましょう。

いいだしっぺ:olyutorskii 


News

2011-04-21 JinArchiver 1.502.2 版をリリース。
110421版スキーマに対応したよ!
2011-04-21 G国対応スキーマ 110421 版をリリース。
アバター識別子の存在チェックを追加したよ!
2010-03-25 JinParser 1.403.2 版をリリース。
Jindolf 2.20.2版以降のXHTMLパーサ部を担うJavaライブラリです。G国赤字メッセージに対応しました。
2010-03-16 JinCore 1.203.2 版をリリース。
人狼BBS関連の基盤部を担うJavaライブラリです。G国失踪イベントに対応しました。
2009-10-31 olyutorskii/統計センターを開設。
XMLアーカイブを使った各種統計調査です。

「共通アーカイブ基盤整備計画」って何?

人狼BBSのプレイデータを形式化するインフラを整えることによって、プレイデータの交換、加工、分析などの活動が盛り上がるといいなあ、というお話です。

それで何ができるようになるの?

※ 以下、だいぶ妄想が混じってます。

  • 稼働中の人狼BBSサーバに負担をかけることなく、過去ログデータをすべて入手し、好みのスタイルシートでゆっくり閲覧が可能になるといいなあ。
  • 「携帯用にこの過去ログをPDF化したい」とか「プリンタ用にLaTeX化したい」とか「JavaScript用にJSON化したい」とかいうプログラムが比較的楽に作れるようになるといいなあ。
  • XQueryXPathが使えるフリーのXMLデータベースにまとめてプレイデータを放り込んだら、プログラミング抜きの思いつきでいろいろな統計処理がアドホックにこなせるようにならないかなあ。
  • 全ての村の会話内容を検索する検索サイトができるといいなあ。
  • コンピュータサイエンスの自然言語処理を駆使して、モーリッツRPを機械学習させたプログラムに太宰治作品をモーリッツ化させたいなあ。「セリヌンティウス、ワシを吊るのじゃ。力一杯吊るのじゃ。ワシは悪い夢を見たのでな。」

今後の計画とか

※ 2009年4Qの時点での計画

  • 共通アーカイブのスキーマ定義の検討。091001版の XML Schema でレッツゴー。
  • JindolfからXHTMLパーサを分離する。(2.20.2版でとりあえず一段落)
  • 人狼BBSのXHTMLから共通アーカイブへ変換するツールを製作。JinArchiverと名付けて2009-10-26に発表済み。
  • 人狼BBSサーバに負担をかけないスケジュールで、少しずつ過去ログのアーカイブ化を進める。→※2009年8月現在、古国からF1999村までのXHTML生データを収集済み。
  • 終了直後の村を自動的にアーカイブ化するシステムの製作。GoogleAppEngine + cron + Javaとかいろいろ検討中。
  • フリーのXMLデータベースを用いた統計処理ノウハウの蓄積・公開。
  • テキストマイニング・形態素解析などの日本語分析処理ノウハウの蓄積・公開。
  • アーカイブの管理・配布・動的変換。
  • 会話検索エンジンの運営

スキーマ設計の基本方針

  • 将来的にはJindolfのキャッシュデータファイルなどにも応用したいが、当面の間は終了した村に関して静的に記述できればよいものとする。
  • 人狼BBSのプレイ画面に相当するデータを復元するために必要かつ十分な情報のみを記述対象とする。
  • 「XSLTのみで人狼BBSの画面を復元したい!」とかいうこだわりは捨てる。
  • 拡張性にはこだわらない。人狼BBSに新ルールが適用されたら、一からスキーマを作り直すぐらいの覚悟で気楽にいこう。でも新キャラ追加ぐらいは対処できるようにしておきたい。
  • 生身の人間が生XMLデータを読んでも、そこそこ村の状況を理解できるぐらいにはしておきたい。
  • タグ名、属性名、列挙型属性値は英語のアルファベットで。
  • 機種依存文字(Shift_JISの文字集合を満たさない文字)の問題はできる限り先送りにして個々のアプリの判断にまかせる。文字エンコーディングはこの際UTF-8中心で。

アーカイブのスキーマ最終案

last update : 2011-04-21

※ G国無記名投票などへどう対処すべきかいろいろと思案中…(110420版以降のスキーマではG国対応済み)

※ 以下のapplication/xmlコンテンツ(*.xsd, *.xml)は、IE8で直接閲覧、もしくはダウンロードしてテキストエディタでの閲覧をお勧めします。Firefox3などのブラウザではコメント部が崩れたりしますが、ソース表示が可能なWebブラウザを利用の方はそちらの表示をご利用ください。

XML Schemaによるスキーマ定義案

共通型定義スキーマ → coreType-090929.xsd
各種プリセット定義情報の記述スキーマ → coreXML-090929.xsd
プレイデータのアーカイブ用スキーマ → bbsArchive-110421.xsd

DTDによる文書型定義

プレイデータのアーカイブ用DTD → bbsArchive-110421.dtd

プレイデータアーカイブのおおまかなスキーマ構造

G100村でのテスト出力(2011-04-21)←1MByteのXML。フツーのWebブラウザで閲覧すると結構重いよ!

<village>  いわゆる村。
  <avatarList>  キャラクタ一覧。
    <avatar>  キャラクタ定義。
  <period>  いわゆる毎日。日数分登場
    <talk>  会話。複数回登場
      <li>  行
          <rawdata>  機種依存文字
    その他、多数のシステムメッセージ(突然死 etc.)

機種依存文字を含むプレイヤーID

プレイヤーIDに機種依存文字が含まれるのは

  • C国/F国の「突然死マン?
  • D国の「アネス?
  • F国の「

の3氏のみ。

  • ほぼwindows-31jとして入力された文字と推測される。
  • いずれのグリフもUnicode2.0とJIS2004には採択されている。
  • 2009年10月現在、全角IDは新規登録できなくなっている?

以上の三点を考慮し、windows31jからUTF-8へ変換したプレイヤーIDをそのままアーカイブ内で使うことにしました。よってプレイヤーID表記では<rawdata>タグは使いません。

※G国がUTF-8化されましたが、サロゲートペアを読み書きできるのかは未確認です。

XQueryの例

このようにして作られたXMLファイルを片端からXMLデータベースに放り込んで、「狼の勝った村の一覧が欲しいな」なんて思ったら次のようなXQuery問い合わせ文字列をさっとデータベースに入力すると

declare default element namespace "http://jindolf.sourceforge.jp/xml/ns/401";
for $result in //winWolf
let $name := $result/ancestor::village/@fullName
return <answer>{$name}</answer>

こんな回答がぱっと返ってくるようにならないかなぁと、まぁそういうわけです。

<answer xmlns="http://jindolf.sourceforge.jp/xml/ns/401" fullName="2 呪われた村"/>
<answer xmlns="http://jindolf.sourceforge.jp/xml/ns/401" fullName="4 荒地の村"/>
<answer xmlns="http://jindolf.sourceforge.jp/xml/ns/401" fullName="5 残された村"/>
…

SQLとか得意な人達なら、XQueryだけでかなりの統計処理をこなせるはず。

アーカイブ公開に先がけて

近日中に古国1村からF2232村までのXMLアーカイブデータ(ZIP圧縮で1GB弱)の配布をどこかで行う予定です。2011年現在、いろいろと思うところあって配布は見送っています。いろいろ考えたことをメモ。

  • 人狼BBSサーバからフィード配信が行われていることを考えると、Livedoor Reader等の営利企業サービスを含んだ不特定多数によるログの蓄積・加工・公開を前提とした上で、ninjin氏は人狼BBSサーバの運営を行っていると推測できる。※G135村辺りを最後にフィード配信は止まった模様です
  • ninjin氏以外の第三者によって、人狼BBSのログを提供する携帯用ゲートウェーサイトやビューアサイトが多数運営されているが、2009年現在、権利上の目立ったトラブル・混乱は起きていない。
  • 通常の掲示板への投稿と異なり、人狼BBSの各村ログは投稿者の権利の行使に若干の制限が生ずる「共同著作物」としての側面が高いと思われる。
  • 人狼BBSサーバ運営者のninjin氏本人から、XML化アーカイブ配布停止要請の意思表示が確認できた場合、法的な妥当性云々を検討することなく直ちにXML化アーカイブデータの配布を停止する予定です。人狼BBSサーバにアクセスして個人用のXML化アーカイブデータを作成するためのツールの配布は続けると思います。
  • XMLアーカイブデータ利用者には、著作権法20条2項3号を逸脱しない範囲での同一性保持権の遵守をお願いしたいと思います。(たとえば気に入らないプレイヤー発言を勝手になかったことにして、データをJSON化するような行為は微妙かと…)
  • 2010年1月改正の著作権法47条周辺を読んでおくと、何かと役に立つかも。

人狼BBSの統計に関するページ

プレイデータの形式化に関するページ

機械学習に関するページ

サブプロジェクト

君のWebサイトにGIF画像「http://feeds.feedburner.com/JinxmlF.1.gif」を貼り付けると、村の最新状況をアニメGIFで教えてくれるよ!

サンプル:

JinxmlF.1.gif

コメント

コメントがあればよろしくお願いします。

  • 「スキーマにこの属性を入れて欲しい」などのリクエストがあれば、気軽にコメントしてください。 -- olyutorskii 2009-04-16 (木) 00:29
  • ごめーん。F国ルールを包含した形でのG国対応スキーマ設計作業が進む見通し、まるでたっていないのです。 -- olyutorskii 2010-09-26 (日) 16:36
  • SF.JPのフォーラムで、少しだけG国XML化に向けて動き出しました。興味のある方はよろしくー。アーカイブスキーマ改訂案 (091001版ベース) -- olyutorskii 2011-02-19 (土) 13:30