JPH08339300A - データフォーマット修正システム及びインスタンストランスレータ構成方法 - Google Patents

データフォーマット修正システム及びインスタンストランスレータ構成方法

Info

Publication number
JPH08339300A
JPH08339300A JP7338880A JP33888095A JPH08339300A JP H08339300 A JPH08339300 A JP H08339300A JP 7338880 A JP7338880 A JP 7338880A JP 33888095 A JP33888095 A JP 33888095A JP H08339300 A JPH08339300 A JP H08339300A
Authority
JP
Japan
Prior art keywords
instance
dtd
translator
operator
format
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP7338880A
Other languages
English (en)
Inventor
An Feng
フェング アン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xerox Corp
Original Assignee
Xerox Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xerox Corp filed Critical Xerox Corp
Publication of JPH08339300A publication Critical patent/JPH08339300A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/16Automatic learning of transformation rules, e.g. from examples
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 データフォーマット修正及びトランスレータ
構成のためのシステムを提供する。 【解決手段】 新しいエレメントタイプ又は属性を挿入
し、既存のエレメントタイプ及び属性を除去し、所与の
エレメントタイプによって正規表現を分類し、エレメン
トタイプをコンテントモデルに置き換え、エレメントタ
イプ又は属性の名前を変更し、コンテントモデルからア
ーギュメント又はオカレンスをカットし、アーギュメン
トをコンテントモデルに挿入し、アーギュメントとコン
テントモデルのフロント(又はエンド)に移動させ、コ
ンテントモデルを正規表現に置き換えてエレメントリス
トの順序を変更する機能を含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は情報処理の分野に関
し、更に詳細には、データフォーマットの展開及び展開
されたデータフォーマットのインスタンスの変換に関す
る。
【0002】
【従来の技術及び発明が解決しようとする課題】データ
フォーマット、例えばデータベースのスキーマ又はドキ
ュメントフォーマットが旧式になってしまったり、新し
い所望の機能を収容するために変更する必要が出てくる
ことは珍しくない。これは標準一般化マークアップ言語
(Standard Generalized Markup Language: SGML)
フォーマットで定義付けられたドキュメントに対しても
共通に起こることである。SGMLは国際標準化機構の
規格(ISO8879)であり、ドキュメントタイプ及
びドキュメントインスタンスのための表示言語である。
SGMLの一つの重要な特徴は、ユーザがドキュメント
タイプ定義(Document Type Definitions:DTDs)を定
義付けることができることで、該DTDによってSGM
Lドキュメント内の情報が検索され将来再使用すること
が可能になる。各DTDはジェネリック識別子(GI'
s) のセットを定義付ける。各GIに対して、その構成
要素の可能なセットは正規表現(コンテントモデルと呼
ばれる)及びオプションで幾つかの包含されたGI又は
除外されたGIによって特定される。又、属性のセット
は各GIとも関連する。SGMLでは、ドキュメントイ
ンスタンスはドキュメントの構成を示すストリング及び
マークアップのシーケンスとして表現される。
【0003】図1及び2はDTD D0及びそのドキュ
メントインスタンスd0の表示例を示している。図1を
参照すると、DTD D0は五つのGI、即ちdoc 10
1、fn102、sec 103、title 104及びpara10
5を宣言する。GIdoc 101のコンテントモデルは
(sec)106であり、各doc エレメントは一つのsec エ
レメントを含むことを意味する。GIsec 103に対し
ては、そのコンテントモデル(title, para * , sec
* ) 107は、各sec エレメントはタイトル及びオプ
ションでいくつかのパラグラフ及びサブセクションから
構成されることを示す。コンテントモデル(#PCDA
TA)108によって示されるように、title、para及
びfnのそれぞれはキャラクタデータのシーケンスであ
る。#PCDATAは、任意の組み込みタグ又はエンテ
ィティレファレンスのためにSGML構文解析によって
チェックされた構文解析キャラクタデータを示すリザー
ブされたSGMLキーワードであることに注目された
い。D0はdoc から+(fn)109に対しては包含され
たGI及びtitle から−(fn)110に対しては除外さ
れたGIであるようにfnを宣言する。各fnエレメントが
あるtitle エレメントの構成要素ではない場合、そのよ
うな宣言によって、fnエレメントがD0ドキュメントイ
ンスタンスにおける任意の場所に表れる。
【0004】図2の表示例のインスタンスd0では、マ
ークアップ<X>及び</X>は、それぞれエレメント
Xの開始及び終了を示す。SGMLでは必要ではない
が、分かりやすくするためにエレメントの階層構造がス
ペースをインデントして示されている。図3はフォーマ
ット及びプリントされたときインスタンスd0がどのよ
うに表れるかを例示している。
【0005】種々の理由によって、SGML DTDは
展開したり(例えば、新しいGIを付加するか又はGI
を異なる順序で配置する)、そうでない場合は変更され
る(SGMLドキュメント情報の交換を許容する)必要
がある。ドキュメントインスタンスを常にDTDと一致
させておくために、古いDTDのインスタンスを新しい
DTDのインスタンスに変換するトランスレータが構成
される。従って、DTD展開(編集)及びドキュメント
インスタンストレンスレータの構成の二つのタスクがあ
る。
【0006】典型的には、DTD編集及びドキュメント
インスタンストレンスレータの構成は、別々のタスクと
して処理される。最初に、ユーザは既存のDTD Dを
新しいDTD D’に修正する。普通、これはDTDエ
ディタ(例えば、カナダのMicroStar Software DTD
から入手可能なNear&Far) 又は一般的なテキストエディ
タ(例えば、GNU-Emacs)を使用して実行される。次に、
ユーザはDTD DドキュメントインスタンスをDTD
D’ドキュメントインスタンスに変換するトレンスレ
ータを形成する。トランスレータ構成には種々のツール
が市販されている(例えば、カナダのExoterica Corpor
ation から入手可能なオムニマーク(Omnimark) (商品
名))。
【0007】そのような方法には二つの主たる欠点があ
る。第1に、非常に時間がかかることである。普通、エ
ンジニアはDTD展開及びトランスレータ構成に数週間
又は数カ月を費やす。第2に、ドキュメントインスタン
ストランスレータがターゲットDTDの正しいインスタ
ンスを常に生成することは保証されにくい。
【0008】
【課題を解決するための手段】データフォーマット修正
及びトランスレータ構成のためのシステムが開示されて
いる。本発明では、データフォーマットは基本オペレー
タのセットを使用して"修正される”。データフォーマ
ットで基本オペレータを実行することによって新しいデ
ータフォーマット及びオリジナルデータフォーマットの
インスタンスを新しいデータフォーマットのインスタン
スに変換するトランスレータが形成される。本発明は普
通コンピュータベースシステムにおいて実施される。
【0009】本発明は、標準一般化マークアップ言語
(SGML)に従って定義付けられたドキュメントイン
スタンスの変換において使用される好適な実施の形態を
有する。SGMLのドキュメントはデータタイプ定義
(DTD)と称される構造に定義付けられる。従って、
本発明の好適な実施の形態のユーザは、DTDに要求さ
れる変更について記述するだけでよく、新しいDTD及
びインスタンストランスレータが生成される。DTDの
変更は基本DTDオペレータのセットを使用して説明さ
れる。DTDが変更される必要があるとき、ユーザはこ
れらの予め決められたオペレータ及びアーギュメントの
シーケンスを選択するだけでよい。これらの基本オペレ
ータの各々は正確に定義付けられているため、生成され
たトランスレータはターゲットDTDの正しいインスタ
ンスを生成する。基本DTDオペレータの各々(そのア
ーギュメントと共に)は、入力DTDから出力DTDへ
のマッピング及び入力DTDのインスタンスから出力D
TDのインスタンスへのマッピングの両方を定義付け
る。実験から、ほとんどのDTD展開タスクは上記の基
本DTDオペレータによって特定されることが決定され
た。
【0010】本発明は新しいエレメントタイプもしくは
属性を挿入し、既存のエレメントタイプ及び属性を除去
し、所与のエレメントタイプによって正規表現を分類
し、エレメントタイプをコンテントモデルに置換し、エ
レメントタイプ又は属性の名前を変更し、コンテントモ
デルからアーギュメント又はオカレンスをカットし、ア
ーギュンメントをコンテントモデルに挿入し、アーギュ
メントをコンテントモデルのフロント(又はエンド)に
移動させ、#PCDATAを正規表現に置き換えてエレ
メントリストの順序を変更する機能を含む。各オペレー
タに対して、第1アーギュメント(パターンアーギュメ
ントと呼ばれる)はDTD及びインスタンスのどの部分
が影響を受けるかを定義付ける。残りのアーギュメント
はこれらの影響を受けた部分がどのように修正されるか
を特定する。
【0011】本発明の請求項1の態様では、オリジナル
データフォーマットを修正されたデータフォーマットに
修正し、前記オリジナルデータフォーマットのドキュメ
ントのインスタンスから前記修正されたデータフォーマ
ットのドキュメントのインスタンスへのトランスレータ
を形成するシステムであって、データフォーマットを修
正するための複数の修正オペレータを含み、前記修正オ
ペレータの各々はオリジナルデータフォーマットに対し
て所望の修正を特定し、データフォーマットで実行され
る前記複数の編集動作から一つ以上の修正オペレータを
特定する手段を含み、オリジナルデータフォーマットを
受け取る入力手段を含み、前記入力手段及び前記一つ以
上の修正オペレータを特定する手段に連結した処理手段
を含み、前記処理手段は、前記オリジナルフォーマット
で前記修正オペレータを実行し、修正されたデータフォ
ーマット及びインスタンス変換情報を形成し、前記処理
手段は更に前記ドキュメント変換情報からインスタンス
トランスレータを形成するためのトランスレータ生成手
段を含む。
【0012】本発明の請求項2の態様では、第1フォー
マットのドキュメントインスタンスから第2フォーマッ
トのドキュメントインスタンスへのインスタンストラン
スレータを構成する方法であって、a)修正オペレータ
のセットから一つ以上のフォーマット修正オペレータを
特定するステップを含み、前記修正オペレータのセット
の前記オペレータの各々は前記フォーマットが修正され
る方法を表し、b)前記第1フォーマットに前記特定さ
れた修正オペレータを適用して中間フォーマットを形成
するステップを含み、c)ステップb)と同時にインス
タンス変換情報を生成し且つ記憶するステップを含み、
d)前記第2フォーマットが得られるまで前記中間フォ
ーマットでステップa)〜c)を繰り返すステップを含
み、e)前記生成されたインスタンス変換情報から前記
インスタンストランスレータを生成させるステップを含
む。
【0013】
【発明の実施の形態】データフォーマット修正及びトラ
ンスレータ構成のためのシステムが開示されている。
【0014】本発明の現在の好適な実施の形態はコンピ
ュータベースシステムで実施され、標準一般化マークア
ップ言語(SGML)におけるデータタイプ定義(DT
D)のトランスレータの構成のために使用される。しか
しながら、この概念は他のドキュメントフォーマット
(例えば、第1ワードプロセッサのフォーマットから第
2ワードプロセッサのフォーマットへのドキュメントの
フォーマット変換)のためのトランスレータを構成する
ためにも使用される。更に、本発明の基本的な概念は、
データベーススキーマの修正及びデータベースインスタ
ンスの変換のような他のアプリケーション又は文法の翻
訳におけるコンピュータ言語翻訳にも使用されることが
できる。
【0015】本発明の現在の好適な実施の形態はUni
x(商品名)ベースのコンピュータシステム(Unix
はAT&Tの商品名である)で使用されるC++プログ
ラミング言語で書かれたプログラムとして実施される。
しかしながら、他のコンピュータベースシステムで使用
される別のプログラミング言語を使用できることは明ら
かである。
【0016】本発明の現在の好適な実施の形態が実施さ
れるコンピュータベースシステムは図4を参照して説明
される。図4を参照すると、コンピュータベースシステ
ムはバス401を介して接続される複数の構成要素から
成る。バス401は複数の並列バス(例えば、アドレス
バス、データバス及びステータスバス)及び階層バス
(例えば、プロセッサバス、ローカルバス及びI/Oバ
ス)から成る。どちらにせよ更にコンピュータシステム
はプロセッサ402から成り、該プロセッサは内部メモ
リ403(内部メモリ403は普通ランダムアクセスメ
モリと読み出し専用メモリの組み合わせである)からバ
ス401を介して提供される命令を実行する。プロセッ
サ402は以下に述べられるようにDTD展開及びトラ
ンスレータ構成のための種々の基本動作を実行するため
に使用される。そのような動作を実行するための命令は
内部メモリ403から検索される。プロセッサ402及
び内部メモリ403は離散的構成要素であってもASI
Cチップのような単一総合デバイスであってもよい。
【0017】更にバス401と接続されているのは英数
字入力をエンターするためのキーボード404、データ
及びインスタンストランスレータを記憶する外部記憶装
置405、カーソルを操作するカーソル制御デバイス4
06及び視覚的出力を表示するためのディスプレイ40
7である。キーボード404は普通標準的なQWERT
Yキーボードであるが、電話のようなキーパッドでもよ
い。外部記憶装置405は固定されてもよいし取り外し
可能な磁気若しくは光学的ディスクドライブでもよい。
カーソル制御デバイス406、例えばマウス又はトラッ
クボールは普通それに関連するボタン又はスイッチを有
し、ある機能の実行がプログラムされることができる。
【0018】本発明の重要な特性は、ユーザがDTD展
開に労力を集中することができることである。本発明で
は、増分的な方法でDTDを修正するためにユーザがD
TDオペレータのシーケンスを定義付ける。ユーザには
見えないが、システムはこのオペレータのシーケンスか
らインスタンストランスレータを自動的に生成する。図
5はk個のオペレーションのシーケンスのプロセスを例
示している。図5を参照すると、DTD D0 501
はDTDオペレータO1 502によって修正されDT
D D1 503及びトランスレータ情報T1 504
を生成する。DTD D1 503はDTD オペレー
ションO2 505への入力として使用され、トランス
レータ情報T2 506は次のトランスレータ生成のた
めに保存される。この処理はDTD Dk−1 507
がDTD Okオペレータ508の入力になるまで各オ
ペレータに対して順に続く。最後のDTD Dk509
はトランスレータ情報Tk510と共に生成される。こ
の点でDTD Dk509は所望の即ち "展開された"
DTDになる。次に生成されたトランスレータ情報T1
〜Tkはインスタンストランスレータ511を構成する
ために使用される。
【0019】現在の好適な実施の形態では、トランスレ
ータ情報T1〜TkはそれぞれC++プログラミング言
語のプログラミングセグメントであり、該セグメントは
起動されるとドキュメントインスタンスの所望の修正を
実行する。そのようなトランスレータ情報はオペレータ
Oのセマンティックス、関連アーギュメントオペレータ
及び入力DTDに基づいて引き出される。従ってインス
タンストランスレータの構成は形成されたプログラミン
グセグメントを組み合わせてそれらをコンパイルするこ
とによって得られる。トランスレータ情報を表すために
他の任意のプログラミング言語を使用することは当該技
術者には明らかであることに注目されたい。他のプログ
ラミング言語のそのような使用は、本発明の精神及び範
囲からは逸脱しない。
【0020】大部分のDTD展開タスクを達成するため
に、基本DTDオペレータの比較的小さなセットが使用
されることが決定されてきた。これらの基本オペレータ
の各々は正確に定義付けられているため、生成されたト
ランスレータはターゲットDTDの正確なインスタンス
を生成する。基本DTDオペレータのセットは以下のよ
うに列挙される。 (I) Insert: 新しいエレメントタイプ又は属性を導
入する (II) Remove: 既存のエレメントタイプ及び属性を
除去する (III) Group:所与のエレメントタイプによって正
規表現を分類する (IV) Ungroup, RecursiveUngroup:エレメントタイ
プをそのコンテントモデルに置き換える (V) Rename: エレメントタイプ又は属性の名前を変
更する (VI) Cut:コンテントモデルからアーギュメント又
はオカレンスをカットする (VII) PasteBefore, PasteAfter, PasteFirst, P
asteLast: アーギュメントをコンテントモデルに挿入す
る (VIII) MoveToFront, MoveToEnd: アーギュメン
トをコンテントモデルのフロント(又はエンド)に移動
させる (IX) Split PCDATA: #PCDATAアーギ
ュメントを正規表現に置き換える (X) Reorder:エレメントのリストの順序を変更する
【0021】各基本DTDオペレータ(そのアーギュメ
ントと共に)は、入力DTDから出力DTDへのマッピ
ング及び入力DTDのインスタンスから出力DTDのイ
ンスタンスへのマッピングの両方を定義付ける。各オペ
レータの第1アーギュメントは、パターンアーギュメン
トと称され、DTD及びインスタンスのどの部分が影響
を受けるかを特定する。残りのアーギュメントは影響を
受けたそれらの部分がどのように修正されるかを特定す
る。パターンアーギュメントのための構文及び各基本D
TDオペレータの詳細な記述が以下に成される。
【0022】上記に述べられたように、パターンアーギ
ュメントはどのDTDセグメント及びインスタンスセグ
メントがDTDオペレータによって修正されるかを定義
付ける。
【0023】X1@X2@... @Xk@exp[i] 最初に、パターンPは上記に示されたフォームを取り、
ここで、 ● 各Xj(1<=j<k,k>=0)はエレメントタ
イプであり、 ● exp はエレメントタイプ及び#PCDATAの正規
表現であり、 ● iは整数>=−1で、i=0のときは無視される。
【0024】幾つかのエレメントタイプが一回以上パタ
ーンPに表れるとき、ユーザは互いを区別するために固
有の識別子を各オカレンスに関連させることもできる。 EXAMPLE:以下の最後のパターンはラベルpとエ
レメントタイプSECTの第1オカレンスを関連付け、
ラベルqをSECTの第2オカレンスと関連付ける。 (1) TITLE (2) CHAPTER@SECTION@TITLE (3) SECTION@(TITLE,PARA+) (4) p:SECT@q:SECT@TITLE
【0025】パターンのセマンティックスはDTD及び
SGMLインスタンスによって定義付けられる。 ● DTDに関するパターンセマンティックス
【0026】DTDの観点から言うと、k>=1のとき
パターンPは<!ELEMENTXk... >宣言におけ
るexp オカレンスの以下のセットにマッチする。
【0027】i>0なら、パターンPはXkのコンテン
トモデルにおけるexp のi番目のオカレンスにマッチす
る。i=0なら、パターンPはXkのコンテントモデル
におけるexp の全てのオカレンスにマッチする。i<=
0でexp がエレメントタイプであるなら、パターンPは
Xkの包含されたエレメントタイプのセットにおけるex
p のオカレンスにマッチする。
【0028】k==0であるとき、パターンPは任意の
パターンX@Pによってマッチングされうる全てのexp
オカレンスにマッチし、ここでXは現在のDTDのエレ
メントタイプである。
【0029】● DTDインスタンスに関するパターン
セマンティックス
【0030】ドキュメントインスタンスの観点から言う
と、k>=1であるとき、パターンPは以下に定義付け
られるエレメントのセットのリストにマッチする。
【0031】i>=0又はexp が複合正規表現である
(即ち、exp はエレメントタイプでもなくキーワード#
PCDATAでもない)場合、パターンPは、Xkエレ
メントのサブエレメントのシーケンス(e0,#,e
1,...,#,eq)にマッチする。ここで、(e0,e
1,...,eq)はXkのコンテントモデルのマッチング
されたexp オカレンスのインスタンスであり、各#は包
含されたサブエレメントからのみ構成され、(X
1,...,Xk)はトップダウンオーダーでのxに最も近
いタイプの祖先に対応する。
【0032】i<=0でありexp がエレメントタイプで
ある場合、パターンPは、exp エレメントyにマッチす
る。ここで、exp エレメントの包含を許容する最も近い
祖先がXkタイプのエレメント例えばxであり、xはト
ップダウンオーダーの最も近い祖先のラベルとして(X
1,...,Xk−1)を有し、yはその親エレメントのタ
イプのコンテントモデルにフィットしない。
【0033】k==0であるとき、パターンPはパター
ンX@Pによってマッチされうるサブエレメントの全て
のシーケンスにマッチし、ここでXは現在のDTDのエ
レメントタイプである。
【0034】ある場合では、インスタンス修正は属性値
に基づいて制限される必要がある。その目的のために、
任意のexp のアーギュメント例えばYを<Y attr1 op1
val1, attr2 op2 val2,... >に置き換えることによっ
てパターンPを拡張し、ここで、attrはエレメントタイ
プYの属性名であり、val はストリング、opは関係オペ
レータ(=,!=,<,<=,>,>=)である。便宜
上、ユーザはエレメントにおけるコンテントデータを示
すために属性として#DATAを使用してもよい。EX
AMPLES: (1)<LISTTYPE=NUM> (2)FIGURE@<CAPTION#DATA= "
A Sea Serpent”>
【0035】そのように拡張されたパターンは属性が関
連しない場合と同じ正規表現の同じセットにマッチす
る。しかしながら、インスタンスレベルではサブエレメ
ントのリストはYに対応する全てのエレメントyが以下
の条件を満たす場合にしかマッチしない。
【0036】(val(y,attr1)op1val1) &&(val(y,
attr2) op2 val2)&&... ここで、val(y,attrj)はエレメントyの属性attrj の値
を示す。これから、expが一つのエレメントタイプ又は
#PCDATAのみから構成されるときはパターンPを
線形パターンを呼ぶことにする。パターンが属性と関連
するか又はそのコンテキスト部分が1より長い長さ(即
ち、k>1)を有する場合、該パターンは条件付きと呼
ばれる。例えば、 CHAPTER@SECTION@TITLE はそのコンテキスト部分(即ち、CHAPTER@SE
CTION)の長さが2であるため、条件付きパターン
である。これは、SECTIONがCHAPTERエレ
メントの子である場合にだけTITLEofSECTI
ONがマッチすることを意味する。
【0037】基本オペレータの各々は以下により詳細に
説明される。(I)Operator Insert SYNTAX ● Insert(<!ELEMENT X... >) ● Insert(<!ATTLIST X attri ... >[,
func] ここで、 1.<!ELEMENT X... >はSGMLの有効エ
レメント宣言である。Xが入力DTDのエレメントタイ
プであるとき、<!ELEMENT X... >で表され
る言語は入力DTDのXのエレメント宣言よりも広い。 2.<!ATTLIST X attri ... >はSGML
の有効属性宣言であり、Xは入力DTDのエレメントタ
イプである。 3.オプションのアーギュメントfuncは、アーギュメン
トとして<X>及び/又は幾つかの<X ATTR>を
含む可能性のあるC++プログラミング言語における表
現であり、ここで<X>は現在のXエレメントを示し、
<X ATTR>は現在のXエレメントのATTR属性
を示す。<!ATTLIST X attri... >の宣言
に従って、エレメントタイプXのattri 属性に対してfu
ncの任意の値が有効でなければならない。(1)リザー
ブされたSGMLキーワード#REQUIREDが<!
ATTLIST X attri...>に含まれる場合、
(2)幾つかのXエレメントを有する入力DTDの少な
くとも一つのインスタンスが存在する場合、funcアーギ
ュメントは省略することはできない。 SEMANTICS Insert(<!ELEMENT X... >) Xのエレメント宣言(もしあれば)を入力DTDから削
除する。次に所与の<!ELEMENT X... >仕様
をDTDに挿入する。 Insert(<!ATTLIST X attri ... >,fun
c) Xの属性attri (もしあれば)を入力DTDから削除
し、<!ATTLISTX attri ... >をDTDに挿
入する。
【0038】ドキュメントインスタンスに対して、最初
に属性attri (もしあれば)を全てのXエレメントから
削除しなければならない。次に、指定されていれば機能
funcによって各エレメントXに対する属性attri の値を
定義付ける。
【0039】図6はInsertオペレータのアプリケーショ
ンのエフェクトの例を示している。図6を参照すると、
Insertオペレータ606はDTD2 602で実行され
てその結果DTD1 601になる。同様にInsertオペ
レータ606によってトランスレータがドキュメントイ
ンスタンス2 604をドキュメントインスタンス16
03に変換する。図6はRemoveオペレータ(逆の機能を
実行する)も例示し、以下に説明される。(II)Operator Remove SYNTAX ● Remove(spec) ここで、specは既存のエレメントタイプとしてXを伴う
以下のフォームのうちの一つをとる。 ● X ● <!ATTLIST X attri >...attriはエレ
メントタイプXの属性である SEMANTICS ● Remove(X)... エレメントX及びその属性をDT
D及びインスタンスから除去する ● Remove(<!ATTLIST X attri >... エ
レメントXの属性attriをDTD及びインスタンスの両
方から除去する
【0040】図6は更にRemoveオペレータのアプリケー
ションのエフェクトの例を示している。図6を参照する
と、Removeオペレータ605はDTD1 601で実行
されてその結果DTD2 602になる。同様に、Remo
veオペレータ605によって生成されたトランスレータ
がドキュメントインスタンス2 603をドキュメント
インスタンス1 604に変換する。
【0041】(III) Operator Group SYNTAX ● Group(spec,[cnd,]grp) ここで、 ● specはパターンアーギュメント、例えばX1@X2
@... @exp[i]である ● cnd は幾つかの<X>又は<X ATTR>をアー
ギュメントとして含む可能性のあるC++プログラミン
グ言語における表現であって、ここでXはspecのアーギ
ュメントでありATTRはXで表されるエレメントタイ
プの属性である。<X>はspecのアーギュメントXとマ
ッチングしたエレメントを示し、<X ATTR>はそ
のようなエレメントのATTR属性を示す。このような
表現は以後参照表現と呼ばれる。cnd はNULLである
場合省略されることができる。 ● grp は以下の条件を満たすフォーム<XA1=F
1,A2=F2,... ,Aq=Fq>をとる Xが入力DTDのエレメントタイプであるとき、 1.Xのコンデントモデル/包含/除外によって定義付
けられる言語は正規表現exp よりも広くなければならな
い。 2.{A1,A2,... ,Aq}はXの属性のセットで
あり、その値は定義付けられなければならない。 3.各Fj(1<=j<=q)は一定のストリング又は
参照表現であって、その値はエレメントタイプXの属性
Ajに対して有効である。
【0042】Xが入力DTD のエレメントタイプでは
ないとき、qはgrp アーギュメント(即ち、grp =<X
>)において0でなければならない。 SEMANTICS 入力DTDのパターンspecでマッチングされたexp の各
オカレンスに対して、 ● specが条件付きパターンであるか又はcnd がNUL
Lでなければ(exp |X)に置き換え、 ● そうでない場合はXに置き換える
【0043】Xが既存のエレメントタイプでない場合、
exp をコンテントモデルとするエレメントととしてXを
導入する。
【0044】ドキュメントインスタンスのspecでマッチ
された各エレメントリストに対して、条件cnd を満たす
ならばエレメントタイプXとして分類し、Fiによって
定義付けられた値を有する属性Ai(1<=i<=q)
を割り当てる。
【0045】図7はGroup オペレータのアプリケーショ
ンのエフェクトの例を示している。図7を参照すると、
Group オペレータ705はDTD3 701で実行され
結果としてDTD4 702になる。同様に、Group オ
ペレータ705によって生成されたトランスレータがド
キュメントインスタンス3 703をドキュメントイン
スタンス4 704に変換する。
【0046】(IV) Operators Ungroup and Recursive
Ungroup SYNTAX ● Ungroup(spec[,cnd]) ● Recursive Ungroup(spec[,cnd]) ここで、specは線
形パターンの定義、例えばX1@X2@... @Xkであ
り、cnd は前のオペレータと同様である。 SEMANTICS Ungroup(spec[,cnd]) ● Xkが入力DTDに包含されたGI又は除外された
GIを持たないとき、入力DTDにおけるパターンspec
でマッチングされたexp の各オカレンスに対して、spec
が条件付きパターンであるか又はcnd がNOT NUL
Lである場合は、該オカレンスを(exp |Mdl )に置き
換え、そうでない場合はMdl に置き換える。ここで、Md
l はコンテントモデル、Xkの包含されたGI及び除外
されたGIによって特定される言語を表す正規表現であ
る。
【0047】ドキュメントインスタンスにおいてspecで
マッチングされた各エレメントに対して、エレメントが
条件cnd も満たす場合は該エレメントをそのコンテント
に置き換える。 ● Xkが入力DTDにいくつかの包含されるGI又は
除外されるGIを有する場合、Xkのコンテントモデ
ル、包含されるGI、及び除外されるGIを考慮に入れ
ることによって入力DIDのXkから到達可能なXk及
びGIの宣言を修正する。 Recursive Ungroup(spec,cnd) ● Xkが入力DTDに包含されるGI又は除外される
GIを持たない場合、DTDにおけるパターンspecでマ
ッチングされたexp の各オカレンスに対して、specが条
件付きパターンであるか又はcnd がNOT NULLで
ある場合は該オカレンスを(exp |Expanded Mdl) に置
き換え、そうでない場合はExpanded Mdlに置き換える。
ここで、Expanded Mdlは正規表現であり、Xkがなくな
るまでXkの各オカレンスをMdl(上記のUngroup オペレ
ータに特定されるような)に置き換えることによってMd
l から得られる。
【0048】ドキュメントインスタンスにおいてspecで
マッチングされた各エレメントに対して、エレメントが
条件cnd を満たすならば該エレメント及び包含されたX
kサブエレメントをコンテントに置き換える。 ● Xkが入力DTDにいくつかの包含されたGI、又
は除外されたGIを有する場合、Xkのコンテントモデ
ル、包含されたGI、及び除外されたGIを考慮に入れ
ることによって入力DTDのXkから到達可能なXk及
びGIの宣言を修正する。
【0049】図8はRecursive Ungroup オペレータのア
プリケーションのエフェクトの例を示している。図8を
参照すると、Recursive Ungroup オペレータ805はD
TD5 801で実行されて結果としてDTD6 80
2になる。同様に、Recursive Ungroup オペレータ80
5によって生成されたトランスレータがドキュメントイ
ンスタンス5 803をドキュメントインスタンス6
804に変換する。
【0050】(V) Operator Rename SYNTAX ● Rename(<!ATTLIST X attri >,new
attri nm) ● Rename(spec,[cnd,] new GI nm) ● Rename(spec1,[cnd,] func) ここで、 ● 入力DTDにおいて、Xはエレメントタイプでattr
i はXの属性である。new attri nmは入力DTD
のXの属性であってはならない。 ● specは線形パターン、例えばX1@X2@... Xk
である。 ● cnd は前のオペレータと同様である。 ● new GI nmは有効エレメントタイプの名前であ
る。new nmが入力DTDのエレメントタイプであると
き、new GI nmの宣言によって表される言語はXk
の宣言による言語よりも広くなければならない。 ● spec1はフォームX1@X2@... @#PCDAT
A[i] の線形パターンであり、ここで[i] はi=0のと
き省略することができる。 ● funcは結果としてストリングデータをリターンする
参照表現である。 SEMANTICS Rename(<!ATTLIST X attri >,new at
tri nm) DTD及びインスタンスの両方においてXの属性attri
の名前をnew attri nmに変更する。 Rename(spec, cnd, new GI nm) DTDのパターンspecでマッチングされたexp の各オカ
レンスに対して、specが条件付きパターンであるか又は
cnd がNOT NULLである場合は該オカレンスを
(exp |new GI nm) に置き換え、そうでない場合
はnew GI nmに置き換える。new GI nmが入力
DTDのエレメントタイプでない場合、Xkの場合と同
じコンテントモデル、包含/除外及び属性を有する出力
DTDのエレメントタイプとしてnew GI nmを導入す
る。
【0051】ドキュメントインスタンスのspecでマッチ
ングされた各エレメントに対して、エレメントが条件cn
d も満たすならエレメントの名前をnew nmに変更す
る。 Rename(spec1,cnd,func) ドキュメントインスタンスにおいてspec1 によってマッ
チングされた各エレメントに対して、エレメントが条件
cnd も満たす場合、参照表現funcの評価結果によってそ
のコンテントデータに変更する。
【0052】図9はRenameオペレータのアプリケーショ
ンのエフェクトの例を示している。図9を参照すると、
Renameオペレータ905はDTD7 901で実行され
てDTD8 902になる。同様に、Renameオペレータ
905によって生成されたトランスレータがドキュメン
トインスタンス7 903をドキュメントインスタンス
8 904に変換する。
【0053】(VI) Operator Cut SYNTAX ● Cut(spec[,cnd] ここで、specは線形パターンであり、cnd は前のオペレ
ータと同様である。 SEMANTICS DTDにおいてパターンspecでマッチングされたexp の
各オカレンスに対して、specが条件付きパターンである
か又はcnd がNOT NULLである場合は該オカレン
スを(exp?) に置き換え、そうでない場合は削除する。
【0054】ドキュメントインスタンスのspecによって
マッチングされた各エレメントに対して、エレメントが
条件cnd も満たす場合はドキュメントインスタンスから
エレメントを削除する。
【0055】図10はCut オペレータのアプリケーショ
ンのエフェクトの例を示している。図10を参照する
と、Cut オペレータ1005はDTD11 1002で
実行されてその結果DTD10 1001を得る。同様
に、Cut オペレータ1005によって生成されたトラン
スレータがドキュメントインスタンス11 1004を
ドキュメントインスタンス10 1003に変換する。
図10は逆の機能PasteBefore を例示し、該機能は以下
により詳細に述べられる。
【0056】(VII) Operators PasteBefore, PasteAft
er, PasteFirst, PasteLast SYNTAX ● PasteFirst(spec, [cnd,] chl, func) ● PasteLast (spec, [cnd,] chl, func) ● PasteBefore(spec, [cnd,] chl, func) ● PasteAfter(spec, [cnd,] chl, func) ここで、 1.specは線形パターン例えば、X1@X2@... @X
kである。 2.cnd は前のオペレータと同様である。 3.chl は既存のエレメントタイプ又は#PCDATA
である。 4.funcはC++表現又は参照表現のいずれかである。
funcが一定のストリングであるとき、funcは子のアーギ
ュメントによって特定されるエレメントタイプのインス
タンスである。 SEMANTICS PasteFirst(spec, cnd, chl, func) DTDのパターンspecでマッチングされた各エレメント
に対して、Xkのコンテントモデルの最初に以下のもの
を挿入する ● cnd がNULLでないか又はspecが条件付きパター
ンである場合はchl?を挿入し、 ● そうでない場合はchl を挿入する。
【0057】ドキュメントインスタンスのspecでマッチ
ングされた各エレメントに対して、エレメントが条件cn
d も満たす場合はfuncによってエレメントの第1子とし
て定義付けられたchl エレメントをペーストする。 PasteLast(spec, cnd, chl,func) PasteFirst(...) の用語 "beginning"を "end"に、 "fi
rst"を "last" に変える PasteBefore(spec, cnd, chl, func) DTDのパターンspecでマッチングされたexp の各オカ
レンスに対して、 ● cnd がNULLでないか又はspecが条件付きパター
ンである場合はexp の前にchl?をペーストし、 ● そうでない場合はchl をペーストする。
【0058】ドキュメントインスタンスのspecでマッチ
された各エレメントに対してエレメントが条件cnd も満
たす場合、funcによって定義付けられたchl エレメント
をマッチされたエレメントの直ぐ前にペーストする。 PasteAfter(spec, [cnd,] chl, func) PasteBefore(...)の用語 "before" を "after"に変える
【0059】図10は更にPasteBefore オペレータのア
プリケーションのエフェクトの例を示している。図10
を参照すると、PasteBefore オペレータ1006はDT
D10 1001で実行されてその結果DTD11 1
002になる。同様に、PasteBefore オペレータ100
6によって生成されたトランスレータはドキュメントイ
ンスタンス10 1003をドキュメントインスタンス
11 1004に変換する。
【0060】(VIII) Operators MoveToFront and MoveT
oEnd SYNTAX ● MoveToEnd(spec[,cnd]) ● MoveToFront(spec[,cnd]) ここで、specは線形パターンであり、cnd は前のオペレ
ータと同様である。 SEMANTICS MoveToEnd(spec,cnd) DTDのパターンspecでマッチングされたexp の各オカ
レンスに対して、cndがNULLでありspecが新しいコ
ンテントモデル例えばNew Mdl のゲットではない場合、
該オカレンスをXkのコンテントモデルのエンドへ移動
させる。cnd がNULLでないか又はspecが条件付きパ
ターンである場合、Xkのコンテントモデルを(Mdl |
NewMdl)に修正し、ここでMdlはXkの現在のモデル
である。
【0061】ドキュメントインスタンスのspecでマッチ
された各エレメントに対して、エレメントが条件cnd も
満たすならばエレメントをその親エレメントのエンドへ
移動させる。 MoveToFront(spec,cnd) MoveToFront(...)のセマンティックス上の定義はMoveTo
End(...)の用語 "end"を "front"に置き換えることによ
って得られる。
【0062】図11はMoveToEnd 及び MoveToFrontオペ
レータのシーケンシャルアプリケーションのエフェクト
の例を示している。図11を参照すると、MoveToEnd オ
ペレータ1105はDTD12 1101で実行されて
その結果DTD13 1102になる。同様に、MoveTo
End オペレータ1105によって生成されたトランスレ
ータがドキュメントインスタンス12 1103をドキ
ュメントインスタンス13 1104に変換する。逆の
方法では、MoveToFront オペレータ1106がDTD
131 102で実行されてその結果DTD 12 1
101になる。同様に、MoveToFront オペレータ110
6によって生成されたトランスレータがドキュメントイ
ンスタンス13 1104をドキュメントインスタンス
12 1103に変換する。
【0063】(IX) Operator SplitPCDATA SYNTAX SplitPCDATA(spc,[cnd,] exp, func) ここで、 (1)specはフォームX1@... @Xk@#PCDAT
A[i] の線形パターン定義であり、[i] はi =0の場合
省略できる。
【0064】(2)cnd は前のオペレータと同様であ
る。 (3)exp はエレメントタイプと#PCDATAの正規
表現である。
【0065】(4)funcは参照表現であり、そのリター
ン値はexp によって定義付けられた言語に属する。 SEMANTICS 入力DTDのspecでマッチングされた#PCDATAの
各オカレンスに対して、specが条件付きパターンである
か又はcnd がNULLでない場合は(#PCDATA|
exp ) に置き換え、そうでない場合はexp に置き換え
る。各アーギュメント、例えば入力DTDのGIではな
くY!=#PCDATAであるYに対して、以下の宣言
をDTDに導入する。 <!ELEMENT Y−−(#PCDATA)>ドキ
ュメントインスタンスのspecでマッチングされた各エレ
メントに対して、該エレメントが条件cnd も満たすなら
ば、funcによって定義付けられたエレメントシーケンス
に置き換える。
【0066】図12はSplitPCDATA オペレータのエフェ
クトの例を示している。図12を参照すると、SplitPCD
ATA オペレータ1205はDTD14 1201で実行
されてその結果DTD15 1202になる。同様に、
SplitPCDATA オペレータ1205によって生成されたト
ランスレータがドキュメントインスタンス14 120
3をドキュメントインスタンス15 1204に変換す
る。
【0067】(X) Operator Reorder SYNTAX Reorder(spec, [cnd,] func) ここで、 (1)specは線形パターン定義である。
【0068】(2)cnd は前のオペレータと同様であ
る。 (3)funcは、より少ない(<)及び等しい(=)関係
が定義付けられるタイプの参照表現である。 SEMANTICS spec=X1@X2@... @Xk[i] とする。ドキュメン
トインスタンスのXkエレメントのリスト(y1,...,
yk)に対して、各々はspecでマッチングされる 各々は条件cnd を満たし、全ては同一エレメントの子で
あり、エレメントの順序は、新しいリスト例えば(z
1,..., zk)を得るために変更され、func(z1)<=fu
nc(z2)<=... <=func(zk)になる。
【0069】図13はReorder オペレータのエフェクト
の例を示している。図13を参照すると、Reorder オペ
レータ1305はDTD16 1301で実行されてそ
の結果DTD17 1302になる。同様に、Reorder
オペレータ1305によって生成されたトランスレータ
がドキュメントインスタンス16 1303をドキュメ
ントインスタンス17 1304に変換する。
【0070】本発明の現在の好適な実施の形態は、例が
図15及び16に関して以下に設けられる、DTD2D
TD()と称されるC/C++機能によって特定されるD
TDオペレータのシーケンスか又は、グラフィックユー
ザインタフェースを介してかのいずれかによって起動さ
れる。
【0071】現在の好適な実施の形態のグラフィックユ
ーザインタフェースは図14に例示されている。そのよ
うなインタフェースによってエンドユーザ(プログラマ
ーではない)がDTD展開及びトランスレータ構成の技
術を使用することが可能になる。ボタンの行1401は
ウィンドウの上に配置される。各ボタンは基本DTDオ
ペレータ又は関連するオペレータを表す。DTDウィン
ドウ1402は修正されるDTDを表示する。公知のス
クローリング技術によって、ユーザはDTDウィンドウ
1402のDTDの内容をスクロールすることができ
る。公知の選択技術によって、動作されるDTDの部分
が選択される。アーギュメント特定ウィンドウ1403
によってユーザは選択されたオペレータのアーギュメン
トを特定することができる。図14では、ユーザはsec
1405のコンテントモデル内で選択されたsec アーギ
ュメントのオペレーションのためにUngroup ボタン14
04を選択している。
【0072】これは、ユーザは別のセクションに含まれ
ているセクションを分類から外したいたいことを意味す
る。アーギュメント特定ウィンドウ1403では、ユー
ザはオペレータのための追加の情報を特定する。選択さ
れたUngroup オペレーションに対して、システムはユー
ザにセクションの単純なungroup を実行するのかそれと
もrecursive ungroup 1406を実行するのかを決定す
るように求め、更にSGMLインスタンス1407に関
する条件(もしあれば)を提供するように求める。下の
ボタンの行1408によってユーザはドキュメント構
成、コンテントデータ及び/又は属性値に基づいたその
ような条件を特定することができる。そのような情報か
らDTDが修正される。ユーザはDTDの所望の修正の
各々に対してこれを繰り返してもよい。ユーザがDTD
修正を完了すると、システムはオリジナルDTDから最
終的に修正されたDTDへのインスタンストランスレー
タを自動的に生成させる。
【0073】図15及び16はDTD D0 1500
がどのようにしてDTD D3 1503に展開される
かを詳細に例示している。この例では、ユーザはGIti
tleに属性depth を導入するように最初に基本DTDオ
ペレータInsert1504を与える。depth の属性の値は
0、1又は2であり、そのデフォルト値は2である。In
sertの最後のアーギュメントは各タイトルエレメントの
値がドキュメントインスタンス内でどのように定義付け
られるかを定義付ける。これによってDTDD1150
1が形成される。DTD D1 1501は次の基本オ
ペレータRecursive Ungroup 1505への入力であり、
該オペレータ1505は各sec エレメントをそのコンテ
ントに置き換えて結果としてDTD D2 1502を
形成する。最後にDTD D21502はオペレータRe
move1506への入力であり、該オペレータ1506は
エレメントタイプsec を削除するために与えられる。こ
れらのオペレータからシステムはD0 1508の任意
のインスタンスをD31509のインスタンスに変換す
るトランスレータ1507を生成する。
【0074】図15及び16に例示されるプロセスのシ
ーケンスを起動させるための機能呼び出しは以下の通り
である。
【0075】 #include<ctype.h > voidDTD2DTD () { Insert(" <ATTLIST title depth (0|1|2)2>” "min(no of ancestor( <title >,\" sec \")−1,2)”) RecursiveUngroup("doc@sec") Remove("sec") }
【0076】インスタンストランスレータ1507の生
成は更に図17に例示されている。現在の好適な実施の
形態では、トランスレータ情報はC++ステートメント
として生成され且つ記憶される。トランスレータ情報は
組み合わされたC++ソースプログラムセグメントの集
合であることが有効的である。C++プログラムセグメ
ントは連続的にコンパイルされて結果的に実行可能イン
スタンストランスレータを生成する。図17を参照する
と、トランスレータ情報T1 1601はInsertオペレ
ータ1504から生成される。InsertオペレータT1
は、DTD D01500インスタンスにおける各 "ti
tle"エレメントに対して "depth"属性が加えられ、その
値は "(no of ancestor(current, "sec")-1,2)"によ
って定義付けられることを示している。上記の表現は、
参照表現 "<title >”をC++表現 "current"に置き
換えることによってInsertオペレータの第2アーギュメ
ントから導出されることに注目されたい。
【0077】Recursive Ungroup オペレータ1505か
ら生成されたトランスレータ情報T2 1602は、D
TD D1 1501のインスタンスにおける "sec ”
エレメントXは、Xが "doc"エレメントの子であるなら
ばその非 "sec"サブエレメントに再帰的に置き換えられ
ることを示す。そのような条件は、オペレータのアーギ
ュメント "doc@sec"から導出されることに注目された
い。
【0078】最後に、DTD D2 1502(図15
及び16参照)はどのインスタンスも "sec"エレメント
を含まないことを示すため、DTD D2 1502と
DTD D3 1503の間には変換が必要ない。従っ
てトランスレータ情報T3は空になる。これらの情報T
1,T2,及びT3からインスタンストランスレータ1
507がDTD D0及びD3に対して自動的に構成さ
れる。
【0079】
【発明の効果】以上説明したように、本発明により、タ
ーゲットDTDの正しいインスタンスを常に生成可能な
ドキュメントトランスレータの構成が短時間で可能とな
る。
【図面の簡単な説明】
【図1】標準一般化マークアップ言語(SGML)にお
けるドキュメントのためのドキュメントタイプ定義(D
TD)の例を示す。
【図2】図1のDTDのドキュメントインスタンスであ
る。
【図3】フォーマットされプリントされた時に表れる図
2のドキュメントインスタンスを示している。
【図4】本発明で利用されるコンピュータベースシステ
ムのブロック図である。
【図5】DTD展開及びインスタンス変換を実行する本
発明の全体的な動作を例示したブロック図である。
【図6】本発明で実行されるDTD及びドキュメントイ
ンスタンスのInsertオペレータ及びRemoveオペレータの
エフェクトを示している。
【図7】本発明で実行されるDTD及びドキュメントイ
ンスタンスのGroup オペレータのエフェクトを示してい
る。
【図8】本発明で実行されるDTD及びドキュメントイ
ンスタンスのRecursiveUngroupオペレータのエフェクト
を示している。
【図9】本発明で実行されるDTD及びドキュメントイ
ンスタンスのRenameオペレータのエフェクトを示してい
る。
【図10】本発明で実行されるDTD及びドキュメント
インスタンスのPasteBefore オペレータ及びCut オペレ
ータのエフェクトを示している。
【図11】本発明で実施されるDTD及びドキュメント
インスタンスのMoveToEnd オペレータ及びMoveToFront
オペレータのエフェクトを示している。
【図12】本発明で実施されるDTD及びドキュメント
インスタンスのSplitPCDATA オペレータのエフェクトを
示している。
【図13】本発明で実施されるDTD及びドキュメント
インスタンスのReorder オペレータのエフェクトを示し
ている。
【図14】本発明で使用するためのグラフィックユーザ
インタフェースを例示している。
【図15】本発明の動作の詳細な例を例示している。
【図16】本発明の動作の詳細な例を例示している。
【図17】本発明の図15及び16の例に基づいたイン
スタンストランスレータの構成を例示している。
【符号の説明】
501、503、507、509 DTD 502、505、508 オペレータ 504、506、510 トランスレータ情報 511 インスタンストランスレータ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 オリジナルデータフォーマットを修正さ
    れたデータフォーマットに修正し、前記オリジナルデー
    タフォーマットのドキュメントのインスタンスから前記
    修正されたデータフォーマットのドキュメントのインス
    タンスへのトランスレータを形成するシステムであっ
    て、 データフォーマットを修正するための複数の修正オペレ
    ータを含み、前記修正オペレータの各々はオリジナルデ
    ータフォーマットに対して所望の修正を特定し、 データフォーマットで実行される前記複数の編集動作か
    ら一つ以上の修正オペレータを特定する手段を含み、 オリジナルデータフォーマットを受け取る入力手段を含
    み、 前記入力手段及び前記一つ以上の修正オペレータを特定
    する手段に連結した処理手段を含み、前記処理手段は、
    前記オリジナルフォーマットで前記修正オペレータを実
    行し、修正されたデータフォーマット及びインスタンス
    変換情報を形成し、前記処理手段は更に前記ドキュメン
    ト変換情報からインスタンストランスレータを形成する
    ためのトランスレータ生成手段を含む、 データフォーマット修正システム。
  2. 【請求項2】 第1フォーマットのドキュメントインス
    タンスから第2フォーマットのドキュメントインスタン
    スへのインスタンストランスレータを構成する方法であ
    って、 a) 修正オペレータのセットから一つ以上のフォーマ
    ット修正オペレータを特定するステップを含み、前記修
    正オペレータのセットの前記オペレータの各々は前記フ
    ォーマットが修正される方法を表し、 b) 前記第1フォーマットに前記特定された修正オペ
    レータを適用して中間フォーマットを形成するステップ
    を含み、 c) ステップb)と同時にインスタンス変換情報を生
    成し且つ記憶するステップを含み、 d) 前記第2フォーマットが得られるまで前記中間フ
    ォーマットでステップa)〜c)を繰り返すステップを
    含み、 e) 前記生成されたインスタンス変換情報から前記イ
    ンスタンストランスレータを生成させるステップを含
    む、 インスタンストランスレータ構成方法。
JP7338880A 1995-01-03 1995-12-26 データフォーマット修正システム及びインスタンストランスレータ構成方法 Withdrawn JPH08339300A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US36755395A 1995-01-03 1995-01-03
US367553 1995-01-03

Publications (1)

Publication Number Publication Date
JPH08339300A true JPH08339300A (ja) 1996-12-24

Family

ID=23447653

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7338880A Withdrawn JPH08339300A (ja) 1995-01-03 1995-12-26 データフォーマット修正システム及びインスタンストランスレータ構成方法

Country Status (2)

Country Link
EP (1) EP0721165A3 (ja)
JP (1) JPH08339300A (ja)

Also Published As

Publication number Publication date
EP0721165A3 (en) 1997-01-02
EP0721165A2 (en) 1996-07-10

Similar Documents

Publication Publication Date Title
US10970474B2 (en) Method and system for editing text with a find and replace function leveraging derivations of the find and replace input
US5915259A (en) Document schema transformation by patterns and contextual conditions
US7251777B1 (en) Method and system for automated structuring of textual documents
Reps et al. The synthesizer generator reference manual
US5555169A (en) Computer system and method for converting a conversational statement to computer command language
EP0907923B1 (en) Method and system for computing semantic logical forms from syntax trees
Simov et al. CLaRK-an XML-based system for corpora development
US20030177449A1 (en) Method and system for copy and paste technology for stylesheet editing
JPH1078959A (ja) エッジデータ構造を統一する方法
US20060026505A1 (en) Tree construction for XML to XML document transformation
US8397157B2 (en) Context-free grammar
JPS6288033A (ja) ソフトウエアプログラムを生成するための装置及びその方法
US20070055491A1 (en) Method for apparatus for construction and use of an operational lexicon in process models and managing their synchronized representations
JPH10105551A (ja) プロセッサを用いて第1グラフの単一化の一部として第1節と第2節を結合する方法
Boshernitsan Harmonia: A flexible framework for constructing interactive language-based programming tools
GB2307571A (en) Automatically generating a document type definition
US5946490A (en) Automata-theoretic approach compiler for adaptive software
Pizka et al. Automating language evolution
JPH08339300A (ja) データフォーマット修正システム及びインスタンストランスレータ構成方法
Kilbury et al. Inheritance-based models of the lexicon
Steel et al. Generating human-usable textual notations for information models
Gapeyev et al. Statically typed document transformation: An Xtatic experience
Pizka et al. Tool-supported multi-level language evolution
Ramalho et al. Algebraic specification of documents
Barzdins et al. Metamodel Specialization for Graphical Language and Editor Definition.

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030304