ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

DTPの構造を考える-その2:論理構造(23時追加)

2007-04-07 20:02:17 | 土日シリーズ

 先週土曜日から、あらたなテーマになってはじまった、土日シリーズ「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時追加ここまで)




 ところで、論理構造をもって何をするのか?については、このあと、ずっと先に考えます。
 今週はここまでで、来週から、論理構造、物理構造以外で、本が持つデータである、規則(組版規則や分離禁止など)について、ちょっと書いていきます。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MS-OfficeやDTP同様、AJAXならXMLの項目はめ込みで画面作成できる!

2007-04-07 17:30:35 | Weblog

 土曜日はDTP関係の話もしてるので、その関係の話。
 DTPで、XMLのタグと、枠を指定すると、XMLの内容を流し込んでくれるというような機能があったとおもう。
 たしか、MS-Officeでも、最近のOfficeには、似た機能があったと思う。

 どちらも、XMLのどのタグが、どこに入るかを指定しておくと、その枠に流し込んで切れるというもの。

 で、まえにAJAXでの画面分離の話を書きました。これも、AJAXを使えば、一般的なWebを使った業務アプリケーションもXMLの流し込みになるという話。

 で、ここでなんだけど、これも、MS-OfficeやDTP同様、XMLの流し込みっていうことで一致する。
 いま、そーいうソフトがあるかどうかわかんないけど、
 ボタンを押されたら、フォームの入力項目(フォームのinput type=textなど)に入っている値を利用してCGI呼び出しをできるようにして、返ってきたXMLのタグを、出力項目と対応づけておくと、実際に呼び出して値が帰ってきたときに、その値を、指定項目に流し込むようにしておけばいい。

 こういうソフトができると、DTPとWebが完全にデザイナーさんで操作できて、プログラマはCGI作成に専念できるので、便利だよね。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

COBOLのシステムをWebに置き換えたいけど、ドキュメントもソースも無いとき。。。

2007-04-07 13:34:18 | 開発ネタ

 COBOLやC,PL/I、VBなどでかかれた、既存システムがあって、
 それをWebを使ったアプリケーションに置き換えたいなんていうときの
 開発方法論の話。

 そのドキュメントがない、ソースもない、もしくは、ソースを読んでもわからないというとき、今までのウィリアムのいたずらの開発の初めから順番に書いていってみるの話だと、要求仕様をつくって、はじめからやんないと、いけないように、読めてしまいますよね。。




 実は、そうやらないで、既存のシステムの帳票や画面から、さかのぼっていって、プログラムを作っていきながら、最終的に、要件定義の仕様書まで全部できるという、工程の下から駆け上がっていく方法があります。

 その方法のAJAX版が、連載中の画面定義をHTMLで行い、呼び出しをWebAPIでやる設計手順の試案なのですが(まだ、駆け上がり途中、というより、駆け出しレベルだけど、来週あたりから、駆け上がっていきます)、それと、既存のシステムの関係について。。




 そこの掲載では、初めに、
(1)画面をHTMLで作成する(ここがスタート)
と書いてあります。

 つまり、いまあるCOBOLとかで表示している画面を、HTMLで(FORMを使って)表現してください。
 PFキーのところは、PFキー1つが、ボタン1つになるようにしてください。
 エンターキーで、画面を読み込むようにしてある場合は、エンターキーにもボタン1つを用意してください。

 そうして、画面ができると、同じ話になります。




この話(既存システムを新システムに、ボトムアップで作っていくアプローチ)は、その「画面定義をHTMLで行い、呼び出しをWebAPIでやる設計手順の試案」の連載が終わった時点であらためて触れる予定です(忘れていなかったら)




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする