先週土曜日から、あらたなテーマになってはじまった、土日シリーズ「DTPの構造を考える」。前回は、物理構造ということで、本-ページ-枠-文字、写真、線画の関係について書きました。今日は、もうひとつの論理構造の関係について書きたいと思います。
■論理構造とは
物理構造とは、見た目の話、つまり、何ページのどこにどんな文字があるというお話です。
一方、本には、そこに書かれている内容の構造があります。
つまり、章、節にわかれていたり、見出し1、見出し2、見出し3に分かれていたりなどという、本の内容に関する構造です。
これを、論理構造といいます。
論理構造は、物理構造と違って、本によって、構造が違います。
新聞と雑誌と小説では、全部違うし、
雑誌も、Hotpepperと、情報処理学会誌では、構造が違います。
ということで、論理構造は、確定できません。
ただ、それを抽象化して、見出しも、章も、節も、論理構造から派生したものであると考えるなら、
本 | 論理構造---- | | |-ーーーーー | |
(23時修正)
のように、再帰的にしておけば、なんでも表現できます。
(再帰になってないで、ある論理構造が直接、物理構造のなにかに結びついてるかもしれないし、論理構造が論理構造にむすびついているかもしれません。上記の形にしておけば、どちらも表現できます)
■論理構造と物理構造の関係
じゃ、論理構造の末端は、どこにつながっているのでしょうか?
文字。。。のような気がしますけど、見出しの枠。。なんていうのがあることを考えると、枠にも連結するかもしれません。
実は、論理構造は、文字でも枠でも、なんでも関係を持たせることが可能です。
その仕組みについて書く前に、オブジェクト指向の関係と、RDBにおける関係を考えて見ます。
■オブジェクト指向における関係とRDBにおける関係
オブジェクト指向において、2つの間に関係を持つとすると、継承や委譲ですけど、これらは、オブジェクトをやりとりするので、結構めんどっちいです。
一方RDBにおいては、参照キーという概念を使います。
つまり、一意に特定できる主キーをほかのテーブルの項目に入れると(これが参照キー)、主キーと、その項目を持ったテーブルが関係を持つというものです。
これは、簡単にできます。
■論理構造と物理構造は、名前で関係を持つ
DTPにおける論理構造と物理構造は、RDBの参照キーに近い形を持ちます。
つまり、
1.論理構造のほうに、名前なり、IDなり、なにか振っておく
(23時追加)
→一意になればいいので、メモリのポインタなども含みます
2.関係をもつ物理構造(文字とか枠とか、絵など)のほうに、
その論理構造の名前をいれる
(23時追加)
→もちろん、物理構造のほうに、論理構造のポインタをいれる
カタチでもいいです。
3.それをもって、関係があると見ます。
(23時追加)
4.論理構造のほうに、物理構造のポインタをもつ、つまり、
相互リンクしておく可能性もあります。
これで、物理と、論理の間の構造を持っています。
(23時追加)
以上のことは、そのように考えられる、実現できるというだけの話であり、実際、DTPソフトのソースをみて、言っているわけではないので、ちがっているかもしれません。あくまでも、そのように、想像、妄想できるという話です
■(23時追加)論理構造その2(連結枠)
なお、論理構造といったとき、上記のように、枠の見出しとか、そーいう話をさすことが多いと思いますけど、いわゆる、枠のチェーン構造、わくの連結についてさすこともあります。
これは、枠に、連結する次の枠のポインタを入れておくだけでも実現できます。
(ほかにもいろいろ実現方法はあります)名前をつけて連結させるという方法も考えられます。
(23時追加ここまで)
ところで、論理構造をもって何をするのか?については、このあと、ずっと先に考えます。
今週はここまでで、来週から、論理構造、物理構造以外で、本が持つデータである、規則(組版規則や分離禁止など)について、ちょっと書いていきます。