1995年にMS-DOS用、1996年にWindows95用に発表した「News Maker」をWebアプリケーション化しました。
News Makerはあらかじめ用意したデータファイルに基づいて自動で文章を生成するソフトです。
表示例
News Makerは、T-Kun氏が1992年にMSX BASIC用に開発した「Topics Making System」(TMS)をもとにしています。
Windows版News Maker 1.10と比較して、
- Shift_JISでエンコードされたファイルに加えて、UTF-8でエンコードされたファイルと、MSXパソコン(日本仕様・アメリカ仕様)の半角ひらがな等を使用したファイルに対応。
- ひとつの流れデータの中で同じブロックが複数回指定された時の動作を変更。(後述)
- 流れデータ数、ブロックデータ数の制限を緩和。
- TMS 1.3互換に変更。(DOS版、Windows95版はTMS 1.2互換)
News Makerで使用するデータファイルは次のような構造になっています。
; News Maker Data File ; タイトル/流れデータ サンプルデータ 0,1,2,3,4,-2 1,0,2,3,-2 0,1,2,3,4,1,5,-2 0,1,2,3=2,4,-1 ; ブロックデータ ; ブロック #0 先週 昨日 今日 /E ; ブロック #1 僕は 父は 母は 兄は 姉は 弟は 妹は /E ; ブロック #2 公園に 海に 山に 川に 学校に 会社に /E ; ブロック #3 運動に 泳ぎに 登りに 渓流釣りに 勉強しに 働きに /E ; ブロック #4 行きました。 /E ; ブロック #5 疲れました。 楽しみました。 満喫しました。 /E
「;」で始まる行はコメントとして無視され、それ以外の行がデータ行として扱われます。
データ行の先頭はタイトル行です。
その次が「流れデータ」です。TMSの仕様ではタイトルと流れデータの間にはコメント行や空行を挟むことはできません。News Makerでは許容されます。
流れデータは使用するブロック番号(0から始まる)の順番をカンマ区切りで指定します。次の行にも別の流れデータがある場合は行末を「,-2」、最後の流れデータは行末を「,-1」とします。
流れデータからその都度1つがランダムで選択され、選択された流れデータで指定された順番に、指定されたブロックの中からランダムで1行が選択され、それらが連結されて文章として出力されます。
TMS 1.3互換になったことにより、流れデータにおいて、ブロック番号を「=」でつないで2つ書くと、「=」の左辺のブロックが使われますが、その際右辺のブロックで選択されたのと同じ行が選択されるようになりました。左右両辺のブロックの行数が一致していない場合は、(読み込み時ではなく)表示時にエラーになります。
例えば、上記のデータでは「3=2」と指定すると、ブロック2で「海に」(2番目)が選択された時は、ブロック3では必ず「泳ぎに」(2番目)が選択されます。この時点でまだブロック2が使用されていない場合はこの記述は無視され、通常の選択が行われます。
続いてブロックデータを記述します。ブロックデータは記述されている順に自動的に0からの連番が割り振られます。「/@」と記述すると、改行に変換されて出力されます。
ブロックの最後には「/E」(TMSでは大文字のみ。News Makerでは小文字も許容されます)のみの行を記述します。
News MakerとTMSの仕様の違いについて
News MakerとTMSでは次のような仕様の違いがあります。
仕様 | Topics Making System | News Maker 1.10 | News Maker for Web | 備考 |
1つの流れデータの中で同じブロック番号が複数回指定された時の2回目以降の行の選択 | 最初にそのブロックが使用された際に選択された行を毎回使用する。 | その都度行を選択する。 | 設定で「News Maker 1.10互換」を「はい」にした場合はNews Maker 1.10と同じ。「いいえ」にした場合はTMSと同じ。 | 今回のWeb版開発の過程で発見 |
タイトルと流れデータの間のコメント行・空行 | 不可 | 可 | 可 | – |
ブロックの終端記号 | /E(大文字の「E」) | /E または /e | /E または /e | – |
使い方
https://www.minagi.jp/apps/nmk/ にアクセスします。
ローカルにあるデータファイルを開く
ローカルファイルを開く場合は開くボタンをクリックします。その環境のファイル選択ダイアログが開くので読み込むデータファイルを選択してください。ファイルを開くとニュースがひとつ表示されます。
URLを指定してWebサーバー上のデータファイルを開く
Web上のファイルを開く場合はURLボタンをクリックします。テキストボックスにデータファイルのURLを入力し、開くボタンをクリックしてください。ファイルを開くとニュースがひとつ表示されます。
ニュースを表示する
データファイルが読み込まれ、タイトルが表示されたら表示ボタンをクリックすると生成された文章が表示されます。
設定
設定ボタンをクリックすると設定値を変更することができます。
エンコード
データファイルのエンコードを指定します。シフトJIS/Shift_JIS、UTF-8、MSX半角(日本仕様)/MSX(Japan)、MSX半角(アメリカ仕様)/MSX(America)から指定します。
News Maker 1.10互換
Windows95版News Maker 1.10互換の動作とする場合は、はい/Yes、TMS互換の動作とする場合は、いいえ/Noを選択します。
設定の変更はその後に表示するニュースから適用されます。
URLパラメータによる動作の指定
News MakerではURLにパラメータを含めることにより、動作を指定することができます。
パラメータ | 説明 |
url= | データファイルのURLまたはData URI |
encode= | データファイルのエンコードを指定する sjis … Shift_JIS utf8 … UTF-8 msxjp … MSX半角(日本仕様) msxus … MSX半角(アメリカ仕様) |
nm110compatible= | News Maker 1.10互換の動作をするか指定する no … いいえ yes … はい |
サンプルデータ
サンプルデータとして以下のファイルを公開しています。ご利用ください。
- 町の掲示板 ver.2 https://www.minagi.jp/apps/nmk/data/KEIJI2.NEW (プレビュー)
- なつやすみのにっき ver.2 https://www.minagi.jp/apps/nmk/data/NIKKI2.NEW (プレビュー)
- ポエムな1日 ver.2 https://www.minagi.jp/apps/nmk/data/POEMDAY2.NEW (プレビュー)
- News Makerもしもしショッピング ver.2 https://www.minagi.jp/apps/nmk/data/SHOPPIN2.NEW (プレビュー)
- News Maker宝くじ抽選会 ver.2 https://www.minagi.jp/apps/nmk/data/TAKARAK2.NEW (プレビュー)
改訂履歴
バージョン | 日付 | 内容 |
1.0.0 | 2020/2/16 | 初回リリース |
1.0.1 | 2020/2/22 | 画面表示の翻訳が正しく行われない不具合を修正。 ニュースの日付書式をブラウザのロケールに準拠するように変更。 |