JP2008225931A - 文書処理装置及び文書処理方法 - Google Patents
文書処理装置及び文書処理方法 Download PDFInfo
- Publication number
- JP2008225931A JP2008225931A JP2007064250A JP2007064250A JP2008225931A JP 2008225931 A JP2008225931 A JP 2008225931A JP 2007064250 A JP2007064250 A JP 2007064250A JP 2007064250 A JP2007064250 A JP 2007064250A JP 2008225931 A JP2008225931 A JP 2008225931A
- Authority
- JP
- Japan
- Prior art keywords
- document
- unit
- search
- editing
- condition
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/83—Querying
- G06F16/835—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
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)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】検索条件を編集し、検索結果を処理して表示する技術を提供する。
【解決手段】文書処理装置100において、表示部76は、文書中に含まれる、データの検索に関する条件を記述するためのタグセットで記述されたデータを取得して、取得したデータを、検索条件を受け付けるためのユーザインタフェースの形式で表示する。編集部74は、ユーザインタフェースを介して条件を編集する要求を受け付けたときに、検索条件を編集する。検索要求送信部78は、データベースに対して条件を送信する。検索結果取得部79は、データベースから検索結果を取得して文書中に格納する。表示部76は、検索結果が格納された文書を表示する。
【選択図】図12
【解決手段】文書処理装置100において、表示部76は、文書中に含まれる、データの検索に関する条件を記述するためのタグセットで記述されたデータを取得して、取得したデータを、検索条件を受け付けるためのユーザインタフェースの形式で表示する。編集部74は、ユーザインタフェースを介して条件を編集する要求を受け付けたときに、検索条件を編集する。検索要求送信部78は、データベースに対して条件を送信する。検索結果取得部79は、データベースから検索結果を取得して文書中に格納する。表示部76は、検索結果が格納された文書を表示する。
【選択図】図12
Description
本発明は、文書処理技術に関し、特に、マークアップ言語により記述された文書を処理する文書処理装置及び方法に関する。
XMLは、ネットワークなどを介して他者とデータを共有するのに適した形式として注目されており、XML文書を作成、表示、編集するためのアプリケーションが開発されている(たとえば、特許文献1参照)。XML文書は、文書型定義などにより定義されたボキャブラリ(タグセット)に基づいて作成されている。
特開2001−290804号公報
ボキャブラリは、任意に定義することが許されており、理論上、無限に多くのボキャブラリが存在しうる。本出願人は、このように柔軟な設計が許されるXML文書を適切に処理することが可能な技術を開発した。そして、XMLの長所を十分に生かした利便性の高いデータ処理技術を想到するに至った。
本発明はこうした状況に鑑みてなされたものであり、その目的は、マークアップ言語により構造化された文書を適切に処理する技術を提供することにある。
本発明のある態様は、文書処理装置に関する。この文書処理装置は、文書中に含まれる、データの検索に関する条件を記述するためのタグセットで記述されたデータを取得して、取得したデータを、前記条件を受け付けるためのユーザインタフェースの形式で表示する検索条件表示部と、前記ユーザインタフェースを介して、前記条件を編集する要求を受け付けたときに、前記文書中の前記データの検索に関する条件を記述するためのタグセットで記述されたデータを編集する検索条件編集部と、データベースに対して前記条件を送信する検索要求送信部と、前記データベースから検索結果を取得して前記文書中に格納する検索結果取得部と、前記検索結果が格納された前記文書を表示する検索結果表示部と、を備えることを特徴とする。
前記検索結果は、前記文書中に含まれる別のタグセットで記述されたデータから参照可能であってもよい。文書処理装置は、前記別のタグセットで記述されたデータを処理する処理系を更に備えてもよく、前記処理系は、前記検索結果を処理して表示する機能を有してもよい。前記処理系は、前記検索結果を、表、グラフ、又はスプレッドシート形式で表示する機能を有してもよい。
本発明の更に別の態様は、文書処理方法に関する。この文書処理方法は、文書中に含まれる、データの検索に関する条件を記述するためのタグセットで記述されたデータを取得して、取得したデータを、前記条件を受け付けるためのユーザインタフェースの形式で表示するステップと、前記ユーザインタフェースを介して、前記条件を編集する要求を受け付けたときに、前記文書中の前記データの検索に関する条件を記述するためのタグセットで記述されたデータを編集するステップと、データベースに対して前記条件を送信するステップと、前記データベースから検索結果を取得して前記文書中に格納するステップと、前記検索結果が格納された前記文書を表示するステップと、を備えることを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、マークアップ言語により構造化された文書を適切に処理する技術を提供することができる。
(前提技術)
図1は、前提技術に係る文書処理装置20の構成を示す。文書処理装置20は、文書内のデータが階層構造を有する複数の構成要素に分類された構造化文書を処理するが、本前提技術では構造化文書の一例としてXML文書を処理する例について説明する。文書処理装置20は、主制御ユニット22、編集ユニット24、DOMユニット30、CSSユニット40、HTMLユニット50、SVGユニット60、及び変換部の一例であるVCユニット80を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
図1は、前提技術に係る文書処理装置20の構成を示す。文書処理装置20は、文書内のデータが階層構造を有する複数の構成要素に分類された構造化文書を処理するが、本前提技術では構造化文書の一例としてXML文書を処理する例について説明する。文書処理装置20は、主制御ユニット22、編集ユニット24、DOMユニット30、CSSユニット40、HTMLユニット50、SVGユニット60、及び変換部の一例であるVCユニット80を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
主制御ユニット22は、プラグインのロードや、コマンド実行のフレームワークを提供する。編集ユニット24は、XML文書を編集するためのフレームワークを提供する。文書処理装置20における文書の表示及び編集機能は、プラグインにより実現されており、文書の種別に応じて必要なプラグインが主制御ユニット22又は編集ユニット24によりロードされる。主制御ユニット22又は編集ユニット24は、処理対象となるXML文書の名前空間を参照して、XML文書がいずれのボキャブラリにより記述されているかを判別し、そのボキャブラリに対応した表示又は編集用のプラグインをロードして表示や編集を実行させる。例えば、文書処理装置20には、HTML文書の表示及び編集を行うHTMLユニット50、SVG文書の表示及び編集を行うSVGユニット60など、ボキャブラリ(タグセット)ごとに表示系及び編集系がプラグインとして実装されており、HTML文書を編集するときはHTMLユニット50が、SVG文書を編集するときはSVGユニット60が、それぞれロードされる。後述するように、HTMLとSVGの双方の構成要素を含む複合文書が処理対象となっている場合は、HTMLユニット50とSVGユニット60の双方がロードされる。
このような構成によれば、ユーザは、必要な機能のみを選択してインストールし、後から適宜機能を追加又は削除することができるので、プログラムを格納するハードディスクなどの記録媒体の記憶領域を有効に活用することができ、また、プログラム実行時にも、メモリの浪費を防ぐことができる。また、機能拡張性に優れており、開発主体としても、プラグインの形で新たなボキャブラリに対応することが可能なので開発が容易となり、ユーザとしても、プラグインの追加により容易かつ低コストにて機能を追加することができる。
編集ユニット24は、ユーザインターフェースを介してユーザから編集指示のイベントを受け付け、そのイベントを適切なプラグインなどに通知するともに、イベントの再実行(リドゥ)又は実行の取消(アンドゥ)などの処理を制御する。
DOMユニット30は、DOM提供部32、DOM生成部34、及び出力部36を含み、XML文書をデータとして扱うときのアクセス方法を提供するために定められた文書オブジェクトモデル(Document Object Model:DOM)に準拠した機能を実現する。DOM提供部32は、編集ユニット24に定義されているインタフェースを満たすDOMの実装である。DOM生成部34は、XML文書からDOMツリーを生成する。後述するように、処理対象となるXML文書が、VCユニット80により他のボキャブラリにマッピングされる場合は、マッピング元のXML文書に対応するソースツリーと、マッピング先のXML文書に対応するデスティネーションツリーが生成される。出力部36は、例えば編集終了時に、DOMツリーをXML文書として出力する。
CSSユニット40は、CSS解析部42、CSS提供部44、及びレンダリング部46を含み、CSSに準拠した表示機能を提供する。CSS解析部42は、CSSの構文を解析するパーサの機能を有する。CSS提供部44は、CSSオブジェクトの実装であり、DOMツリーに対してCSSのカスケード処理を行う。レンダリング部46は、CSSのレンダリングエンジンであり、CSSを用いてレイアウトされるHTMLなどのボキャブラリで記述された文書の表示に用いられる。
HTMLユニット50は、HTMLにより記述された文書を表示又は編集する。SVGユニット60は、SVGにより記述された文書を表示又は編集する。これらの表示/編集系は、プラグインの形で実現されており、それぞれ、文書を表示する表示部(Canvas)56、66、編集指示を含むイベントを送受信する制御部(Editlet)52、62、編集コマンドを受けてDOMに対して編集を行う編集部(Zone)54、64を備える。制御部52又は62が外部からDOMツリーの編集コマンドを受け付けると、編集部54又は64がDOMツリーを変更し、表示部56又は66が表示を更新する。これらは、MVC(Model-View-Controller)と呼ばれるフレームワークに類似する構成をとっており、概ね、表示部56及び66が「View」に、制御部52及び62が「Controller」に、編集部54及び64とDOMの実体が「Model」に、それぞれ対応する。本前提技術の文書処理装置20では、XML文書をツリー表示形式で編集するだけでなく、それぞれのボキャブラリに応じた編集を可能とする。例えば、HTMLユニット50は、HTML文書をワードプロセッサに類似した方式で編集するためのユーザインターフェースを提供し、SVGユニット60は、SVG文書を画像描画ツールに類似した方式で編集するためのユーザインターフェースを提供する。
VCユニット80は、マッピング部82、定義ファイル取得部84、及び定義ファイル生成部86を含み、あるボキャブラリにより記述された文書を、他のボキャブラリにマッピングすることにより、マッピング先のボキャブラリに対応した表示編集用プラグインで文書を表示又は編集するためのフレームワークを提供する。本前提技術では、この機能を、ボキャブラリコネクション(Vocabulary Connection:VC)と呼ぶ。定義ファイル取得部84は、マッピングの定義を記述したスクリプトファイルを取得する。この定義ファイルは、ノードごとに、ノード間の対応(コネクション)を記述する。このとき、各ノードの要素値や属性値の編集の可否を指定してもよい。また、ノードの要素値や属性値を用いた演算式を記述してもよい。これらの機能については、後で詳述する。マッピング部82は、定義ファイル取得部84が取得したスクリプトファイルを参照して、DOM生成部34にデスティネーションツリーを生成させ、ソースツリーとデスティネーションツリーの対応関係を管理する。定義ファイル生成部86は、ユーザが定義ファイルを生成するためのグラフィカルユーザインターフェースを提供する。
VCユニット80は、ソースツリーとデスティネーションツリーの間のコネクションを監視し、表示を担当するプラグインにより提供されるユーザインタフェースを介してユーザから編集指示を受け付けると、まずソースツリーの該当するノードを変更する。DOMユニット30が、ソースツリーが変更された旨のミューテーションイベントを発行すると、VCユニット80は、そのミューテーションイベントを受けて、ソースツリーの変更にデスティネーションツリーを同期させるべく、変更されたノードに対応するデスティネーションツリーのノードを変更する。デスティネーションツリーを表示/編集するプラグイン、例えばHTMLユニット50は、デスティネーションツリーが変更された旨のミューテーションイベントを受けて、変更されたデスティネーションツリーを参照して表示を更新する。このような構成により、少数のユーザにより利用されるローカルなボキャブラリにより記述された文書であっても、他のメジャーなボキャブラリに変換することで、文書を表示することができるとともに、編集環境が提供される。
文書処理装置20により文書を表示又は編集する動作について説明する。文書処理装置20が処理対象となる文書を読み込むと、DOM生成部34が、そのXML文書からDOMツリーを生成する。また、主制御ユニット22又は編集ユニット24は、名前空間を参照して文書を記述しているボキャブラリを判別する。そのボキャブラリに対応したプラグインが文書処理装置20にインストールされている場合は、そのプラグインをロードして、文書を表示/編集させる。プラグインがインストールされていない場合は、マッピングの定義ファイルが存在するか否かを確認する。定義ファイルが存在する場合、定義ファイル取得部84が定義ファイルを取得し、その定義に従って、デスティネーションツリーが生成され、マッピング先のボキャブラリに対応するプラグインにより文書が表示/編集される。複数のボキャブラリを含む複合文書である場合は、後述するように、それぞれのボキャブラリに対応したプラグインにより、文書の該当箇所がそれぞれ表示/編集される。定義ファイルが存在しない場合は、文書のソース又はツリー構造を表示し、その表示画面において編集が行われる。
図2は、処理対象となるXML文書の例を示す。このXML文書は、生徒の成績データを管理するために用いられる。XML文書のトップノードである構成要素「成績」は、配下に、生徒ごとに設けられた構成要素「生徒」を複数有する。構成要素「生徒」は、属性値「名前」と、子要素「国語」、「数学」、「理科」、「社会」を有する。属性値「名前」は、生徒の名前を格納する。構成要素「国語」、「数学」、「理科」、「社会」は、それぞれ、国語、数学、理科、社会の成績を格納する。例えば、名前が「A」である生徒の国語の成績は「90」、数学の成績は「50」、理科の成績は「75」、社会の成績は「60」である。以下、この文書で使用されているボキャブラリ(タグセット)を、「成績管理ボキャブラリ」と呼ぶ。
本前提技術の文書処理装置20は、成績管理ボキャブラリの表示/編集に対応したプラグインを有しないので、この文書をソース表示、ツリー表示以外の方法で表示するためには、前述したVC機能が用いられる。すなわち、成績管理ボキャブラリを、プラグインが用意された別のボキャブラリ、例えば、HTMLやSVGなどにマッピングするための定義ファイルを用意する必要がある。ユーザ自身が定義ファイルを作成するためのユーザインターフェースについては後述することにして、ここでは、既に定義ファイルが用意されているとして説明を進める。
図3は、図2に示したXML文書をHTMLで記述された表にマッピングする例を示す。図3の例では、成績管理ボキャブラリの「生徒」ノードを、HTMLにおける表(「TABLE」ノード)の行(「TR」ノード)に対応づけ、各行の第1列には属性値「名前」を、第2列には「国語」ノードの要素値を、第3列には「数学」ノードの要素値を、第4列には「理科」ノードの要素値を、第5列には「社会」ノードの要素値を、それぞれ対応付ける。これにより、図2に示したXML文書を、HTMLの表形式で表示することができる。また、これらの属性値及び要素値は、編集可能であることが指定されており、ユーザがHTMLによる表示画面上で、HTMLユニット50の編集機能により、これらの値を編集することができる。第6列には、国語、数学、理科、社会の成績の加重平均を算出する演算式が指定されており、生徒の成績の平均点が表示される。このように、定義ファイルに演算式を指定可能とすることにより、より柔軟な表示が可能となり、編集時のユーザの利便性を向上させることができる。なお、第6列は、編集不可であることが指定されており、平均点のみを個別に編集することができないようにしている。このように、マッピング定義において、編集の可否を指定可能とすることにより、ユーザの誤操作を防ぐことができる。
図4(a)及び図4(b)は、図2に示したXML文書を図3に示した表にマッピングするための定義ファイルの例を示す。この定義ファイルは、定義ファイル用に定義されたスクリプト言語により記述される。定義ファイルには、コマンドの定義と、表示のテンプレートが記述されている。図4(a)(b)の例では、コマンドとして、「生徒の追加」と「生徒の削除」が定義されており、それぞれ、ソースツリーにノード「生徒」を挿入する操作と、ソースツリーからノード「生徒」を削除する操作が対応付けられている。また、テンプレートとして、表の第1行に「名前」、「国語」などの見出しが表示され、第2行以降に、ノード「生徒」の内容が表示されることが記述されている。ノード「生徒」の内容を表示するテンプレート中、「text-of」と記述された項は「編集可能」であることを意味し、「value-of」と記述された項は「編集不可能」であることを意味する。また、ノード「生徒」の内容を表示する行のうち、第6列には、「(src:国語 + src:数学 + src:理科 + src:社会) div 4」という計算式が記述されており、生徒の成績の平均が表示されることを意味する。
図5は、図2に示した成績管理ボキャブラリで記述されたXML文書を、図3に示した対応によりHTMLにマッピングして表示した画面の例を示す。表90の各行には、左から、各生徒の名前、国語の成績、数学の成績、理科の成績、社会の成績、及び平均点が表示されている。ユーザは、この画面上で、XML文書を編集することができる。たとえば、第2行第3列の値を「70」に変更すると、このノードに対応するソースツリーの要素値、すなわち、生徒「B」の数学の成績が「70」に変更される。このとき、VCユニット80は、デスティネーションツリーをソースツリーに追従させるべく、デスティネーションツリーの該当箇所を変更し、HTMLユニット50が、変更されたデスティネーションツリーに基づいて表示を更新する。したがって、画面上の表においても、生徒「B」の数学の成績が「70」に変更され、更に、平均点が「55」に変更される。
図5に示した画面には、図4(a)(b)に示した定義ファイルに定義されたように、「生徒の追加」及び「生徒の削除」のコマンドがメニューに表示される。ユーザがこれらのコマンドを選択すると、ソースツリーにおいて、ノード「生徒」が追加又は削除される。このように、本前提技術の文書処理装置20では、階層構造の末端の構成要素の要素値を編集するのみではなく、階層構造を編集することも可能である。このようなツリー構造の編集機能は、コマンドの形でユーザに提供されてもよい。また、例えば、表の行を追加又は削除するコマンドが、ノード「生徒」を追加又は削除する操作に対応づけられてもよい。また、他のボキャブラリを埋め込むコマンドがユーザに提供されてもよい。この表を入力用テンプレートとして、穴埋め形式で新たな生徒の成績データを追加することもできる。以上のように、VC機能により、HTMLユニット50の表示/編集機能を利用しつつ、成績管理ボキャブラリで記述された文書を編集することが可能となる。
図6は、ユーザが定義ファイルを生成するために、定義ファイル生成部86がユーザに提示するグラフィカルユーザインタフェースの例を示す。画面左側の領域91には、マッピング元のXML文書がツリー表示されている。画面右側の領域92には、マッピング先のXML文書の画面レイアウトが示されている。この画面レイアウトは、HTMLユニット50により編集可能となっており、ユーザは、画面右側の領域92において、文書を表示するための画面レイアウトを作成する。そして、例えば、マウスなどのポインティングデバイスにより、画面左側の領域91に表示されたマッピング元のXML文書のノードを、画面右側の領域92に表示されたHTMLによる画面レイアウト中へドラッグ&ドロップ操作を行うことにより、マッピング元のノードと、マッピング先のノードとのコネクションが指定される。例えば、要素「生徒」の子要素である「数学」を、HTML画面の表90の第1行第3列にドロップすると、「数学」ノードと、3列目の「TD」ノードの間にコネクションが張られる。各ノードには、編集の可否が指定できるようになっている。また、表示画面中には、演算式を埋め込むこともできる。画面の編集が終わると、定義ファイル生成部86は、画面レイアウトとノード間のコネクションを記述した定義ファイルを生成する。
XHTML、MathML、SVGなどの主要なボキャブラリに対応したビューワやエディタは既に開発されているが、図2に示した文書のようなオリジナルなボキャブラリで記述された文書に対応したビューワやエディタを開発するのは現実的でない。しかし、上記のように、他のボキャブラリにマッピングするための定義ファイルを作成すれば、ビューワやエディタを開発しなくても、VC機能を利用して、オリジナルなボキャブラリで記述された文書を表示・編集することができる。
図7は、定義ファイル生成部86により生成された画面レイアウトの他の例を示す。図7の例では、成績管理ボキャブラリで記述されたXML文書を表示するための画面に、表90と、円グラフ93が作成されている。この円グラフ93は、SVGにより記述される。後述するように、本前提技術の文書処理装置20は、一つのXML文書内に複数のボキャブラリを含む複合文書を処理することができるので、この例のように、HTMLで記述された表90と、SVGで記述された円グラフ93とを、一つの画面上に表示することができる。
図8は、文書処理装置20によるXML文書の編集画面の一例を示す。図8の例では、一つの画面が複数に分割されており、それぞれの領域において、処理対象となるXML文書を異なる複数の表示形式により表示している。領域94には、文書のソースが表示されており、領域95には、文書のツリー構造が表示されており、領域96には、図5に示したHTMLにより記述された表が表示されている。これらのいずれの画面上においても、文書の編集が可能であり、いずれかの画面上でユーザが編集を行うと、ソースツリーが変更され、それぞれの画面の表示を担当するプラグインが、ソースツリーの変更を反映すべく画面を更新する。具体的には、ソースツリーの変更を通知するミューテーションイベントのリスナーとして、それぞれの編集画面の表示を担当するプラグインの表示部を登録しておき、いずれかのプラグイン又はVCユニット80によりソースツリーが変更されたときに、編集画面を表示中の全ての表示部が、発行されたミューテーションイベントを受け取って画面を更新する。このとき、プラグインがVC機能により表示を行っている場合は、VCユニット80がソースツリーの変更に追従してデスティネーションツリーを変更した後、変更されたデスティネーションツリーを参照してプラグインの表示部が画面を更新する。
例えば、ソース表示及びツリー表示を、専用のプラグインにより実現している場合は、ソース表示用プラグインとツリー表示用プラグインは、デスティネーションツリーを用いず、直接ソースツリーを参照して表示を行う。この場合、いずれかの画面において編集が行われると、ソース表示用プラグインとツリー表示用プラグインは、変更されたソースツリーを参照して画面を更新し、領域96の画面を担当しているHTMLユニット50は、ソースツリーの変更に追従して変更されたデスティネーションツリーを参照して画面を更新する。
ソース表示及びツリー表示は、VC機能を利用して実現することもできる。すなわち、ソース、ツリー構造をHTMLによりレイアウトし、そのHTMLにXML文書をマッピングして、HTMLユニット50により表示してもよい。この場合、ソース形式、ツリー形式、表形式の3つのデスティネーションツリーが生成されることになる。いずれかの画面において編集が行われると、VCユニット80は、ソースツリーを変更した後、ソース形式、ツリー形式、表形式の3つのデスティネーションツリーをそれぞれ変更し、HTMLユニット50は、それらのデスティネーションツリーを参照して、3つの画面を更新する。
このように、一つの画面上に複数の表示形式で文書を表示することにより、ユーザの利便性を向上させることができる。例えば、ユーザは、ソース表示又はツリー表示により文書の階層構造を把握しつつ、表90などを用いて視覚的に分かりやすい形式で文書を表示し、編集することができる。上記の例では、一つの画面を分割して複数の表示形式による画面を同時に表示したが、一つの画面に一つの表示形式による画面を表示し、表示形式をユーザの指示により切り替え可能としてもよい。この場合、主制御ユニット22が、ユーザから表示形式の切り替え要求を受け付け、各プラグインに指示して表示を切り替える。
図9は、文書処理装置20により編集されるXML文書の他の例を示す。図9に示したXML文書では、SVG文書の「foreignObject」タグの中にXHTML文書が埋め込まれており、さらに、XHTML文書の中にMathMLで記述された数式が入っている。このような場合、編集ユニット24が、名前空間を参照して、適切な表示系に描画作業を振り分ける。図9の例では、編集ユニット24は、まず、SVGユニット60に四角形を描画させ、つづいて、HTMLユニット50にXHTML文書を描画させる。さらに、図示しないMathMLユニットに、数式を描画させる。こうして、複数のボキャブラリを包含する複合文書が適切に表示される。表示結果を図10に示す。
文書編集中、カーソル(キャリッジ)の位置に応じて、表示されるメニューを切り替えてもよい。すなわち、カーソルが、SVG文書が表示された領域内に存在するときは、SVGユニット60が提供するメニュー、又はSVG文書をマッピングするための定義ファイルに定義されたコマンドを表示し、カーソルが、XHTML文書が表示された領域内に存在するときは、HTMLユニット50が提供するメニュー、又はXHTML文書をマッピングするための定義ファイルに定義されたコマンドを表示する。これにより、編集位置に応じて適切なユーザインターフェースを提供することができる。
複合文書において、あるボキャブラリに対応する適切なプラグイン又はマッピング定義ファイルがなかった場合は、そのボキャブラリにより記述された部分は、ソース表示又はツリー表示されてもよい。従来、ある文書に他の文書を埋め込んだ複合文書を開くとき、埋め込まれた文書を表示するアプリケーションがインストールされていないと、その内容を表示することができなかったが、本前提技術では、表示用のアプリケーションが存在しなくても、テキストデータにより構成されたXML文書をソース表示又はツリー表示することにより内容を把握することができる。これは、テキストベースであるXMLなどの文書ならではの特徴といえる。
データがテキストベースで記述されることの他の利点として、例えば、複合文書中の、あるボキャブラリにより記述される部分において、同一文書内の他のボキャブラリで記述された部分のデータを参照してもよい。また、文書内で検索を実行する時に、SVGなどの図に埋め込まれた文字列も検索対象とすることができる。
あるボキャブラリにより記述された文書内に、他のボキャブラリのタグを用いてもよい。このXML文書は、妥当(valid)ではないが、整形式(well-formed)であれば、有効なXML文書として処理可能である。この場合、挿入された他のボキャブラリのタグは、定義ファイルによりマッピングされてもよい。例えば、XHTML文書中に、「重要」、「最重要」などのタグを使用し、これらのタグで囲まれた部分を強調表示してもよいし、重要度の順にソートして表示してもよい。
図10に示した編集画面において、ユーザにより文書が編集されると、編集された部分を担当するプラグイン又はVCユニット80がソースツリーを変更する。ソースツリーには、ノードごとにミューテーションイベントのリスナーを登録できるようになっており、通常は、各ノードが属するボキャブラリに対応したプラグインの表示部又はVCユニット80がリスナーとして登録される。DOM提供部32は、ソースツリーが変更されると、変更されたノードから上位の階層へたどって、登録されたリスナーがあれば、そのリスナーへミューテーションイベントを発行する。例えば、図9に示した文書において、<html>ノードの下位のノードが変更された場合、<html>ノードにリスナーとして登録されたHTMLユニット50にミューテーションイベントが通知されるとともに、その上位の<svg>ノードにリスナーとして登録されたSVGユニット60にもミューテーションイベントが通知される。このとき、HTMLユニット50は、変更されたソースツリーを参照して表示を更新する。SVGユニット60は、自身のボキャブラリに属するノードが変更されていないので、ミューテーションイベントを無視してもよい。
編集の内容によっては、HTMLユニット50による表示の更新に伴って、全体のレイアウトが変わる可能性がある。この場合は、画面のレイアウトを管理する構成、例えば最上位のノードの表示を担当するプラグインにより、プラグインごとの表示領域のレイアウトが更新される。例えば、HTMLユニット50による表示領域が以前より大きくなった場合、HTMLユニット50は、まず自身の担当する部分を描画して、表示領域の大きさを決定する。そして、画面のレイアウトを管理する構成に、変更後の表示領域の大きさを通知し、レイアウトの更新を依頼する。画面のレイアウトを管理する構成は、通知を受けて、プラグインごとの表示領域を再レイアウトする。こうして、編集された部分の表示が適切に更新されるとともに、画面全体のレイアウトが更新される。
(実施の形態)
実施の形態では、データベースなどに蓄積されたデータを検索するインタフェースと検索結果を文書に埋め込み、検索結果を処理して様々なビューで表示する技術を提案する。
実施の形態では、データベースなどに蓄積されたデータを検索するインタフェースと検索結果を文書に埋め込み、検索結果を処理して様々なビューで表示する技術を提案する。
図11は、実施の形態に係る文書処理システムの構成を示す。文書処理システム3000は、XMLデータを蓄積したXMLオブジェクトリポジトリサーバ3002と、XMLオブジェクトリポジトリサーバ3002に蓄積されたXMLデータを利用した文書を処理する文書処理装置100を含む。XMLオブジェクトリポジトリサーバ3002及び文書処理装置100は、ネットワーク3004により接続されている。文書処理装置100は、ネットワーク3004を介して、XMLオブジェクトリポジトリサーバ3002に検索要求を送り、XMLオブジェクトリポジトリサーバ3002から検索結果を取得し、検索結果を文書に格納する。
図12は、実施の形態に係る文書処理装置の構成を示す。文書処理装置100は、前提技術で説明した文書処理装置20の構成に加えて、ネットワーク3004を介した通信を制御する通信部71と、XMLオブジェクトリポジトリサーバ3002に対する検索要求や検索結果などを記述するためのタグセットで記述されたデータを処理するオブジェクトリポジトリユニット70とを更に備える。その他の構成及び動作は、前提技術と同様である。
オブジェクトリポジトリユニット70は、XMLオブジェクトリポジトリサーバ3002に蓄積されたデータを処理するためのタグセットで記述された文書を処理する。オブジェクトリポジトリユニット70は、制御部72、編集部74、表示部76、検索要求送信部78、及び検索結果取得部79を含む。表示部76は、文書中に含まれる、オブジェクトリポジトリ用のタグセットで記述されたデータを表示する。表示部76は、検索条件表示部と検索結果表示部の機能を有しており、検索条件を記述したデータは、検索用のユーザインタフェースの形式で表示し、検索結果を記述したデータは、検索の内容に適した形式、例えばリスト形式、表形式、ディレクトリツリー形式などで表示する。制御部72は、ユーザインタフェース形式で表示された検索条件を編集したり、検索を実行するためのコマンドやメニューなどを提示し、ユーザからの操作指示を受け付ける。編集部74は、検索条件を編集する要求を受け付け、DOMユニット30に保持された文書のDOMを編集し、検索条件を編集する。
検索要求送信部78は、制御部72がユーザから検索を実行する要求を受け付けたときに、検索用のユーザインタフェースを介して編集された検索条件をXMLオブジェクトリポジトリサーバ3002へ送信し、検索の実行を要求する。検索結果取得部79は、XMLオブジェクトリポジトリサーバ3002から検索結果を取得し、DOMユニット30に保持された文書の、検索結果を記述するためのタグセットのノードに格納する。
検索結果は、文書中に含まれる、オブジェクトリポジトリ用のタグセット以外のタグセットで記述されたデータから参照可能である。したがって、文書中に、検索結果を表形式、スプレッドシート形式、グラフ形式などで表示するためのデータを埋め込んでおけば、それらのデータを処理する処理系により、検索結果を様々な形式で表示させることができる。
図13(a)(b)は、サンプル文書を示す。このサンプル文書は、オブジェクトリポジトリ用のボキャブラリで記述された、XMLオブジェクトリポジトリサーバ3002に蓄積されたデータを扱う文書を作成するときのテンプレートである。編集部74は、ユーザから、XMLオブジェクトリポジトリサーバ3002に蓄積されたデータを検索するインタフェースを文書に挿入する要求を受け付けたときに、このテンプレートを読み出して文書に挿入する。
図14は、図13(a)(b)に示したサンプル文書が表示された画面4000の例を示す。表示部76は、サンプル文書に含まれる、オブジェクトリポジトリ用のタグセットで記述されたデータのうち、検索条件を記述したデータを、ユーザインタフェース形式で表示する。図13(a)(b)に示したサンプル文書はテンプレートであり、まだ検索条件が格納されていないので、検索条件が記入される前のユーザインタフェース画面が表示されている。ユーザがこの画面を用いて検索条件を編集すると、編集部74は、文書中のデータを編集する。ユーザが検索条件を編集して、実行ボタンをクリックしたり、文書をリロードしたりするなどして、検索の実行を要求すると、検索要求送信部78が検索条件をXMLオブジェクトリポジトリサーバ3002へ送信する。検索結果取得部79は、XMLオブジェクトリポジトリサーバ3002から検索結果を取得して文書に挿入する。検索結果が文書に挿入されると、DOMユニット30からミューテーションイベントがオブジェクトリポジトリユニット70など、検索結果を参照している処理系に通知され、検索結果を表示する画面が更新される。
図15は、表示画面の例を示す。図15に示した例では、検索条件として製品名を指定するフィールドが設けられており、ユーザが製品名を指定すると、検索要求送信部78は、製品の各機能の問題点を記述したXMLデータを蓄積したXMLオブジェクトリポジトリサーバ3002へ、その製品名を含むデータの検索を要求する。検索結果取得部79は、検索結果を取得して文書へ挿入する。この文書には、予め、検索結果を表形式、スプレッドシート形式、グラフ形式で表示するためのデータが埋め込まれている。これらのデータは、それぞれ、表を記述するためのボキャブラリ、スプレッドシートを記述するためのボキャブラリ、グラフを記述するためのボキャブラリで記述されており、それぞれのボキャブラリを処理するコンポーネントにより処理される。そして、これらのボキャブラリで記述されたデータは、オブジェクトリポジトリ用のボキャブラリで記述された検索結果のデータを参照することができるので、検索結果を参照して様々な形式で表示させることができる。
このように、本実施の形態の技術によれば、文書に検索条件を編集するためのインタフェース、取得した検索結果、検索結果を様々な形式で表示するためのデータを埋め込むことができるので、検索条件や検索結果を表示するビューなどを再利用することができ、ユーザの利便性を飛躍的に向上させることができる。また、文書を読み込むときや、実行ボタンを押したときなど、任意のタイミングで検索を実行し、そのときの検索結果を様々な形式で表示させることができる。
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
実施の形態では、XML文書を処理する例について説明したが、本実施の形態の文書処理装置100は、他のマークアップ言語、例えば、SGML、HTMLなどで記述された文書も同様に処理可能である。
20 文書処理装置、22 主制御ユニット、24 編集ユニット、30 DOMユニット、32 DOM提供部、34 DOM生成部、36 出力部、40 CSSユニット、42 CSS解析部、44 CSS提供部、46 レンダリング部、50 HTMLユニット、52,62 制御部、54,64 編集部、56,66 表示部、60 SVGユニット、70 オブジェクトリポジトリユニット、71 通信部、72 制御部、74 編集部、76 表示部、78 検索要求送信部、79 検索結果取得部、80 VCユニット、82 マッピング部、84 定義ファイル取得部、86 定義ファイル生成部、100 文書処理装置、3000 文書処理システム、3002 XMLオブジェクトリポジトリサーバ、3004 ネットワーク。
Claims (6)
- 文書中に含まれる、データの検索に関する条件を記述するためのタグセットで記述されたデータを取得して、取得したデータを、前記条件を受け付けるためのユーザインタフェースの形式で表示する検索条件表示部と、
前記ユーザインタフェースを介して、前記条件を編集する要求を受け付けたときに、前記文書中の前記データの検索に関する条件を記述するためのタグセットで記述されたデータを編集する検索条件編集部と、
データベースに対して前記条件を送信する検索要求送信部と、
前記データベースから検索結果を取得して前記文書中に格納する検索結果取得部と、
前記検索結果が格納された前記文書を表示する検索結果表示部と、
を備えることを特徴とする文書処理装置。 - 前記検索結果は、前記文書中に含まれる別のタグセットで記述されたデータから参照可能であることを特徴とする請求項1に記載の文書処理装置。
- 前記別のタグセットで記述されたデータを処理する処理系を更に備え、
前記処理系は、前記検索結果を処理して表示する機能を有することを特徴とする請求項2に記載の文書処理装置。 - 前記処理系は、前記検索結果を、表、グラフ、又はスプレッドシート形式で表示する機能を有することを特徴とする請求項3に記載の文書処理装置。
- 文書中に含まれる、データの検索に関する条件を記述するためのタグセットで記述されたデータを取得して、取得したデータを、前記条件を受け付けるためのユーザインタフェースの形式で表示するステップと、
前記ユーザインタフェースを介して、前記条件を編集する要求を受け付けたときに、前記文書中の前記データの検索に関する条件を記述するためのタグセットで記述されたデータを編集するステップと、
データベースに対して前記条件を送信するステップと、
前記データベースから検索結果を取得して前記文書中に格納するステップと、
前記検索結果が格納された前記文書を表示するステップと、
を備えることを特徴とする文書処理方法。 - 文書中に含まれる、データの検索に関する条件を記述するためのタグセットで記述されたデータを取得して、取得したデータを、前記条件を受け付けるためのユーザインタフェースの形式で表示する機能と、
前記ユーザインタフェースを介して、前記条件を編集する要求を受け付けたときに、前記文書中の前記データの検索に関する条件を記述するためのタグセットで記述されたデータを編集する機能と、
データベースに対して前記条件を送信する機能と、
前記データベースから検索結果を取得して前記文書中に格納する機能と、
前記検索結果が格納された前記文書を表示する機能と、
をコンピュータに実現させることを特徴とするプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007064250A JP2008225931A (ja) | 2007-03-13 | 2007-03-13 | 文書処理装置及び文書処理方法 |
PCT/JP2008/000551 WO2008111313A1 (ja) | 2007-03-13 | 2008-03-12 | 文書処理装置及び文書処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007064250A JP2008225931A (ja) | 2007-03-13 | 2007-03-13 | 文書処理装置及び文書処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008225931A true JP2008225931A (ja) | 2008-09-25 |
Family
ID=39759256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007064250A Pending JP2008225931A (ja) | 2007-03-13 | 2007-03-13 | 文書処理装置及び文書処理方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2008225931A (ja) |
WO (1) | WO2008111313A1 (ja) |
-
2007
- 2007-03-13 JP JP2007064250A patent/JP2008225931A/ja active Pending
-
2008
- 2008-03-12 WO PCT/JP2008/000551 patent/WO2008111313A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2008111313A1 (ja) | 2008-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008234370A (ja) | 文書処理装置及び文書処理方法 | |
JP2008097215A (ja) | データ処理装置 | |
JPWO2006137563A1 (ja) | データ処理装置及びデータ処理方法 | |
JPWO2006137562A1 (ja) | 文書処理装置及び文書処理方法 | |
JPWO2007081017A1 (ja) | 文書処理装置 | |
JPWO2005098660A1 (ja) | 文書処理装置及び文書処理方法 | |
JPWO2005098658A1 (ja) | 文書処理装置及び文書処理方法 | |
JPWO2006051869A1 (ja) | 文書処理装置及び文書処理方法 | |
JPWO2007132568A1 (ja) | データ処理サーバ及びデータ処理方法 | |
JPWO2005098662A1 (ja) | 文書処理装置及び文書処理方法 | |
JPWO2006051974A1 (ja) | 文書処理装置および文書処理方法 | |
JP4566196B2 (ja) | 文書処理方法および装置 | |
JPWO2007052680A1 (ja) | 文書処理装置及び文書処理方法 | |
JPWO2005098661A1 (ja) | 文書処理装置及び文書処理方法 | |
JP4627530B2 (ja) | 文書処理方法および装置 | |
JP4417384B2 (ja) | 文書処理装置および文書処理方法 | |
JPWO2007105364A1 (ja) | 文書処理装置及び文書処理方法 | |
JP2007183849A (ja) | 文書処理装置 | |
JPWO2005098659A1 (ja) | 文書処理装置及び文書処理方法 | |
JP4719743B2 (ja) | グラフ処理装置 | |
JP2007532986A (ja) | 複数のマークアップ表現における文書処理 | |
JP2007532987A (ja) | マークアップ言語を用いたデータ及び文書の処理 | |
JP2009223882A (ja) | データ処理装置及びデータ処理方法 | |
JPWO2006118287A1 (ja) | 文書処理装置及び文書処理方法 | |
JP2008225931A (ja) | 文書処理装置及び文書処理方法 |