JP4997749B2 - 文書処理方法、プログラム及びシステム - Google Patents

文書処理方法、プログラム及びシステム Download PDF

Info

Publication number
JP4997749B2
JP4997749B2 JP2005353456A JP2005353456A JP4997749B2 JP 4997749 B2 JP4997749 B2 JP 4997749B2 JP 2005353456 A JP2005353456 A JP 2005353456A JP 2005353456 A JP2005353456 A JP 2005353456A JP 4997749 B2 JP4997749 B2 JP 4997749B2
Authority
JP
Japan
Prior art keywords
document
template
folder
information
integrated structure
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.)
Expired - Fee Related
Application number
JP2005353456A
Other languages
English (en)
Other versions
JP2007156965A (ja
Inventor
惠久 川邉
節 國武
明 鈴木
克英 田中
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation 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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2005353456A priority Critical patent/JP4997749B2/ja
Priority to AU2006213978A priority patent/AU2006213978B2/en
Priority to US11/524,830 priority patent/US7912846B2/en
Priority to KR1020060103445A priority patent/KR100890966B1/ko
Publication of JP2007156965A publication Critical patent/JP2007156965A/ja
Application granted granted Critical
Publication of JP4997749B2 publication Critical patent/JP4997749B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates

Landscapes

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

Description

以下では、分類や章立てなどの構造をなす構造化文書を処理するための方法又は装置に関し、特に構造化文書群に対するテンプレートの適用に関する。
電子文書の処理や再利用を容易にするために、XML(eXtensible Markup Language)やHTML(Hypertext Markup Language)などといったマークアップ言語、或いはそれと同等の記述能力を持つ言語を用いた文書の構造化が普及している。構造化された電子文書(以下、単に構造化文書と呼ぶ)の再利用では、テンプレートを構造化文書に適用することで、構造化文書に含まれる情報を用いて別の文書を作成することが行われている。
例えば、特許文献1に示されるシステムでは、テンプレートを構造化文書として作成し、テンプレートの構造要素をコンテントエリア(個々の文書ごとに異なる内容を設定したり自由に編集したりすることが可能な領域)として指定可能としている。そして、このシステムは、テンプレートの適用対象となるHTML文書の構造中からユーザが選択した要素を、コンテントエリアに挿入する。また、このシステムは、最初の文書のテンプレート処理の後、別のHTML文書が入力された場合、この文書中に最初の文書で選択されたものと構造的に適合する要素があるか否かを判定し、あればその要素をテンプレートに挿入する。
また、特許文献2には、テンプレートを用いてHTML等の文書についての目次や索引を作成するシステムが開示される。このシステムでは、テンプレート中に繰り返し構造を示す記号を記述可能とし、この記号で囲まれる範囲の条件にマッチする記述をHTML文書から検出すると、それら検出した各記述に対し、その条件に示される処理内容を適用することで、目次や索引などといった類似の構造が繰り返される文書を作成する。
さて、構造化文書の実際の利用では、複数の構造化文書から必要な部分を取捨選択して組み立てることで、目的や用途に応じた様々な電子文書を生成したいなどの要望がある。例えば、製品マニュアルの各パートをそれぞれ別々に構造化文書として作成し、それら各パートの構造化文書から、印刷又は配布用のフォーマット(例えばPDF(Portable Document Format)形式)のマニュアルを作成したり、ウェブページ等として公開するために1つ又は複数のHTML文書からなるマニュアルを作成したりするなどである。
ところが、上記特許文献1及び2に示されるシステムは、いずれも1つのHTML文書に対してテンプレートを適用し、1つの文書を作成することしか想定していない。
また、目的や用途に応じた個々の電子文書の元になる多数の構造化文書のファイルは、ファイル管理のために、階層構造をなすフォルダ群に分類して保存されることが一般的である。フォルダの階層構造は、例えば収容する文書群の内容の属する分野やその他の属性(例えばその文書の作成した部門)など、1つ乃至複数の観点からの分類に応じて作成される場合が多いと考えられる。したがって、フォルダの階層構造は構造化文書の分類に関するある種の情報を持っていると捉えることができる。
ところが、特許文献1及び2を初めとする従来の技術では、複数の構造化文書からなる群にテンプレートを適用して文書等を作成するに当たり、そのようなフォルダ構造が持つ情報を利用することについて考慮を払っていない。
特開2005−050078号公報 特開2004−086855号公報
本発明は、上記従来技術の問題点の少なくとも1つを解決することを目的とする。
本発明の1つの側面では、文書データベース内の階層構造をなすフォルダ群のいずれかのフォルダに格納される複数の構造化文書に対して1以上のテンプレートを適用した結果を生成するためにコンピュータシステムが実行する文書処理方法であって、前記文書データベース内の前記各フォルダ、及び、それらフォルダに格納される各構造化文書を構成する各文書要素は、それぞれ前記文書データベース内で該フォルダ又は該文書要素を一意に特定するID属性を有し、前記方法は、構造を成す文書要素群からなる第1の構造化文書を取得し、文書データベースのフォルダ群がなす階層構造の情報を取得し、第1の構造化文書の文書要素群がなす構造を、フォルダ群がなす階層構造において当該第1の構造化文書が格納されているフォルダの位置に併合することにより、統合構造情報を作成し、前記統合構造情報における各フォルダ又は文書要素に対し、該フォルダ又は文書要素のID属性を含んだファイル名をアクセス情報属性として追加し、前記アクセス情報属性追加後の前記統合構造情報に対してテンプレートを適用する、と共に、前記統合構造情報に対してテンプレートを適用する処理では、前記統合構造情報内のフォルダ又は文書要素に対してテンプレートを適用して得られたデータを、該フォルダ又は文書要素の前記アクセス情報属性が表すファイル名を持つファイルとして保存することにより、該ファイル名を用いて当該データにアクセスできるようにする、ことを特徴とする文書処理方法を提供する。
本発明の別の側面では、文書データベース内の階層構造をなすフォルダ群のいずれかのフォルダに格納される複数の構造化文書に対して1以上のテンプレートを適用した結果を生成する処理をコンピュータシステムに実行させるためのプログラムであって、前記文書データベース内の前記各フォルダ、及び、それらフォルダに格納される各構造化文書を構成する各文書要素は、それぞれ前記文書データベース内で該フォルダ又は該文書要素を一意に特定するID属性を有し、該コンピュータシステムに、構造を成す文書要素群からなる第1の構造化文書を取得し、文書データベースのフォルダ群がなす階層構造の情報を取得し、第1の構造化文書の文書要素群がなす構造を、フォルダ群がなす階層構造において当該第1の構造化文書が格納されているフォルダの位置に併合することにより、統合構造情報を作成し、前記統合構造情報における各フォルダ又は文書要素に対し、該フォルダ又は文書要素のID属性を含んだファイル名をアクセス情報属性として追加し、前記アクセス情報属性追加後の前記統合構造情報に対してテンプレートを適用する、処理を実行させる、と共に、前記統合構造情報に対してテンプレートを適用する処理では、前記統合構造情報内のフォルダ又は文書要素に対してテンプレートを適用して得られたデータを、該フォルダ又は文書要素の前記アクセス情報属性が表すファイル名を持つファイルとして保存することにより、該ファイル名を用いて当該データにアクセスできるようにする、ためのプログラムを提供する。
本発明の更に別の側面では、文書データベース内の階層構造をなすフォルダ群のいずれかのフォルダに格納される複数の構造化文書に対して1以上のテンプレートを適用した結果を生成する文書処理システムであって、前記文書データベース内の前記各フォルダ、及び、それらフォルダに格納される各構造化文書を構成する各文書要素は、それぞれ前記文書データベース内で該フォルダ又は該文書要素を一意に特定するID属性を有し、前記文書処理システムは、構造を成す文書要素群からなる第1の構造化文書を取得する手段、文書データベースのフォルダ群がなす階層構造の情報を取得する手段、第1の構造化文書の文書要素群がなす構造を、フォルダ群がなす階層構造において当該第1の構造化文書が格納されているフォルダの位置に併合することにより、統合構造情報を作成する手段、前記統合構造情報における各フォルダ又は文書要素に対し、該フォルダ又は文書要素のID属性を含んだファイル名をアクセス情報属性として追加する手段、及び、前記アクセス情報属性追加後の前記統合構造情報に対してテンプレートを適用する手段、を備え、前記統合構造情報に対してテンプレートを適用する手段は、前記統合構造情報内のフォルダ又は文書要素に対してテンプレートを適用して得られたデータを、該フォルダ又は文書要素の前記アクセス情報属性が表すファイル名を持つファイルとして保存することにより、該ファイル名を用いて当該データにアクセスできるようにする、ことを特徴とする文書処理システムを提供する。
以下、図面を参照して、本発明の実施の形態(以下「実施形態」とも呼ぶ)について説明する。
A.システムの概略構成
図1に、実施形態の文書処理システムの概略構成を示す。このシステムは、文書データベース10、文書取得部12、フォルダ構造取得部14、参照先取得部16、ディレクトリマージ部18、URL生成部20、データ変換部22、テンプレート解析部26、マッチング処理部28、流し込み処理部34、を備える。
なお、これら各部は必ずしも同一のコンピュータ上に構築される必要はなく、ネットワーク等を介して相互に通信可能な複数のコンピュータ上に分散して構築されてもよい。例えば、上述のシステムの構成要素のうち、文書データベース10とその他の構成要素群とをそれぞれ別々のコンピュータ上に構築し、後者が前者からネットワーク経由等で必要なデータを取得し、処理を行うようにしてもよい。
文書データベース10には、処理の対象となる複数の構造化文書のデータが格納されている。以下では、文書データベース10に、構造化文書の一種であるXML文書のファイル群が格納されている場合を例にとって説明する。ただし、以下の説明から当業者には理解されるように、この文書処理システムは、XML文書以外の構造化文書にも適用可能である。
文書データベース10は、階層構造をなすフォルダ(ディレクトリ)群を有しており、各XML文書はそれぞれ適切なフォルダに格納されている。
以下では、文書データベース10に格納されたそれら複数のXML文書から、例えばウェブページとして公開するための、1以上のHTML文書を作成する場合を例にとって、文書処理システムの機能を説明する。ただし、当業者ならば以下の説明から理解できるように、以下で説明する文書処理システムは、HTML文書以外の形式の文書(構造化文書以外の文書も含む)を作成する場合にも適用可能である。
図1に示した文書処理システムの構成要素は、2つのグループに大別できる。1つの準備フェーズの処理を行うグループであり、もう1つはテンプレート処理フェーズのためのグループである。準備フェーズのためのグループには、文書取得部12、フォルダ構造取得部14、参照先取得部16、ディレクトリマージ部18、URL生成部20、データ変換部22が含まれる。テンプレート処理フェーズのためのグループには、テンプレート解析部26、マッチング処理部28、流し込み処理部34が含まれる。以下、これら各フェーズのための構成要素及びその処理内容につき順に説明する。
B.準備フェーズ
この例では、文書データベース10中の注目する文書の構造と、文書データベース10の階層的なフォルダ構造とをマージして統合構造情報を作成し、この統合構造情報に対してテンプレートを適用する。また注目する文書の中から他の文書が参照されている場合、その参照先の文書の構造を統合構造情報に組み込む。準備フェーズでは、このような統合構造情報を作成する。また、以下の例では、作成した統合構造情報を、テンプレート処理に適したディレクトリレコード(詳細は後述)の形に変換する処理も行っている。以下、この準備フェーズのための構成要素群について説明する。
文書取得部12は、HTML文書を作成する対象となるXML文書の指定をうけ、該当する文書を文書データベースより取得する。具体的には該当する文書はXML形式で文書データベース10中に格納されており、文書取得部12は、指定されたXML文書を取得する。対象となるXML文書は、例えば、ユーザが文書データベース10を管理するファイルシステムのユーザインタフェース画面から指定すればよい。また、別の例では、テンプレートの適用対象を指定する表(対応表と呼ぶ)をユーザが作成して文書処理システムに入力すると、文書取得部12は、その対応表に示された条件に該当する文書を文書データベース10から取得する(この処理については、後で具体例を挙げて詳しく説明する)。文書取得部12は、取得したXML文書を構造化レコードに変更してもよい。構造化レコードの形式としては、例えばDOM(Document Object Model )ツリーがある。
ここでは文書データベース10内の「文書3」が指定され、次のようなXML文書「文書3」が取得されるとする。

<BOOK title=”文書3”>
<PART title=”従来技術の問題点” ID=”A030100”>
<CHAPTER title=”従来技術” ID=”A030101”>
従来、構造化文書処理におけるレイアウト処理では、<JUMP JUMPID=”A010200”>参考文献1</JUMP>に述べられているように...
</CHAPTER>
<CHAPTER title=”課題” ID=”A030102”>
<SECTION title=”コスト” ID=”A030102_1”>...</SECTION>...
</CHAPTER>
</PART>
<PART title=”新たな技術の提案” ID=”A030200”> ... </PART> ...
</BOOK>
この例では、BOOK要素は1つのXML文書を示し、属性としてタイトル("title")を有する。1つのBOOK(文書)は0個以上の"PART"要素(すなわち章立て構造における「編」)を含むことができる。また、1つのPART要素は0個以上の"CHAPTER"(章)要素を含むことができ、1つCHAPTER要素は0個以上の"SECTION"(節)要素を含むことができる。なお、BOOK、PART、CHAPTER、SECTIONは、それぞれテキスト(文字列)要素を含むこともできる。
この例は、文書−編−章−節という階層的な章立て構造にしたがったものである。以下の例では、文書データベース10に格納される各文書は、このような章立て構造に従ってあらかじめ作成されているものとする。ただし、当業者には明らかなように、文書データベース10に格納される文書群が従うべき構造は上記のものに限られるものではない。それら文書は、共通の階層的な章立て構造に従っていればよい。
また、属性"ID"は、文書要素の識別情報であり、文書データベース10内で一意にその文書要素を識別できるものを用いればよい。
なお、XML文書の構造とDOMツリーとは構造的には等価であり、前者から後者を求める方式は周知なので、この「文書3」に対応するDOMツリーについては例示を省略する。
フォルダ構造取得部14は、文書データベース10より、文書群を整理するフォルダ(ディレクトリ)構造を取得する。このXML形式のフォルダ構造データでは、一つの文書もしくはフォルダはそれぞれ一つの要素となり、ある親フォルダに含まれるフォルダもしくは文書は、親フォルダに対応する要素の子要素となる。文書データベース10は、フォルダ構造取得部14の求めに応じ、その内部のフォルダ構造を上記形式のXMLデータで返す。フォルダ構造より上記形式のデータを作成する方法は自明であるのでここでは説明を省略する。また、フォルダ構造取得部14は、取得したフォルダ構造をDOMツリーに変更する機能を持っていてもよい。
XML形式のフォルダ構造データの例を以下に示す。

<FOLDER NAME=”フォルダ1”>
<FOLDER NAME=”フォルダ2”>
<DOCUMENT NAME=”文書1” />
<DOCUMENT NAME=”文書2” />
</FOLDER>
<FOLDER NAME=”フォルダ3”>
<DOCUMENT NAME=”文書3” />
</FOLDER>
</FOLDER>
この例は、図2に示すように、「フォルダ1」の子要素として「フォルダ2」及び「フォルダ3」が存在し、「フォルダ2」の子要素として「文書1」及び「文書2」が、「フォルダ3」の子要素として「文書3」が存在するフォルダ構造を示している。"FOLDER"要素は、属性として名前"NAME"を有し、子要素として"FOLDER"要素又は"DOCUMENT"要素をとることができる。"DOCUMENT"要素は、文書データベース10の管理単位での1つの文書を示し、属性として名前"NAME"を有する。
参照先取得部16は、文書取得部12が取得した対象文書の中から参照される他のXML文書を取得する。ここで、参照先取得部16は、文書取得部12から対象文書の構造化レコードを取得し、そのレコードの情報に基づき、その対象文書から参照される他文書を求めるようにしてもよい。他文書の参照は、例えば上述の「文書3」の場合、JUMP要素により表現される。参照先はそのJUMP要素のJUMPID属性の属性値と同一の値をID属性値にもつXML要素である。「文書3」には、「A010200」をID属性値として持つ要素を参照先とするJUMP要素が含まれているので、ID属性値が「A010200」である要素が参照先である。参照先取得部16は、この参照先要素を含むXML文書を文書データベース10から取得する。
より具体的には、参照先取得部16は、例えば、文書取得部12から得た対象文書のDOMツリーをトラバースし、見つかった各JUMP要素についてJUMPIDの値を求める。なお、DOMツリーとXML文書とは等価なので、演算処理の負荷が問題にならないのであれば、XML文書そのものを解析してJUMPIDを求めてもよい。次に文書データベース10においてそのJUMPIDの値をID属性値としてもつ要素を含む文書を検索して取得する。取得した参照先文書は、DOMツリーに変更してもよい。なお、対象文書中に参照先文書が一つも存在しない場合も(JUMP要素が存在しない等)もあれば、参照先文書が複数存在する場合もある。
「文書3」の例では、参照先文書は一つである。ここでは、一例として、その参照先文書は次のような「文書1」であるとする。

<BOOK title=”文書1”>
<PART title=”従来技術の問題点” ID=”A010100”> ... </PART>
<PART title=”新たな技術の提案” ID=”A010200”> ... </PART> ...
</BOOK>
ディレクトリマージ部18は、フォルダ構造取得部14が生成したフォルダ構造に対し、文書取得部10が取得した対象文書の構造と、参照先取得部16が取得した参照先文書の構造とをマージする。ここでの構造のマージは、例えばDOMツリー同士のマージ(併合)により行うことができる。すなわち、このマージ処理では、フォルダ構造のDOMツリー上で対象文書及び参照先文書を示す各ノード(要素)の子要素として、対象文書及び参照先文書のDOMツリーにおけるルート要素"BOOK"の子孫の要素群を挿入すればよい。この処理は、言い換えれば、フォルダ構造における対象文書と参照先文書の各要素を、それぞれ、当該文書のルート要素"BOOK"を頂点とする当該文書のツリー構造全体(すなわち"BOOK"とその子孫の要素群からなるツリー)に置き換えることである。
よって、以上に挙げた「フォルダ1」、対象文書「文書3」及び参照先文書「文書1」の例では、「フォルダ1」のDOMツリーにおいて、「文書3」及び「文書1」に対応する各DOCUMENT要素の下に、文書3及び文書1のDOMツリーのBOOK要素の子要素であるPART要素以下のツリー構造が挿入されることになる。この結果、次のような構造が得られる。

<FOLDER NAME=”フォルダ1”>
<FOLDER NAME=”フォルダ2”>
<DOCUMENT NAME=”文書1” >
<PART title=”従来技術の問題点” ID=”A010100”> ... </PART>
<PART title=”新たな技術の提案” ID=”A010200”> ... </PART> ...
</DOCUMENT>
<DOCUMENT NAME=”文書2” />
</FOLDER>
<FOLDER NAME=”フォルダ3”>
<DOCUMENT NAME=”文書3”>
<PART title=”従来技術の問題点” ID=”A030100”>
<CHAPTER title=”従来技術” ID=”A030101”>
従来、構造化文書処理におけるレイアウト処理では、<JUMP JUMPID=”A010200”>参考文献1</JUMP>に述べられているように...
</CHAPTER>
<CHAPTER title=”課題” ID=”A030102”>
<SECTION title=”コスト” ID=”A030102_1”>...</SECTION>...
</CHAPTER>
</PART>
<PART title=”新たな技術の提案” ID=”A030200”> ... </PART> ...
</DOCUMENT>
</FOLDER>
</FOLDER>
ここでは、煩雑さを避けるためXML形式で示しているが、これはDOMツリーと構造的には等価である。なお、以上では、フォルダ構造と文書構造のマージをDOMツリーで行うと説明したが、演算処理負荷が問題にならなければ、XML形式の構造同士をマージしてももちろんかまわない。ここで例示した構造を構造例(a)と呼ぶ。
以下では、このようにして対象文書の文書構造(及び、もしあれば、参照先文書の文書構造)を文書データベース10のフォルダ構造にマージしたものを、統合構造情報と呼ぶことにする。
URL生成部20は、ディレクトリマージ部18が生成した統合構造情報のうちID属性をもつ要素全てについて、URL属性を設定する。このURL属性は、その要素についてテンプレートを適用した結果生成されるデータのURLを指定するために用いる(詳細は後述)。後述の変形例で、1つの要素に対して複数のURL属性を設定する例を示すので、ここで設定するURL属性を第1のURL属性という意味で"url_1"属性と呼ぶこととする。URL生成部20は、要素に対して付加するurl_1属性の属性値を、例えば、当該要素のID属性を用いて「<IDの属性値>.html」と設定する。ただし、これはあくまで一例であり、当該要素と、そのurl_1属性が示すURLにあるファイルとが一対一で対応づけることができる限りにおいて、url_1属性の属性値はどのような規則に従って生成してもよい。
1つの例では、url_1属性の設定は、統合構造情報を示すDOMツリーをトラバースし、ID属性をもつ要素全てについてurl_1属性を新規に追加し、その属性値を「<IDの属性値>.html」とすることで行うことができる。もちろん、DOMツリーベースではなく、XML形式の統合構造情報に対しても、同様のURL属性付加を行うことができる。
上述の構造例(a)に対し、URL生成部20が処理を行った結果は、次のようになる。この例は、統合構造情報をXML文書として示しているが、当業者ならばこれと等価なDOMツリーも容易に理解できるであろう。

<FOLDER NAME=”フォルダ1”>
<FOLDER NAME=”フォルダ2”>
<DOCUMENT NAME=”文書1” >
<PART title=”従来技術の問題点” ID=”A010100” url_1=”A010100.html”> ... </PART>
<PART title=”新たな技術の提案” ID=”A010200” url_1=”A010200.html”> ... </PART> ...
</DOCUMENT>
<DOCUMENT NAME=”文書2” />
</FOLDER>
<FOLDER NAME=”フォルダ3”>
<DOCUMENT NAME=”文書3”>
<PART title=”従来技術の問題点” ID=”A030100” url_1=”A030100.html”>
<CHAPTER title=”従来技術” ID=”A030101” url_1=”A030101.html”>
従来、構造化文書処理におけるレイアウト処理では、<JUMP JUMPID=”A010200”>参考文献1</JUMP>に述べられているように...
</CHAPTER>
<CHAPTER title=”課題” ID=”A030102” url_1=”A030102.html”>
<SECTION title=”コスト” ID=”A030102_1” url_1=”A030102.html_1”>...</SECTION>...
</CHAPTER>
</PART>
<PART title=”新たな技術の提案” ID=”A030200” url_1=”A030200.html”> ... </PART> ...
</DOCUMENT>
</FOLDER>
</FOLDER>
データ変換部22は、URL生成部20が生成したXML文書(又はそのDOMツリー)から、ディレクトリレコードと呼ぶデータを作成する。ディレクトリレコードは、統合構造情報の表現形式の一形態であり、内容的はXML文書又はDOMツリーで表現された統合構造情報と等価である。ディレクトリレコードは、図3及び図4に示すように、複数の属性値からなるレコードの集合である。図3及び図4は、上に例示した統合構造情報を示すディレクトリレコードであり、ページ当たりの表示範囲の制限のため、2つの図に分けて示している。
ディレクトリレコードの1行が、該ディレクトリレコードを構成する1つのレコードであり、これが統合構造情報における1つの要素(フォルダ又は文書要素)に対応する。1つのレコードは、コンテキスト番号、コンテキスト識別子、要素名、"text"(テキスト内容)、"NAME"(名前)、タイトル("title")、ID、url_1、及びJUMPIDの属性を含む。このうち、"NAME"、"title"、ID、url_1、及びJUMPIDは、統合構造情報において当該要素が持っている属性であり、これらの意味については既に説明した。これらは元々対象文書や参照先文書の各文書要素の属性や、各フォルダの属性として保持されていたデータである。
コンテキスト番号、コンテキスト識別子、要素名、"text"は、XML又はDOMツリー形式の統合構造情報からデータ変換部22が生成する属性である。ここで、「コンテキスト」とは、ディレクトリレコードにおける1つのレコードのことであり、これは統合構造情報における1つの要素(すなわちフォルダ構造におけるフォルダ又は文書、又は文書構造における文書要素)に対応する。コンテキスト番号は、コンテキストに対してデータ変換部22が付与する識別番号である。コンテキスト番号は、例えば、1つの統合構造情報に現れる各コンテキストに対して通し番号の形で与えればよい。コンテキスト識別子は、当該コンテキスト(すなわち要素)が、統合構造情報のツリー構造の中で占める位置を示す識別情報である。図示例では、ファイルシステムにおけるディレクトリパスの表現と同様の方式で、ルートから見た当該コンテキストの位置を示している(コンテキスト識別子の生成規則の例は後述)。要素名は、XML又はDOMツリー形式の統合構造情報の各要素の要素名、すなわちXMLでのタグ名であり、タグから抽出できる。"text"は、対象文書及び参照先文書に含まれる文字列のデータである。
データ変換部22は、このようなディレクトリレコードを、以下のような手順で作成する。
1.統合構造情報(例えばその統合構造を示すXML文書)の全ての要素を調べ、出現する属性全てをリストアップする。(ここでリストアップされた属性に、「コンテキスト番号」、「コンテキスト識別子」、「要素名」、「text」の各属性を加えたものがレコードの属性セットとなる。)
2.統合構造情報における出現順に、各要素に対し一つのレコードを生成する。ここで生成されるレコードの各属性の値は次のように定める。
・「コンテキスト番号」については、生成されるレコード毎に0,1,2,...という値を順に与える。
・「コンテキスト識別子」については、統合構造情報のルート要素については「/」、その他の要素については、親要素のコンテキスト識別子が<PC>で、その要素がその親要素のn番目の子要素であるならば「<PC>/n」とする。但し親要素がルート要素の場合は「/n」とする。数値nの代わりに子要素の中でユニークに識別可能な任意の文字列を用いることもできる。
・「要素名」については、その要素の要素名とする。
・「text」については、その要素の内容から他の要素を除いた部分とする。
・統合構造情報からリストアップされたその他の属性については、その属性をその要素が保持しているならば、その属性の値をセットし、保持していないならばその属性の値を空とする。
上述のURL生成部20の出力結果の例をもとに、データ変換部22が生成したディレクトリレコードの例が図3及び図4の例である。このディレクトリレコードの例には、上述のURL生成部20の出力結果の例において「...」と省略していた部分の要素に対応するレコードも表している。
このようにしてデータ変換部22が生成したディレクトリレコードに対して、次のフェーズでテンプレート処理が行われる。以下、このテンプレート処理フェーズについて説明する。
C.テンプレート処理フェーズ
(C1)テンプレート解析
このフェーズは、テンプレート解析部26,マッチング処理部28及び流し込み処理部34によって実行される。このフェーズに対する入力は、テンプレート24と、データ変換部22が生成したディレクトリレコードと、テンプレート処理の基点とするディレクトリレコード上の特定のレコードを指定するコンテキスト番号と、の組である。使用するテンプレート24は、ユーザが指定してもよいし、タイプ-テンプレート対応表(詳細は後述)に示される対応関係に基づき自動的に選択されてもよい。また、テンプレート処理の基点とするコンテキスト番号は、ユーザが指定してもよいし、タイプ-テンプレート対応表に示される対応関係から決定するようにしてもよい(詳細は後述)。そして、テンプレート処理フェーズでは、テンプレート24を評価した結果をテキスト文字列として出力する。
このフェーズで用いるテンプレート24は、所定の文法に基づいて記述された、例えばテキストファイルとする。テンプレートは、この文書処理システムからアクセス可能なファイルシステムに配置されているか、あるいは所定のテンプレートデータベースに格納されている。
一例として、テンプレート24は、次の構文要素から構成される。

<テンプレート>::=<テンプレート要素列>
<テンプレート要素列>::=<テンプレート要素列><テンプレート要素>
<テンプレート要素>::=<テキスト要素>
| <変数要素>
| <繰り返し要素>
| <選択要素>
| <ディレクトリ要素>
| <エンコード要素>
<繰り返し要素>::=’{{‘ <テンプレート要素列> ‘}}’
<選択要素>::=’[[‘<テンプレート要素列>‘]]’
<ディレクトリ要素>::=‘#directory’ <条件式> <テンプレート要素列> ‘#end’
<エンコード要素>::=‘#encode’ <エンコード形式> <テンプレート要素> ‘#end’
<変数要素>::=‘$’<変数名>‘.’<属性名>‘$’
<テキスト要素>::=<$,{,},[,]を含まない文字列>
<変数名>::=<アルファベット・数字の列>
<属性名>::=<アルファベット・数字の列>
<条件式>::=<変数要素>’==’<定数>|<変数要素>
<定数>::=<”を含まない文字列>
<エンコード形式>::=<$,{,},[,]を含まない文字列>
すなわち、テンプレート24はテンプレート要素の列であり、テンプレート要素列はテンプレート要素列に対してテンプレート要素を併合したものとして定義される。テンプレート要素は、テキスト要素又は変数要素又は繰り返し要素又は選択要素又はディレクトリ要素又はエンコード要素のいずれかに該当する。繰り返し要素は、この例では、テンプレート要素列を二重括弧’{{‘ ‘}}’で括ったものであり、そのテンプレート要素列を繰り返し適用することを示すものである。選択要素は、この例では、テンプレート要素列を二重ブラケット’[[‘‘]]’で括ったものであり、そのテンプレート要素列全体が条件により選択的に出力される、または、出力されないことを示すものである。ディレクトリ要素は、カレントコンテキストの移動を指示するための要素であり、これについては後で詳しく説明する。エンコード要素は、エンコード方式に従った文字の置き換えを指示するための要素であり、これについても詳細は後で説明する。変数要素は、変数名と属性名とにより示され、その前後を「$」で囲むことで表現される。変数名がコンテキストの要素名にマッチした場合において、変数要素の属性名に合致する当該コンテキストの属性の値が、その変数要素に代入される。テキスト要素は、テンプレートの文法で変数や各種要素を示すために用いられる特別な文字を含まない文字列である。変数名及び属性名は、アルファベットと数字からなる列である。条件式は、要素名と属性名の組合せが定数に等しい場合、という条件を記述することができる。なお、定数は、文字列(ただし「”」を含んではならない)であり、その前後を「”」で囲むことで表現する。
この生成規則に基づく文法では、テンプレート、選択要素と繰返し要素、ディレクトリ要素、エンコード要素は、解析ツリー上で子のテンプレート要素を持つことができる。
テンプレート解析部26は、このようなテンプレートを解析し、解析ツリーを得る。以下に例示するテンプレート(テンプレート(1)と呼ぶ)が与えられたの場合、解析ツリーは図5に示すようになる。

目次
{{$SECTION.title$[[($SECTION.whatsNew$)]]:
}}
この例示したテンプレートの解析ツリーにおける各ノード(テンプレートの要素)のレコード内容を図6に示す。ここで、ノードIDは、ノードの識別情報であり、この例では、ツリーをルートから行きがけ順にたどった時に当該ノードを通る順番を示す番号(ただし、ルートノードの番号を0番とする)の頭にEをつけた文字列を用いている。ノードラベルは、ノードのラベル名であり、この例では、図5に図示したラベル名を示している。ノードタイプは、当該ノードが上述のテンプレート要素の種類の中のどれに該当するかを示す。ノード値は、テンプレート24中で当該ノード(テンプレート要素)の文字列である。なお、この例では、「<改行>」は改行文字を表す。
テンプレート処理フェーズの処理はマッチング処理と流し込み処理の2パス処理で行う。前者はマッチング処理部28が、後者は流し込み処理部34が実行する。まず、マッチング処理から説明する。
(C2)マッチング処理
マッチング処理では、ディレクトリレコード中の着目しているコンテキスト番号の行(以降「カレントコンテキスト」と呼ぶ)において、ディレクトリレコードと、テンプレート中のテンプレート要素とのマッチング判定を行う。判定結果は、「<確定>」または、「<代入可能>」または、「<代入不能>」のいずれかになる。
マッチング処理の目的は、『ディレクトリレコードのどのコンテキストとテンプレートのどの変数要素とをマッチさせるか』、及び『どのテンプレート要素を何回繰り返せば、ディレクトリレコードとテンプレートの解析ツリーとがマッチするか』を計算することである。
判定結果「<確定>」は、テンプレート要素が、ディレクトリレコードの値とは無関係にマッチしうることを表す。例えば、図6に示したテンプレート解析結果のノードE1はテキスト要素であり、これはテンプレートにおける固定的な文字列(定型部分)である。このような定型部分は、テンプレートが適用される対象が変わっても固定であり、テンプレートの適用対象とは無関係に必ず採用すべきものなので、マッチング処理では、常にマッチすると判定するのである。
「<代入可能>」とは、テンプレート要素が、カレントコンテキストにおいてディレクトリレコードとマッチすることを表す。すなわち、この場合、カレントコンテキストの持つ属性が、そのテンプレート要素に代入できる。
「<代入不能>」は、テンプレート要素が、カレントコンテキストではディレクトリレコードとマッチしないことを表す。
以下、マッチング処理部28が実行する処理について説明する。マッチング処理部28は、最初にテンプレート24のルートのノードRを着目ノードEに指定し、ディレクトリレコード上のカレントコンテキストCを指定し、以下の処理を再帰的に実施する。カレントコンテキストは、以下に示す処理の中で順に移動していくが、最初のカレントコンテキスト(初期コンテキストと呼ぶ)は、例えばユーザが明示的に指定する。また、ユーザが入力した検索条件に合致するものを初期コンテキストとして選択するようにしてもよい。また、タイプ-テンプレート対応表(後述)に示される要素に該当するコンテキストを初期コンテキストとして選択してもよい。以下、マッチング処理の手順を順に示す。マッチング処理部28は、以下に示す手順を、テンプレート24のルートノードRと初期コンテキストとの組を開始点として再帰的に実行する。
1.着目ノードEがテキスト要素なら、判定値は<確定>である。
2.着目ノードEが変数要素なら、カレントコンテキストCを基点として、その変数要素で指定された要素名の探索を試みる。この探索により、そのノードEに示される条件に合致(例えば要素名が一致)するディレクトリレコードのコンテキストVが見つかり、変数要素で指定した属性値の値vが空文字列でなければ、判定結果は<代入可能>としvを記録する。それ以外は<代入不能>とする。
ここで用いる探索方法は、変数の記述と解釈により変えてよい。例えば上述のように、変数名と属性名の組で変数要素を指定する場合(例えば「CHAPTER.title」)、統合構造情報のツリーをカレントコンテキストから親の方向に向かってルートまでのパス上に現れるコンテキストに限定して探索を行い、ノードEの変数名(例えば「CHAPTER」)と一致する要素名を持つコンテキストを探索結果とするなどである。親に向かう方向に探索するのは、例えば、文書の作りによっては、例えば「章」に対する説明や属性がその「節」のタイトル番号に組み込まれているなど、あるレベルの要素に対する属性等がその祖先の要素に組み込まれている場合があるからである。(第2章の3節のタイトル番号を「2.3節」とつける場合など。)なお、このような探索で見つけられた探索結果のコンテキストが持つ属性のうち、変数要素の属性名に対応する属性の値が、その変数要素に代入される値と決定される。
探索方法の別の例では、変数名に「CHAPTER/SECTION」のようなパスパターンを記述できるようにし、パスパターンに一致するコンテキスト(CHAPTERの直下のSECTION)を探索結果とする方法がある。更に別の例では、探索の方向は親に向かう方向だけではなく、子孫に向かう方向を指定できるようにしてもよい。例えば変数名の先頭に「./」となどといった所定の文字列を付けた場合には、探索方向を子孫の方向にするなどである。例えば変数名として「./CHAPTER/SECTION」とした場合は、マッチング処理部28は、カレントコンテキストの要素名がCHAPTERであって、子のコンテキストの要素名がSECTIONであるコンテキストを、カレントコンテキストから統合構造情報のツリーの子孫である範囲のコンテキストを番号順に探索する。
3.着目ノードEが選択要素なら、そのノードEの子のテンプレート要素列を{E1, …, Ek}(kは1以上の整数)として、カレントコンテキストにおいて、テンプレート要素の列{E1, …, Ek}(iは1〜kの整数)の各Eiを新たな着目ノードEとして再帰的に判定を行う。一例として判定は<代入不能>のOR(論理和)結合で行う。すなわち各Eiについて順に、E1, …, Ekについての判定値のいずれかが<代入不能>であった場合、Eの判定値は<代入不能>とする。E1, …, Ekの判定値のすべてが<確定>の場合は、Eの判定値は<確定>とする。それ以外は<代入可能>とする。このような処理によれば、カレントコンテキストにおいて、選択要素のすべての子要素が<代入可能>又は<確定>と判定された場合にのみ、そのカレントコンテキストが当該選択要素にマッチしたとコンテキストとして選ばれることになる。
4.着目ノードEが繰返し要素の場合の処理手順を説明する。まず、着目ノードEの子のテンプレート要素列を{E1, …, Ek}とする。また、カレントコンテキストCの子のコンテキストの列を{C1, …, Cm}とする。そして、カレントコンテキストをC1,…,Cmの順に移して行く。各時点でのカレントコンテキストCi(iは1〜mの整数)に対して、テンプレート要素列Es={E1, …, Ek}の判定を再帰的に行う。一例として、この判定は<代入可能>のOR結合で行う。
ここでCiに対してEsの判定を行うとは、以下のような処理を意味する。すなわち、コンテキストCiにおいて、E1, …, Ekのいずれかが<代入可能>であった場合、そのCiを繰り返し対象として選択する。そして、カレントコンテキストの子の列{C1, …, Cm}のうち繰り返し対象として選択されたコンテキストの列を、S={S1, …, Sn}として記録する。Sが空でなければ、繰り返し要素の判定結果は<代入可能>とする。Sが空なら<代入不能>とする。また、Cの子がない場合、および、Eの子がない場合は<代入不能>とする。
このような処理によれば、カレントコンテキストの子のうちいずれかが繰り返し対象として選択されれば、カレントコンテキストにおいて、当該繰り返し要素は<代入可能>と判定される。このように、繰り返し要素の場合、選択要素と異なり、カレントコンテキストの子の全てがマッチしなくても、その一部でもマッチすれば、代入の対象として選ばれることになる。
5.ノードEがディレクトリ要素なら、Eの子のテンプレート要素列を{E1, …, Ek}とする。また、ディレクトリ要素の条件式に合致するコンテキストを、ディレクトリレコード全体の中から探索し集める。条件式に合致するコンテキストを発見順に{C1, …, Cm}とする。そして、カレントコンテキストをC1,…Cmの順に移し、各時点のカレントコンテキストCiに対して、テンプレート要素列Es={E1, …, Ek}の判定を再帰的に行う。一例として判定は<代入可能>のOR結合で行う。ここで、Ciに対してEsの判定を行うとは、E1, …, Ekのいずれかが<代入可能>であった場合、Ciをコンテキストの移動対象として選択する。移動対象として選択されたコンテキストの列を、S={S1, …, Sn}とし記録する。Sが空でなければ、ディレクトリ要素の判定は<代入可能>とする。Sが空なら<代入不能>とする。また、条件式に合致するコンテキストがない、および、Eの子がない場合は<代入不能>とする。ディレクトリ要素の詳細については、後で詳しく説明する。
また、エンコード要素の取扱についても後で詳しく説明する。
図7に示すようなツリー構造を持ち、図8に示すようなディレクトリレコードを持つ統合構造情報に対し、初期コンテキストとしてコンテキスト番号4を指定して上述のテンプレート(1)を適用すると、図9に示すようなディレクトリ・テンプレート要素対応表30(図1参照)を得ることができる。
ここで、図8の例では、ディレクトリレコードの属性の一つとして「whatsNew」なる属性があるが、これは処理の対象のXML文書、又はこのXML文書からの参照先の文書の要素に設定された属性の一つであり、新着情報であることを示す。また、図8の例では、煩雑さを避けるためJUMPID属性は省略している。
図9の対応表は、テンプレート(1)をカレントコンテキスト「4」に上述の処理手順に従って適用していく際に、テンプレートの各ノードに行き当たる順に、その行き当たった時のマッチングの判定結果を順に示したものである。図9の表において、「ノード番号」は、着目ノードを示す番号であり、図6のテンプレート解析結果におけるノードIDの番号部分である。「ノードタイプ」及び「変数名」はテンプレートにおける着目ノードの属性(図6に示したものと同じ)である。「コンテキスト識別子」は、そのレコードが示す判定の時点でのカレントコンテキストの識別子である。この例では、識別子が長くなることによる煩雑さを避けるため、初期コンテキストであるコンテキスト「4」(すなわち図7における「章1」)を「/1/1」としている。また、「コンテキストの要素名」はカレントコンテキストの要素名である。「マッチング判定値」は、マッチング判定結果の値である。「繰り返し対象」は、着目ノードが繰り返し要素である場合において、繰り返しの対象として選択された子ノードの識別子を示す。「V」は、変数要素の条件に合致するコンテキストの番号を示し、「v」はマッチするコンテキストの属性値を示す。なお、図9では、子要素を持つノードに対応するレコードには網掛けを施して分かりやすくしている。
このマッチング結果を図式化すると、図10に示すようなものとなる。この例では、煩雑さを避けるため、テキスト要素は省略されている。この例では、「節1/1/2」、「節1/1/3」及び「節1/1/4」が「繰り返し要素1」にマッチしており、そのうち「節1/1/2」は「変数要素1($SECTION.title$)」だけでなく「変数要素2($SECTION.whatsNew$)」にもマッチするため、「選択要素1」の中で選択されている。「節1/1/3」及び「節1/1/4」は、「変数要素2」にマッチする子要素を持たないので、「選択要素1」では選択されない。
(C3)流し込み処理
流し込み処理は、ディレクトリレコードの属性値を、変数と置き換える処理である。テンプレート中の着目ノードEと、ディレクトリレコード上のカレントコンテキストCとを指定して行ったマッチング処理の判定結果が<代入可能>か<確定>であるようなノードEに対して、流し込み処理部34が流し込み処理を行う。
流し込み処理部34は次のステップを再帰的に行う。以下の処理は、図9に示すようなマッチング判定結果のデータにうち、判定値が<代入可能>か<確定>であるようなノードに対してのみ適用される。判定値が<代入不能>となっているノードはスキップされる
1.着目ノードEがテキスト要素なら、ノード値v(テンプレート中の文字列)を出力する。
2.着目ノードEが変数要素なら、マッチング処理で記録したノード値v(マッチした変数の属性値)を出力する。
3.着目ノードEが選択要素なら、当該ノードEの子のテンプレート要素列を{E1, …, Ek}の各Eiを新たな着目ノードEとし、カレントコンテキストCを指定し、マッチング判定結果が<代入可能>か<確定>であるEiを選択して再帰的に流し込み処理を行う。
4.着目ノードEが繰り返し要素の場合は次のような処理を行う。すなわち、Eの子のテンプレート要素列を{E1, …, Ek}とする。また、マッチング処理で記録したコンテキストの列を{S1, …, Sn}とし、各Siを順にカレントコンテキストとして選んでいく。そのなかで、テンプレート要素列Es={E1, …, Ek}のマッチング判定結果が<代入可能>か<確定>であるEiについて、選択して再帰的に流し込み処理を行う。
5.ノードEがディレクトリ要素の場合は次のような処理を行う。すなわち、Eの子のテンプレート要素列を{E1, …, Ek}とする。また、マッチング処理で記録したコンテキストの列を{S1, …, Sn}とし、各Siを順にカレントコンテキストとして選んでいく。その中で、テンプレート要素列Es={E1, …, Ek}のマッチング判定結果が<代入可能>か<確定>であるEiを選択して再帰的に流し込み処理を行う。
上述のテンプレート(1)を図7及び図8に示した統合構造情報に対して適用した場合、次のような文字列が変換結果36(図1参照)として得られる。

目次
機能1(新着):
機能2:
機能3:
D.別の具体例
以上、文書処理システムの構成及び処理について説明した。次に、以上の処理を、章(CHAPTER)要素を基点としたテンプレート処理において、章に含まれる節の見出しリストである「章目次ファイル」を生成する場合を例にとって説明する。節の見出しリストには、各節の内容(コンテンツ)ファイルへのハイパーリンクが設定されているようにする。
この例では、テンプレート処理の入力は、図8に示したディレクトリレコードであるとする。すでに説明したように、ディレクトリレコードにはURL生成部20によってID属性を持つ全ての要素に対して付与された”url_1”属性が含まれている。このため、章目次ファイルを生成する時点で、下層の節レベルの内容ファイルのURLは解決できていることになる。
章目次ファイルを生成するためのテンプレートの例(以下では、テンプレート(2)とも呼ぶ)を以下に示す。

<HTML>
章目次
{{<A href=”$SECTION.url_1$”> $SECTION.title$[[($SECTION.whatsNew$)]]: </A>
}}
</HTML>
このテンプレートを使用し、初期コンテキストCに番号「4」のコンテキストを指定してテンプレート処理を行った結果、生成される章目次ファイルは、次のようなファイル内容となる。

<HTML>
章目次
<A href=”A0101010100.html”>機能1(新着): </A>
<A href=”A0101010200.html”>機能2: </A>
<A href=”A0101010300.html”>機能3: </A>
</HTML>
図8を参照すれば分かるように、このコンテキスト「4」のurl_1属性は「A0101010000.html」なので、流し込み処理部34は、生成した章目次ファイルのファイル名を「A0101010000.html」とする。
ここの章目次ファイルからリンクされる各HTMLファイルは、次のようなテンプレート(以下、テンプレート(3)と呼ぶ)を用いることで作成することができる。

<HTML>
<H3>$SECTION.title$</H3>
{{<A name=”$DOCITEM.ID$”></A>
<P>$DOCITEM.text$</P>
}}
</HTML>
このテンプレート(3)を、要素名が「SECTION」であるコンテキストを基点(初期コンテキスト)として適用することで、節の内容を示すHTMLファイルを作成することができる。図8のディレクトリレコードでは、番号「6」,「8」,「10」のコンテキストが「SECTION」なので、これらをそれぞれ初期コンテキストに選んでテンプレート(3)適用すれば、各節の内容ファイルを作成できる。生成される各節の内容ファイルは、それぞれ「A0101010100.html」、「A0101010200.html」、「A0101010300.html」というファイル名で出力される。
例えば、「A0101010300.html」のファイル内容は以下のようになる。

<HTML>
<H3>機能3</H3>
<A name=” A0101010301”></A>
<P>この節では、機能3の説明をします。</P>
<A name=” A0101010302”></A>
<P>※この機能はRev 2.0でサポートされます。</P>
</HTML>
上記のテンプレート処理によって生成されたファイルのファイル名と参照関係を図11に示す。
この例では、章にテンプレート(2)を適用し、各節にテンプレート(3)を適用することにより、リンク付きの章目次ファイルと、その章目次ファイルからリンクされる各節の内容ファイルとを作成することができる。なお、このように章にテンプレート(2)を適用し、各節にテンプレート(3)を適用するようにするには、例えば図12に示すようなタイプ-テンプレート対応表を文書処理システムに登録すればよい。この対応表は、統合構造情報の要素名(これは要素のタイプを示す)と、その要素名の要素に対して適用すべきテンプレートの識別名とのペアを登録したものである。この例では、テンプレート(2)の識別名(この例ではファイル名)が「chapter.html」、テンプレート(3)の識別名が「section.html」である。文書処理システムは、タイプ-テンプレート対応表が与えられると、その対応表に示される要素名に合致する要素を統合構造情報から検索し、検索された各要素をそれぞれ初期コンテキストに選び、この初期コンテキストに対して要素名のペアとなっているテンプレートを適用する。
このように、本実施形態では、統合構造情報の各要素(コンテキスト)に準備フェイズでID属性を元に生成したURL属性(url_1属性)を付与し、その要素にテンプレートを適用した結果得られるファイルに対しそのURL属性の値をファイル名として付与するようにした。このような構成によれば、テンプレート処理により生成されるファイルには必ず一意なURLが付与されることとなり、このURLは文書処理システムにとっては既知のものなので、外部の装置からこのURLが要求された場合には、対応するファイルを提供することができる。このように、コンテキストに対してテンプレートを適用した結果のURLを準備フェーズで定め、これをテンプレート適用結果のファイルに付与することで、様々な条件によって変化しうるリンクをテンプレートの中に記述しやすくなる。
ここでは、章目次ファイルと節内容ファイルを作成する場合を例示したが、同様の考え方を応用すれば、様々なレベルのリンク関係をテンプレートに記述できる。例えば、文書ごとの見出しリストや文書目次、編目次など、文書を分類した統合構造における目次を作成することができる。また、各レベルの内容ファイルも同様に作成することができる。
以上説明したように、本実施形態によれば、一つのディレクトリレコードに対し、階層ごとに複数のテンプレートを切り替えて適用することで、矛盾のない階層構造をなすハイパーテキスト構造を生成することができる。このように、本実施形態によれば、階層的なデータ(統合構造情報)と階層的な制御構造(テンプレート)とを自動的に突合せ、章立て構造や分類構造を有する文書を生成することができる。
E.水平型のテンプレート適用
上記D節の具体例では、統合構造情報における異なる階層に対してそれぞれ異なるテンプレートを選択的に適用する例を示した。これに対し、この節では、同じ要素に対して複数のテンプレートを適用する例を示す。
例えば、章の目次を示すフレームの隣に章の内容を示すフレームを配置したウェブページを作成しようとする場合、同じ「章」のコンテキストから、章目次と章内容とを作成する必要がある。この場合、章目次作成用のテンプレートと章内容作成用のテンプレートとをそれぞれ用意し、それを同じ「章」に適用すれば、章目次と章内容を作成することができる。このように、同じコンテキストに複数のテンプレートを適用して異なる複数の文書を作成することを、「水平型」のテンプレート適用と呼ぶことにする。これに対し、上記D節で示したような階層ごとに異なるテンプレートを適用することを、「垂直型」のテンプレート適用と呼ぶ。
水平型の場合、同じコンテキストから生成した複数の文書(例えば章目次と章内容)に対してそれぞれ他の文書から適切にリンクできるようにする必要がある。以下では、このようなことを実現するためのシステムについて説明する。
図13は、この文書処理システムの概略的な構成を示す機能ブロック図である。この図において、図1に示したシステムの構成要素と同一又は類似の機能を持つ構成要素には、同一符号を付して説明を省略する。
図13のシステムは、図1のシステムに対し、テンプレートデータベース25、タイプ-テンプレート対応表37及びテンプレート選択部38を追加したものである。
テンプレートデータベース25は、複数のテンプレートが登録されたデータベースである。タイプ-テンプレート対応表37は、すでに上記D節で説明したように、統合構造情報における要素名と、その要素名の要素に対して適用すべきテンプレートの識別名とのペアを登録した表である。ただし、D節の対応表(図12)とは異なり、対応表37には、同じ要素名に対して複数のテンプレート名が登録される。対応表37の具体例を図14に示す。この例では、"PART"(編)要素に対してフレームセット用の"frameSet.html"と、左側フレーム用の"partLeft.html"と、右側フレーム用の"partRight.html"という3つのテンプレートが登録され、"CHAPTER"要素に対しても同様に左側フレーム用の"chapterLeft.html"と、右側フレーム用の"chapterRight.html"という2つのテンプレートが登録されている。
このシステムでは、準備フェーズにて、URL生成部20が各フレーム用のURLを統合構造情報に組み込むために、次のような処理を行う。すなわち、URL生成部20は、タイプ-テンプレート対応表37を参照しながら、ディレクトリマージ部18が生成した統合構造情報(例えばDOMツリー)をトラバースし、ID属性をもつ要素全てについて次のような属性を新規に追加する。
・その要素(着目要素と呼ぶ)に対応するテンプレートがn種類、タイプ-テンプレート対応表37に記述されているならば、url_1, url_2, ...url_n属性を追加し、それらの属性値をそれぞれ「<IDの属性値>_<テンプレート名>」とする。
・着目要素に対応するテンプレートが対応表37に記述されていない場合は、その祖先の要素でテンプレートが対応表37に記述されている直近の要素を求める。求めた直近の祖先要素にurl_1, ..., url_n属性が追加されているならば、着目要素にもurl_1, ..., url_nを追加し、これらの属性値をそれぞれ「<祖先のurl_i属性値>#<IDの属性値>」(但しiは1からn)とする。
図14に例示した対応表37には、PART及びCHAPTERには対応するテンプレートが存在するので、それら要素については「<IDの属性値>_<テンプレート名>」という形式の属性値が使用される。SECTIONについては対応するテンプレートが対応表に存在しないので、祖先の要素の属性値から求める。SECTIONの祖先の要素でテンプレートに対応する要素としてはPART及びCHAPTERが存在するが、SECTIONにはCHAPTERの方が近いので、CHAPTERの値から求められる。したがって、先に例示した構造例(a)に対し、図14の対応表を適用した場合、URL生成部20は次のようなデータを生成する。

<FOLDER NAME=”フォルダ1”>
<FOLDER NAME=”フォルダ2”>
<DOCUMENT NAME=”文書1” />
<PART title=”従来技術の問題点” ID=”A010100”
url_1=”A010100_frameSet.html” url_2=”A010100_partLeft.html”
url_3=”A010100_partRight.html”> ... </PART>
<PART title=”新たな技術の提案” ID=”A010200”
url_1=”A010200_frameSet.html” url_2=”A010200_partLeft.html”
url_3=”A010200_partRight.html” > ... </PART> ...
<DOCUMENT NAME=”文書2” />
</FOLDER>
<FOLDER NAME=”フォルダ3”>
<DOCUMENT NAME=”文書3”>
<PART title=”従来技術の問題点” ID=”A030100”
url_1=”A030100_frameSet.html” url_2=”A030100_partLeft.html”
url_3=”A030100_partRight.html”>
<CHAPTER title=”従来技術” ID=”A030101”
url_1=”A030101_chapterLeft.html” url_2=”A030101_chapterRight.html”>
従来、構造化文書処理におけるレイアウト処理では、<JUMP JUMPID=”A010200”>参考文献1</JUMP>に述べられているように...
</CHAPTER>
<CHAPTER title=”課題” ID=”A030102”
url_1=”A030102_chapterLeft.html” url_2=”A030102_chapterRight.html”>
<SECTION title=”コスト” ID=”A030102_1”
url_1=”A030102_chapterLeft.html#A030102_1”
url_2=”A030102_chapterRight.html#A030102_1”>...</SECTION>...
</CHAPTER>
</PART>
<PART title=”新たな技術の提案” ID=”A030200”
url_1=”A030200_frameSet.html” url_2=”A030200_partLeft.html”
url_3=”A030200_partRight.html”> ... </PART> ...
</DOCUMENT>
</FOLDER>
</FOLDER>
このようなURL生成部20の処理により、各要素から生成される文書に対してURLが設定される。
次に、テンプレート処理フェーズでは、テンプレート選択部38が、統合構造情報をトラバースし、その中の各要素がそれぞれ対応表37に記載されているかを調べ、記載されているならば、対応するテンプレートの名前をキーにテンプレートデータベース25を検索してそのテンプレートを取得し、テンプレート解析部26に引き渡す。
タイプ-テンプレート対応表37の別の例を図15に示す。この対応表37によれば、CHAPTER要素を基点としたテンプレート処理では3つのファイルが生成される。すなわちこの例では、第1のテンプレート"chapterFrameSet.html"は2つのフレームからなるフレームセットページであり、その各フレームに、第2及び第3のテンプレートである"chapterLeft.html"及び"chapterRight.html"により生成されるファイルを表示させる。
例えば、第1のテンプレート"chapterFrameSet.html"は以下のようなものであるとする。

<HTML>
<FRAMESET cols=”30,*”>
<FRAME src=”$CHAPTER.url_2$” name=”left”>
<FRAME src=”$CHAPTER.url_3$” name=”right”>
</FRAMESET>
</HTML>
また、第2のテンプレート"chapterLeft.html"は以下のようなものであるとする。

<HTML>
章目次
{{<A href=”$SECTION.url_1$” target=”right”> $SECTION.title$: <A>
}}
</HTML>
また、第3のテンプレート"chapterRight.html"は以下のようなものであるとする。

<HTML>
<H3>$CHAPTER.title$</H3>
{{<A name=”$DOCITEM.ID$”></A>
<P>$DOCITEM.text$</P>
}}
</HTML>
図15に例示したタイプ-テンプレート対応表を上述の構造例(a)に適用した結果生成されるディレクトリレコードを図16及び図17に例示する。このディレクトリレコードは、マッチング処理部28に渡される。
一方、テンプレート選択部38は、図15のタイプ-テンプレート対応表に登録された各要素名の要素を統合構造情報から抽出し、抽出した各要素をそれぞれ初期コンテキストとして選ぶ。そして、抽出した要素ごとに、その要素に対応するテンプレート名をタイプ-テンプレート対応表から求め、そのテンプレート名に対応するテンプレートをデータベース25から検索する。このような処理により、初期コンテキストとテンプレートのペアが複数求められ、これらがテンプレート解析部26に渡される。テンプレート解析部26は、ペアごとに、その中のテンプレートを上述のように解析し、これにより得られた解析ツリーと初期コンテキストのペアをマッチング処理部28に渡す。
マッチング処理部28は、テンプレートの解析ツリーと初期コンテキストのペアごとに、上述のマッチング処理を実行する。そして、このペアごとのマッチング処理の結果を受けて、流し込み処理部34が、それらペアごとに上述の流し込み処理を実行する。
図15の対応表と図16及び図17のディレクトリレコードとが与えられた場合、まず初期コンテキストとしてコンテキスト「4」が選ばれ、これに第1のテンプレート"chapterFrameSet.html"が適用される。この結果得られるファイルの内容は次のようなものとなる。

<HTML>
<FRAMESET>
<FRAME src=” A0101020000_chapterLeft.html” name=”left”>
<FRAME src=” A0101020000_chapterRight.html” name=”right”>
</FRAMESET>
</HTML>
また、このファイルは、CHAPTER要素に適用される最初のテンプレートから生成されるものなので、url_1属性に示されるファイル名(URL)が付与される。すなわち、そのファイルのファイル名は"A0101010000_ chapterFrameSet.html"となる。
また、CHAPTER要素には第2のテンプレート"chaterLeft.html"も対応づけられているので、同じコンテキスト「4」に対して第2のテンプレートが適用される。その結果、"A0101020000_chapterLeft.html"というファイル名で次のような内容のファイルが作成される。

<HTML>
章目次
<A href=”A0101010100_section.html” target=”right”>機能1: <A>
<A href=”A0101010200_section.html” target=”right”>機能2: <A>
<A href=”A0101010300_section.html” target=”right”>機能3: <A>
</HTML>
また、CHAPTER要素には第3のテンプレート"chaterRight.html"も対応づけられているので、同じコンテキスト「4」に対して第3のテンプレートが適用される。その結果、"A0101020000_chapterRight.html"というファイル名で次のような内容のファイルが作成される。

<HTML>
<H3>操作</H3>
<A name=” A0101010001”>
<P>この章では、操作を説明します。</P>
</HTML>
また、SECTION要素には、上述のテンプレート(3)と同様のテンプレートを適用することで、各節の節内容ファイルが作成される。このようにして生成されたファイルとリンクの関係を図18に示す。
ここでは章目次と章内容をHTMLのフレーム形式で表示する場合を説明したが、ここで例示した水平型のテンプレート適用は、これに限らず、統合構造情報の様々な階層に適用することができる。したがって、統一的なフレーム構造において、例えば、目次と内容をそれぞれ第1のフレームと、第2のフレームにわけて表示するための階層構造をなすハイパーテキスト構造を、生成することができる。
なお、この方式は、例示したフレームセットと左フレーム及び右フレームからなるフレーム構造に限らず、2以上のフレームからなるフレーム構造一般に適用可能であることは明かであろう。
F.ディレクトリ要素
次に、ディレクトリ要素について説明する。
以上の説明では、ユーザの明示的な指示、又はタイプ-テンプレート対応表から求められるコンテキストを初期コンテキストとし、繰り返し要素や選択要素を処理する際には上述のアルゴリズムに従って適宜その初期コンテキストを基点にカレントコンテキストを移動させつつ再帰的に処理を行った。ここで説明するディレクトリ要素は、そのような再帰処理でのカレントコンテキストの子コンテキストへの移動ではなく、テンプレート作成者が意図したコンテキストへカレントコンテキストを移動させるために用いられる要素である。
例えば、初期コンテキストを基点にして作成する文書に対し、テンプレート作成者が意図する条件に合致する文書、編、章又は節を参照するリンクを含めたい場合に、ディレクトリ要素をテンプレートに組み込めばよい。ディレクトリ要素は、‘#directory’という文字列の後に <条件式>及び<テンプレート要素列> が順に続き、‘#end’という文字列で終わる。<条件式>は、「<変数要素>’==’<変数要素>」または「<変数要素>’==’<定数>」という形式で記述され、左辺で指定した「変数要素」が、右辺で指定した「変数要素」(カレントコンテキストにおいて「代入可能」または「確定」であることが必須)の値、または「定数」に等しくなるコンテキストを抽出する条件となっている。システムは、この条件式にマッチするコンテキストへ、カレントコンテキストを移動させる。そして、システムは、移動後のカレントコンテキストに対し、<テンプレート要素列>を適用する。条件式にマッチするコンテキストが複数見つかった場合は、それら複数のコンテキストに対して順にカレントコンテキストを移し、それぞれのカレントコンテキストに対し、<テンプレート要素列>を適用する。
以下に、ディレクトリ要素を含むテンプレートの例(テンプレート(4)と呼ぶ)を示す。

$SECTION.title$ :
#directory $*.ID$==$JUMP.JUMPID$
<A href=”$SECTION.ID$.htm”>$PART.title$:$CHAPTER.title$:$SECTION.title$</A>
#end
このテンプレート(4)では、カレントコンテキストの移動先として、ディレクトリレコード中のいずれかの要素のID属性値が、カレントコンテキストで評価したときのJUMP要素のJUMPID属性値に等しくなる行を指定している(アスタリスク”*”は、任意の要素を意味している)。
このテンプレート(4)と、図19及び図20に示すディレクトリレコードとを指定し、初期コンテキストに「13」が指定された指定した場合を例にとる。ディレクトリ要素で移動先に指定されたコンテキストは、図20に示されるコンテキスト「25」であり、図では分かりやすくするために網掛けで示している。
この場合、テンプレート(4)の1行目の$SECTION.title$には、カレントコンテキスト「13」の先祖のSECTION要素がマッチする。次に、「#directory $*.ID$==$JUMP.JUMPID$」 にマッチするコンテキストへカレントコンテキストが移動する。この例では、条件式の右辺部分である「$JUMP.JUMPID$」に、(移動前の)カレントコンテキスト「13」(JUMP要素)のJUMPID属性がマッチするので、その属性値である「A0201010300」がその定数部分に代入される。この結果、条件式はID属性値が「A0201010300」となるコンテキストを指定するものとなる。この条件式に合致するコンテキストとして、「25」が見つかるので、このディレクトリ要素の実行によりカレントディレクトリは一時的に「25」に移る。そして、このカレントコンテキスト「25」を基点として、「#end」までに記述されたテンプレート要素列、すなわち「<A href=”$SECTION.ID$.htm”>$PART.title$:$CHAPTER.title$:$SECTION.title$</A>」が適用される。この例では、まず、変数要素「$SECTION.ID$」に対してカレントコンテキスト「25」のID属性値「A0201010300」がマッチする。次の変数要素「$PART.title$」はカレントコンテキスト「25」にマッチしないので、統合構造情報を祖先の方向に順に遡ってマッチするものが探索される。この場合コンテキスト「18」のタイトル属性「基本編」がテンプレートに代入されることになる。同様に、次の変数要素「$CHAPTER.title$」には、コンテキスト「19」のタイトル属性「操作&手順」が代入される。そして、最後の変数要素「$SECTION.title$」には、カレントコンテキスト「25」のタイトル属性「参照<3>」が代入されることになる。したがって、テンプレートの適用により次のような文字列が生成されることになる(文字列(A)と呼ぶ)。

機能3 :
<A href=“A0201010300.htm”>基本編: 操作&手順: 参照<3></A>
ここで、仮に条件式に合致する移動先が複数発見された場合は、あたかも、マッチする複数のコンテキストをメンバに持つディレクトリが存在するかのように、発見されたコンテキストに対して、繰り返しテンプレート処理が行われる。このように構成することで、条件式に合致する仮想的なディレクトリを構成し、テンプレート処理を行うことができるため、柔軟なテンプレート処理を提供することができる。
G.デバッグ
次に、文書処理システムにおけるデバッグ処理について説明する。
テンプレートにおいて選択要素などの各種条件に書き間違いがあったり、ディレクトリレコードの属性値がテンプレート作成側で想定したものと異なるなどのデータ不備があったりした場合など、様々なミスにより期待したテンプレート処理結果が得られなくなる場合がある。
そのようなミスを見つけ出すために、この文書処理システムにデバッグ機能を追加することもできる。このデバッグ機能は、マッチング処理部28への追加機能として実現することができる。デバッグでは、ユーザ等が指定したカレントコンテキストに対するテンプレートのマッチング処理の判定結果を出力するようにすれば、前述したような条件の書き間違いやデータの不備を発見するのに役立つ。
ここで、テンプレート作成者からみた場合、デバッグ出力としての判定値は、テンプレート要素の階層の上位から子孫に向かって順に出力されることが望ましい。しかしながら、マッチング処理においては、下位(子孫)のテンプレート要素の判定値のいずれか、あるいはすべてが定まった後で、自ノードの判定値が定まるような、再帰的な処理ステップを含む。このような処理順序に従ってそのままマッチング判定結果を出力したのでは、テンプレート作成者から見て分かりにくいものとなってしまう。
そこで、マッチング処理部28の処理手順にグローバルな変数(WATCH_MODE)を設ける。WATCH_MODEは"true"又は"false"のいずれかの値をとり得る。そして、「WATCH_MODE=true」の場合は、本来のマッチング処理に先立ち、マッチング判定値を知るために、デバッグ出力をするためのダミーのマッチング処理を行うよう、マッチング処理部28の処理手順を変更する。判定値が求まれば、着目したテンプレート要素の属性値と判定値をデバッグ出力として表示した後、本来のマッチング処理を実行する。このように変更した処理手順によれば、テンプレートの親の要素から子孫に向かう順に判定値を出力することができる。
変更したマッチング処理の手順は、詳細には以下のようになる。ここでは、着目したコンテキスト番号は、ウォッチポイントと呼ぶ。すなわち、ユーザ(例えばテンプレート作成者)が指定したウォッチポイントについて選択的にデバッグ処理が実行され、その結果が出力されることになる。
1.カレントコンテキストがウォッチポイントでない場合、通常のマッチング処理を行う。
2.カレントコンテキストがウォッチポイントの場合、WATCH_MODE=falseなら、WATCH_MODEをtrueに変更して、ダミーのマッチング処理を行い、判定値をデバッグ出力する。デバッグ出力は、テンプレートの階層構造を反映し、ノード深さに応じて適宜インデントをしたり、ツリー構造を表示したりしてもよい。そして、デバッグ出力を行った後で、WATCH_MODEをfalseに設定し、通常のマッチング処理を行う。
3.カレントコンテキストがウォッチポイントの場合、WATCH_MODE=trueなら、通常のマッチング処理を行い、判定値を計算する。
この処理手順では、WATCH_MODEがfalseの状態でマッチング処理が開始される。そして、カレントコンテキストがウォッチポイントに移ったときに、上述のステップ2.でWATCH_MODEがtrueとなり、ダミーのマッチング処理が行われる。このウォッチポイントでのマッチング判定値が決まるのに、下位のマッチング判定結果が決まることが必要である場合、ステップ1.又は3.に該当するので、通常のマッチング処理が行われ、判定値が計算される。以上の処理が再帰的に繰り返されることで、ステップ2.でウォッチポイントの判定値が決定され、デバッグ情報32(図1、図13参照)として出力されることになる。
上記C節に例示したテンプレート(1)と図7及び図8のディレクトリレコードが与えられ、処理の基点となる初期コンテキストが「4」、ウォッチポイントが「6」に指定された場合のデバッグ出力の例を以下に示す。

Watch Point: :C6[SECTION] (C4[CHAPTER]の配下)
E2 http://server/template.html: 2行:[代入可能] 繰返し: C6[SECTION]: 3 回の繰返し中 2 回目の流し込みです。
| {{$SECTION.title$[[($SECTION.whatsNew$)]]:
| *
| + E3 http://server/template.html: 2行:[代入可能] 変数: 値は [機能1] です。
| | {{$SECTION.title$[[($SECTION.whatsNew$)]]:
| | *
| + E4 http://server/template.html: 2行:[代入可能] 選択範囲: 選択されました。
| | {{$SECTION.title$[[($SECTION.whatsNew$)]]:
| | *
| | + E6 http://server/template.html: 2行:[代入可能] 変数: 値は [新着] です。
| | | {{$SECTION.title$[[($SECTION.whatsNew$)]]:
| | | *
ここで「E2」などの記号はテンプレート要素のノードIDである。’*’は、前の行においてテンプレート要素のデバッグ出力メッセージの該当する箇所を示すマーカである。‘|’は兄弟の関係にあるテンプレート要素を表す。すなわち、’+’の左側にある’|’の数が、テンプレート要素の解析ツリー上の深さを示す。
テンプレート(1)は誤りがないので、上に例示したデバッグ結果は全て正常である。これに対し、テンプレート(1)における”$SECTION.whatsNew$” を ”$SECTION.whatsnew$” と書き間違えた場合は、上と同じ条件でテンプレート処理を行ったときのデバッグ出力は以下のようになる。

Watch Point: :C6[SECTION] (C4[CHAPTER]の配下)
E2 http://server/template.html: 2行:[代入可能] 繰返し: C6[SECTION]: 3 回の繰返し中 2 回目の流し込みです。
| {{$SECTION.title$[[($SECTION.whatsnew$)]]:
| *
| + E3 http://server/template.html: 2行:[代入可能] 変数: 値は [機能1] です。
| | {{$SECTION.title$[[($SECTION.whatsnew$)]]:
| | *
| + E4 http://server/template.html: 2行:[代入不能] 選択範囲: 選択されません。
| | {{$SECTION.title$[[($SECTION.whatsnew$)]]:
| | *
| | + E6 http://server/template.html: 2行:[代入不能] 変数: SECTION は指定した属性 whatsnewの値がありません。
| | | {{$SECTION.title$[[($SECTION.whatsnew$)]]:
| | | *
このように構成することで、テンプレートのデバッグ機能を提供することができる。すなわち、テンプレートを記述する者が期待するテンプレート処理結果が得られない場合に、テンプレートの選択要素の条件の書き間違いや、ディレクトリレコードの属性値が、テンプレートで想定したものと異なるようなデータ不備を発見する助けとすることができる。テンプレート処理のマッチング処理がウォッチポイントに到達するたびに、(すなわち前記ステップ2を実行するたびに、)入力待ちとなることでテンプレート処理がブロック(一旦停止)し、キーボード操作やマウス操作によって、入力待ちブロックが解除され、テンプレート処理が継続するように、構成することも可能である(流し込み処理のステップ動作に相当する)。
H.エンコード要素
次に、テンプレートに組み込み可能なエンコード要素について説明する。例えばXMLやHTMLなどといった文書を表現する言語では、言語の仕様上、通常の文字列には使用できない文字が存在し、その文字を文字列に組み込むには特殊な修飾を行うなどの処置が必要になる場合がある。このように、文書を表現する言語に応じた文字の置き換えを指示するために用いるのがエンコード要素である。
エンコード要素は、‘#encode’という文字列から始まり、その後にエンコード形式を指定する文字列<エンコード形式>が続く。そして、そのエンコード形式を適用する対象を特定する<テンプレート要素列>が続き、最後は文字列‘#end’で終わる。
エンコード要素を含むテンプレートの例を以下に示す(これをテンプレート(5)と呼ぶ)。

#encode XMLEntityEncoding
#directory $*.ID$==$JUMP.JUMPID$
<A href=”$SECTION.ID$.htm”>$PART.title$:$CHAPTER.title$:$SECTION.title$</A>
#end
#end
このテンプレート(5)では、1行目でエンコード形式が指定され、2〜4行目でそのエンコード形式を適用する対象が特定される。この形式のエンコード規則は、図21に示すようなものとなる。例えば、このエンコード形式の場合、文字「&」を文字列中に組み込むには「&amp」に変換する必要がある。
エンコード要素を含むテンプレートを用いる場合、マッチング処理部28の処理(上記(C2)参照)に次のステップ6を付け加えればよい。
6.着目ノードEがエンコード要素なら、唯一の子のテンプレート要素Ecの判定値をEの判定値とする。
また流し込み処理部34の処理(上記(C3)参照)に次のステップ6を付け加える。
6.着目ノードEがエンコード要素なら、グローバル変数(ENCODER)にエンコード方式を設定し、Eの唯一の子のテンプレート要素Ecのマッチング判定結果が<代入可能>か<確定>である場合に、Ecを指定して再帰的に流し込み処理を行う。
また、流し込み処理のステップ2を以下のように変更する。
2.着目ノードEが変数要素なら、マッチング処理で記録したvをグローバル変数(ENCODER)に指定されたエンコード方式でエンコード処理して出力する。
テンプレート(5)を例にとると、その2〜4行目は上述のテンプレート(4)で示したディレクトリ要素である。したがって、図19及び図20に示すディレクトリレコードに対し、初期コンテキストに「13」を指定してこのテンプレート(5)を適用すると、まず、2〜4行目の部分の処理結果として上述の文字列(A)から最初の行を除いたもの(すなわちリンク記述部分)が生成され、それに対してXMLEntityEncoding形式のエンコードが行われることになる。その結果、次のような文字列が出力される。

<A href=“A0201010300.htm”>基本編: 操作&amp;手順: 参照&lt;3&gt;</A>
以上説明したように、エンコード要素を用いることで、テンプレート処理結果の文字列を、目的とする言語における正しいエンコード形式に置き換えることができる。例えば、テンプレート処理結果がHTML形式である場合に、タグ要素以外の箇所に”<”が出現するなど、ブラウザで正しく表示されなくなることを避けることが出来る。
上述したエンコード処理は、変数要素にマッチするコンテキストの属性値「v」の中の語を別の語に変換する処理であるが、複数の変換テーブルを用意し、テンプレート処理が行われた際に定まる環境条件(例えば日付時刻やWebリクエストで指定されるパラメータ)によって、所定の変換テーブルを選択する構成にすることもでき、これによりより柔軟なエンコード処理が可能になる。
I.索引生成への応用
ここでは、上述の文書処理システムを利用して複数文書にわたる索引を生成する例を説明する。
この例は、基本的なシステム構成は図1に示したものでよい。ただし、データ変換部22については、上述の例よりも機能を拡張する。
索引生成のために、この例では、データ変換部22は、ディレクトリレコードにおいて、ID属性に、複数の文書をまたがってコンテキストを一意に識別可能なIDを付与するものとする。
また、データ変換部22は、ディレクトリレコードの特定のレコード(もしくは要素)から特定の属性を抽出し、サブレコードの集合を作成する。索引作成の場合、タイトルの読みに応じた処理が必要となるので、読みの属性(reading属性と呼ぶ)が設定されている要素(コンテキスト)が抽出対象のレコードとなる。また、索引作成に必要な属性として、例えば、要素名、title 、reading、ID、url_1の各属性がある。したがって、データ変換部22は、reading属性を持つレコードから、要素名、title 、reading、ID、url_1からなるサブレコードを抽出することとなる。
なお、ディレクトリレコードからサブレコードを抽出する代わりに、元の複数のXML文書(対象文書や参照先文書)からサブレコードを生成してもよい。
ユーザは、データ変換部22に対して、図22に示すような内容の分類出力指示を与える。この指示は、"root", "record", "INDEX"の3つのレコードからなり、各レコードは、"tag"(タグ), "title"(タイトル), "g.INDEX"の3項目のうち、それぞれ必要な項目の情報を含んでいる。
ここで分類出力指示の”record”レコードの”g.INDEX”項目におけるINITIAL関数は引数の文字列の先頭1文字を返す関数である。但し、先頭1文字が濁音や半濁音である場合は、清音にして返す。また、GYOU関数は、引数の文字が「あ、か、さ、た、な、...」のいずれの行に属するかを返す関数であり、たとえば引数が「け」であれば、「か行」を返す。また$readingはreading属性の値を示す。
この出力指示の入力が行われると、データ変換部22は、上述のようにして作成したサブレコードに対し、以下の処理を行う。

1.rootエントリを追加
2.サブレコードの属性の集合に対しtag及びg.INDEX属性を追加
3.各エントリのtag, g.INDEX属性に分類出力指示に従い属性値を設定(rootには更にtitle属性値を設定)
このような処理の結果、図23に示すようなデータが得られる。このデータに対し、データ変換部22は、以下のような処理を行う。

1.g.INDEX属性でソート
2.INDEXデータエントリを追加
3.階層構造を生成(コンテキスト識別子の付与)
4.要素名がないエントリについてtagから要素名を付与
ここで、INDEXデータエントリは、「あ行」、「か行」などの各行の先頭に追加され、その行の名前(「あ行」など)がそのエントリのtitle属性値に設定される。階層構造は、rootを最上位とし、「あ行」等の各行のINDEXデータエントリがrootの子となる。また、「あ行」等の各行に属する個々の要素は、対応するINDEXデータエントリの子となる。このような処理により、図24及び図25に示すようなディレクトリレコードが作成される。この例は、図19及び図20に示したディレクトリレコードを原料として、上述の処理を施した結果得られるものである(図19及び図20の例ではreading属性は示していなかったが、ディレクトリレコードにはreading属性が含まれていたものとする)。図24及び図25の例ではコンテキスト番号は省略しているが、rootを0として順に各コンテキストに番号が付されているものとする。
このようなディレクトリレコードに対して、索引生成用のテンプレートを適用する。索引生成用のテンプレートとしては、例えば以下のようなものを用いることができる。

<HTML>
<H1> $ROOT.title$
{{<H2>$INDEX.title$</H2>
{{[[<A href="$FOLDER.url_1$"> $FOLDER.title$ </A>
]][[<A href="$DOCUMENT.url_1$"> $DOCUMENT.title$ </A>
]][[<A href="$PART.url_1$"> $PART.title$ </A>
]][[<A href="$CHAPTER.url_1$"> $CHPATER.title$ </A>
]][[<A href="$SECTION.url_1$"> $SECTION.title$ </A>
]]}}}}</HTML>
初期コンテキストCに「0」を指定して図24及び図25のディレクトリレコードにこのテンプレートを適用すると、以下のような出力が生成される。

<HTML>
<H1> 索引
<H2>あ行</H2>
<A href="A0102010000.html"> 応用編 </A>
<A href="A0202010000.html"> 応用編 </A>
<H2>か行</H2>
<A href="A0101010100.html"> 機能1 </A>
<A href="A0101010200.html"> 機能2 </A>
<A href="A0101010300.html"> 機能3 </A>
<A href="A0101000000.html"> 基本編 </A>
<A href="A0201000000.html"> 基本編 </A>
<H2>さ行</H2>
<A href="A0201010100.html"> 参照<1> </A>
<A href="A0201010200.html"> 参照<2> </A>
<A href="A0201010300.html"> 参照<3> </A>
<A href="A0100000000.html"> 説明書 </A>
<H2>は行</H2>
<H2>や行</H2>
<A href="A0200000000.html"> 用語集 </A>
</HTML>
このように構成することで、階層的なデータから、階層情報をハイパーテキスト構造に反映した複数のファイルを、テンプレート処理で生成できるだけでなく、索引データなど、階層データを処理、加工して作られる新たな階層データから、索引ファイルのように、ハイパーテキスト構造の辻褄があった階層情報を含むハイパーテキストファイルを生成することが、容易に、かつ柔軟にできる。
以上、文書処理システムの実施形態について説明した。以上に説明した文書処理システムでは、対象となる文書の階層構造を文書データベース10のフォルダの階層構造にマージして統合構造情報を作成し、この統合構造情報に対してテンプレートを適用する。このような方式によれば、フォルダ群の階層構造から文書内部の階層構造に至るまで、継ぎ目なく透過的に、同じ処理を適用することができる。また、統合構造情報にテンプレートを適用すれば、文書内部だけでなく、その上部構造であるフォルダ群の階層構造の持つ情報(例えばフォルダのタイトルなど)をテンプレートに代入して出力文書を作成することもできる。また、このシステムでは、対象となる文書から参照される参照先文書の構造を統合構造情報に組み込むことができるので、参照先文書の情報を含んだ出力文書を作成することができる。
また、このシステムの処理方式では、初期コンテキストの祖先と子孫、及び参照先文書とその祖先の情報のみがあれば処理が実行できる。したがって、文書データベース10からそれらの情報のみをメモリにロードして処理するように制御することで、メモリの必要量を節約することができる。
上記の例では、文書の構造をフォルダ群の階層構造にマージしていたが、この代わりに、図26に示すような3段階の構成をとってもよい。図26の例では、文書の構造のうち編−章−節などといった標準的な章立て構造を抽出してこれを文書スケルトン102とし、この文書スケルトン102のルートをフォルダの階層構造100における当該文書のノードにマージする。そして、文書スケルトン102における各章、各節等のノードに対し、それら各章、各節等の内容104の構造をマージする。例えば章の内容104は、元の文書の中でのその章の子孫のうち、節などといった標準的な章立て構造に属するノードとその子孫を除いたものである。この内容104のツリー構造のルートを文書スケルトン102の対応するノードにマージする。なお、文書スケルトン102の抽出は、文書取得部12や参照先取得部16で行えばよい。
また、本実施形態では、テンプレートを解析して解析ツリーを求め、この解析ツリーとテンプレート適用対象の統合構造情報のツリーとのパターンマッチングによりテンプレートが適用できる部分を特定する。
この文書処理システムは、典型的には、汎用のコンピュータシステムにて上述の各構成要素の機能又は処理内容(詳細は後述)を記述したプログラムを実行することにより実現される。コンピュータシステムは、ハードウエアとして、図27に示すように、CPU(中央演算装置)40、メモリ(一次記憶)42、各種I/O(入出力)インタフェース44等がバス46を介して接続された回路構成を有する。また、そのバス46に対し、例えばI/Oインタフェース44経由で、ハードディスクドライブ48やCDやDVD、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ50が接続される。このようなドライブ48又は50は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがCDやDVD等の記録媒体を経由して、又はネットワーク経由で、ハードディスクドライブ48等の固定記憶装置に保存され、コンピュータシステムにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されCPUにより実行されることにより、実施形態の処理が実現される。
文書処理システムの概略的な構成を示す機能ブロック図である。 階層的なフォルダ構造の一例を示す図である。 ディレクトリレコードの一例の一部を示す図である。 ディレクトリレコードの一例の残りの部分を示す図である。 テンプレートを解析して得られた解析ツリーの例を示す図である。 図5の解析ツリーにおける各ノードのレコード内容を示すための図である。 統合構造情報の一例をツリー構造で示した図である。 図7の統合構造情報に対応するディレクトリレコードを示す図である。 図7及び図8の統合情報構造とテンプレート(1)とのマッチング処理の結果生成されるデータの例をテーブル形式で示す図である。 図7及び図8の統合情報構造とテンプレート(1)とのマッチング処理の結果を図式化して示す図である。 章目次ファイルと節内容ファイルとのリンク関係を示す図である。 タイプ-テンプレート対応表の一例を示す図である。 1つのコンテキストから複数の文書を生成する文書処理システムの概略的な構成を示す機能ブロック図である。 タイプ-テンプレート対応表の別の一例を示す図である。 タイプ-テンプレート対応表の更に別の一例を示す図である。 ディレクトリレコードの別の例の一部を示す図である。 ディレクトリレコードの別の例の残りの部分を示す図である。 図16及び図17のディレクトリレコードのコンテキスト「4」に対してテンプレート群を適用することにより生成されるファイル群のリンク関係を示す図である。 ディレクトリレコードの更に別の例の一部を示す図である。 ディレクトリレコードの更に別の例の残りの部分を示す図である。 XMLEntityEncoding形式の置き換え規則を示す図である。 索引生成のための分類出力指示の内容を示す図である。 索引生成のための生成されるサブレコードの例を示す図である。 図23のサブレコードから作成されたディレクトリレコードの一部を示す図である。 図23のサブレコードから作成されたディレクトリレコードの残りの部分を示す図である。 文書スケルトンを説明するための図である。 文書処理システムが実装されるコンピュータシステムのハードウエア構成の一例を示す図である。
符号の説明
10 文書データベース、12 文書取得部、14 フォルダ構造取得部、16 参照先取得部、18 ディレクトリマージ部、20 URL生成部、22 データ変換部、24 テンプレート、26 テンプレート解析部、28 マッチング処理部、30 ディレクトリ・テンプレート要素対応表、34 流し込み処理部、36 変換結果。

Claims (12)

  1. 文書データベース内の階層構造をなすフォルダ群のいずれかのフォルダに格納される複数の構造化文書に対して1以上のテンプレートを適用した結果を生成するためにコンピュータシステムが実行する文書処理方法であって、
    前記文書データベース内の前記各フォルダ、及び、それらフォルダに格納される各構造化文書を構成する各文書要素は、それぞれ前記文書データベース内で該フォルダ又は該文書要素を一意に特定するID属性を有し、
    前記方法は、
    構造を成す文書要素群からなる第1の構造化文書を取得し、
    文書データベースのフォルダ群がなす階層構造の情報を取得し、
    第1の構造化文書の文書要素群がなす構造を、フォルダ群がなす階層構造において当該第1の構造化文書が格納されているフォルダの位置に併合することにより、統合構造情報を作成し、
    前記統合構造情報における各フォルダ又は文書要素に対し、該フォルダ又は文書要素のID属性を含んだファイル名をアクセス情報属性として追加し、
    前記アクセス情報属性追加後の前記統合構造情報に対してテンプレートを適用する、
    と共に、
    前記統合構造情報に対してテンプレートを適用する処理では、前記統合構造情報内のフォルダ又は文書要素に対してテンプレートを適用して得られたデータを、該フォルダ又は文書要素の前記アクセス情報属性が表すファイル名を持つファイルとして保存することにより、該ファイル名を用いて当該データにアクセスできるようにする、
    ことを特徴とする文書処理方法。
  2. 請求項1記載の文書処理方法であって、
    前記統合構造情報を作成する処理では、前記文書データベース内の各フォルダの属性情報と、前記第1の構造化文書の各文書要素の属性情報と、を前記統合構造情報内の各フォルダ及び各文書要素に対応づけて記憶し、
    前記統合構造情報に対してテンプレートを適用する処理は、各フォルダ又は各文書要素に対応づけて記憶された属性情報を前記テンプレートの対応箇所に代入する、
    ことを特徴とする文書処理方法。
  3. 請求項1記載の文書処理方法であって、
    前記統合構造情報を作成する処理では、更に、第1の構造化文書の文書要素から参照される第2の構造化文書の文書要素群がなす構造を、前記統合構造情報における当該第2の構造化文書が格納されているフォルダの位置に併合する、
    ことを特徴とする文書処理方法。
  4. 請求項1記載の文書処理方法であって、更に、
    フォルダ又は文書要素の種別と当該種別に対して適用すべきテンプレートとの対応関係を示す対応情報を取得し、
    前記統合構造情報に対してテンプレートを適用する処理では、前記統合構造情報における各フォルダ又は各文書要素に対し、対応情報に示される当該フォルダ又は文書要素の種別に対応するテンプレートを適用する、
    処理を行うことを特徴とする文書処理方法。
  5. 請求項1記載の文書処理方法であって、更に、前記コンピュータシステムは、
    フォルダ又は文書要素の種別と当該種別に対して適用すべき複数のテンプレートとの対応関係を示す対応情報を取得する処理を更に実行し
    前記統合構造情報における各フォルダ又は文書要素に対し、前記アクセス情報属性を追加する処理では、前記対応情報における該フォルダ又は文書要素に適用すべきテンプレートごとに、該フォルダ又は該文書要素のID属性と該テンプレートを特定する情報とを含むファイル名をアクセス情報属性として追加し、
    前記統合構造情報に対してテンプレートを適用する処理では、前記統合構造情報における各フォルダ又は各文書要素に対して前記対応情報に示される当該フォルダ又は文書要素の種別に対応する各テンプレートを適用し、前記統合構造情報内のフォルダ又は文書要素に対してテンプレートを適用して得られたデータを、該フォルダ又は文書要素の前記アクセス情報属性が表すファイル名を持つファイルとして保存することにより、該ファイル名を用いて当該データにアクセスできるようにする、
    ことを特徴とする方法。
  6. 請求項1記載の文書処理方法であって、
    前記統合構造情報における1つのフォルダ又は文書要素に対し、複数のテンプレートの適用が指示された場合に、前記統合構造情報における各フォルダ又は文書要素に対し、前記アクセス情報属性を追加する処理では、それら各テンプレートごとに、該フォルダ又は文書要素のID属性と該テンプレートを特定する情報とを含むファイル名をアクセス情報属性として追加し、
    前記統合構造情報に対してテンプレートを適用する処理では、前記統合構造情報におけるフォルダ又は文書要素に対して前記各テンプレートを適用し、前記統合構造情報内のフォルダ又は文書要素に対してテンプレートを適用して得られたデータを、該フォルダ又は文書要素の前記アクセス情報属性が表すファイル名を持つファイルとして保存することにより、該ファイル名を用いて当該データにアクセスできるようにする、
    ことを特徴とする方法。
  7. 請求項1記載の文書処理方法であって、
    フォルダ又は文書要素の種別と当該種別に対して適用すべきテンプレートとの対応関係を示す対応情報を取得し、
    前記統合構造情報に対してテンプレートを適用する処理では、前記統合構造情報におけるフォルダ又は文書要素のうち、該テンプレートを適用すべき種別に該当するものを該対応情報から求め、求めたフォルダ又は文書要素をカレント要素とし、該カレント要素を基点として該テンプレートを適用する
    処理を行うことを特徴とする文書処理方法。
  8. 請求項記載の文書処理方法であって、
    前記統合構造情報に対してテンプレートを適用する処理では、該テンプレートの要素群がなす構造を解析して解析ツリーを求め、前記統合構造情報における前記カレント要素の周囲の構造と該解析ツリーとのマッチング処理により、該テンプレートの要素にマッチする前記統合構造情報内のフォルダ又は文書要素を求め、該テンプレートの各要素に対し、それにマッチする前記統合構造情報内のフォルダ又は文書要素の情報を流し込む、
    ことを特徴とする文書処理方法。
  9. 請求項記載の文書処理方法であって、
    前記テンプレートには、ディレクトリ要素を組み込むことができ、
    前記統合構造情報に対してテンプレートを適用する処理では、該テンプレート中のディレクトリ要素を検出すると、前記統合構造情報内のフォルダ又は文書要素のうち該ディレクトリ要素中に記述される条件を満足するフォルダ又は文書要素をカレント要素とした上で、該ディレクトリ要素中のテンプレート内容を適用する、
    ことを特徴とする文書処理方法。
  10. 請求項1記載の文書処理方法であって、
    前記テンプレートには、エンコード要素を組み込むことができ、
    前記統合構造情報に対してテンプレートを適用する処理では、該エンコード要素内のテンプレート内容の適用結果の文字列に対し、該エンコード要素が示すエンコードを施す、
    ことを特徴とする文書処理方法。
  11. 文書データベース内の階層構造をなすフォルダ群のいずれかのフォルダに格納される複数の構造化文書に対して1以上のテンプレートを適用した結果を生成する処理をコンピュータシステムに実行させるためのプログラムであって、
    前記文書データベース内の前記各フォルダ、及び、それらフォルダに格納される各構造化文書を構成する各文書要素は、それぞれ前記文書データベース内で該フォルダ又は該文書要素を一意に特定するID属性を有し、
    該コンピュータシステムに、
    構造を成す文書要素群からなる第1の構造化文書を取得し、
    文書データベースのフォルダ群がなす階層構造の情報を取得し、
    第1の構造化文書の文書要素群がなす構造を、フォルダ群がなす階層構造において当該第1の構造化文書が格納されているフォルダの位置に併合することにより、統合構造情報を作成し、
    前記統合構造情報における各フォルダ又は文書要素に対し、該フォルダ又は文書要素のID属性を含んだファイル名をアクセス情報属性として追加し、
    前記アクセス情報属性追加後の前記統合構造情報に対してテンプレートを適用する、
    処理を実行させる
    と共に、
    前記統合構造情報に対してテンプレートを適用する処理では、前記統合構造情報内のフォルダ又は文書要素に対してテンプレートを適用して得られたデータを、該フォルダ又は文書要素の前記アクセス情報属性が表すファイル名を持つファイルとして保存することにより、該ファイル名を用いて当該データにアクセスできるようにする、
    ためのプログラム。
  12. 文書データベース内の階層構造をなすフォルダ群のいずれかのフォルダに格納される複数の構造化文書に対して1以上のテンプレートを適用した結果を生成する文書処理システムであって、
    前記文書データベース内の前記各フォルダ、及び、それらフォルダに格納される各構造化文書を構成する各文書要素は、それぞれ前記文書データベース内で該フォルダ又は該文書要素を一意に特定するID属性を有し、
    前記文書処理システムは、
    構造を成す文書要素群からなる第1の構造化文書を取得する手段、
    文書データベースのフォルダ群がなす階層構造の情報を取得する手段、
    第1の構造化文書の文書要素群がなす構造を、フォルダ群がなす階層構造において当該第1の構造化文書が格納されているフォルダの位置に併合することにより、統合構造情報を作成する手段、
    前記統合構造情報における各フォルダ又は文書要素に対し、該フォルダ又は文書要素のID属性を含んだファイル名をアクセス情報属性として追加する手段、及び、
    前記アクセス情報属性追加後の前記統合構造情報に対してテンプレートを適用する手段、
    を備え
    前記統合構造情報に対してテンプレートを適用する手段は、前記統合構造情報内のフォルダ又は文書要素に対してテンプレートを適用して得られたデータを、該フォルダ又は文書要素の前記アクセス情報属性が表すファイル名を持つファイルとして保存することにより、該ファイル名を用いて当該データにアクセスできるようにする、
    ことを特徴とする文書処理システム。
JP2005353456A 2005-12-07 2005-12-07 文書処理方法、プログラム及びシステム Expired - Fee Related JP4997749B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005353456A JP4997749B2 (ja) 2005-12-07 2005-12-07 文書処理方法、プログラム及びシステム
AU2006213978A AU2006213978B2 (en) 2005-12-07 2006-09-18 Document processing method, recording medium, and document processing system
US11/524,830 US7912846B2 (en) 2005-12-07 2006-09-21 Document processing method, recording medium, and document processing system
KR1020060103445A KR100890966B1 (ko) 2005-12-07 2006-10-24 문서 처리 방법, 기록 매체 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005353456A JP4997749B2 (ja) 2005-12-07 2005-12-07 文書処理方法、プログラム及びシステム

Publications (2)

Publication Number Publication Date
JP2007156965A JP2007156965A (ja) 2007-06-21
JP4997749B2 true JP4997749B2 (ja) 2012-08-08

Family

ID=38119997

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005353456A Expired - Fee Related JP4997749B2 (ja) 2005-12-07 2005-12-07 文書処理方法、プログラム及びシステム

Country Status (4)

Country Link
US (1) US7912846B2 (ja)
JP (1) JP4997749B2 (ja)
KR (1) KR100890966B1 (ja)
AU (1) AU2006213978B2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9880980B2 (en) * 2007-03-05 2018-01-30 International Business Machines Corporation Document transformation performance via incremental fragment transformations
US20080263071A1 (en) * 2007-04-19 2008-10-23 Sharp Laboratories Of America, Inc. Systems and methods for driverless imaging of documents
US7933871B2 (en) * 2007-12-28 2011-04-26 Microsoft Corporation Discovering and updating templates
US8239387B2 (en) * 2008-02-22 2012-08-07 Yahoo! Inc. Structural clustering and template identification for electronic documents
US9946584B2 (en) * 2008-03-14 2018-04-17 Northrop Grumman Systems Corporation Systems and methods for extracting application relevant data from messages
US7996435B2 (en) * 2008-12-01 2011-08-09 Sap Ag Apparatus and method for comparing computer documents using tree structures
JP5090408B2 (ja) 2009-07-22 2012-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク通信において送信データの宛先を動的に制御する方法及び機器
FR2962236B1 (fr) * 2010-06-30 2012-07-13 Alcatel Lucent Acces a un systemes de fichiers avec indexation semantique
JP5539127B2 (ja) * 2010-09-09 2014-07-02 キヤノン株式会社 文書管理システム、検索指定方法、プログラム
JP5496853B2 (ja) * 2010-10-29 2014-05-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 構造化文書を分類するためのルールを生成するための方法、並びにそのコンピュータ・プログラム及びコンピュータ
US9367524B1 (en) * 2012-06-06 2016-06-14 Google, Inc. Systems and methods for selecting web page layouts including content slots for displaying content items based on predicted click likelihood
JP6481515B2 (ja) * 2015-05-29 2019-03-13 富士通株式会社 情報処理装置、コンパイル方法、及びコンパイラプログラム
JP6876227B2 (ja) * 2016-08-15 2021-05-26 富士フイルムビジネスイノベーション株式会社 情報処理装置、プログラム及び情報処理システム
CN108563747A (zh) * 2018-04-13 2018-09-21 北京深度智耀科技有限公司 一种文档处理方法及装置
JP6638053B1 (ja) * 2018-12-05 2020-01-29 グレイステクノロジー株式会社 ドキュメント作成支援システム
CN111027294B (zh) * 2019-12-12 2023-05-30 中国联合网络通信集团有限公司 表格汇总的方法、装置及***
US11314765B2 (en) 2020-07-09 2022-04-26 Northrop Grumman Systems Corporation Multistage data sniffer for data extraction
CN113283228A (zh) * 2021-07-22 2021-08-20 北京关键科技股份有限公司 文档生成方法、装置、电子设备及存储介质
CN113657080A (zh) * 2021-08-11 2021-11-16 成都海光核电技术服务有限公司 一种基于xml的结构化***及数据包创建方法
CN114298238A (zh) * 2021-12-31 2022-04-08 瀚云科技有限公司 一种档案创建方法、装置、电子设备及存储介质
CN115688733B (zh) * 2022-12-29 2023-05-02 南方电网科学研究院有限责任公司 标准文档编写的方法和***
CN117436429B (zh) * 2023-12-22 2024-05-17 珠海格力电器股份有限公司 文档导出方法、装置、计算机设备和存储介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08115323A (ja) * 1994-10-18 1996-05-07 Toppan Printing Co Ltd 自動ページアップルール作成装置
US6732111B2 (en) * 1998-03-03 2004-05-04 Siebel Systems, Inc. Method, apparatus, system, and program product for attaching files and other objects to a partially replicated database
JPH11353307A (ja) * 1998-06-04 1999-12-24 Nec Corp 情報変換装置
US7039860B1 (en) * 1999-10-01 2006-05-02 Netspinner Solutions As Creating web pages category list prior to the list being served to a browser
JP3879350B2 (ja) * 2000-01-25 2007-02-14 富士ゼロックス株式会社 構造化文書処理システム及び構造化文書処理方法
WO2001063382A2 (en) * 2000-02-25 2001-08-30 Synquiry Technologies, Ltd. Conceptual factoring and unification of graphs representing semantic models
JP3703080B2 (ja) * 2000-07-27 2005-10-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェブコンテンツを簡略化するための方法、システムおよび媒体
US20030050932A1 (en) * 2000-09-01 2003-03-13 Pace Charles P. System and method for transactional deployment of J2EE web components, enterprise java bean components, and application data over multi-tiered computer networks
US7475151B2 (en) * 2000-12-22 2009-01-06 Oracle International Corporation Policies for modifying group membership
US6950981B2 (en) * 2000-12-29 2005-09-27 International Business Machines Corporation Method and system for providing task information in a place
US7028262B2 (en) * 2000-12-29 2006-04-11 International Business Machines Corporation Method and system for designing a theme and associating it with a collaboration space user interface
MXPA03011976A (es) * 2001-06-22 2005-07-01 Nervana Inc Sistema y metodo para la recuperacion, manejo, entrega y presentacion de conocimientos.
JP2004086855A (ja) 2002-06-28 2004-03-18 Fuji Xerox Co Ltd 文書処理装置及び文書処理方法、文書処理プログラム
US20040205581A1 (en) * 2002-07-15 2004-10-14 Gava Fabio M. Hierarchical storage
WO2004061713A1 (ja) * 2002-12-27 2004-07-22 Fujitsu Limited 構造化文書の構造変換装置、構造変換方法、記録媒体
JP2004252665A (ja) * 2003-02-19 2004-09-09 Canon Inc 文書処理方法
KR20040090866A (ko) * 2003-04-18 2004-10-27 (주)아이펜텍 폼을 이용하는 xml 문서 편집기 및 xml 문서편집기가 기록된 컴퓨터로 읽을 수 있는 기록 매체
JP3922372B2 (ja) * 2003-07-28 2007-05-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 構造化文書処理装置、およびプログラム
DE60311805T2 (de) * 2003-08-28 2007-11-22 Accenture Global Services Gmbh Erfassung, Zusammenstellung und/oder Visualisierung von strukturellen Merkmalen von Architekturen
US7379945B1 (en) * 2003-10-20 2008-05-27 International Business Machines Corporation Virtual foldering system for blending process and content in a collaborative environment
JP4410005B2 (ja) * 2004-03-22 2010-02-03 富士通株式会社 構造化文書の構造変換装置、プログラム

Also Published As

Publication number Publication date
US7912846B2 (en) 2011-03-22
AU2006213978A1 (en) 2007-06-21
AU2006213978B2 (en) 2008-07-10
KR20070059939A (ko) 2007-06-12
US20070130176A1 (en) 2007-06-07
JP2007156965A (ja) 2007-06-21
KR100890966B1 (ko) 2009-03-27

Similar Documents

Publication Publication Date Title
JP4997749B2 (ja) 文書処理方法、プログラム及びシステム
JP4657432B2 (ja) 階層構造の構造化文書を変換する装置
JP4267336B2 (ja) 構造パターン候補を生成する方法、システムおよびプログラム
US7143344B2 (en) Transformation stylesheet editor
US6792475B1 (en) System and method for facilitating the design of a website
US20090210780A1 (en) Document processing and management approach to creating a new document in a mark up language environment using new fragment and new scheme
EP1821185A1 (en) Data processing device and data processing method
US20080040588A1 (en) Data Processing Device and Data Processing Method
US20070204215A1 (en) Device for analyzing log files generated by process automation tools
EP1821176A1 (en) Data processing device and data processing method
JPWO2006051715A1 (ja) 文書処理装置及び文書処理方法
JP2004502993A (ja) 訓練可能で拡張可能な自動化データ/知識翻訳機
US20080046809A1 (en) Data Processing Device and Data Processing Method
JP5053550B2 (ja) 文書処理装置及び方法と文書処理システム
CN113177168B (zh) 一种基于Web元素属性特征的定位方法
JPWO2006051713A1 (ja) 文書処理装置及び文書処理方法
CN110489625A (zh) 一种网页数据采集模板的生成方法和装置
US20090083300A1 (en) Document processing device and document processing method
EP1830274A1 (en) Server device and name space issuing method
JPWO2006051712A1 (ja) 文書処理装置及び文書処理方法
JPWO2006051716A1 (ja) 文書処理装置及び文書処理方法
KR100522186B1 (ko) 동적으로 홈페이지를 제작하는 방법 및 이 방법을 웹에서구현하는 장치
US20080005085A1 (en) Server Device and Search Method
JP3842576B2 (ja) 構造化文書編集方法及び構造化文書編集システム
JPWO2006051717A1 (ja) 文書処理装置及び文書処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120417

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120430

R150 Certificate of patent or registration of utility model

Ref document number: 4997749

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150525

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees