Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4526833B2 - 情報処理システム、蓄積装置、処理装置、ならびに、情報処理方法 - Google Patents
[go: Go Back, main page]

JP4526833B2 - 情報処理システム、蓄積装置、処理装置、ならびに、情報処理方法 - Google Patents

情報処理システム、蓄積装置、処理装置、ならびに、情報処理方法 Download PDF

Info

Publication number
JP4526833B2
JP4526833B2 JP2004043407A JP2004043407A JP4526833B2 JP 4526833 B2 JP4526833 B2 JP 4526833B2 JP 2004043407 A JP2004043407 A JP 2004043407A JP 2004043407 A JP2004043407 A JP 2004043407A JP 4526833 B2 JP4526833 B2 JP 4526833B2
Authority
JP
Japan
Prior art keywords
subtree
node
storage device
subtrees
result
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
JP2004043407A
Other languages
English (en)
Other versions
JP2005234900A (ja
Inventor
正人 武市
振江 胡
伸明 和家
雅文 原
教雄 大島
Original Assignee
株式会社ジャストシステム
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 株式会社ジャストシステム filed Critical 株式会社ジャストシステム
Priority to JP2004043407A priority Critical patent/JP4526833B2/ja
Publication of JP2005234900A publication Critical patent/JP2005234900A/ja
Application granted granted Critical
Publication of JP4526833B2 publication Critical patent/JP4526833B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、順序木を蓄積する蓄積装置と当該蓄積された順序木を処理する処理装置とからなる情報処理システムにおいて、処理対象となる順序木の通信量を低減するのに好適な情報処理システム、蓄積装置、処理装置、蓄積方法、処理方法、ならびに、これらをコンピュータにて実現するためのプログラムに関する。
従来から、構造化された文書であるXML(eXtensible Markup Language)形式文書を処理する各種の技術が提案されている。
特開2002−182915号公報
[特許文献1]には、XML形式文書をDOM(Document Object Model)技術に基づいて処理する技術が開示されている。DOM技術では、XML文書を順序木構造として扱う。ここで、順序木とは、木構造のうち、共通する親ノードを有する兄弟ノードに順序が付けられているものをいい、DOM技術では、XML文書全体を解析してDOM木としてメモリ上に保存して処理を行う。
しかしながら、XML文書が蓄積される蓄積装置と、XML文書が処理される処理装置とがコンピュータ通信網で接続されているときに、データの多いXML文書を処理したい場合には、処理装置にて多くのメモリを消費するほか、通信によってDOM木をやりとりすることとなるため、通信量が極めて多くなり、処理が遅くなってしまうなどの効率上の問題が生ずる。
本発明は、上記の課題を解決するもので、順序木を蓄積する蓄積装置と当該蓄積された順序木を処理する処理装置とからなる情報処理システムにおいて、処理対象となる順序木の通信量を低減するのに好適な情報処理システム、蓄積装置、処理装置、蓄積方法、処理方法、ならびに、これらをコンピュータにて実現するためのプログラムを提供することを目的とする。
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
本発明の第1の観点に係る情報処理システムは、蓄積装置と、処理装置と、を備え、以下のように構成する。
すなわち、蓄積装置は、記憶部を備える。
ここで、記憶部は、順序木を記憶し、記憶される順序木の各ノードには、当該ノードが参照する当該順序木における他のノードを指定する参照属性情報を付加することができる。
一方、処理装置は、取得要求送信部を備える。
ここで、取得要求送信部は、蓄積装置に記憶される順序木に含まれる部分木の根ノードの位置を指定する取得要求を、蓄積装置に送信する。
さらに、蓄積装置は、取得要求受信部と、抽出部と、対象部分木送信部と、をさらに備える。
ここで、取得要求受信部は、処理装置から送信された取得要求を受信する。
一方、抽出部は、受信された取得要求に指定される位置を根ノードとする部分木(以下「第1部分木」という。)を、記憶される順序木から抽出し、抽出された部分木に参照される部分木(以下「第2部分木」という。)をさらに抽出する。
さらに、対象部分木送信部は、抽出された1つ以上の部分木を処理対象として処理装置に送信する。
ここで、第2部分木とは、
(x)第1部分木に含まれるノードに付加された参照属性情報により参照されるノードを根ノードとする他の部分木、もしくは、
(y)ある第2部分木に含まれるノードに付加された参照属性情報により参照されるノードを根ノードとする他の部分木
をいう。
また、抽出部は、当該抽出された1つ以上の部分木のそれぞれの根ノードに、当該順序木における当該根ノードの位置を指定する位置属性情報を付加する。
一方、処理装置は、対象部分木受信部と、処理生成部と、結果部分木送信部と、をさらに備える。
ここで、対象部分木受信部は、蓄積装置から送信された1つ以上の部分木を受信する。
一方、処理生成部は、受信された1つ以上の部分木に対して所定の処理を行い、新たな1つ以上の部分木を生成する。
さらに、結果部分木送信部は、生成された1つ以上の部分木を処理結果として蓄積装置に送信する。
ここで、処理生成部は、生成される1つ以上の部分木のそれぞれの根ノードに、蓄積装置に蓄積される順序木における当該根ノードの位置を指定する位置属性情報を付加する。
一方、蓄積装置は、結果部分木受信部と、置換更新部と、をさらに備える。
ここで、結果部分木受信部は、処理装置から送信された1つ以上の部分木を受信する。
さらに、置換更新部は、受信された1つ以上の部分木のそれぞれ(以下、それぞれを「置換結果部分木」という。)について、記憶される順序木において、「『当該置換結果部分木の根ノードに付加された位置属性情報に指定される位置』を根ノードとする部分木(以下、「置換対象部分木」という。)」を、当該置換結果部分木に置換して更新する。
また、本発明の情報処理システムは、以下のように構成することができる。
すなわち、蓄積装置において、記憶部に記憶される順序木は、XML形式データであり、蓄積装置と、処理装置と、の間で送信ならびに受信される部分木は、XML形式データであり、当該参照属性情報ならびに当該位置属性情報は、当該根ノードに対応する要素の属性として表現される。
また、本発明の情報処理システムは、以下のように構成することができる。
すなわち、処理装置において、処理生成部は、受信された1つ以上の部分木に含まれる木に対応付けられる要素の内容が、実行可能なプログラムを表現する文字列である場合(以下、当該要素を「実行可能要素」という。)、当該プログラムを実行して、当該実行結果を表す文字列を含む要素(以下、当該要素を「実行結果要素」という。)で、当該実行可能要素に置き換えたものに対応付けられる部分木を生成する。
また、本発明の情報処理システムは、以下のように構成することができる。
すなわち、処理装置において、処理生成部は、受信された1つ以上の部分木に含まれる木に対応付けられる要素の内容が、実行可能なプログラムを表現する文字列である場合(以下、当該要素を「実行可能要素」という。)、当該プログラムを実行して、当該実行結果を表す文字列を含む要素(以下、当該要素を「実行結果要素」という。)を、当該実行可能要素に追加したものに対応付けられる部分木を生成する。
また、本発明の情報処理システムは、以下のように構成することができる。
すなわち、処理装置において、処理生成部は、当該実行可能要素に参照属性情報が付加されている場合、当該参照属性情報に指定される部分木に対応付けられる要素の内容を、当該プログラムにパラメータとして与えて実行させる。
また、本発明の情報処理システムは、「処理装置が当該取得要求送信部を備え、蓄積装置が当該取得要求受信部を備える」のにかえて、蓄積装置は、記憶部に記憶される順序木に含まれる部分木の根ノードの位置を指定する取得要求を他の機器から受信する取得要求受信部を備えるように構成することができる。
ここで、他の機器とは、コンピュータ通信網を介して当該蓄積装置と通信可能に接続される情報処理装置であっても良いし、ユーザから当該位置を指定する指示入力を受け付ける入力装置であっても良い。
本発明のその他の観点に係る蓄積装置は、上記情報処理システムにおける蓄積装置である。
本発明のその他の観点に係る処理装置は、上記情報処理システムにおける処理装置である。
本発明のその他の観点に係る処理方法は、上記蓄積装置と通信し、取得要求送信部と、対象部分木受信部と、処理生成部と、結果部分木送信部と、を備える処理装置にて実行され、取得要求送信工程と、対象部分木受信工程と、処理生成工程と、結果部分木送信工程と、を備え、以下のように構成する。
すなわち、取得要求送信工程では、取得要求送信部が、蓄積装置に記憶される順序木に含まれる部分木の根ノードの位置を指定する取得要求を、蓄積装置に送信する。
一方、対象部分木受信工程では、対象部分木受信部が、蓄積装置から送信された1つ以上の部分木を受信する。
さらに、処理生成工程では、処理生成部が、受信された1つ以上の部分木に対して所定の処理を行い、新たな1つ以上の部分木を生成する。
そして、結果部分木送信工程では、結果部分木送信部が、生成された1つ以上の部分木を処理結果として蓄積装置に送信する。
ここで、処理生成工程では、生成される1つ以上の部分木のそれぞれの根ノードに、蓄積装置に蓄積される順序木における当該根ノードの位置を指定する位置属性情報を付加する。
本発明のその他の観点に係る蓄積方法は、上記処理装置と通信し、記憶部と、取得要求受信部と、抽出部と、対象部分木送信部と、結果部分木受信部と、置換更新部と、を備える蓄積装置にて実行され、取得要求受信工程と、抽出工程と、対象部分木送信工程と、結果部分木受信工程と、置換更新工程と、を備え、以下のように構成する。
すなわち、記憶部は、順序木を記憶し、記憶される順序木の各ノードには、当該ノードが参照する当該順序木における他のノードを指定する参照属性情報を付加することができる。
一方、取得要求受信工程では、取得要求受信部が、処理装置から送信された取得要求を受信する。
さらに、抽出工程では、抽出部が、受信された取得要求に指定される位置を根ノードとする部分木(以下「第1部分木」という。)を、記憶される順序木から抽出し、抽出された部分木に参照される部分木(以下「第2部分木」という。)をさらに抽出する。
そして、対象部分木送信工程では、対象部分木送信部が、抽出された1つ以上の部分木を処理対象として処理装置に送信する。
ここで、第2部分木とは、
(x)第1部分木に含まれるノードに付加された参照属性情報により参照されるノードを根ノードとする他の部分木、もしくは、
(y)ある第2部分木に含まれるノードに付加された参照属性情報により参照されるノードを根ノードとする他の部分木
をいう。
一方、抽出工程では、当該抽出された1つ以上の部分木のそれぞれの根ノードに、当該順序木における当該根ノードの位置を指定する位置属性情報を付加する。
さらに、結果部分木受信工程では、結果部分木受信部が、処理装置から送信された1つ以上の部分木を受信する。
そして、置換更新工程では、置換更新部が、受信された1つ以上の部分木のそれぞれ(以下、それぞれを「置換結果部分木」という。)について、記憶される順序木において、「『当該置換結果部分木の根ノードに付加された位置属性情報に指定される位置』を根ノードとする部分木(以下、「置換対象部分木」という。)」を、当該置換結果部分木に置換して更新する。
本発明のその他の観点に係るプログラムは、コンピュータを、上記蓄積装置の各部として機能させるように構成する。
本発明のその他の観点に係るプログラムは、コンピュータを、上記処理装置の各部として機能させるように構成する。
上記のプログラムは、CD−ROM(Compact Disk Read Only Memory)やFD(Flexible Disk)などの各種の記録媒体に記録することができるほか、インターネットなどのコンピュータ通信網を介して配布することができる。
本発明によれば、順序木を蓄積する蓄積装置と当該蓄積された順序木を処理する処理装置とからなる情報処理システムにおいて、処理対象となる順序木の通信量を低減するのに好適な情報処理システム、蓄積装置、処理装置、蓄積方法、処理方法、ならびに、これらをコンピュータにて実現するためのプログラムを提供することができ、XML形式文書の処理において、通信量や使用メモリ量をできるだけ低減して当該処理を効率良く行うことができるようになる。
以下、添付図面を参照して、本発明の実施の形態について説明する。
図1は、本発明の蓄積装置や処理装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、図1を参照して説明する。
情報処理装置101は、CPU(Central Processing Unit;中央処理ユニット)102によって制御される。情報処理装置101に電源を投入すると、CPU 102は、ROM 103に記憶されたIPL(Initial Program Loader;初期プログラムローダ)を実行する。
IPLは、ハードディスク104、FDドライブ110に装着されたFD、CD−ROMドライブ111に装着されたCD−ROMなどの記録媒体に記憶されたOS(Operating System;オペレーティング・システム)プログラムを読み出して実行するプログラムである。
OSを起動した後、CPU 102は、キーボード105やマウス106などにより入力されたユーザの指示にしたがって、あるいは、ハードディスクなどにあらかじめ記述された設定ファイルの内容にしたがって、ハードディスクなどに記憶されたアプリケーションプログラムを実行する。
当該アプリケーションプログラムを実行することにより、情報処理装置101は、設計支援装置として機能することとなる。
ハードディスク104、FDドライブ110に装着されたFD、CD−ROMドライブ111に装着されたCD−ROMなどの記憶媒体に、各種の情報が記録されることになる。
CPU 102は、このプログラムの実行の際に、RAM 107を一時的な作業用記憶領域として用いる。このほか、一時的な作業用記憶領域として、CPU 102内に設けられたレジスタやキャッシュ(図示せず)が使われる。
プログラムの実行に伴ない、各種の情報をユーザに報告したり、途中経過を見せるため、CPU 102は、液晶ディスプレイやCRT(Cathode Ray Tube)などの表示装置108に当該情報を表示することができる。マウス106による指示操作では、マウス106を移動することにより、画面に表示されたカーソルが移動し、マウス106をクリックすることにより、カーソルが指すメニュー項目を選択することができる。
情報処理装置101は、NIC(Network Interface Card)やモデムなどのインターフェース109を介してインターネットなどのコンピュータ通信網と通信を行うことができる。インターフェース109を介して受信した順序木を処理の対象としたり、抽出したパターンをインターフェース109を介して送信したり、インターフェース109を介して受信したプログラムを実行したり、などができる。
(XML形式データと順序木の関係)
図2は、XML形式データの例を示す説明図である。図3は、これに対応する順序木の構造を示す説明図である。以下、これらの図を参照して説明する。
XML形式データは、<?xml version="1.0"?>のようなXML宣言から始まる。XML宣言とは、XML文書の先頭に付き、その文書がXML文書(XML形式データ)であることを示すための文字列である。
XML形式データは「要素」を含む。要素とは、一般には、開始タグと終了タグとに囲まれるデータであり、図2に示す例では、開始タグ<book:book ...>と終了タグ</book:book>とに囲まれている部分が最も大きな要素となる。開始タグのタグ名によって、当該要素を参照することとする。すなわち、上記要素は「book:book要素」ということになる。
図2に示す例では、book:book要素の中に、以下のような要素が含まれている。
book:content要素
book:chapter要素が2つ
また、book:content要素は、テキスト「目次」を含んでいる。
さらに、最初のbook:chapter要素は、book:title要素を含み、当該book:title要素は、テキスト「Ark2」を含んでいる。
このほか、2番目のbook:chapter要素もまた、book:title要素を含み、当該book:title要素は、code要素を含み、当該code要素は、テキスト「getPtree("abc[1]")」を含んでいる。
このように、要素同士には、包含関係を持たせることができる。
さて、これらの要素は、順序木においては、ノードに対応する。そして、要素同士の包含関係は、順序木における親ノードと子ノードとの関係となる。さらに、各要素に含まれるテキストは、順序木のリーフに対応する。また、図2におけるbook:book要素(最も大きい要素)は、図3における順序木の根ノードに対応することになる。また、ある要素は、当該順序木のうち、当該要素に対応付けられるノードを根ノードとする部分木と等価であり、当該部分木から当該要素全体を復元したり、当該要素から当該部分木を構成したりすることができる。
以下、理解を容易にするため、混乱が生じない限り、要素を指す際に、これに対応するノードを用いたり、ノードを指す際に、これに対応する要素を用いたりすることとする。
なお、リーフのことをテキストノードと呼び、テキストノードには、テキストが対応付けられている、と考える。
さて、XML形式データでは、各要素に付加的な情報を付け加えるために、属性を付与することができる。付与される属性は、開始タグ内に「属性名=属性値」の形式で記述される。
図2に示す例では、以下のように属性が付与されている。たとえば、book:book要素には、属性xmlns:bookに値"http://.../book"が、属性xmlnsに値"http://.../haskell"が、属性xmlns:prtに値"http://xmlns.chimaira.org/pruned-tree"が、それぞれ付与されている。
なお、DOMツリーでは、ある要素の属性は、当該要素に対応するノードの子ノード(属性ノード)として考えるのが一般的であるが、本実施形態では、ある要素に付与される属性は、当該要素に対応するノードに付与される属性として考えるものとする。
このほか、2番目のbook:title要素に、属性名prt:refer-toの属性値として、"abc(/book:book/book:chapter[1]/book:title)"が付与されている。ここで用いられている/book:book/book:chapter[1]/book:titleは、「要素のXPath表現」と呼ばれるものである。
XPathは、XML文書の特定の部分(やその位置)を指し示すものであり、根ノードを/で表現する。以下、親ノードから子ノードへ、目的のノードに至るまで、順に要素名を並べていく。また、兄弟ノードに同じ名前の要素がある場合には、そのインデックス値を[と]で囲んで示す。
したがって、上記のXPathは、「book:book要素の中の1番目のbook:chapter要素の中のbook:title要素」の意味である。
さて、本実施形態では、属性prt:refer-toを用いて、ある要素が別の要素を参照する参照関係を表現する。したがって、当該属性は、「book:book要素の中の2番目のbook:chapter要素の中のbook:title要素」は、「book:book要素の中の1番目のbook:chapter要素の中のbook:title要素」を参照し、当該参照関係に「abc」という名前を付けた、という意味に解釈される。
そして、「book:book要素の中の2番目のbook:chapter要素の中のbook:title要素」は、code要素を含んでおり、code要素のテキストでは、参照関係abcに添字[1]を付加して用いている。これは、本実施形態では、「参照関係abcによって参照される1番目のノード(本例ではテキストノード「Ark2」)を、関数getPtreeに渡して処理し、その結果を用いる」という意味に解釈される。
したがって、図2に示すXML形式データの一部について処理を行いたい場合、「book:book要素の中の2番目のbook:chapter要素の中のbook:title要素」に対して処理を行う際には、「book:book要素の中の1番目のbook:chapter要素の中のbook:title要素」も必要である、ということになる。
このように、参照関係が定義されているXML形式データに対して各種の処理を行う場合には、必ずしもXML形式データの全体が必要なわけではない。「book:book要素の中の1番目のbook:chapter要素の中のbook:title要素」を処理したい場合には、当該要素のみがあれば十分であるし、「book:book要素の中の2番目のbook:chapter要素の中のbook:title要素」を処理したい場合には、当該要素のほか、「book:book要素の中の1番目のbook:chapter要素の中のbook:title要素」が必要である。
本実施形態は、処理に必要な要素のみを抽出して、これを処理対象とすることにより、XML形式データ全体の受渡しをできるだけ避け、必要なデータのみの受け渡しで済ませることとして、処理を実際に行う処理装置におけるメモリ使用量や、処理装置に対して行う通信量を低減させるものである。以下、抽出された処理対象となる要素(部分木)を、「剪定木」と呼ぶこととする。
以下、このようなXML形式データを蓄積している蓄積装置と、蓄積されたXML形式データ(の一部)に対して処理を行う処理装置と、の間で、剪定木がやりとりされる様子について、さらに詳細に説明する。
(全体の処理の流れ)
図4は、本実施形態に係る情報処理システムの概要構成を示す説明図である。本図に示すように、情報処理システム401は、蓄積装置431と、処理装置451と、両者を通信可能に接続する通信経路471と、を備える。
図5は、蓄積装置431と、処理装置451と、の間で、どのように処理が行われるかを示す説明図である。
まず、処理装置451は、蓄積装置431に対して、XML形式データのうち、どの要素を処理したいかをXPath表現で指定する取得要求を送信する(501)。たとえば、ここで、XPath表現で/book:book/book:chapter[2]/book:titleが指定されたものとする。
蓄積装置431は、取得要求を受信すると、これに指定される要素、当該指定された要素が参照する他の要素、当該他の要素が参照するさらに他の要素、…、をすべて抽出する。上記例では、抽出されるのは、/book:book/book:chapter[2]/book:titleのほか、これに参照される/book:book/book:chapter[1]/book:titleである。ここで抽出される要素については、XML形式データにおける位置を表す情報を、属性として付与するものとする。このようにして抽出・属性付与されたものを、剪定木あるいは対象部分木と呼ぶ。
図6は、剪定木の様子を示す説明図である。本図に示すように、抽出される剪定木もまたXML形式データとして表現される。
根ノードは、剪定木である旨を示すprt:pruned-treeという名前の要素となっており、これが2つの要素を含んでいる。この2つの要素は、上記のように抽出された要素のそれぞれに対応する。
剪定木の最初の要素はbook:title要素であるが、これは、XPath表現で指定されたノードに対応するものである。当該要素では、属性prt:refer-toに対して元の要素と同じ値が付与されている。
このほか、当該要素が取得要求にて指定されたものであることを示す属性prt:refered-from="start[0]"が付与されている。
さらに、元のXML形式データにおける当該要素の位置を示す属性prt:original-pathには、*を用いたXPath表現により、*[1]/*[3]/*[1]なる値が割り当てられている。
*を用いたXPath表現では、添字が兄弟ノードにおける順序を表す。図2を参照すればわかる通り、上記の値は、「1番目の要素(book:book要素)に含まれる3番目の要素(2番目のbook:chapter要素)に含まれる1番目の要素(book:title要素)」を意味する。
剪定木の2番目の要素もまた、book:title要素であり、これは、1番目の要素から参照されていることによって抽出されたものである。当該要素のprt:refered-from属性は、値abc[0]となっているが、これは、当該book:title要素が参照関係abcによって抽出された0番目(この添字は0から開始するので「最初」の意。)の要素であることを意味する。
また、prt:original-path属性には、元の場所を意味する値*[1]/*[2]/*[1]が付与されている。
さて、蓄積装置431は、このようにXML形式データとして構成された剪定木を処理対象として、処理装置451に送信する(502)。
剪定木は、上記のような参照関係によって抽出されるものであるので、一般には、XML形式データ全体よりも小さいデータである。また、上記のように、取得要求に指定される要素を処理するのに必要とされる情報をすべて有するものでもある。
さて、処理装置451は、剪定木を受信して、当該剪定木に対して処理を行う。たとえば、上記の例におけるcode要素の評価が、処理に相当する。そして、処理結果として、部分木(結果部分木)を生成する。
code要素に書かれたプログラムgetPtree("abc[1]")であるが、これは、上記の通り、参照関係abcによって示される1番目(「最初」)のテキストノードの文字列が、関数getPtreeに渡される意味となる。
さて、abc[1]のテキストノードのテキストは、その添字から1を減じたabc[0]をprt:refered-from属性の値とする要素を剪定木から探せば得られることになる。1を減じるのは、prt:refered-from属性は0から添字を開始するのに対し、prt:refer-toによって定義される参照関係名を用いる場合には、1から添字を開始するからである。
さて、関数getPtreeが、引数の文字列に文字列"-PrunedTree"を結合する処理を意味するものとする。
結局、getPtreeにパラメータとして渡される文字列は、"Ark2"であるから、getPtreeの処理の結果は、"Ark2-PrunedTree"となる。
そして、code要素の内容にしたがってこの処理が行われたのであるから、code要素を、この処理結果で置換する。
code要素は、剪定木の中には1つしかないから、元のXML形式データのうち、当該処理によって更新しなければならない要素は1つである。
図7は、処理の結果得られる部分木(結果部分木)の様子を示す説明図である。本図を見ればわかる通り、結果部分木は、剪定木から更新すべき部分木(code要素を含む要素)のみを残し、当該部分木のうち、更新内容(code要素により表現されるコードを処理装置451で実行した結果)により、元の内容を置き換えたものである。
結果部分木には、当該結果部分木には、元のXML形式データのうちのいずれの場所を更新するか、の情報が、属性prt:original-pathに値*[1]/*[3]/*[1]によって付与されているが、これは、剪定木におけるprt:original-path属性をそのまま用いたものであり、対象部分木に付与されるノードの位置の情報に由来するものである。
そして、処理装置451は、得られた結果部分木を蓄積装置431に送信する(503)。
蓄積装置431は、結果部分木を受信すると、これに付与されている「位置」の要素を、当該結果部分木に置換して、XML形式データを更新する。
この結果、元のXML形式データは、図8に示すように更新される。本図に示すように、code要素が当該コードを実行した結果Ark2-Prunedに置換されている。
このようにして、必要最小限のデータのやりとりで、XML形式データの処理が可能となるのである。
以下、蓄積装置431ならびに処理装置451の詳細について説明する。
(蓄積装置)
図9は、本実施形態に係る蓄積装置431の概要構成を示す模式図である。図10は、当該蓄積装置431において取得要求が受信された場合に実行される剪定処理の制御の流れを示すフローチャートである。図11は、蓄積装置431において、結果部分木が受信された場合に実行される更新処理の制御の流れを示すフローチャートである。
以下、これらの図を参照して説明する。
蓄積装置431は、記憶部901と、取得要求受信部902と、抽出部903と、対象部分木送信部904と、結果部分木受信部905と、置換更新部906と、を備える。蓄積装置431は、情報処理装置101上に実現される。
まず、記憶部901は、順序木と等価なXML形式データを記憶する。上記のように、当該XML形式データのノード(部分木)には、他のノードを参照する旨の属性(prt:refer-to)を付与することができる。すなわち、ハードディスク104や、RAM 107等は、記憶部901として機能する。
さて、取得要求受信部902が、処理装置451から送信された取得要求を受信すると、剪定処理が開始される。すなわち、CPU 102は、インターフェース109等と共働して、取得要求受信部902として機能する。
まず、抽出部903は、記憶部901に記憶されるXML形式データを走査して、受信された取得要求にXPath表現で指定される位置を根ノードとする部分木(以下「第1部分木」という。)を抽出する(ステップS1001)。
そして、抽出部903は、抽出された部分木にprt:original-path等の属性を付与して(ステップS1002)、当該部分木の元のXML形式データ内における位置の情報を付与する。
次に、抽出部903は、これまでに抽出された部分木に属性prt:refer-toが付与されている場合、参照されている部分木がすでに抽出済みか否かを調べる(ステップS1003)。
そして、抽出部903は、参照されている部分木のうち、抽出されていないものがあれば(ステップS1003;Yes)、これ(以下「第2部分木」という。)を抽出し(ステップS1004)、ステップS1002に戻る。
ステップS1001〜ステップS1003により、「取得要求に指定されたノード」「取得要求に指定されたノードに参照されているノード」「取得要求に指定されたノードに参照されているノードに参照されているノード」…「取得要求に指定されたノードに参照されているノードに参照されているノード…に参照されているノード」のように連鎖的に参照されているノードがすべて抽出されることになる。
すべての部分木が抽出されたら(ステップS1003;No)、抽出部903は、属性が付与された部分木をXML形式データにまとめる(ステップS1005)。
ここで、CPU 102は、RAM 107やハードディスク104と共働して、抽出部903として機能する。
そして、対象部分木送信部904が、まとめられたXML形式データを、処理対象として処理装置451に送信して(ステップS1006)、剪定処理は終了する。
ここで、CPU 102は、インターフェース109等と共働して、対象部分木送信部904として機能する。
一方、結果部分木受信部905が、処理装置451から、XML形式データを受信すると、更新処理が開始される。
すなわち、CPU 102は、インターフェース109等と共働して、結果部分木受信部905として機能する。
まず、受信したXML形式データを分割して、これに含まれる部分木を得る(ステップS1101)。
そして、得られた部分木のそれぞれについて、以下の処理を繰り返す(ステップS1102)。すなわち、まだ処理していない部分木があれば(ステップS1102;Yes)、置換更新部906は、未処理の部分木を1つ選択し(ステップS1103)、当該部分木に指定されているprt:original-path属性の値を取得して(ステップS1104)、記憶部901に記憶されている元のXML形式データ内における位置を同定する。
しかる後、置換更新部906は、当該部分木におけるもはや不要となった属性(prt:refered-fromやprt:original-path)を除去し(ステップS1105)、記憶部901に記憶されている元のXML形式データの同定された位置に除去済みの部分木を書き込んで置換して更新し(ステップS1106)、ステップS1102に戻る。
したがって、CPU 102は、RAM 107やハードディスク104等と共働して、置換更新部906として機能する。
全部分木について処理がされていれば(ステップS1102;No)、更新処理は終了する。
(処理装置)
図12は、本実施形態に係る処理装置451の概要構成を示す模式図である。図13は、当該処理装置451において行われる処理の制御の流れを示すフローチャートである。以下、これらの図を参照して説明する。
処理装置451は、取得要求送信部1201と、対象部分木受信部1202と、処理生成部1203と、結果部分木送信部1204と、を備える。当該処理装置451は、情報処理装置101上に実現される。
まず、取得要求送信部1201は、蓄積装置に記憶される順序木に含まれる部分木の根ノードの位置をXPath表現で指定する取得要求を、蓄積装置に送信する(ステップS1301)。ここで指定されるXPathは、ユーザが指定したものでも良いし、その他のアプリケーションプログラムにより指定されたものであっても良い。
ついで、対象部分木受信部1202が、蓄積装置431から処理対象が送信されるのを待ち、送信された1つ以上の部分木を含むXML形式データを処理対象として受信する(ステップS1302)。
したがって、CPU 102は、インターフェース109と共働して、取得要求送信部1201ならびに対象部分木受信部1202として機能する。
さらに、処理生成部1203は、受信されたXML形式データを部分木に分割し(ステップS1303)、当該部分木のそれぞれについて、未処理のものがあれば(ステップS1304;Yes)いずれかを選択し(ステップS1305)、選択したものに対して所定の処理を行い(ステップS1306)、処理によって内容が変化した部分木を新たな部分木として生成する(ステップS1307)。
たとえば、上記のように、code要素を含む部分木のそれぞれについて、当該code要素に指定されるコードにて参照されるテキストを取得して、これを当該コードにパラメータとして与えて当該コードを実行し、その結果をcode要素と置き換えた部分木を生成することにより、新たな部分木が生成されるのである。
そして、処理できるものがすべて終了したら(ステップS1304;No)生成された部分木(元はcode要素を含んでいた部分木。)を再度XML形式データにまとめる(ステップS1308)。
したがって、CPU 102は、受信された部分木を記憶するRAM 107やハードディスク104等と共働して、処理生成部1203として機能する。
この処理においては、code要素の置換は発生するが、code要素を囲む要素のprt:original-path属性の有無やその値は変化しない。したがって、元のXML形式データのうち、更新すべきものが明確に蓄積装置431に伝達されるのである。
最後に、結果部分木送信部1204が、まとめられたXML形式データ処理結果として蓄積装置に送信する(ステップS1309)。
このように、本実施形態では、XML形式データの処理を、できるだけ少ないメモリ使用量、通信量で行うことができるのである。
(その他の実施例)
以下では、その他の具体的なデータにおいて、蓄積装置431ならびに処理装置451においてどのように処理が行われるか、を例をあげて説明する。
まず最初の例は、参照先が連鎖する場合である。図14は、元のXML形式データ、図15は、剪定木(対象部分木)、図16は、結果部分木、図17は、更新されたXML形式データの様子を示すものである。
本例で、取得要求に/book:book/book:chapter[3]/book:title(*[1]/*[4]/*[1])が指定されたものとすると、参照関係defにより/book:book/book:chapter[2]/book:title(*[1]/*[3]/*[1])が抽出され、これが参照関係abcを有しているので、さらに/book:book/book:chapter[1]/book:title(*[1]/*[2]/*[1])が抽出されるため、剪定木には、book:title要素が3つ含まれることとなっている。
また、getPtreeは、文字列「について」をパラメータに指定されるテキストノードのテキストに結合し、当該結合結果の末尾に「について」が2回繰り返されることとなった場合には、当該末尾で繰り返されている「について」を「について(2)」に置き換え、当該結合結果の末尾が「について(n)」(nは整数)である場合には、当該結合結果の末尾が「について(n+1)」に置き換える処理をあらわすコードであるものとする。
さて、上記のように参照関係が連鎖しているため、getPtree(def[1])を実行するには、getPtree(abc[1])の実行結果が必要となる。そして、getPtree(abc[1])の実行結果は「Ark2について」となるから、getPtree(def[1])の実行結果は「Ark2についてについて」→「Ark2について(2)」となる。
このようにして、第2章、第3章のタイトルが更新される。
次の例は、refer-to属性に参照先が、明示的に複数付与されている場合である。図18は、元のXML形式データ、図19は、剪定木(対象部分木)、図20は、結果部分木、図21は、更新されたXML形式データの様子を示すものである。
本例で、取得要求に/book:book/book:chapter[3]/book:titleが指定されたものとすると、当該ノードには、2つの参照関係abc1とabc2が指定されている。結局剪定木には、部分木が3つ含まれることとなる。
本例のgetPtreeは、2つのパラメータを「、」で区切って結合し、さらに「、…」を末尾に結合する、というものである。
このようにして、第3章のタイトルが更新される。
最後の例は、refer-to属性に付与されている参照先が、XPath形式で添字が省略されているために結果的に複数となる場合である。図22は、元のXML形式データ、図23は、剪定木(対象部分木)、図24は、結果部分木、図25は、更新されたXML形式データの様子を示すものである。
本例で、取得要求に/book:book/book:contentが指定されたものとすると、当該ノードでは、参照関係abcで/book:book/book:chapter/book:titleを参照している。
ところが、本データでは、/book:book/book:chapterが3つあるため、/book:book/book:chapter/book:titleは、/book:book/book:chapter[1]/book:title、/book:book/book:chapter[2]/book:title、/book:book/book:chapter[3]/book:titleの3つを参照していることとなる。
したがって、剪定木は、4つの部分木を含むこととなる。
本例のgetPtreeは、パラメータに指定されるテキストのリスト(参照関係abcのXPathに指定されるテキストノードは、Ark1、Ark2、Ark3の3つであるので、これが並べられたもの)のそれぞれを、book:item要素として並べるものである。
本例では、各章のタイトルを含む目次が生成されることになる。
上記実施形態では、処理装置451は、code要素をその処理結果(getPtree(abc[1])の実行結果)で置き換えていた。しかしながら、code要素による計算を後から再実行したい場合も多い。そのような場合には、code要素を、「code要素と実行結果を表す要素(以下ではresult要素という。)とを順に並べたもの」に置換すれば良い。
また、再計算の際には、処理装置451は、剪定木において、code要素とresult要素とが順に並んでいる場合には、当該code要素を実行した後、「当該code要素と当該result要素」を、「当該code要素と新たな実行結果を表すresult要素」に置換すれば良い。
この場合、処理装置451は、図8に示してあるArk2-PrunedTreeの部分にかえて
<code>getPtree("abc[1]")</code>
<result>Ark2-PrunedTree</result>
としたものを、結果部分木として返すこととするのである。
本実施形態によれば、code要素などの処理装置451で実行可能なプログラムを表現するテキストを有する要素(実行可能要素)が、当該実行可能要素とともに、今回処理した結果を表す文字列を含むresult要素等の要素(実行結果要素)が置換に用いられるので、再計算ができるようになる。
上記実施形態では、取得要求は、処理装置451から蓄積装置431へ送信されていたが、当該XPath表現の情報は、蓄積装置431自身で動作する他のアプリケーションプログラムにより指定されるものであっても良いし、当該蓄積装置431と通信可能に接続される情報処理装置(処理装置451以外のもの。)であっても良いし、ユーザから当該位置を指定する指示入力を受け付ける入力装置(キーボードやマウス等)であっても良い。この場合には、処理装置451が取得要求送信部1201を備える必要はない。
以上説明したように、本発明によれば、順序木を蓄積する蓄積装置と当該蓄積された順序木を処理する処理装置とからなる情報処理システムにおいて、処理対象となる順序木の通信量を低減するのに好適な情報処理システム、蓄積装置、処理装置、蓄積方法、処理方法、ならびに、これらをコンピュータにて実現するためのプログラムを提供することができ、通信技術を用いた情報処理に適用することができる。
情報処理装置の概要構成を示す模式図である。 XML形式データの例を示す説明図である。 XML形式データに対応する順序木の例を示す説明図である。 本実施形態に係る情報処理システムの概要構成を示す説明図である。 蓄積装置と、処理装置と、の間で、どのように処理が行われるかを示す説明図である。 剪定木(対象部分木)の様子を示す説明図である。 結果部分木の様子を示す説明図である。 更新されたXML形式データの様子を示す説明図である。 本実施形態に係る蓄積装置の概要構成を示す模式図である。 蓄積装置において取得要求が受信された場合に実行される剪定処理の制御の流れを示すフローチャートである。 蓄積装置において、結果部分木が受信された場合に実行される更新処理の制御の流れを示すフローチャートである。 処理装置の概要構成を示す模式図である。 処理装置において行われる処理の制御の流れを示すフローチャートである。 元のXML形式データの様子を示す説明図である。 剪定木(対象部分木)の様子を示す説明図である。 結果部分木の様子を示す説明図である。 更新されたXML形式データの様子を示す説明図である。 元のXML形式データの様子を示す説明図である。 剪定木(対象部分木)の様子を示す説明図である。 結果部分木の様子を示す説明図である。 更新されたXML形式データの様子を示す説明図である。 元のXML形式データの様子を示す説明図である。 剪定木(対象部分木)の様子を示す説明図である。 結果部分木の様子を示す説明図である。 更新されたXML形式データの様子を示す説明図である。
符号の説明
101 情報処理装置
102 CPU
103 ROM
104 HD
105 キーボード
106 マウス
107 RAM
108 表示装置
109 インターフェース
110 FDドライブ
111 CD−ROMドライブ
401 情報処理システム
431 蓄積装置
451 処理装置
901 記憶部
902 取得要求受信部
903 抽出部
904 対象部分木送信部
905 結果部分木受信部
906 置換更新部
1201 取得要求送信部
1202 対象部分木受信部
1203 処理生成部
1204 結果部分木送信部

Claims (9)

  1. 蓄積装置と、処理装置と、を備える情報処理システムであって、
    (a)前記蓄積装置は、
    XML(eXtensible Markup Language)形式データを表現する順序木が記憶される記憶部を備え、
    前記記憶される順序木のノードには、当該ノードが表す要素が実行可能なプログラムを表現する実行可能要素であるノードが含まれ、
    当該実行可能要素を表すノードには、当該ノードが参照する当該順序木における他のノードを指定する参照属性情報が付加され、当該実行可能プログラムは、当該参照属性情報に指定される他のノードを引数とし、
    (b)前記処理装置は、
    前記蓄積装置に記憶される順序木に含まれるノードの位置を表す任意のXPath表現を指定する取得要求を、前記蓄積装置に送信する取得要求送信部を備え、
    (c)前記蓄積装置は、
    前記処理装置から送信された取得要求を受信する取得要求受信部と、
    前記受信された取得要求に指定されるXPath表現に対応する位置を根ノードとする部分木(以下「第1部分木」という。)を、前記記憶される順序木から抽出し、抽出された部分木に参照される部分木(以下「第2部分木」という。)をさらに抽出し、当該抽出された1つ以上の部分木のそれぞれの根ノードに、当該順序木における当該抽出された部分木の根ノードの位置を一意に指定するXPath表現であって、*と添字を用いるXPath表現を位置属性情報として付加する抽出部と、
    前記抽出された1つ以上の部分木を処理対象として前記処理装置に送信する対象部分木送信部と、をさらに備え、
    第2部分木とは、
    (x)第1部分木に含まれるノードに付加された参照属性情報により参照されるノードを根ノードとする他の部分木、もしくは、
    (y)ある第2部分木に含まれるノードに付加された参照属性情報により参照されるノードを根ノードとする他の部分木
    いい、
    (d)前記処理装置は、
    前記蓄積装置から送信された1つ以上の部分木を受信する対象部分木受信部と、
    前記受信された1つ以上の部分木のうち、実行可能要素を表す部分木について、当該部分木の根ノードに付加された参照属性情報により参照される他のノードであって前記受信されたノードを、当該実行可能要素により指定されるプログラムに引数として渡して当該プログラムを実行して、実行結果を表す文字列を得る処理を行うことにより、当該文字列を含む新たな部分木を生成し、当該生成された部分木の根ノードに、当該コード要素を表す部分木に付加された位置属性情報を付加する処理生成部と、
    前記生成された1つ以上の部分木を処理結果として前記蓄積装置に送信する結果部分木送信部と、をさらに備え、
    (e)前記蓄積装置は、
    前記処理装置から送信された1つ以上の部分木を受信する結果部分木受信部と、
    前記受信された1つ以上の部分木のそれぞれ(以下、それぞれを「置換結果部分木」という。)について、前記記憶される順序木において、「『当該置換結果部分木の根ノードに付加された位置属性情報に指定される位置』を根ノードとする部分木(以下、「置換対象部分木」という。)」を、当該置換結果部分木に置換して更新する置換更新部と、をさらに備える
    ことを特徴とする情報処理システム。
  2. 請求項1に記載の情報処理システムであって、
    前記蓄積装置と、前記処理装置と、の間で送信ならびに受信される部分木は、XML形式データであり、
    当該参照属性情報ならびに当該位置属性情報は、当該根ノードに対応する要素の属性として表現される
    ことを特徴とする情報処理システム。
  3. 請求項2に記載の情報処理システムであって、
    前記処理装置において、前記処理生成部は、
    前記処理の実行結果を表す文字列を含む要素(以下、当該要素を「実行結果要素」という。)で、当該実行可能要素に置き換えたものに対応付けられる部分木を生成する
    ことを特徴とする情報処理システム。
  4. 請求項3に記載の情報処理システムであって、
    前記処理装置において、前記処理生成部は、
    前記処理の実行結果を表す文字列を含む要素(以下、当該要素を「実行結果要素」という。)を、当該実行可能要素に追加したものに対応付けられる部分木を生成する
    ことを特徴とする情報処理システム。
  5. 請求項3または4に記載の情報処理システムであって、
    当該実行可能要素は、当該プログラムを表す関数名と、当該プログラムに渡される他のノードを表す引数名と、を指定する文字列をcode開始タグとcode終了タグとで囲むことにより表現される
    ことを特徴とする情報処理システム。
  6. 蓄積装置と、処理装置と、を備える情報処理システムであって、
    (a)前記蓄積装置は、
    XML(eXtensible Markup Language)形式データを表現する順序木が記憶される記憶部を備え、
    前記記憶される順序木のノードには、当該ノードが表す要素が実行可能なプログラムを表現する実行可能要素であるノードが含まれ、
    当該実行可能要素を表すノードには、当該ノードが参照する当該順序木における他のノードを指定する参照属性情報が付加され、当該実行可能プログラムは、当該参照属性情報に指定される他のノードを引数とし、
    (b)前記蓄積装置は、コンピュータ通信網を介して通信可能に接続される情報処理装置もしくはユーザからの指示入力を受け付ける入力装置(以下「他の機器」という。)に接続され、
    (c)前記蓄積装置は、
    前記他の機器から送信された取得要求であって、前記蓄積装置に記憶される順序木に含まれるノードの位置を表すXPath表現を指定する取得要求を受信する取得要求受信部と、
    前記受信された取得要求に指定されるXPath表現に対応する位置を根ノードとする部分木(以下「第1部分木」という。)を、前記記憶される順序木から抽出し、抽出された部分木に参照される部分木(以下「第2部分木」という。)をさらに抽出し、当該抽出された1つ以上の部分木のそれぞれの根ノードに、当該順序木における当該抽出された部分木の根ノードの位置を一意に指定するXPath表現であって、*と添字を用いるXPath表現を位置属性情報として付加する抽出部と、
    前記抽出された1つ以上の部分木を処理対象として前記処理装置に送信する対象部分木送信部と、をさらに備え、
    第2部分木とは、
    (x)第1部分木に含まれるノードに付加された参照属性情報により参照されるノードを根ノードとする他の部分木、もしくは、
    (y)ある第2部分木に含まれるノードに付加された参照属性情報により参照されるノードを根ノードとする他の部分木
    をいい、
    (d)前記処理装置は、
    前記蓄積装置から送信された1つ以上の部分木を受信する対象部分木受信部と、
    前記受信された1つ以上の部分木のうち、実行可能要素を表す部分木について、当該部分木の根ノードに付加された参照属性情報により参照される他のノードであって前記受信されたノードを、当該実行可能要素により指定されるプログラムに引数として渡して当該プログラムを実行して、実行結果を表す文字列を得る処理を行うことにより、当該文字列を含む新たな部分木を生成し、当該生成された部分木の根ノードに、当該コード要素を表す部分木に付加された位置属性情報を付加する処理生成部と、
    前記生成された1つ以上の部分木を処理結果として前記蓄積装置に送信する結果部分木送信部と、をさらに備え、
    (e)前記蓄積装置は、
    前記処理装置から送信された1つ以上の部分木を受信する結果部分木受信部と、
    前記受信された1つ以上の部分木のそれぞれ(以下、それぞれを「置換結果部分木」という。)について、前記記憶される順序木において、「『当該置換結果部分木の根ノードに付加された位置属性情報に指定される位置』を根ノードとする部分木(以下、「置換対象部分木」という。)」を、当該置換結果部分木に置換して更新する置換更新部と、をさらに備える
    ことを特徴とする情報処理システム。
  7. 請求項1から6のいずれか1項の情報処理システムにおける蓄積装置。
  8. 請求項1から6のいずれか1項の情報処理システムにおける処理装置。
  9. 蓄積装置と、処理装置と、が実行する情報処理方法であって、
    前記蓄積装置は、XML(eXtensible Markup Language)形式データを表現する順序木が記憶される記憶部と、取得要求受信部と、抽出部と、対象部分木送信部と、結果部分木受信部と、置換更新部と、を備え、
    前記記憶される順序木のノードには、当該ノードが表す要素が実行可能なプログラムを表現する実行可能要素であるノードが含まれ、
    当該実行可能要素を表すノードには、当該ノードが参照する当該順序木における他のノードを指定する参照属性情報が付加され、当該実行可能プログラムは、当該参照属性情報に指定される他のノードを引数とし、
    前記処理装置は、取得要求送信部と、対象部分木受信部と、処理生成部と、結果部分木送信部と、を備え、
    当該情報処理方法は、
    (a)前記処理装置において、
    前記取得要求送信部が、前記蓄積装置に記憶される順序木に含まれるノードの位置を表す任意のXPath表現を指定する取得要求を、前記蓄積装置に送信する取得要求送信工程を備え、
    (b)前記蓄積装置において、
    前記取得要求受信部が、前記処理装置から送信された取得要求を受信する取得要求受信工程と、
    前記抽出部が、前記受信された取得要求に指定されるXPath表現に対応する位置を根ノードとする部分木(以下「第1部分木」という。)を、前記記憶される順序木から抽出し、抽出された部分木に参照される部分木(以下「第2部分木」という。)をさらに抽出し、当該抽出された1つ以上の部分木のそれぞれの根ノードに、当該順序木における当該抽出された部分木の根ノードの位置を一意に指定するXPath表現であって、*と添字を用いるXPath表現を位置属性情報として付加する抽出工程と、
    前記対象部分木送信部が、前記抽出された1つ以上の部分木を処理対象として前記処理装置に送信する対象部分木送信工程と、をさらに備え、
    第2部分木とは、
    (x)第1部分木に含まれるノードに付加された参照属性情報により参照されるノードを根ノードとする他の部分木、もしくは、
    (y)ある第2部分木に含まれるノードに付加された参照属性情報により参照されるノードを根ノードとする他の部分木
    をいい、
    (c)前記処理装置において、
    前記対象部分木受信部が、前記蓄積装置から送信された1つ以上の部分木を受信する対象部分木受信工程と、
    前記処理生成部が、前記受信された1つ以上の部分木のうち、実行可能要素を表す部分木について、当該部分木の根ノードに付加された参照属性情報により参照される他のノードであって前記受信されたノードを、当該実行可能要素により指定されるプログラムに引数として渡して当該プログラムを実行して、実行結果を表す文字列を得る処理を行うことにより、当該文字列を含む新たな部分木を生成し、当該生成された部分木の根ノードに、当該コード要素を表す部分木に付加された位置属性情報を付加する処理生成工程と、
    前記結果部分木送信部が、前記生成された1つ以上の部分木を処理結果として前記蓄積装置に送信する結果部分木送信工程と、をさらに備え、
    (d)前記蓄積装置において、
    前記結果部分木受信部が、前記処理装置から送信された1つ以上の部分木を受信する結果部分木受信工程と、
    前記置換更新部が、前記受信された1つ以上の部分木のそれぞれ(以下、それぞれを「置換結果部分木」という。)について、前記記憶される順序木において、「『当該置換結果部分木の根ノードに付加された位置属性情報に指定される位置』を根ノードとする部分木(以下、「置換対象部分木」という。)」を、当該置換結果部分木に置換して更新する置換更新工程と、をさらに備える
    ことを特徴とする情報処理方法。
JP2004043407A 2004-02-19 2004-02-19 情報処理システム、蓄積装置、処理装置、ならびに、情報処理方法 Expired - Fee Related JP4526833B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004043407A JP4526833B2 (ja) 2004-02-19 2004-02-19 情報処理システム、蓄積装置、処理装置、ならびに、情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004043407A JP4526833B2 (ja) 2004-02-19 2004-02-19 情報処理システム、蓄積装置、処理装置、ならびに、情報処理方法

Publications (2)

Publication Number Publication Date
JP2005234900A JP2005234900A (ja) 2005-09-02
JP4526833B2 true JP4526833B2 (ja) 2010-08-18

Family

ID=35017797

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004043407A Expired - Fee Related JP4526833B2 (ja) 2004-02-19 2004-02-19 情報処理システム、蓄積装置、処理装置、ならびに、情報処理方法

Country Status (1)

Country Link
JP (1) JP4526833B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5526947B2 (ja) * 2010-03-31 2014-06-18 富士通株式会社 検索プログラム、検索装置および検索方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2904112B2 (ja) * 1996-03-19 1999-06-14 日本電気株式会社 プログラム自動合成装置
JP2002117368A (ja) * 2000-10-06 2002-04-19 Kokuyo Co Ltd データ送受信方法及びフォーム提供システム
JP2003016107A (ja) * 2001-06-27 2003-01-17 Sharp Corp 情報検索装置、情報検索方法、情報検索プログラム、及び情報検索プログラムを格納した記録媒体
JP3984129B2 (ja) * 2001-09-10 2007-10-03 富士通株式会社 構造化文書処理システム

Also Published As

Publication number Publication date
JP2005234900A (ja) 2005-09-02

Similar Documents

Publication Publication Date Title
JP3857663B2 (ja) 構造化文書編集装置、構造化文書編集方法及びプログラム
US20110258538A1 (en) Capturing DOM Modifications Mediated by Decoupled Change Mechanism
US20040160464A1 (en) System and method for providing a graphical user interface and alternate mappings of management information base objects
JP2003345717A (ja) ウェブ・ドキュメントを再編集して再配布する方法及び装置
WO2009011837A1 (en) Extraction and reapplication of design information to existing websites
JP2010055483A (ja) 情報再取得手順生成プログラム及び情報再取得手順生成装置
JP2016076224A (ja) コンテンツ表示装置、コンテンツ表示システム、データ構造、コンテンツ表示方法及びコンテンツ表示プログラム
WO2006137565A1 (ja) 文書処理装置及び文書処理方法
JP2007534045A (ja) マークアップ言語を用いる文書を処理する装置
JP2007042092A (ja) 電子ドキュメント処理装置、方法およびプログラム
US7131066B1 (en) XML based system for updating a domain model and generating a formatted output
JP5053550B2 (ja) 文書処理装置及び方法と文書処理システム
JP2007510194A (ja) ブラウザを使用してsvgタイプのデジタルグラフィック文書を編集する方法及び装置
JP4526833B2 (ja) 情報処理システム、蓄積装置、処理装置、ならびに、情報処理方法
JP2014081905A (ja) データを検索するための論理式の作成を補助するグラフィカルインターフェースを提供する装置
WO2006051969A1 (ja) 文書処理装置及び文書処理方法
JP5458480B2 (ja) タグ付き文書データ問い合わせ処理システムに対する問い合わせ画面生成装置
JP2020129392A (ja) 情報処理装置と、その処理方法及びプログラム
Koutsofios et al. Editing graphs with dotty
JP2009211599A (ja) マッピング定義作成システムおよびマッピング定義作成プログラム
WO2006119616A1 (en) Converting a printer to an xml printer
JP4408717B2 (ja) 情報処理システム、蓄積装置、処理装置、蓄積方法、処理方法、ならびに、プログラム
JP2019032679A (ja) ファイル生成装置、ファイル生成方法、および、ファイル生成プログラム
JP5476867B2 (ja) マッシュアッププログラム、マッシュアップ装置及びマッシュアップ方法
JP2018181073A (ja) 情報処理装置と、その処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100317

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: 20100518

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: 20100602

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

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees