で、その頃、本屋で「SGML入門」という本をみかけて「買おう」と思ったがなぜかやめた。
#今から思うと不思議なもんだが、この記憶は結構鮮明で、その数年後、別にSGMLに
#興味はないにも関わらす、買わなかったことを後悔した事もあった。
で、この間、8年の空白、、、
1996年6月、ちょっと試しにSGMLを使ってみることになった。
とはいうものの、SGMLについては何にもしらない。取敢ず、「実践SGML」を 買って読んでみた。全然、分からない。まぁ、なんとなくは分かった気にはなったけど。
その後、"Special Edition Using SGML"を買った。SGMLに関する各種情報源が 載っていたので買った。読むのに一苦労。結局、約1/3程を斜読みで終わり。 ただ、それに、PanoramaFree なるWWWブラウザー用Helper(っていうのかな)ソフトが 紹介されてる。早速、そいつをSoftQuad.から取ってくる。(FTPしたら約1時間かかった) 使ってみると、結構おもしろい。
これで、SGML文書を表示することは一応できる様になった。今度はSGML文書を作る番。
SGMLを使う場合、タグのチェックだなんだで検定用パーサーが無いと話にならない
らしい。
で、SPっていうPublic Domain Softwareがあるらしい。
ソースコードのコンパイルにはGCCがいるらしいが、まだ、GCCはインストールして
いない。探しまわったら、SP/NSGMLS 1.0 for Solaris 2.3(binary)があったので、
getして使ってみることにした。
使ってみんべぇと、最初に作ったDTDは「実践SGML」 の P.38 に載っていたDTDなんだが、 「そのまんまじゃぁ、仮にも情報科学センターに勤務してんだから格好悪い」ってんで、 最後に、
<!ENTITY SGML "Standard Generalized Markup Language" >の1行を追加した(全文)。作った文書もめちゃくちゃ 簡単で、
&SGML;を加えた程度のもの(全文)。やっぱり芸がない。
ところが、ここから先が大変だった。SP の使い方がよくわからない。第一、 マニュアル読んでも知らない言葉ばっかり。だいたい、
ってな状態ですから。まぁ、本をきちんと読んでいれば、entity manager くらいは
見当ついた筈なんですけど、なぜか「entity=実体」って感じがじなかったもんで、、、
でも、 取敢ずサンプルとして付いている文書やらDTDやらで、あれこれオプションを
組み合わせてやっているうちに、使い方が分かってきた。じゃ、今度は自分が入力
したやつで、、、
と、今度は何なんと
次に、「日本語が使えなきゃしょうがあんめぇ」と日本語の混ざったSGML文書を作った。 (さっきのものとほとんど同じなので、変更箇所だけ)
&SGML-JP;は日本語に訳すと「標準一般化マークアップ言語」となります。
BASESET "ISO Registration Number 100//CHARSET ECMA-94
Right Part of Latin Alphabet Nr. 1//ESC 2/13 4/1"
DESCSET 128 32 UNUSED
160 95 32 <- ここ
255 1 UNUSED
なんで大丈夫?
調子にのって、「(タグ)要素の名前にも日本語を使おう」と考え、「SGMLのかきかた」
に載っていたSGML宣言を使った。入力するのがえらい面倒だったが「しかたあんめぇ」
と我慢して入力した(おいおい、プログラム書けよってか、、、)。
以下はその一部。
で、このせいなのかどうなのかは深くは追及しないことにして、「このSGML宣言は、 今は使えねぇ」と諦めた。
結局、SPのパッケージに含まれる、japan・・・ というSGML宣言で、EUCコードが OKなので、じゃぁ、というわけで、
EUCコードの場合は、それをSGML宣言として使おう。 タグに日本語を使うのは当面あきらめよう!という結論に落ち着いた。これで、
SGMLで議事録作ってみんべぇ、ってなわけで、議事録用DTDを作り始める。
んで作った議事録用DTDは、英語(それも、なんか
間違ってる)やローマ字表記の日本語や、他人が見たらわけわからん略語ばっかで、
われながら「なんだかなぁ〜」状態。
今でこそ、こんな形になっているが、まず、「議事録の要素には何が必要か」
に結構手間をとられた。
単に要録のようなものなら、会議名とか出席者とか。あと、配付資料、議題、報告
なんかがあれば、残りの部分は箇条書きでいいだろうと最初は思った。
が、ある時、突然、「採決があったり、動議がだされたり、あるいは、
発言をそのまま記載した方がいい場合もあるかもしれない」なんて思っちゃった
もんだから、もう継ぎ剥ぎだらけのグチャグチャの粘土細工状態。
いろいろいじって、今のDTDの原形ができあがった。
それで、SGML文書(議事録)を作り始める。実際には、議事録は別の人が テキストファイルを作成し、それをSGML文書に変換する作業を行なった。 特に問題はなく、順調に作業は進んでいった。
と、ある日、いきなり
それに追い撃ちを掛けるかのように、ある日、突然、「図が議事録に入ってきたり、 表が入ってきたり」で、で、で、で、四苦八苦。「表入れるなら、一言いってくれよ」状態。
いろんな理由があって、あんなDTDになってしまったが、結構後悔している箇所が多い
のも事実。今だに議事録DTD作成作業は終わらない。
#一人でやってるからって話もあるか、、、
今度は、
JISコードを使うためのSGML宣言が、「はじめてのSGML Appendix B」に載っていて、
以前それを入力してあったので、それをもとにして DESCSET を書き換えようと思った。
でも面倒なのでやめた。
#結構長いんですよ、これって。「よく入力したなぁ」ってわれながら感心してしまう。
で、エスケープシーケンスとか文字集合のことなんか詳しくは知らないから、
前述のSGML宣言を単純に7単位系のJISコード用宣言に直したつもりになって、
「うーん、できん」とうなった。
CHARSET の BASESET と DESCSET 、エスケープシーケンスの記述の意味なんか
全然考えてなかったわけで、、、
お恥ずかしい限りだが、そのときのSGML宣言(一部)は
CHARSET
BASESET "ISO 646-1983//CHARSET
International Reference Virsion(IRV)//ESC 2/5 4/0"
DESCSET 0 9 UNUSED
(略)
32 95 32
127 1 UNUSED
BASESET "ISO Registration Number 87//CHARSET
JIS X 0208//ESC 2/6 4/0 ESC 2/4 2/9 4/2"
DESCSET 0 32 UNUSED
32 95 32
127 1 UNUSED
だった。
当然できない。で、ここまで来て、初めて「はじめてのSGML Appendix B」に 書いてある、
どう違う? エスケープシーケンス
ついでに(RFC 1554(ISO-2022-JP-2)もご賞味ください)
いろいろSGML宣言作ったりしたけど、全然だめ。
で、とにかく至急やらなきゃいけない事があったので、現実逃避することにして、 「とにかく、いろいろやってみなきゃなんねぇんだから、ぼちぼち、考えよ。」 と、SGML文書をHTMLへ変換したり、検索したりするプログラム(いや、なに、なんだ、タグ以外の部分だけ、grepするだけ)をどうにか 動くようにした。
で、議事録をSGMLにしたり、DTDを変更したりしながら、いろんなSGML関連ツールを 集めたりしたが、結局ほとんど使っていない。ときどき、7bit JISコードを使う方法 を考えてたけど結局わからない。というか、
そうこうするうちに、1996年12月。
やっと「JISハンドブック」で「JIS X 4151 文書記述言語SGML」読んでみました。
昼休みに。
やっぱり全然わかんない。ただ、多符号だか多言語だかの言葉があって「参考」だか に書いてあるらしい。でも「JISハンドブック」には「参考」ってぇのは載ってない。
ここまできちゃったらしょうがない! ってんで、赤坂の日本規格協会にいって、 SGMLの規格票とかエスケープシーケンスに関する規格票を買っちゃいました。
規格票読んでから「こんなんなってんのか、、、へぇー」状態。 で、結局というか今は諦めてます。
そんなわけで、SGML文書を作るってことに関しては、いまは落ち着いてます。
でも、本当はもっといろいろ考えなきゃいけないこともあったりもする。
例えば「数式」はどうすんだとか、、、、
参考になりそうな本(規格書や技術レポートら何やら)には高いから手が出ない。
#それにしても何であんなに高いのかねぇ、ISOの規格書って。(;o;)
そうそう、文書のレイアウトをどうするかも結構、悩ましい。
DSSSLなんてもんもあって、Jade を用意したのはいいけど、DSSSL自体、
よくわかんないから使えない(そもそもLispをしらない)。
SPDLなんか、PSはわかるからいいけど、それ以外の部分がどうなってるんか
皆目見当がつかない。
レイアウトだったらODIFなんかもあるけど、ODAだのOSIなんかもっとわかんない。
OSIがでてくると、当然、SDIFってやつのこともでてくる。
そもそもSDIF自体、ちょくちょく本にでてくるけど、それ自体の情報なんてほとんど ない。見つけたら見つけたで、今度はASN.1が何だとかBERが何だだそうで、、、
もう、ドツボです(とかいいながら、こんなページ作って遊んでる)。