XNML Page Model

WD-XNMLPageModel-20000627 / XNML Page Model 草稿、2000年6月27日
最新版
http://white.niu.ne.jp/xnml/pagemodel/
この版
http://white.niu.ne.jp/xnml/pagemodel/20000627/

この草稿(Working Draft)では、各種フォーマットへの出力という観点を中心に、 XNML文書に必要な版面構成モデルとして、"XNML Page Model"を提案する。

1. XNMLのための版面構成モデルの必要性

XNMLとは、eXtensive Novel Markup Languageの略称であり、 小説に似た、テキストが中心的な表現媒体について、 その論理構造を記述するための言語である。

XNMLは本質的に論理構造を記述するものであり、 XNML文書には、特に必要な場合を除き、極力物理構造に関する記述を含むべきでない。

しかし、多くの場合、実際の版面においては、論理構造と物理構造は強い対応関係を持っている。たとえば、見出し文字は大きく太い文字で書かれるし、註が小さい文字で書かれることも多い。

特に、XNML文書は多様な広さ・制御方式を持った各種メディアに 表示されることが前提になっている。 それぞれのメディアにおいて、違和感なく同等の表現が行えることを保証するために、 版面形成における論理構造との対応関係について、明確な仕様が求められる。

そこで本文では、XNML文書の想定する版面について考慮した後に、 XNML文書に求められる版面構成モデルを検討を行う。

2. 文書の構造と版面

XNML文書について考える前に、一般的な文書の持つ論理構造、 及びXNMLが想定する版面に見られる実際の版面構成モデルについて考える。

2.1 一般的な文章の構造

文章は以下の構成を持つ。

 文章 ::= 部+ | 章+ | 節+
  部  ::= 章+ | 節+
  章  ::= 節+
  節  ::= 段落+
 段落 ::= 文+

このほか、リスト構造等が考慮される場合もあるが、 ここでは段落の特殊な形状であると考える。

文がどのように構成されるかは、言語に依存する。ほとんどは、以下のものに類似した構造を持つ。

  文  ::= (文頭文字)? (句 句末文字)* 句 文末文字
  句  ::= (本文文字)+

2.2 XNML文書が想定する出力媒体

2.1 で挙げた論理構造とは別に、いずれかのメディア上に表現される文章は、 物理構造を持つ。もっとも基本的な物理構造の単位は、文字である。 文字が一定の法則に基づいて並べられ、頁が構成される。 1つの頁は1つの版面上に表示される。

ここでは、XNMLで想定する各出力媒体について、その頁の構成について考える。

現段階のXNMLにおいて、想定されている出力媒体は以下の通りである。

  1. 紙への出力
  2. アプリケーションウィンドウ全面への出力
  3. アプリケーションウィンドウ内サブウィンドウへの出力

それぞれについて、縦組、横組が考えられる。 しかしpTeXでの実装法をに見られるように、両者に本質的な差異はない。

2.2.1 紙(本)への出力

紙への出力は、一般に「印刷」と言われる。

媒体としての紙は、紙のサイズに応じた版面を持つ。 一般的なうち最小のサイズは文庫判である。 文庫判の場合、日本語で可読性が十分な大きさのフォントを用いると、縦組みで40 文字 x 20 行 程度の版面を確保できる。

紙の版面は静的である。版面は必ず一度で出力される。

紙において、頁は以下のように構成される。

 章 ::= 頁+
 頁 ::= 行+

行の構成は、言語に依存する。

アルファベット系の文字を使用する言語の場合、以下のようになる。

 行 ::= 単語+

ただし、版面の美しさのために、単語が途中で区切られる場合がある。 単語を途中で区切る場合、ハイフネーション規則に従い、 単語中の所定の場所で区切られる。

日本語の場合、以下のようになる。

 行  ::= 文字+

いずれの言語の場合も、文が途中で区切られ、頁をまたがる場合がある。 節、段落の単位は、頁の構成をあまり左右しない。

2.2.2 アプリケーションウィンドウ全面へのテキスト表示

画像との重ね合わせ等により、アプリケーションウィンドウ全面にテキストを表示する形式である。

版面は、アプリケーションウィンドウのサイズにより決定される。ウィンドウサイズ 640 x 480 、フォントサイズ18ピクセル、横書きの場合で30文字 x 18 行程度の版面が確保できる。

アプリケーションウィンドウは動的である。版面全体に表示されるもののうち、一部分のみを(時間経過、入力等のイベントに応じて)順次出力することができる。

アプリケーションウィンドウ全面において、頁は以下のように構成される。

   頁   ::= 段落+
 表示単位 ::= 頁 | 段落+ | 文+

文が頁をまたがることはない。 多くの場合、頁の表示は表示単位毎に行われる。 この場合、表示単位毎に表示→応答待ちのサイクルが繰り返される。

