官報データ
自動タグ付けプログラム仕様

Version 0.5
Last Update:1999/12/27

イースト株式会社 コミュニケーション事業部
渋谷 誠


1. 入力ファイルの形式

別文書で公開している、「官報データ デキスト入力仕様」に従うものとする。


2. 処理内容

仕様に従ったテキストファイルを読み込んで、「官報データ入力作業 入力規約書」(以下「官報仕様書」)に従ったタグ付けがされた XML ファイルを出力する。その中で行われる処理はおおよそ以下の通り。

A) ファイルの結合

自動タグ付けは、一号分の入力テキストファイルをひとつに結合しながら行う。

ページの区切りの目印として、独自タグ<pb/>を挿入する。

ページをまたがる「表」や「分行」を自動的に検出し、それぞれから生成されるタグに、分割されていることを示すpart属性(part="1" と part="2")を付加する。

B) 文字コードのチェック

全ての文字について、以下のようなチェックや自動修正を行う。

XML特殊文字
「&」「<」「>」「"」「'」 の文字を &amp; &lt;のような記述に修正する。
組み合わせ文字
「a」「p」などの組み合わせ文字を通常の文字に分解する。
括弧付き文字
「梶v「求v「戟vなどを括弧を使って分解する。
丸付き文字
「@」などを<maru>タグを使った記述に修正する。
その他のJIS外文字
上記以外でJIS1,2水準に含まれない文字については、エラーとして自動処理を中止する。
IBM/NEC拡張漢字などが使われている場合にこうなるケースが予想されるが、これは本来テキスト段階で外字として「@m??????#」記号で入力されているべきものである。

C) 全体の汎用自動タグ付け

発行情報、題字タグ
<hakkou><daiji>タグを自動生成する。
目次
目次部分を自動生成する。
本文記事の表題による自動区切り
「官報仕様書」で定められている大柱名、項目名などの表題(305種)を検索することによって項目の区切りを自動判別し、それぞれの対応するタグを自動生成する。枠囲いの記事は入力記号「.f」を頼りに区切ることができる。
各項目の内部は原則としては全体がひとつの記事として<kiji>タグで囲むだけである。ただし、後述する「定型パターンの記事」については複数の記事の分割も行う。
記事の行
全ての行を<p>タグで括る。行頭にタブがあるものについては「中央揃え」、行頭に「.r」記号があるものについては「尻揃え」、行中にタブがあるものについては「両端揃え」の属性を設定する。
文字修飾
入力記号によって指定された「ゴシック」「ルビ」「添字」などの文字修飾を「官報仕様書」のタグや属性に置き換えて設定する。
表、官報分行など
入力記号を使って入力された「表」「分行」などから、「官報仕様書」のタグを生成する。
ページ番号情報
pege属性によるページ情報を、生成したタグ全てについて自動的に付加する。これは、後の編集時にひとつの要素を分割したり、結合したりする場合にページ番号情報を正しく更新できるようにするためである。

D) 定型パターン記事の自動書式設定

「公告」の多くがそうであるように、定型の書式の記事が繰り返し並んでいるような項目については、個別にそのパターンを解析して自動的に書式設定のタグ付けをおこなう。この自動書式設定を行った項目については、後の最終編集工程では簡単な書式の確認のみで充分である。(ただし、入力テキストが空白や改行の規則に正しくしたがって入力されていることが前提となる。)

自動書式設定を実施した項目の項目タグには、layout="auto"の属性を設定する。実施されていない項目には、layout="none"の属性を設定する。


3. 出力ファイルの形式

XMLの整形式(well-formed)文書となっている。

「官報DTD」で定められたタグの他に、専用エディタで利用するために、以下のような独自のタグ・属性もつけられている。

<pb/>
ページ境界を表す空要素タグ
page属性
仕様ではページ番号を表すpage属性は一部の決められたタグにのみつけるべきものだが、この段階では全てのタグにこの情報がついている。
layout属性
本文の各「項目」タグに、詳細自動タグ付けの完了度合いを示したlayout属性(none or auto)がついている。
part属性
ページ境界で分割された分行と表にはpart属性がついている。

このような独自タグが残っているため、「官報DTD」に対して検証済(valid)な文書にはならない。ただし、独自タグを追加定義した「官報DTD」の修正版を用意し、それに対しては検証済(valid)な文書となる。


4. 最終工程に残る作業

自動タグ付け後に残る作業は以下のとおり。この作業を効率よく行うために、この目的専用のエディタを開発中。

A) 分割要素の結合

ページ境界で分割されている行や分行や表を結合する。専用エディタではpart属性によって分割された表や分行を目立つ色で表示したり、全体から検索したりする事ができる。

B) 手動の書式設定

2. D) での自動書式設定が行われていない(layout=none)項目については、以下の作業が必要。

専用エディタでは、文書全体がツリー構造で表示されるが、その中で各項目はlayout属性の値によって色分けされて表示される。 手動での書式設定が終わった項目については、「完了マークをつける」コマンドにより、layout属性を done に設定することができる。

記事の分割
同一項目で複数の記事が並んでいるのに、それが自動分割されていない場合に手動で分割する。専用エディタでは、分割する位置にカーソルをおいて「記事の分割」コマンドを実行する。
行レイアウトの設定
「字下げ」「尻揃え」などのレイアウトを元原稿を見ながら設定していく。専用エディタでは、p要素を選択して「字下げ」「2行目から字下げ」「中央揃え」「尻揃え」「両端揃え」を実行する。2字下げ、3字下げは「1字下げ」コマンドを複数回実行すればよい。
ゴシックの設定
ゴシック体の文字を設定する。専用エディタでは、文字列を選んで「ゴシック」コマンドを実行。

C) 表

機械的に生成されているだけの表を罫線や書式を含めて仕上げる。専用エディタでは、table要素を選択して「コピー」コマンドを実行すると、<table>タグの部分だけがHTML形式のままクリップボードにコピーされる。「張り付け」コマンドでは反対にクリップボードのHTML形式のtableを、table要素内に取り込むことができる。この機能を活用すれば、市販のすぐれた表編集機能を持ったHTMLエディタを利用することができる。

D) 最終校正

仕様書に定められているように、IE5.0のXML表示機能を使って最終校正を行う。専用エディタでは、IE5.0の表示エンジンを呼び出すことによってIE5.0と全く同一の表示を行うことができるので、わざわざIE5.0自身を起動する必要はない。(縦組みでの表示や文字鏡外字のイメージでの表示も検討中)

この段階で発見された誤りを修正するため、専用エディタでは「官報DTD」で定められた全てのタグや属性を生成したり、削除したりする機能をひととおり全部備えたものとなる。

E) 不要タグや属性の削除

最終段階として独自タグや属性を全て削除し、正式の「官報DTD」によって検証(Validation)を行う必要がある。専用エディタでは「最終形式で保存」コマンドを実行。