Transformation of document fragments in SGML editing


3S-05 文書断片の構造を変換して移動するSGML文書編集方式
田中道夫,若鳥陸夫
CALS技術研究組合


1.はじめに


CALSを実現するためには,電子文書を可能な限り広い範囲で交換し,その電子文書が電 子的に再利用可能となっていることが望ましい。CALS技術研究組合では,特定の文書 処理環境及び業種に依存しない電子文書を記述し交換するため,SGMLを採用し,NCALS 文字符号系[2]及びNCALSはん用DTD[1][3]を開発した。NCALSはん用DTDは,章及び節と いうような,伝統的に技術文書で使われている要素を定義し,正式な技術文書が記述で きるように構成している。

NCALSはん用DTDに適合したSGML文書を編集するには,通常,はん用のSGML文書編集系に NCALSはん用DTDを組み込んで使用する。この場合,NCALSはん用DTDが主として文書交 換を目的として開発されているため,同じような文書構造を記述するのに幾つかの選 択枝が存在する。文書の作成者は,ある文書断片を選択枝の一つを用いて作成し,後で 他の選択枝に変更する必要がある場合が多い。通常,ある文書断片は,階層構造が同じ でも,異なる要素名を必要とする位置に移動することができにくいという問題がある。

ここでは,NCALSはん用DTDの文書実体を編集する作業を改善するために検討されてい る技術開発のうち,特に文書構造の自動変換に係わるSGML文書編集方式について報告 する。


2.NCALSはん用DTDの文書実体の特徴


NCALSはん用DTDの文書実体は,前部,体部及び後部から構成され,体部には章,節及び段 落が書ける。ここで,節を起こすかとうかは選択である。

次に節を起こした場合の構造を示す。

(Chapter(Title)(Section(Title)(Para0(Title)(Para)(Subpara1(Title)(Para)(Subp ara2(Para)(Subpara3(Para)))))))
次の例は,節を起こさない場合である。

(Chapter(Title)(Para0(Title)(Para)(Subpara1(Title)(Para)(Subpara2(Para)(Subp ara3(Para))))))
前者の選択をしたSGML文書の作成者が,後者の構成に変更したい場合を考える。

(Section(Title)(Para0...))
という構造を
(Chapter(Title)(Para0...))
に変更する場合,
(Section(Title)(Para0...))
をクリップボードに複写した後,(Chapter)が挿入可能な位置に書き込む操作をする。 この場合,正しい文書実体を得るには,(Section)を(Chapter)に書き換える必要がある 。これは容易である。

また,他の構造変換の例として,
(Subpara1(Title)(Para)(Subpara2(Para)(Subpara3(Para))))
という構造から(Subpara1)を削除する場合は,(Subpara2)を(Subpara1)に,(Subpara3) を(Subpara2)に変更する必要がある。

この場合は,SunparaNの階層は3段階までであるが,次の例では,StepNの階層は5段階で ある。

(Para0(Title)(Step1(Para)(Step2(Para)(Step3(Para)(Step4(Para)(Step5(Para)))) )))


3.文書断片の構造変換


構造変換の規則には,文脈を指定した変換規則,及び文脈を指定しない変換規則が考え られる。次の例は,Para0をSectionに変換する例である。

(Section-1(Title-2)(Para0-3(Title-4)(Para-5)(Subpara1-6*
-->
(Section-3(Title-4)(Para-5)(Subpara1-6*
次の例は,文脈を指定しない変換規則の例である。

StepN->StepN-1,
SubparaN->SubparaN-1
構造変換の処理は,クリップボードから読み込む時に行われる。実際には,挿入しよう とする文書実体の位置によって,例えば,StepN->StepN-1という規則を適応するかS tepN->StepN+1を適応するかの判断が必要となり,規則の適応条件を設定する必要 がある。

また,要素に付けられた属性は,DTDで許されるものについては保存する。これが不可 能な場合は属性を削除し,暗黙宣言の属性が有効となるようにする。

これらの自動変換規則を適応することによって,利用者は編集対象の文面を表示しな がらSGML構文の知識を余り知らなくても,より良い文面に仕上げることが可能となる。

既存ツールで機能拡張のプログラムインタフェースが公開されているツールについて は,実際に変換の処理を追加し,効果を評価する予定である。


4.まとめ


NCALSはん用DTDの文書実体を編集する際に利用する,文書断片の移動方式について検 討した。

NCALSはん用DTDは,文書交換を目的として利用されるため,特定の文書の作成者にとっ て不適切な要素名が,要素名として利用される場合がある。これは,SGMLの編集系の内 部で適切な要素名に読み替えることもできるが,更に進んで,NCALSはん用DTDから特定 のDTDを派生させることも考えられる。ここでは,不適切な要素名は派生DTDにおいて は適切なものに置き換えられている。派生DTDの文書実体は,NCALSはん用DTDの文書実 体に変換可能とすることによって,文書交換を可能とすることができる。

今後,SGML編集系にCALSはん用DTDに依存する改善を組み込む技術開発を行うとともに ,派生DTDの導出,文書実体間の変換技術についての技術開発を行う予定である。

参考文献
1)若鳥,他:“NCALSのはん用文書型定義の開発方針と課題”,情報処理学会全国大会論 文集,4-345(1996-9)
2)CALS技術研究組合:CALS関連規格
http://www.nacls.cif.or.jp/ncals/standerds
3)若鳥:Concept of Document Definition for General Technical Documents in Nip pon CALS(NCALS),CALS Expo '96 CD-ROM