2.2.3 アプリケーションウィンドウ内サブウィンドウへの出力

アプリケーションウィンドウ内に、テキスト表示用の専用ウィンドウを設け、そこにテキストを表示する形式である。

一般的に、30 文字 x 3〜4 行程度の版面を持つ。

サブウィンドウは動的である。 ただし、同一の頁として版面に表示されるものが、(クリック待ちなどで)分割して表示されることは稀である。

サブウィンドウへの出力において、頁は以下のように構成される。

   頁   ::= 表示単位+
 表示単位 ::= 段落+ | 文+

多くの場合、表示単位を構成するのは単一の段落である。 文が頁をまたがることはない。

3.XNML文書の版面

以上の事項を踏まえた上で、XNML文書に求められる版面構成モデルを考える。

3.1 XNML文書の版面構成

出力する媒体によって、版面を構成する最小単位は異なる。 たとえば、紙の場合は文字が最小の単位であり、 ウィンドウの場合は文が最小単位となる。

こうした、媒体による最小単位の違いを越えて、包括的なモデルを形成するために、 XNML Page Modelでは以下に示す各概念を導入する。

版面
メディアの持つ、視覚的な表現面のこと。 メディアごとに異なる大きさを持つ。 版面は、一度に1つの頁を表示できる。
版面の切り替えによって表示される、版面構成の基本単位。 頁は、同一レベルの1つ以上の意味ブロックによって構成される。
@@頁の形成には以下の二つの方針が考えられる。
  • 頁に満たない意味ブロックを詰め込む
  • 頁からはみ出す意味ブロックを分割
どちらの挙動を前提とすべきか。あるいは、媒体によって切り替え可能とすべきか
意味ブロック
文章の論理構成要素を、意味ブロック(semantics block)と総称する。
意味ブロックには、XML構文に基づいて識別できるもの(章、段落など)と、 XML構文によっては識別できないもの(文、単語、文字など)が存在する。 ただし、意味ブロックの各単位は版面構成の都合に基づいた 恣意的なものとして設定される。
意味ブロックは入れ子構造の形を取り、 それぞれの意味ブロックは入れ子の深さに応じた「レベル」を持つ。
意味ブロックには、XML構文に基づくものに加え、以下の単位が含まれる。
段落の構成単位。言語ごとに異なる文区切り文字で区切られる。
文の構成単位。言語ごとに異なる句区切り文字で区切られる。
句要素(*1)
句の構成単位。英語では単語、日本語では文字に相当する。
語要素
単語の構成単位。英語ではハイフネーションによる分割単位に相当する。日本語では、句要素に等しい。
XML構文に基づいた意味ブロックと、 そうでない意味ブロックの間に、扱いの上での差は存在しない。 両者は単に、識別に必要な解析方法が違うだけである。
@@文、あるいは句について、XNML構文中で<BreakSentence/>のような指定を行えても良い。
最小分割意味ブロック
あるメディアにおける版面構成の最小単位。
最小分割意味ブロックは、メディアごとにその値を規定される。
最小分割意味ブロックには、意味ブロックのいずれかの単位を設定できる。
合成禁止意味ブロック
合成禁止意味ブロックは、最悪でも頁に相当する。
合成禁止意味ブロックが1頁以下となるように版面構成されることはない。
合成禁止意味ブロックは、メディアごとにその値を規定される。
合成禁止意味ブロックには、意味ブロックのいずれかの単位を設定できる。
@@合成、分割のような複雑な概念を導入せず、各レベルの意味ブロックに、単純に「強制改頁」「中途改頁禁止」などの処理を割り当てる方法も考えられる。
表示単位意味ブロック
あるメディアにおいて頁を表示する際、 どの単位に分割して表示するかを示す単位。
一括表示意味ブロックは、メディアごとにその値を規定される。
一般に、静的なメディアでは、一括表示意味ブロックは「頁」に固定される。
一括表示意味ブロックには、 意味ブロックのいずれかの単位を指定する(絶対指定)ほかに、 「頁」、あるいは「頁-n」のような、相対的な指定ができる。
@@静的メディアのために、最低でも「頁」だけは相対指定可能であること。

(*1) これは本来、「語」として扱うべきものであるが、日本語での事情を考え「句要素」とした。

3.2 テキストメディア特性

@@この節では、2.2で挙げたようなメディアについて、XNML関連処理系がその表現能力を知るのに必要な値を検討する。

@@この節で規定されうる概念としては、次のようなものが挙げられる:
  行あたり文字数、最大行数、動的表示能力

@@プロポーショナルフォントを想定する場合、更に複雑な概念が必要と思われる

@@非光学的メディア(音声読み上げなど)に対応するなら、それに応じた概念も必要になる

Appendix: その他の検討課題