(57)【要約】【課題】構造化文書の中に含まれるコンテンツを、それよりさらに細かい操作単位としてのサブコンテンツ単位で容易に編集することができる、文書編集方法およびシステムを提供する。【解決手段】構造化文書に一致または含まれる、少なくとも１つの要素からなる予め操作単位として定められた部分文書には、少なくとも当該部分文書が操作単位であることを表す情報が含まれており、この情報を基に、少なくとも当該部分文書と当該部分文書の位置情報とを含む部分文書毎の部品データを作成して、構造化文書を部品データの集合として記憶手段に記憶し、操作対象として選択された前記部分文書に対する操作内容に応じて、当該操作対象の部分文書に対応する部品データを更新することにより構造化文書を編集する。【選択図】　　図１
2004046357.tif 000002
【特許請求の範囲】
【請求項１】
複数の要素から構成された文書構造を有する構造化文書を表示手段に表示するとともに、この表示された構造化文書に一致または含まれる、少なくとも１つの前記要素からなる予め操作単位として定められた部分文書を基に前記表示された構造化文書を編集する文書編集方法であって、
前記部分文書には、少なくとも当該部分文書が前記操作単位であることを表す情報が含まれており、この情報を基に、少なくとも前記部分文書と、当該部分文書の前記文書構造上の位置情報とを含む前記部分文書毎の部品データを作成して、前記構造化文書を前記部品データの集合として記憶手段に記憶し、
操作対象として選択された前記部分文書に対する操作内容に応じて、当該操作対象の部分文書に対応する前記部品データを更新することにより前記構造化文書を編集することを特徴とする文書編集方法。
【請求項２】
前記部分文書には、当該部分文書のタイプと、当該部分文書のデータ形式を他のデータ形式に変換するための少なくとも１つの変換規則と、当該部分文書として前記表示手段に表示される他の構造化文書中の部分文書へのリンク情報と、当該部分文書に挿入可能な他の部分文書のタイプと挿入位置のうちの少なくとも１つが、当該部分文書の付加情報として含まれており、この付加情報が前記部品データにも含まれていることを特徴とする請求項１記載の文書編集方法。
【請求項３】
前記操作対象の前記部分文書の前記文書構造上の位置を移動させるときには、当該部分文書に対応する部品データ中の位置情報を移動先の位置に対応するよう変更することを特徴とする請求項１記載の文書編集方法。
【請求項４】
前記構造化文書としての第１の構造化文書と第２の構造化文書を前記表示手段に表示し、前記第１の構造化文書に含まれる前記部分文書としての第１の部分文書を前記第２の構造化文書の指定された位置に挿入するときには、当該第１の部分文書に対応する前記部品データとしての第１の部品データ中の位置情報を前記第２の構造化文書中の挿入位置に対応するよう変更した結果得られた第２の部品データを当該第２の構造化文書の部品データとして前記記憶手段に記憶することを特徴とする請求項１記載の文書編集方法。
【請求項５】
前記構造化文書としての第１の構造化文書と第２の構造化文書を前記表示手段に表示し、前記第１の構造化文書に含まれる前記部分文書としての第１の部分文書を前記第２の構造化文書の指定された位置に挿入するときは、
少なくとも前記第２の構造化文書中の指定位置と前記第１の部分文書に対応する部品文書とを関連付けるリンク情報を含む新たな部品データ作成して、これを前記第２の構造化文書の部品データとして前記記憶手段に記憶することを特徴とする請求項１記載の文書編集方法。
【請求項６】
前記構造化文書としての第１の構造化文書と第２の構造化文書を前記表示手段に表示して、前記第１の構造化文書に含まれる前記部分文書としての第１の部分文書を前記第２の構造化文書に含まれる前記部分文書としての第２の部分文書に挿入するときには、
当該第１の部分文書に対応する前記部品データとしての第１の部品データ中の当該第１の部分文書のタイプと、当該第２の部分文書に対応する前記部品データとしての第２の部品データ中の当該第２の部分文書に挿入可能な他の部分文書のタイプとを基に、前記第１の部分文書が前記第２の部分文書に挿入可能か否かを判断し、
挿入可能であるときは、前記第１の部品データ中の位置情報を前記第２の構造化文書中の挿入位置に対応させて変更した結果得られる第３の部品データを当該第２の構造化文書の部品データとして前記記憶手段に記憶し、
挿入不可であるときは、前記第１の部品データ中の前記第１の部分文書のデータ形式を前記第２の部分文書に挿入可能なデータ形式に変換した後、前記第１の部品データ中の位置情報を前記第２の構造化文書中の挿入位置に対応させて変更した結果得られる新たなの部品データを当該第２の構造化文書の部品データとして前記記憶手段に記憶することを特徴とする請求項２記載の文書編集方法。
【請求項７】
前記表示手段に表示されている前記操作対象の部分文書を前記表示手段に表示された他の部分文書に挿入するときには、
前記操作対象の部分文書のデータ形式が、前記他の部分文書に挿入可能なデータ形式であるときは、当該操作対象の部分文書に対応する部品データ中の位置情報を前記他の部分文書中の挿入位置に対応させて変更した結果得られる新たな部品データを当該他の部分文書の部品データとして前記記憶手段に記憶し、
前記操作対象の部分文書のデータ形式が、前記他の部分文書に挿入可能なデータ形式でないときは、当該操作対象の部分文書のデータ形式を当該他の部分文書に挿入可能なデータ形式に変換した後、、当該操作対象の部分文書に対応する部品データ中の位置情報を前記他の部分文書中の挿入位置に対応させて変更した結果得られる新たな部品データを当該他の部分文書の部品データとして前記記憶手段に記憶し、
さらに、前記操作対象の部分文書と前記他の部分文書とが同じ１つの部分文書に包含されているときは、前記新たな部品データを前記記憶手段に記憶するとともに、当該操作対象の部分文書に対応する部品データを前記記憶手段から削除することを特徴とする請求項１記載の文書編集方法。
【請求項８】
前記操作対象の部分文書に対応する前記部品データには、複数の前記変換規則が含まれており、それらのうちの１つを用いて、当該操作対象の部分文書の表示形式を切り替えることを特徴とする請求項２記載の文書編集方法。
【請求項９】
前記操作対象の部分文書を削除するときには、当該操作対象の部分文書に対応する部品データと当該操作対象の部分文書に包含される部分文書に対応する部品データとを前記記憶手段から削除することを特徴とする請求項１記載の文書編集方法。
【請求項１０】
前記操作対象の部分文書を編集するときには、当該部分文書に対応する部品データ中の当該部分文書を更新する請求項１記載の文書編集方法。
【請求項１１】
前記表示手段に表示された構造化文書に新たな部分文書を追加挿入するときには、少なくとも当該新たな部分文書と、この新たな部分文書の前記文書構造上の挿入位置に対応する位置情報とを含む前記部品データを作成して、前記記憶手段に記憶することを特徴とする請求項１記載の文書編集方法。
【請求項１２】
前記表示手段に表示された部分文書の中から、ユーザにより指定された範囲内の部分文書を抽出し、この抽出した部分文書に対応する前記部品データを作成して、前記記憶手段に記憶することを特徴とする請求項１記載の文書編集方法。
【請求項１３】
複数の要素から構成された文書構造を有する構造化文書を表示手段に表示するとともに、この表示された構造化文書に一致または含まれる、少なくとも１つの前記要素からなる予め操作単位として定められた部分文書を基に前記表示された構造化文書を編集する文書編集システムであって、
前記部分文書には、少なくとも当該部分文書が前記操作単位であることを表す情報が含まれており、この情報を基に、少なくとも前記部分文書と、当該部分文書の前記文書構造上の位置情報とを含む前記部分文書毎の部品データを作成する手段と、
前記構造化文書を前記部品データの集合として記憶する記憶手段と、
操作対象として選択された前記部分文書に対する操作内容に応じて、当該操作対象の部分文書に対応する前記部品データを更新することにより前記構造化文書を編集する手段と、
を具備したことを特徴とする文書編集システム。
【請求項１４】
前記部分文書には、当該部分文書のタイプと、当該部分文書のデータ形式を他のデータ形式に変換するための少なくとも１つの変換規則と、当該部分文書として前記表示手段に表示される他の構造化文書中の部分文書へのリンク情報と、当該部分文書に挿入可能な他の部分文書のタイプと挿入位置のうちの少なくとも１つが、当該部分文書の付加情報として含まれており、この付加情報が前記部品データにも含まれていることを特徴とする請求項１３記載の文書編集システム。
【請求項１５】
前記操作対象の前記部分文書の前記文書構造上の位置を移動させるときには、当該部分文書に対応する部品データ中の位置情報を移動先の位置に対応するよう変更することを特徴とする請求項１３記載の文書編集システム。
【請求項１６】
前記構造化文書としての第１の構造化文書と第２の構造化文書を前記表示手段に表示して、前記第１の構造化文書に含まれる前記部分文書としての第１の部分文書を前記第２の構造化文書の指定された位置に挿入するときには、当該第１の部分文書に対応する前記部品データとしての第１の部品データ中の位置情報を前記第２の構造化文書中の挿入位置に対応するよう変更した結果得られた第２の部品データを当該第２の構造化文書の部品データとして前記記憶手段で記憶することを特徴とする請求項１３記載の文書編集システム。
【請求項１７】
前記構造化文書としての第１の構造化文書と第２の構造化文書を前記表示手段に表示して、前記第１の構造化文書に含まれる前記部分文書としての第１の部分文書を前記第２の構造化文書の指定された位置に挿入するときは、
前記第２の構造化文書に挿入する前記第２の部分文書に対応する前記部品データとして、少なくとも前記第２の構造化文書中の指定位置から前記第１の部分文書へ設定されたリンク情報を含む新たな部品データ作成して、これを前記第２の構造化文書の部品データとして前記記憶手段で記憶することを特徴とする請求項１３記載の文書編集システム。
【請求項１８】
前記表示手段に表示されている前記操作対象の部分文書を前記表示手段に表示されている他の部分文書に挿入するときには、
前記操作対象の部分文書のデータ形式が、前記他の部分文書に挿入可能なデータ形式であるときは、当該操作対象の部分文書に対応する部品データ中の位置情報を前記他の部分文書中の挿入位置に対応させて変更した結果得られる新たな部品データを当該他の部分文書の部品データとして前記記憶手段に記憶し、
前記操作対象の部分文書のデータ形式が、前記他の部分文書に挿入可能なデータ形式でないときは、当該操作対象の部分文書のデータ形式を当該他の部分文書に挿入可能なデータ形式に変換した後、、当該操作対象の部分文書に対応する部品データ中の位置情報を前記他の部分文書中の挿入位置に対応させて変更した結果得られる新たな部品データを当該他の部分文書の部品データとして前記記憶手段に記憶することを特徴とする請求項１３記載の文書編集システム。
【請求項１９】
前記操作対象の部分文書に対応する前記部品データには、複数の前記変換規則が含まれており、それらのうちの１つを用いて、当該操作対象の部分文書の表示形式を切り替えることを特徴とする請求項１３記載の文書編集システム。
【請求項２０】
前記操作対象の部分文書を削除するときには、当該操作対象の部分文書に対応する部品データと当該操作対象の部分文書に包含される部分文書に対応する部品データとを前記記憶手段から削除することを特徴とする請求項１３記載の文書編集システム。
【請求項２１】
前記操作対象の部分文書を編集するときには、当該部分文書に対応する部品データ中の当該部分文書を更新する請求項１３記載の文書編集システム。
【請求項２２】
前記表示手段に表示された構造化文書に新たな部分文書を追加挿入するときには、少なくとも当該新たな部分文書と、この新たな部分文書の前記文書構造上の挿入位置に対応する位置情報とを含む前記部品データを作成して、前記記憶手段で記憶することを特徴とする請求項１３記載の文書編集システム。
【請求項２３】
前記表示手段に表示された部分文書の中から、ユーザにより指定された範囲内の部分文書を抽出し、この抽出した部分文書に対応する前記部品データを作成して、前記記憶手段に記憶することを特徴とする請求項１３記載の文書編集システム。
【請求項２４】
複数の要素から構成された文書構造を有する構造化文書を表示手段に表示するとともに、この表示された構造化文書に一致または含まれる、少なくとも１つの前記要素からなる予め操作単位として定められた部分文書を基に前記表示された構造化文書を編集するクライアント装置に対し、前記構造化文書を配信するサーバ装置であって、
前記クライアント端末に配信する前記構造化文書には、少なくとも当該構造化文書に一致または含まれる前記操作単位としての部分文書を表す情報が含まれいることを特徴とするサーバ装置。
【請求項２５】
複数の要素から構成された文書構造を有する構造化文書を表示手段に表示するとともに、この表示された構造化文書に一致または含まれる、少なくとも１つの前記要素からなる予め操作単位として定められた部分文書を基に前記表示された構造化文書を編集するクライアント装置に対し、前記構造化文書を配信するサーバ装置であって、
前記クライアント端末に配信する前記構造化文書には、当該構造化文書に一致または含まれる前記操作単位としての部分文書を表す情報とともに、各部分文書について、当該部分文書のタイプと、当該部分文書のデータ形式を他のデータ形式に変換するための少なくとも１つの変換規則と、当該部分文書として前記表示手段に表示される他の構造化文書中の部分文書へのリンク情報と、当該部分文書に挿入可能な他の部分文書のタイプおよび挿入位置のうちの少なくとも１つが、当該部分文書の付加情報として含まれていることを特徴とするサーバ装置。
【請求項２６】
前記クライアント端末に配信する前記構造化文書に、少なくとも当該構造化文書に一致または含まれる前記操作単位としての部分文書を表す情報が含まれいないときは、少なくとも前記操作単位としての部分文書を表す情報を挿入する手段を具備したことを特徴とする請求項２４または２５記載のサーバ装置。
【請求項２７】
前記クライアント端末に配信する前記構造化文書に、少なくとも当該構造化文書に一致または含まれる前記操作単位としての部分文書を表す情報が含まれいないときは、少なくとも前記操作単位としての部分文書を表す情報と、当該部分文書のデータ形式を他のデータ形式に変換するための少なくとも１つの変換規則とを挿入する手段を具備したことを特徴とする請求項２４または２５記載のサーバ装置。
【請求項２８】
複数の要素から構成された文書構造を有する構造化文書を表示手段に表示するとともに、この表示された構造化文書に一致または含まれる、少なくとも１つの前記要素からなる予め操作単位として定められた部分文書を基に前記表示された構造化文書を編集するためのプログラムであって、
コンピュータに、
前記部分文書には、少なくとも当該部分文書が前記操作単位であることを表す情報が含まれており、この情報を基に、少なくとも前記部分文書と、当該部分文書の前記文書構造上の位置情報とを含む前記部分文書毎の部品データを作成するステップと、
前記構造化文書を前記部品データの集合として記憶手段に記憶するステップと、
操作対象として選択された前記部分文書に対する操作内容に応じて、当該操作対象の部分文書に対応する前記部品データを更新することにより前記構造化文書を編集するステップと、
を実行させる文書編集プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＸＭＬ文書、ＨＴＭＬ文書などの構造化文書の編集方法および装置に関する。
【０００２】
【従来の技術】
ＷＷＷ（Ｗｏｒｌｄ　Ｗｉｄｅ　Ｗｅｂ）において、ショッピングサイトでは商品カタログを、ニュースサイトではニュース記事を、一覧列挙するページを持っている。またポータルサイトの多くは、トップページにおいて、ポートレットと呼ばれる部分ページエリアに、株価情報・気象情報・ヘッドラインニュースなど、異なるジャンルの情報を、組み合わせて記載している。ここでは、このジャンル毎の情報をサブコンテンツと呼ぶことにすると、最近は、インターネットを介して閲覧することのできるＷｅｂページには、従来の文書的なＷｅｂページと異なり、内部に含まれるサブコンテンツ同士の独立性が高く、寄せ集め的に構成されているＷｅｂページが増えてきている。
【０００３】
このようなＷｅｂページに対して、ユーザからは、ページ全体を順に読んでいくのではなく、興味のあるサブコンテンツだけを選択的に閲覧したいという要望が高まってきている。閲覧のみに限らず、例えば、以下に示すような要望がある。
【０００４】
１）　サブコンテンツ単位で、比較・並べ替えたい
２）　サブコンテンツ単位で、分類・整理したい
３）　サブコンテンツ単位で、収集・保存したい
しかし、現在のブラウザでは、上記要望に対応できる機能を持つものはない。
【０００５】
【発明が解決しようとする課題】
このように、従来は、１つのＷｅｂページ内全体を閲覧することは可能でも、異なる複数のＷｅｂページのそれぞれから、各Ｗｅｂページ内に含まれている、例えば、それぞれが内容的に独立性の高い複数のサブコンテンツのうち、所望のサブコンテンツのみを収集して、サブコンテンツ単位で、比較・並べ替え、分類・整理、保存することはできないという問題点があった。
【０００６】
そこで、本発明は、上記問題点に鑑み、Ｗｅｂページ単位ではなく、各Ｗｅｂページに含まれているサブコンテンツ単位での閲覧を可能にし、しかも、１つまたは異なる複数のＷｅｂページのそれぞれから、所望のサブコンテンツのみを収集して、サブコンテンツ単位で編集することのできる文書編集方法およびシステムを提供することを目的とする。
【０００７】
また、クライアント側で、Ｗｅｂページ単位ではなく、各Ｗｅｂページに含まれているサブコンテンツ単位での閲覧を可能にし、しかも、１つまたは異なる複数のＷｅｂページのそれぞれから、所望のサブコンテンツのみを収集して、サブコンテンツ単位で、比較・並べ替え、分類・整理、保存することができるようなＷｅｂページを提供することのできるサーバ装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明は、複数の要素から構成された文書構造を有する構造化文書を表示手段に表示するとともに、この表示された構造化文書に一致または含まれる、少なくとも１つの前記要素からなる予め操作単位として定められた部分文書を基に前記表示された構造化文書を編集するものであって、前記部分文書には、少なくとも当該部分文書が前記操作単位であることを表す情報が含まれており、この情報を基に、少なくとも前記部分文書と、当該部分文書の前記文書構造上の位置情報とを含む前記部分文書毎の部品データを作成して、前記構造化文書を前記部品データの集合として記憶手段に記憶し、操作対象として選択された前記部分文書に対する操作内容に応じて、当該操作対象の部分文書に対応する前記部品データを更新することにより前記構造化文書を編集することを特徴とする。
【０００９】
本発明によれば、構造化文書に含まれている、操作単位の部分文書を表す情報を基に識別することができる各部分文書のそれぞれについて、その付加情報を基に、上記部品データ（ページ部品）を作成することで、このページ部品を基に、画面上に表示された内容をサブコンテンツ単位（部分文書単位）で容易に編集操作を行うことできる。
【００１０】
従って、構造化文書として、例えばＷｅｂページ単位ではなく、各Ｗｅｂページに含まれているサブコンテンツ単位での閲覧を可能にし、しかも、１つまたは異なる複数のＷｅｂページのそれぞれから、所望のサブコンテンツのみを収集して、サブコンテンツ単位で編集することができるようになる。
【００１１】
本発明のサーバ装置は、複数の要素から構成された文書構造を有する構造化文書を表示手段に表示するとともに、この表示された構造化文書に一致または含まれる、少なくとも１つの前記要素からなる予め操作単位として定められた部分文書を基に前記表示された構造化文書を編集するクライアント装置に対し、前記構造化文書を配信するものであって、前記クライアント端末に配信する前記構造化文書には、少なくとも当該構造化文書に一致または含まれる前記操作単位としての部分文書を表す情報が含まれいる（すなわち、クライアント端末に配信する構造化文書はブロックＷｅｂ文書である）ことを特徴とする。
【００１２】
本発明によれば、クライアント側で、構造化文書として、例えばＷｅｂページ単位ではなく、各Ｗｅｂページに含まれているサブコンテンツ単位での閲覧を可能にし、しかも、１つまたは異なる複数のＷｅｂページのそれぞれから、所望のサブコンテンツのみを収集して、サブコンテンツ単位で、比較・並べ替え、分類・整理、保存することができるようなＷｅｂページを提供することができる。
【００１３】
好ましくは、前記クライアント端末に配信する前記構造化文書には、当該構造化文書に一致または含まれる前記操作単位としての部分文書を表す情報とともに、各部分文書について、当該部分文書のタイプと、当該部分文書のデータ形式を他のデータ形式に変換するための少なくとも１つの変換規則と、当該部分文書として前記表示手段に表示される他の構造化文書中の部分文書へのリンク情報と、当該部分文書に挿入可能な他の部分文書のタイプおよび挿入位置のうちの少なくとも１つが、当該部分文書の付加情報として含まれている。
【００１４】
好ましくは、上記サーバ装置は、前記クライアント端末に配信する前記構造化文書に、少なくとも当該構造化文書に一致または含まれる前記操作単位としての部分文書を表す情報が含まれいないときは、少なくとも前記操作単位としての部分文書を表す情報を挿入する手段を具備する。これにより、ブロックＷｅｂ文書でない構造化文書（例えば、標準的なＨＴＭＬ文書やＸＭＬ文書など）もサーバ装置にて、ブロックＷｅｂ文書に変換されるので、クライアント側では、サブコンテンツ単位のＷｅｂページの編集が容易に行える。
【００１５】
好ましくは、前記クライアント端末に配信する前記構造化文書に、少なくとも当該構造化文書に一致または含まれる前記操作単位としての部分文書を表す情報が含まれいないときは、少なくとも前記操作単位としての部分文書を表す情報と、当該部分文書のデータ形式を他のデータ形式に変換するための少なくとも１つの変換規則とを挿入する手段を具備する。
【００１６】
【発明の実施の形態】
以下、本発明の一実施形態について図面を参照して説明する。
【００１７】
まず、以下の実施形態の説明で用いる用語の説明を行う。
【００１８】
Ｗｅｂ文書、Ｗｅｂページとは、インターネットを介して閲覧可能な、ＨＴＭＬやＸＭＬなどで記述された、複数の要素から構成された文書構造を有する構造化文書である。なお、以下の説明では、Ｗｅｂ文書（Ｗｅｂページとも云う）を例にとり説明するが、この場合に限らない。インターネットを介して閲覧されることを目的として作成され、インターネットを介して取得した構造化文書でなくとも、任意のエディタで任意の目的で作成され、任意の手段で取得した、ＨＴＭＬ文書やＸＭＬ文書などの一般的な構造化文書であっても、本実施形態は適用可能である。
【００１９】
サブコンテンツは、表示されたＷｅｂページ中の内容的にまとまりのある、例えば、それぞれが内容的に独立性の高い表示データであって、どのようにサブコンテンツを区切るかは、Ｗｅｂページの作者の意図するところである。サブコンテンツは、Ｗｅｂページの作者によって、全く異なる観点から様々に区切ることのできる部分文書に対応し、部分文書で当該表示データを表示することができるようになっている。従って、サブコンテンツは、１つのＷｅｂページ（Ｗｅｂ文書）中のユーザが独立的に取り扱いたい部分ページ（部分文書）とも言える。例えば、ポータルサイトの多くは、トップページにおいて、ポートレットと呼ばれる部分的なページエリアに、株価情報・気象情報・ニュース記事など、異なるジャンルの情報を、組み合わせて記載している。例えば、ジャンル別の情報、すなわち、例えば、ニュース記事や気象情報のそれぞれが１つのサブコンテンツ（部分文書）であってもよいし、ニュース記事の中の１つ１つのニュースがサブコンテンツ（部分文書）であってもよい。サブコンテンツの内容、区切り方は特に限定するものではない。なお、１つのＷｅｂページ全体が１つの部分文書に一致し、部分文書が複数の部分文書を包含してもよい。なお、以下の説明において、サブコンテンツと部分文書とを同等にみなしてもよい。
【００２０】
（各機能の概要）
本実施形態に係る文書編集システムの概要を説明する。ここでの説明では、広くＷｅｂ表示機能を持つソフトウェア一般の総称として、ブラウザと呼んでおり、Ｉｎｔｅｒｎｅｔ　Ｅｘｐｌｏｒｅｒ（商標）やＮｅｔｓｃａｐｅ（商標）などのＷｅｂ表示機能を主眼に置いたソフトウェアに限定しているのではない。たとえば、本実施形態に係る文書編集システムではＷｅｂ文書の表示機能を持つデータベースを装備しており、これもブラウザと呼んでいる。
【００２１】
１）　ブラウザ上でのドラッグドロップなどのＧＵＩ操作で、サブコンテンツを自由に再配置する機能（比較・並べ替えのニーズに対応）
２）　あるブラウザから別のブラウザへ、ドラッグドロップなどのＧＵＩ操作でサブコンテンツを受け渡す機能（分類・整理のニーズに対応）
３）　サブコンテンツが含まれていないページを表示するブラウザを開き、さまざまなページから取り込みたいサブコンテンツをドラッグドロップなどのＧＵＩ操作でそのブラウザへ受け渡す機能（収集・保存のニーズに対応）
この基本的な機能仕様により、ユーザからの上記ニーズをカバーすることができる。この基本機能仕様を核として周辺機能を付加し、完全な機能仕様を設計した。
【００２２】
図１は、それらの機能を俯瞰したものである。以下、図１を基に機能仕様について概説する。ただし図１は利用形態をわかりやすく説明するための機能フロー例であり、実際のシステム設計での構成は後述のように異なるため、機能ブロック図ではない。
【００２３】
本システムのブラウザは、インターネットあるいはファイルシステムなどにあるＷｅｂページを読み込むと、従来のブラウザと同様Ｗｅｂページを表示するが、それに加えて、サブコンテンツをユーザが便利に取り扱うための多くの操作機能、すなわち、図１の１−１〜１−１４を提供する。以下、これら各機能１−１〜１−１４について、その概要を説明する。
【００２４】
（自由な再配置機能１−１）　機能の１つは、ブラウザ上でのサブコンテンツの自由な再配置機能である。ユーザはブラウザのＷｅｂ表示部において、ドラッグドロップなどのＧＵＩ操作を用いて、任意のサブコンテンツを別の位置へ動かすことができる。自由といっても、ドット単位で完全に自由なモードと、枠に沿って配置するレイアウトモードの２種類がある。これにより、たとえば、ショッピングサイトでの商品列挙ページにおいて、商品の並びをユーザの都合で閲覧中に変更することができるなどの効果がある。
【００２５】
（ソート機能１−２）　また、それに関連する機能としてソート機能がある。ソート機能１−２は、メニューやツールボタンなどから機能を選ぶことによって起動する。ページに含まれるすべてのサブコンテンツあるいは指定されたサブコンテンツの中で、特定項目の内容にしたがって並べ替えることができる。これにより、たとえば、ショッピングサイトでの商品を値段や種別で並べ替えることができるので、商品比較が容易となる効果がある。これに加えて、後述の図１中のページ間受け渡し機能１−４をあわせ用いることで、さまざまなＷｅｂサイトやＷｅｂページの商品アイテム同士を比較することもできる。
【００２６】
従来であれば、異なるＷｅｂサイトのコンテンツ同士の比較については、直接的な機械の支援を受けることができず、人間が目で比較するしかなかった。
【００２７】
（検索機能１−３）　また、サブコンテンツの検索機能がある。検索機能は、メニューやツールボタンなどから機能を選ぶことによって起動する。ページの中から、ユーザの入力する条件にしたがって検索を行い、その結果を同ブラウザ内で選択状態にする（フォーカスを当てて、ユーザに対してどれが該当しているかを示す）か、図１中の新規空ページ作成機能１−９を用いて別ウィンドウとしてブラウザを開き、そこに該当するサブコンテンツを載せるか、の２種類の方法が提供される。また、この検索機能を繰り返し使うことで、順次検索絞込みをすることもできる。
【００２８】
（ページ間受け渡し機能１−４）　次の機能として、異なるブラウザで表示されているＷｅｂページ同士で、サブコンテンツを受け渡す機能がある。複数のＷｅｂサイトあるいはＷｅｂページで別々に表示されているサブコンテンツを同じページで見ることができる。この機能には先ほど述べた効果があるが、さらに図１の新規空ページ作成機能１−９と合わせ用いることで、新規のページに興味のあるサブコンテンツだけを収集、さらにその中で比較することができる。
【００２９】
（形式の調整機能１−５）　また、その補助機能として、形式（タイプ）の調整機能がある。異なるＷｅｂページ間でサブコンテンツを受け渡す場合、そのサブコンテンツのタイプがそぐわない場合がある。たとえば商品列挙ページはページごとに表示形式やデータ形式が異なる場合がある。そのまま挿入することも可能であるが、ソート１−２などをあわせて利用することでサブコンテンツを比較したい場合には、不便である。形式（タイプ）の調整機能１−５はこの問題を自動的に解決するもので、システムがサブコンテンツのタイプが受ける側のページに合わないと判断すると、システムが持つＷｅｂ形式変換ルールのデータベースから適切なものを探し出し、変換ルールを適用してタイプをそろえてから挿入する。
【００３０】
（デザイン切替１−６）　その他の機能としてデザイン（表示形式あるいはスタイルとも云う）の切り替えがある。デザインの切り替え機能はメニューやツールボタンなどから機能を選ぶことによって起動する。デザインの切り替え機能は、単一あるいは複数のサブコンテンツに対して、コンテンツはそのままにデザインを切り替える方法である。たとえば、Ｗｅｂに列挙されている商品カタログに対して、データスペックがわかりやすい表示形式や商品デザインがわかりやすい表示形式に切り替えることができる。ただしこの機能は、ＷｅｂページがＸＭＬなどのようにデータとスタイルシート（表示方法）を分離して記述されている場合にのみ利用可能である。
【００３１】
（挿入機能１−７）　サブコンテンツを他のサブコンテンツ内に子挿入する機能がある。この機能を利用することで、たとえばユーザは商品カタログの中に商品カタログを収めることができる。この機能は再帰的であり、サブコンテンツの中にサブコンテンツを入れ、また内部のサブコンテンツに別のサブコンテンツを入れるという処理を無限に行うことができる。
【００３２】
（受け入れ判定機能１−８）　サブコンテンツの受け入れ判定機能１−８は、上記した自由な再配置機能１−１、ページ間受け渡し機能１−４など、ドラッグドロップなどのＧＵＩ操作で別の場所にサブコンテンツを挿入する際に自動的に起動される機能である。この機能により、挿入動作を実行する際、受け入れる側となるＷｅｂページ、あるいは挿入機能１−７を利用した場合は、別のサブコンテンツが挿入を受け入れるための条件が設定されていた場合、その条件を満たさない場合は、挿入処理をキャンセルする。受け入れ条件としては、サブコンテンツの形式に関して与えることができる。
【００３３】
この機能１−８は形式の調整機能１−５と連動する。もし挿入対象のサブコンテンツが受け入れ側の条件を満たさない場合、形式の調整機能１−５の機能を用いて、受け入れ可能なタイプに変換できるかどうかを試みる。もし受け入れ可能なタイプへの変換方法が見つかった場合にはそのタイプで挿入される。もし見つからなければ、挿入処理はキャンセルされる。
【００３４】
（新規空ページ作成機能１−９）　新規の空ページを作成する機能１−９は、メニューやツールボタンなどから機能を選ぶことによって起動する。実行すると、別のブラウザウィンドウを開き、そこに空のＷｅｂページを新規作成する。ひとつの重要な活用方法として、このページをスクラップブックとして、複数のＷｅｂページからユーザが興味のあるサブコンテンツのみをドラッグドロップなどで収集することができる。この新規ページは、開く元となったブラウザのＷｅｂページのデザインを継承することも可能であり、その場合、元のＷｅｂページのうちサブコンテンツのみをすべて取り除いた状態で、別のウィンドウに新規ページとして表示される。
【００３５】
（コンテンツ編集機能１−１０）　コンテンツ編集機能１−１０は、メニューやツールボタンなどから機能を選ぶことによって起動する。起動されると編集モードとなり、ユーザは、ブラウザ上であるいは別ウィンドウの専用編集ソフト上で、現在選択しているサブコンテンツを編集することができる。
【００３６】
編集機能としては、表示されているデザインのまま、ＨＴＭＬフォーム形式で各データフィールドを変更するインラインモード、またそれだけでなくデザインを変更する完全モードがある。またこれらのモードに対する付加機能として、ＸＭＬのようにデザインとデータが分離されている場合、データフィールドを変更した場合に、内部のデータ部に値を反映する（書き戻す）機能、データ形式がスキーマなどで厳密に指定されている場合に、そのデータ形式に沿って最適な入力ＨＴＭＬフォームＧＵＩを提供する機能などがある。これらの機能は、既存の技術を用いれば、実現可能である。
【００３７】
また、サブコンテンツを新規作成することもできる。この機能は、インラインモードの機能を利用しており、起動すると、直前のサブコンテンツの形式でＨＴＭＬフォームが表示される。ユーザはフォームの各項目に値を埋めて確定させると、新しいサブコンテンツがそのページ内に追加される。
【００３８】
（保存機能１−１１）保存機能１−１１は、メニューやツールボタンなどから機能を選ぶことのよって起動する。ユーザは今までに紹介した機能を用いることにより、Ｗｅｂページの構成やコンテンツを編集することができる。保存機能１−１１を用いることで、変更された状態をさまざまな記憶システムに保存することができる。保存先としてはユーザが使用しているローカルホストのファイルシステムだけでなく、自分のホームページなどが置いてあるＷｅｂサーバ、データベースなどを選択することができる。
【００３９】
保存の形式としては、ＨＴＭＬやＸＭＬに加えて、これらサブコンテンツの構成情報を付加した本システムの特殊形式を選択することができる。特殊形式は、どれがサブコンテンツなのかをあわせて保存するので、次回に読み込んだときにも、前述したサブコンテンツ向けの機能を引き続き利用することができる。
【００４０】
（データソース更新機能１−１２）　その補助的機能としてデータソース更新機能１−１２がある。この機能は、保存機能の１種であるが、もともとＷｅｂサーバから送られてきたＷｅｂページを編集した場合、その更新情報を元のＷｅｂサーバに送信することができる。受信したＷｅｂサーバは、そのシステム構成に応じてデータベースなどの適切なストレージにその更新データを反映させる。
【００４１】
（外部アプリケーションへの取り込み機能１−１３）　外部アプリケーションへのサブコンテンツの取り込み機能１−１３は、ブラウザで開いている任意のＷｅｂページ（スクラップブックを含む）から気に入ったサブコンテンツだけをドラッグドロップなどのＧＵＩ操作でアプリケーションに渡すことで、そのアプリケーションに取り込む機能である。取り込み先としては、メール・ＯＡツール・社内ワークフローシステムなどが有効なアプリケーションの一例として挙げられる。
【００４２】
（付箋紙としてデスクトップへの貼り付け機能１−１４）上記外部アプリケーションへの取り込み機能１−１３に準ずる機能として、デスクトップへサブコンテンツの貼り付け機能１−１４がある。ブラウザで開いている任意のＷｅｂページ（スクラップブックを含む）から気に入ったサブコンテンツをデスクトップにドロップすることで、付箋紙（電子付箋）として貼り付けておくことができる。この付箋紙に貼り付けたサブコンテンツは、後から任意のページやアプリケーションへドロップすることもできる。
【００４３】
（システム構成）
上記各機能を実現するための文書編集システムの構成について説明する。
【００４４】
サブコンテンツを処理単位として上記各機能をユーザに提供するには、少なくとも、Ｗｅｂページの中で、どこがサブコンテンツに当たるのか（サブコンテンツが他のサブコンテンツに包含される（親のサブコンテンツをもつ）こともあれば、他のサブコンテンツを包含する（子のサブコンテンツをもつ）こともある（これをサブコンテンツ（部分文書）間の包含関係あるいは親子関係と呼ぶ）。そこで、このサブコンテンツ間（部分文書間）の包含関係に関する情報が必要となる。これをＷｅｂブロック構造情報あるいは簡単にブロック構造情報と呼ぶ。また、１つのＷｅｂページをその中に含まれているブロック構造情報を基に、本システムの処理単位であるサブコンテンツ単位に分解することをブロック化とも云う。
【００４５】
また、ブロック化というのは本発明に特徴付けるものであって、現在広く用いられているＨＴＭＬ文書やＸＭＬ文書などのＷｅｂ文書には、もちろんブロック構造情報は含まれていない。
【００４６】
次に、このブロック構造情報をどのようにして得るのか、そしてどう取り扱うか、について説明する。ここでは、ブロック構造情報の取得および取扱に際し、次のような方針を採用した。
【００４７】
１）　ブロック構造情報も含めて記述できる専用Ｗｅｂ言語を準備する（以降、この言語をブロックＷｅｂ言語、この言語で書かれた文書をブロックＷｅｂ文書と呼ぶ）。
【００４８】
２）　本システムはブロックＷｅｂ言語を元に処理を行うようにする。
【００４９】
３）　本システムにＨＴＭＬ、ＸＭＬなど従来からあるＷｅｂ文書が入力された場合は、上記処理を行う前にブロックＷｅｂ言語へ変換してから取り込む。この際、ブロック構造情報を補う必要があり、補う方法としていくつかの機能を提供する。
【００５０】
上記方針を採った理由は２つである。
【００５１】
まず、完全な情報を持つこの専用のブロックＷｅｂ言語を、本システムを活用するための主要な方法とする意図がある。ブロックＷｅｂ言語を入力とする場合、作者が、自分の演出したい意図に基づいて、コンテンツとともにどこをブロック化（独立的に取り扱うサブコンテンツ）したいのかを記述することができる。
【００５２】
したがって、Ｗｅｂ作者に使用してもらうために、このブロックＷｅｂ言語は広く公開することを想定する。
【００５３】
なお、ブロックＷｅｂ言語を基に、ユーザがサブコンテンツを取り扱うための操作機能を提供する方式として、特開２００１−１０９７４２号公報記載の技術を利用する。
【００５４】
その一方で、一般的に普及しているＷｅｂページ記述言語に柔軟に対応することを目的とする。現時点で普及しているＷｅｂ言語はＨＴＭＬおよびＸＭＬである。これらを直接扱うための処理モジュールを用意するのではなく、先ほどのブロックＷｅｂ言語へ変換する方式を取る。こうすることにより、システムがシンプルになると同時に、変換処理だけを独立させることができるので、今後必要となる変換方式に対してもプラグインとして対応するといった拡張性を得るメリットがある。
【００５５】
変換といっても、ＨＴＭＬやＸＭＬ自体はブロック構造情報を持たないので、不足している情報を補わなければならない。これに対して、あらかじめ別途用意した別の文書から与える方法、ユーザがブラウザ使用時にその場その場で指定する方法、文書内容からブロック構造を機械的に推測するいわゆるテキストマイニング的方法がある。なお、以下の説明では、前２つの方法を用いて実現する場合を示す。３つ目の方法も既存の技術を用いることで実現可能だが、ここで可能性を示すにとどめる。
【００５６】
以上を踏まえて構成された文書編集システムの機能的な構成例を図２に示す。また図４は本システムが扱うグローバルなデータオブジェクトの構成例を示したものである。まず、本システムが処理対象とするオブジェクトデータとしてのページ部品から説明する。
【００５７】
本システムでは、図４に示したような構成の、ページ部品単位のデータオブジェクトを取り扱う。ページ部品とは、各サブコンテンツ（部分文書）に１対１に対応するデータであり、サブコンテンツの内容自体はもちろんのこと、本システムが提供するサブコンテンツ向けの機能に必要な管理情報を併せ持っている。
【００５８】
図４に示したページ部品（データオブジェクト）Ｄ１は、複数のサブデータオブジェクトＤ１１〜Ｄ１８から構成されている。図４において、例えば、受理情報Ｄ１４は、さらに、その内部に挿入場所情報Ｄ１４１、受理タイプ情報Ｄ１４２を含むことが表されている。同様に、子ページ部品管理情報Ｄ１６は、その内部に挿入場所情報Ｄ１６１、子ページ部品への参照情報Ｄ１６２を含む。また、例えば、受理情報Ｄ１４や子ページ部品管理情報Ｄ１６のように、複数重なって（ここでは、例えば２重に重なって）表記されたサブデータオブジェクトは、そのようなサブデータオブジェクトが複数存在することを示している。
【００５９】
ページ部品Ｄ１には、タイプ名Ｄ１１とコンテンツＤ１２とスタイルシートＤ１３と受理情報Ｄ１４と親ページ部品への参照Ｄ１５と子ページ部品管理情報Ｄ１６とリンクＵＲＬＤ１７とリンクフラグＤ１８という情報が含まれている。これらの情報は、ブロックＷｅｂ文書から抽出される各部分文書を構成する要素として含まれていたり、属性として含まれている情報などである。
【００６０】
タイプとは、部分文書のデータ形式（形式的な違い）や、当該部分文書の内容に関するカテゴリ・ジャンルの違い（意味的な違い）に応じて各部分文書を区別するためのもので、このような部分文書の意味的、形式的な違いに応じた各タイプを区別するための識別情報がタイプ名である。ページ部品Ｄ１に含まれるタイプ名Ｄ１１には、当該ページ部品Ｄ１に対応する部分文書に対応するタイプ名が保持されている。このタイプ名は、部分文書のトップノードであるエレメント（要素）に付される「ｔｙｐｅ」属性で記述されている。
【００６１】
コンテンツＤ１２には、当該ページ部品Ｄ１に対応する部分文書が保持される。表示データが、当該ページ部品を含む構造化文書以外の他の構造化文書中のものであるときには、当該表示データへのリンク情報がリンクＵＲＬＤ１７に格納される（また、このとき、リンクフラグＤ１８がセットされる）ので、この場合は、コンテンツＤ１２は空でもよい。
【００６２】
スタイルシートＤ１３は、コンテンツＤ１２に保持されている部分文書に適用可能なデータ形式の変換規則（スタイルシート）や、当該部分文書に適用可能な表示形式別に、当該表示データのデータ形式を当該表示形式対応のデータ形式へ変換するための変換規則（スタイルシート）などが保持されている。当該表示データに複数の変換規則が適用可能であれば、複数のスタイルシートＤ１３がページ部品Ｄ１に含まれていることになる。スタイルシートは、部分文書のトップノードであるエレメント（要素）に記述される「ｓｔｙｌｅ」属性で記述されている。
【００６３】
受理情報Ｄ１４は、当該ページ部品Ｄ１に対応する部分文書が受け入れ（挿入）可能な部分文書のタイプ名を受理タイプＤ１４２として保持し、文書構造上の挿入場所Ｄ１４１とを保持する。この受理タイプＤ１４２は、部分文書中の「ａｃｃｅｐｔ」エレメント（の属性）として記述されており、挿入場所Ｄ１４１は、この「ａｃｃｅｐｔ」エレメントの文書構造上の配置位置に対応する位置情報である。
【００６４】
親ページ部品への参照Ｄ１５は、当該ページ部品Ｄ１に対応する部分文書が他の部分文書に包含されている場合、当該ページ部品Ｄ１と親である他の部分文書に対応するページ部品とを関連付けるための情報である。
【００６５】
子ページ部品管理情報Ｄ１６は、当該ページ部品Ｄ１に対応する部分文書が他の部分文書を包含している場合、当該ページ部品Ｄ１と子供である他の部分文書に対応するページ部品とを関連付けるための情報であり、文書構造上の当該他の部分文書の挿入場所Ｄ１６１と、当該他の部分文書の文書構造上の位置情報としての子ページ部品への参照Ｄ１６２とを保持する。挿入場所Ｄ１６１は、部分文書中の、他の部分文書を挿入することを指示するエレメント（例えば、後述する「ｉｍｐｏｒｔ」エレメントなど）の配置位置であり、このエレメントの例えば属性として、挿入する部分文書の位置情報としての子ページ部品への参照Ｄ１６２が記述されている。
【００６６】
なお、図４に示した各サブデータオブジェクトについては、以下に示す、図２に示したシステムの構成や動作の説明の中で必要に応じて説明する。
【００６７】
また、サブコンテンツとは、１つのＷｅｂページ（Ｗｅｂ文書）中のユーザが独立的に取り扱いたい部分ページ（部分文書）に対応すると説明してきた。本システムでは、サブコンテンツに１対１に対応するオブジェクトとして、図４に示したようなページ部品Ｄ１を取り扱うが、ページ全体（すなわち、１つのＷｅｂページ）も１つのページ部品として処理する。
【００６８】
ページ部品について、図３を用いて具体的に説明する。図３には、１つのＷｅｂページとしてのページ部品３−１について示している。ページ全体に対応するページ部品３−１には、複数のページ部品３−２〜３−７が含まれており、本システムでは、ページ部品３−１と、その中に含まれるページ部品３−２〜３−７とは、親子関係にあるものとして管理する。ページ全体もページ部品とみなすことで、特別な処理が不要になり、システムがシンプルになると同時に、ページ全体を他のページの一部として取り込むニーズがあってもよいと考えるからである。
【００６９】
次に、図２に示した文書編集システムの各機能モジュールについて説明する。
【００７０】
図２に示すように、文書編集システムは、大きく分けて、ホストモジュールＭ１と、文書処理モジュールＭ２と、デスクトップ貼り付けモジュールＭ３とから構成されている。これらモジュールＭ１〜Ｍ３は、それぞれ独立したモジュールであり、ホストモジュールＭ１は、文書処理モジュールＭ２を必要に応じて実体化して呼び出し、文書処理モジュールＭ２は、デスクトップ貼り付けモジュールＭ３を必要に応じて実体化して呼び出すようになっている。
【００７１】
ホストモジュールＭ１は、文書処理モジュールＭ２を受け入れる（ホストする）コンテナコンポーネントである。基本的な機能は、ＯＳ（ＯｐｅｒａｔｉｎｇＳｙｓｔｅｍ）上にウィンドウフレームを構築し、文書処理モジュールＭ２が機能するためのウィンドウ領域を確保すること、またユーザが操作するためのメニューやツールボタンなどを提供し、入力されたコマンドを文書処理モジュールＭ２に伝えることである。
【００７２】
ホストモジュールＭ１としては、具体的には、Ｗｅｂブラウザとページ部品アルバムホスト（図５に示すようなページ部品管理に特化した機能を提供する専用アプリケーション）を想定している。Ｉｎｔｅｒｎｅｔ　Ｅｘｐｌｏｅｒ（商標）やＮｅｔｓｃａｐｅ（商標）などの一般的なＷｅｂブラウザは、汎用文書サービスホストとして機能するよう作成されいるので、それぞれのブラウザの仕様にしたがって、文書処理モジュールＭ２を、当該ブラウザから呼び出して起動可能なように、文書処理モジュールＭ２に関して必要な登録処理を行えばよい。この詳細はそれぞれ汎用ブラウザのソフトウェア仕様の範疇であり、これ以上の説明は省略する。なお、ここでは、上記一般的なＷｅｂブラウザをホストモジュールとして用いた場合、このホストモジュールを第１のホストモジュールＭ１と呼ぶ。
【００７３】
一方、本実施形態に係る文書編集システム専用のホストモジュールを第２のホストモジュールＭ１と呼び、これについて、後述する。
【００７４】
文書処理モジュールＭ２は、ブロック化機能およびサブコンテンツ向けの機能を持つＷｅｂ文書処理モジュールであり、ホストモジュールＭ１からＷｅｂページの数だけ実体化され呼び出される。すなわちＷｅｂページ１つに対して、文書処理モジュールが１つメモリ上に生成される。
【００７５】
文書処理モジュールＭ２は、大きく分けてページ読込モジュールＭ２１とブロックＷｅｂ文書処理モジュールＭ２２という２つのサブモジュールを含む。
【００７６】
ブロック化機能は、ページ読込モジュールＭ２１が担当する。ページ読み込みモジュールＭ２１は、ＵＲＬ（あるいはローカルマシン上であればファイルパス）で指定された文書を読み込んだ上で、もし、ブロックＷｅｂ文書ではないＨＴＭＬ文書やＸＭＬ文書などの一般的なＷｅｂ文書であると判断された場合、複数の方法のうちの１つを実行して、ブロックＷｅｂ文書に変換する。
【００７７】
サブコンテンツ向けの機能を提供するのは、ブロックＷｅｂ文書処理モジュールＭ２２である。モジュールＭ２２は、ページ部品管理モジュールＭ２２１、レンダリング処理モジュールＭ２２２、ＧＵＩ処理モジュールＭ２２３、エクスポートモジュールＭ２２４、ページ部品形式調整モジュールＭ２２５という５つのサブモジュールを含む。
【００７８】
ページ部品管理モジュールＭ２２１は、各ページから抽出されたページ部品を保持するページ部品データベースＭ２２１ｂを持ち、ページ部品（サブコンテンツ）単位に挿入や移動や削除などページの構成を変更する機能や、これらを保存する機能を持つ。
【００７９】
レンダリング処理モジュールＭ２２２は、ページ部品管理モジュールＭ２２１で管理されているページ部品群をＷｅｂページとして表示する機能を持つ。
【００８０】
ＧＵＩ処理モジュールＭ２２３は、レンダリング処理モジュールＭ２２２で表示されたＷｅｂページ上で、ドラッグドロップやコンテクストメニューなどサブコンテンツを操作するためのＧＵＩ機能を提供する。ＧＵＩ操作が行われたら、ページ部品管理モジュールＭ２２３に対して、当該操作に対応するデータ処理機能を呼び出した上で、レンダリング処理モジュールＭ２２２を用いて、表示画面を書き換える。
【００８１】
ＧＵＩ処理モジュールＭ２２３は、同時にエクスポートモジュールＭ２２４を呼び出す。エクスポートモジュールＭ２２４は、外部のアプリケーション（外部アプリ）に対して、ページ部品を受け渡すための処理機能を提供するものである。
【００８２】
具体的には、ＧＵＩ操作においてドラッグドロップやコンテクストメニュー（表示されている任意のＧＵＩ部品上で例えば右クリックすると、この部品に関して表示されるもの）でコピー命令などが実行された時、ＧＵＩ処理モジュールＭ２２３はエクスポートモジュールＭ２２４を呼び出し、他のアプリケーションやプロセス（これらをまとめて外部アプリと呼ぶ）が読み込むことのできる共有メモリ領域（クリップボード）に対して、外部アプリが読み込める形式で当該ページ部品の内容を書き込む。これにより、外部アプリに対してドロップ操作が行われた場合、外部アプリは共有メモリ領域から内容を読み込むので、ページ部品の受け渡しを行うことができる。
【００８３】
ページ部品形式調整モジュールＭ２２５は、文書処理モジュールＭ２内あるいは文書処理モジュール間でページ部品の受け渡しを行う際に、ページ部品のサブコンテンツのデータ形式などの調整を行うモジュールであり、ページ部品管理モジュールＭ２２１が、ページ部品の挿入操作を行う際に呼び出される。具体的には挿入操作を行う際に、新しく追加するページ部品のタイプ名が、挿入元のページ部品に含まれる受理タイプＤ１４２（これを受け入れ可能なタイプ名リストとも呼ぶ）にない場合に、ページ部品形式調整モジュールＭ２２５は、変換ルールデータベースＭ２２５ｂ（図１７参照）から適切な変換ルールの組み合わせを探し出し、ページ部品を受け入れ可能なページ部品に変換して、ページ部品管理モジュールＭ２２１に返す。もし解決できる変換ルールの組み合わせが見つからなかった場合、その旨をページ部品管理モジュールＭ２２１に通知し、ページ部品管理モジュールは挿入動作をキャンセルする。
【００８４】
デスクトップ貼り付けモジュールＭ３は、アプリケーションが持つ文書の一部を、ドラッグドロップ操作によって付箋紙としてデスクトップに貼り付ける機能をユーザに提供する。
【００８５】
図２４は、図２に示した文書編集システムを例えばコンピュータ（計算機）上で実現する場合の構成例を示したものである。
【００８６】
すなわち、図２４において、文書編集システムは、プロセッサ（ＣＰＵ）２０、メモリ２２、ディスプレイやプリンタなどの出力装置２４、マウスやキーボードなどの入力装置２３、記憶装置２１から構成されている。
【００８７】
これらのうち、記憶装置２１は、システムの制御の中枢を担うプログラム等の格納やデータ等の一時保持などに利用されるものであって、ホストプログラム３１，文書処理プログラム３２、デスクトップ貼り付けプログラム３３、各種アプリケーションプログラム３４などを格納している。また、メモリ２２は、上記各プログラム実行の際に利用可能な共有メモリやプログラム実行の際のワーキングエリアなどに利用されるものである。また、プロセッサ２０は記憶装置２１内のプログラムを実行することにより、入出力制御や各種処理を含め、必要な各種制御処理を実施するものである。
【００８８】
プロセッサ２０は、主に、記憶装置２１内のホストプログラム３１を実行することにより、図２４に示した文書編集システム上で、図２に示した文書編集システムのホストモジュールＭ１に対応する機能を提供するようになっている。
【００８９】
プロセッサ２０は、主に、記憶装置２１内の文書処理プログラム３２を実行することにより、図２４に示した文書編集システム上で、図２に示した文書編集システムの文書処理モジュールＭ２に対応する機能を提供するようになっている。
【００９０】
プロセッサ２０は、主に、記憶装置２１内のデスクトップ貼り付けプログラム３３を実行することにより、図２４に示した文書編集システム上で、図２に示した文書編集システムのデスクトップ貼り付けモジュールＭ３に対応する機能を提供するようになっている。
【００９１】
さらに、プロセッサ２０は、主に、記憶装置２１内の各種アプリケーションプログラム３４を実行することにより、図２４に示した文書編集システム上で、これた各アプリケーション対応の機能を提供するようになっている。
【００９２】
以下、図２に示した、各モジュールについて詳細に説明する。
【００９３】
（ホストモジュール）
まず、ホストモジュールＭ１について説明する。前述したように、Ｉｎｔｅｒｎｅｔ　ＥｘｐｌｏｒｅｒやＮｅｔｓｃａｐｅなどの一般的な汎用ブラウザをホストモジュールとして利用する方法と、専用のホストモジュールを提供する方法とがある。
【００９４】
一般的な汎用ブラウザをホストモジュールＭ１として使用する場合（この場合のホストモジュールＭ１を第１のホストモジュールＭ１と呼ぶ）は、それぞれのブラウザの仕様にしたがって、文書処理モジュールＭ２に関して必要な登録処理を行えばよい。この詳細はそれぞれ汎用ブラウザのソフトウェア仕様の範疇であり、これ以上の説明は省略する。
【００９５】
ここでは、本実施形態に係る文書処理システム専用のホストモジュールである第２のホストモジュールＭ１について説明する。
【００９６】
第２のホストモジュールＭ１は、ページ部品を含むページ、すなわち、ブロックＷＥＢ文書を、内部に複数保持することができ、これら複数のページをツリーで選択・管理することができるソフトウェアアプリケーションである。実行画面を図６に示す。
【００９７】
第２のホストモジュールＭ１が起動されたときに、ディスプレイに表示される画面上の表示領域は、分類ツリー表示部６−１とＷｅｂ表示部６−２から構成されている。
【００９８】
分類ツリー部６−１の各ノードには、第２のホストモジュールＭ１の保持する複数のＷｅｂページがそれぞれ割り当てられており、選択されているノードに対応するＷｅｂページがＷｅｂ表示部６−２に表示されている。なお、図６において、Ｗｅｂ表示部６−２で表示されているＷｅｂページは図３で示したページ部品と同じものである。
【００９９】
ユーザは分類ツリー部６−１に表示されているノードのうち、所望のノードをクリックすることで、ページ部品としての複数のＷｅｂページを閲覧することができる。またユーザ操作により、ツリー上に、ノードを新規追加したり削除したり移動したりすることができる。これらの操作は広く使われているＥｘｐｌｏｒｅｒ（商標）と同じ使い勝手である。
【０１００】
またユーザは、現在、Ｗｅｂ表示部６−２に表示されているページ部品をドラッグし、任意のノードへドロップ、あるいは別途開いている第２のホストモジュールＭ１のＷｅｂ表示部６−２にドロップすることで、ページ部品を移動したりコピーしたりすることができる。
【０１０１】
また、Ｗｅｂ表示部６−２でさまざまなＧＵＩ操作を行うことにより、その他のさまざまなページ部品向けの機能を実行することができる。これらの機能は、後ほど詳細に説明する文書管理モジュールＭ２によって提供されるものであり、ここでは、その詳細は触れない。
【０１０２】
なお、もう１つのホストモジュール例として前述した一般的なブラウザを用いて構成された第１のホストモジュールＭ１の場合は、当該第１のホストモジュールＭ１を起動した際に表示される画面上には、Ｗｅｂ表示部６−２のみが存在し、同様に、Ｗｅｂ表示部６−２でさまざまなＧＵＩ操作を行うことにより、さまざまなページ部品向けの機能を実行することができる。
【０１０３】
第２のホストモジュールＭ１の機能的な構成について、図５を参照して説明する。
【０１０４】
第２のホストモジュールＭ１は、大きく分けて、上記分類ツリー部６−１におけるＷｅｂページのツリーについての表示や操作をなどを行うための分類ツリーモジュールＭ１１と、ファイルへの書き出しや読み込みを担当する保存機能モジュールＭ１２と、リジューム機能モジュールＭ１３とから構成される。
【０１０５】
なお、Ｗｅｂ表示部６−２にＷｅｂページを表示する機能は、後述する文書処理モジュールＭ２が担当するようになっている。
【０１０６】
分類ツリーモジュールＭ１１は、分類ツリーを表示するとともに、表示した分類ツリーに対し、ノードの追加・削除・移動と言ったＧＵＩ操作を行うためのものである。上記のツリー表示・ＧＵＩ操作行うためのプログラム部品として、一般に「ツリーコントロール」と呼ばれるプログラムＧＵＩ部品がさまざまなベンダから提供されており、それを使用することで対応することができる。
【０１０７】
なお、ツリーコントロールとは、開閉可能なツリー上に名前付きノードを表示し、かつ、各ノードをクリックするなどのユーザの操作を通じて、任意の付加機能を割り当てることのできるＧＵＩ部品である。
【０１０８】
分類ツリーモジュールでＭ１１は、ツリーコントロールをベースに、それに、第２のホストモジュール独自の機能を追加することで構成するようにしてもよい。なお、ツリーコントロール自体については、本発明の要旨ではないので、その説明は省略する。
【０１０９】
第２のホストモジュールＭ１では、ツリーの各ノードそれぞれに対してＷｅｂページを割り当てるようになっている。そこで、ツリーコントロールの各ノードには、当該ノードに対応する文書処理モジュールＭ２を関連付けて当該モジュールＭ２を参照可能にするために、当該文書処理モジュールＭ２への参照情報を持つようにしている。
【０１１０】
ノード選択モジュールＭ１１は、ツリーコントロールでノードのいずれかがクリックされたときに呼び出されるプログラムモジュールであり、一般には選択イベントハンドラーとも呼ばれる。
【０１１１】
ノード選択モジュールＭ１１１は、選択されたノードが当該ノードに関連付けられている文書処理モジュールＭ２に対して、当該ノードに対応するＷｅｂページを表示するように指示を出す。これにより、ノードが選択されるたび、そのノードに関連付けられている文書処理モジュールＭ２により、該当するＷｅｂページが表示される。
【０１１２】
ノード追加モジュールＭ１１２は、ツリーコントロールでノードのいずれかが追加されたときに呼び出されるプログラムモジュールであり、一般には追加イベントハンドラーとも呼ばれる。ノード追加モジュールＭ１１２は、文書処理モジュールＭ２を新規生成し（なおこの状態ではＷｅｂコンテンツの中身は空っぽである）、新規に追加されたノードに対して、当該文書処理モジュールＭ２を関連付けるための参照情報を付加する。
【０１１３】
ノード削除モジュールＭ１１３は、ツリーコントロールでノードのいずれかが削除されるときに呼び出されるプログラムモジュールであり、一般には削除イベントハンドラーとも呼ばれる。ノード削除モジュールＭ１１３は、削除されたノードが有する参照情報により、当該ノードに対応付けられている文書管理モジュールＭ２を終了させ、メモリから消去する。
【０１１４】
ノード移動モジュールＭ１１４は、ツリーコントロールでノードのいずれかが移動させるときに呼び出されるプログラムモジュールであり、一般には移動イベントハンドラーとも呼ばれる。移動イベントモジュールＭ１１４は、特に処理を行わない。
【０１１５】
ページ部品受け取りモジュールＭ１１５は、ツリーコントロールでノードのいずれかに対して、ページ部品がドロップされたとき（移動先を指示されたとき）に呼び出されるプログラムモジュールであり、一般にはドロップイベントハンドラーとも呼ばれる。ページ部品受け取りモジュールＭ１１５は、当該ノードに参照情報にて関連付けられている文書管理モジュールＭ２に対して、受け取ったページ部品データ（シリアライズイメージ）を基にページ部品を追加するよう命令する。これにより、ドラッグされたページ部品と同じページ部品がドロップ先のノードに対応するＷｅｂページに作成される。
【０１１６】
以上が分類ツリーモジュールＭ１１の説明である。
【０１１７】
保存機能モジュールＭ１２は、アプリケーションが終了するときに実行されるプログラムモジュールであり、終了イベントハンドラーとも呼ばれる。保存機能モジュールＭ１２は、各ノードが対応付けられているＷｅｂページに関する情報をファイルへ書き出す機能を持っている。これを実現するため、ツリーの各ノードを順にたどりながら、そのノードに関連付けられている文書処理モジュールＭ２に対して保存命令を出す。
【０１１８】
保存の方法として、それぞれの文書を別々に保存することがまず考えられる。しかし、それぞれのファイル名が重複しない工夫が必要な上、次回に読み込む際にもファイルを拾い集めなければならず、手間がかかる。そこで、すべての文書を１つのファイルにまとめて保存する方法も有効である。
【０１１９】
リジューム機能モジュールＭ１３は、アプリケーションが起動されたときに実行されるプログラムモジュールであり、初期化イベントハンドラーとも呼ばれる。リジューム機能モジュールＭ１３は、前回終了したときのＷｅｂページなどに関する情報をメモリに戻し、アプリケーションを前回と同じ復元する機能を持っている。これを実現するため、保存されたファイルを順に開いていき、ツリー上のノードおよびそのノードに関連付ける文書処理モジュールＭ２を順に再生成する。
【０１２０】
（文書処理モジュール）
次に、文書処理モジュールＭ２について説明する。文書処理モジュールＭ２を構成する各サブモジュールの詳細説明をするのに先立ち、当該モジュールＭ２が取り扱うブロックＷｅｂ文書について説明する。
【０１２１】
以下に、ブロックＷｅｂ文書の一例を示す。
【０１２２】
＜？ｘｍｌ　ｖｅｒｓｉｏｎ＝“１．０”？＞
＜ｒｏｏｔ　ｓｔｙｌｅ＝“ｒｏｏｔ．ｘｓｌ”＞
＜ａ　ｃｏｍｐｏｎｅｎｔ＝“ｙｅｓ”　ｔｙｐｅ＝“ｔｙｐｅ−ａ”　ｓｔｙｌｅ＝“１．ｘｓｌ；ａ２．ｘｓｌ；ａ３．ｘｓｌ”＞
＜ａ＞ａａａａａ＜／ａ＞
＜ａ＞ａａａａａａａ＜／ａ＞
＜／ａ＞
＜ｂ　ｃｏｍｐｏｎｅｎｔ＝“ｙｅｓ”　ｔｙｐｅ＝“ｔｙｐｅ−ｂ”　ｓｔｙｌｅ＝“ｂ１．ｘｓｌ；ｂ２．ｘｓｌ；ｂ３．ｘｓｌ”＞
＜ｂ＞ｂｂｂｂｂ＜／ｂ＞
＜／ｂ＞
＜ａｃｃｅｐｔ　ｔｙｐｅ＝“ｔｙｐｅ−ａ；ｔｙｐｅ−ｂ”／＞
＜ｉｍｐｏｒｔ　ｈｒｅｆ＝“ｈｔｔｐ：／／ｗｗｗ．ｓｈｉｂａ．ｃｏ．ｊｐ／ａａａａａ．ｐｚｘ＃ｘｐｏｉｎｔｅｒ（／ｒｏｏｔ／ｃ）”／＞
＜／ｒｏｏｔ＞
上記のブロックＷｅｂ文書は、「ｒｏｏｔ（ルート）」エレメント以下に配置されている、「ｃｏｍｐｏｎｅｎｔ」属性が含まれるエレメントにて、独立的に取り扱うことのできるページ部品に対応する部分文書「ａ」および「ｂ」が含まれていることを示している。部分文書「ａ」で表示される表示データは、「ａａａａａ」や「ａａａａａａａ」であり、部分文書「ｂ」で表示される表示データは、「ｂｂｂｂｂ」である。さらに、ｒｏｏｔエレメントから始まる当該Ｗｅｂ文書には、「ａｃｃｅｐｔ」タグで示される位置に、「ｔｙｐｅ−ａ」タイプあるいは「ｔｙｐｅ−ｂ」タイプのページ部品を挿入できることが示されている。
【０１２３】
なお、上記のブロックＷｅｂ文書から明らかなように、サブコンテンツに対応する構造化文書中の部分文書は、当該部分文書中のトップノード（あるいはルートノートである場合もある）に記述されている「ｃｏｍｐｏｎｅｎｔ」属性にて、その値が「ｙｅｓ」であることにより判別することができる。ここでは、「ｃｏｍｐｏｎｅｎｔ」属性の記述されているノードをトップノードとする部分文書が１つのサブコンテンツに対応すると判別している。
【０１２４】
このブロックＷｅｂ文書は、特開２００１−１０９７４２号公報で開示されているＷｅｂ文書を拡張したものである。
【０１２５】
また、上記ブロックＷｅｂ文書において、「ｉｍｐｏｒｔ」というタグは特殊な意味を持ち、ｈｒｅｆ属性で指定されたＵＲＬ（上記例ではＸＰｏｉｎｔｅｒつきＵＲＬを用いてページの一部を指定）のページ部品が当該位置に挿入されるという機能を持っている。外部のリソースとしてページ部品であるいうことを示すものであって、その他、ページ内での取り扱いは他のページ部品とまったく同じである。
【０１２６】
また、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ）を介して渡される場合は、「Ｃｏｎｔｅｎｔ−Ｔｙｐｅ」は、「ｔｅｘｔ／ｃｍｐ」でなければならず、ＦＴＰ（Ｆｉｌｅ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ）などその他のネットワークプロトコルやファイルシステムからの入力であれば、拡張子が「ｃｍｐ」でなければならないというようにルールを決めている。これは入力文書がブロックＷｅｂ文書であるかどうかを、文書編集システムが判定するために用意するルールである。
【０１２７】
（ページ読込モジュール）
図７は、ページ読込モジュールＭ２−１の構成を示したものであり、矢印はデータの流れを示している。
【０１２８】
ページ読込モジュールＭ２１では、主にＷｅｂページのブロック化を行うようになっている。文書処理モジュールＭ２への文書の入力を管理しており、与えられた文書がブロックＷｅｂ文書であれば、それはそのままページ読込モジュールＭ２１を通過させて、ブロックＷｅｂ文書処理モジュールＭ２２に渡すが、それ以外のＷｅｂ文書（たとえばＨＴＭＬ文書やＸＭＬ文書など）であれば、ブロックＷｅｂ文書に変換して、ブロックＷｅｂ文書処理モジュールＭ２２に渡す。
【０１２９】
ページ読込モジュールＭ２１はページタイプ判定モジュールＭ２１１、ブロック化モジュールＭ２１２から構成される。ページ読込モジュールＭ２１に入力されるものは、ＨＴＴＰなどの通信あるいはファイルシステムなどから投入されたＷｅｂ文書である。ＨＴＴＰ通信機能やファイルシステムからの読み込み処理については、周知の技術を用いればよく、ここでの説明は省略する。
【０１３０】
入力文書はまずページタイプ判定モジュールＭ２１１に渡される。ページタイプ判定モジュールＭ２１１は、図８に示す手順で、入力文書がブロックＷｅｂ文書かどうかを判定するようになっている。すなわち、入力文書がＨＴＴＰを介して渡される場合は、「Ｃｏｎｔｅｎｔ−Ｔｙｐｅ」が、「ｔｅｘｔ／ｃｍｐ」であれば、当該入力文書はブロックＷｅｂ文書であり（ステップＳ１〜ステップＳ３）、ＦＴＰ（Ｆｉｌｅ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ）などその他のネットワークプロトコルやファイルシステムからの入力であれば、拡張子が「ｃｍｐ」であれば、当該入力文書はブロックＷｅｂ文書であると判定する（ステップＳ１）。
【０１３１】
図７に戻り、ページタイプ判定モジュールＭ２１１により、ブロックＷｅｂ文書であると判断されれば、その文書をそのままページ読込モジュールＭ２１の出力とする。ブロックＷｅｂ文書でないと判断されれば、ブロック化モジュールＭ２１２によって、ブロックＷｅｂ文書へ変換する処理を行い、その結果を出力とする。
【０１３２】
ブロック化モジュールＭ２１２は、与えられた文書に対し、ブロック化するための変換ルール（ここでは、ブロックシートと呼ぶ）を用いて変換処理を実行し、その結果得られたブロックＷｅｂ文書を出力する。変換ルールを蓄積しているのがブロックシートデータベース（ＤＢ）Ｍ２１４であり、入力文書のＵＲＬをキーとして、当該入力文書に対応する変換規則を検索可能なようになっている。入力文書が、ＨＴＴＰでなくＦＴＰやファイルシステムからの入力である場合は、ＦＴＰのＵＲＬ、ファイルＵＲＬが用いられる。変換ルールとして、本システムではＸＳＬＴを用いる。
【０１３３】
ブロックシートＤＢＭ２１４を用いて、実際に変換処理を行うのは、ブロックシート適用モジュールＭ２１３である。この処理の流れを図９に示す。この出力はブロックＷｅｂ文書処理モジュールＭ２２に渡される。
【０１３４】
ここで、入力文書に対応するブロックシートが見つからなかった場合（ステップＳ１２）の処理について補足する。入力文書に対応するブロックシートがない場合、ブロック構造情報を持たないため、ページ全体が１つのページ部品と解釈される。すなわち、当該入力文書のルートノードに「ｃｏｍｐｏｎｅｎｔ」属性を付与する。また、ページ部品では本来指定されるはずのスタイル指定（ｓｔｙｌｅ属性）が存在しないので、本システムが内部に持っているデフォルトスタイルを与える（ステップＳ１５，ステップＳ１６）。ＸＭＬ文書の場合は、ＸＭＬ文書を単純にツリー表示するスタイルシート、ＨＴＭＬ文書の場合は、ＨＴＭＬ文書をそのまま表示するスタイルシートがデフォルトスタイルである。これにより、一般的なＸＭＬ文書やＨＴＭＬ文書についても、本システムでページ部品として取り扱うことができる。
【０１３５】
（ブロックＷｅｂ文書処理モジュール）
ブロックＷｅｂ文書処理モジュールＭ２２は、ページ読込モジュールＭ２１によって入力されたブロックＷｅｂ文書を管理し、ユーザに当該文書を表示し、かつサブコンテンツのための便利なＧＵＩ操作を提供する、システムの核となるモジュールである。なお、ホストモジュールＭ１の説明でも述べたが、１つのブロックＷｅｂ文書処理モジュールＭ２２が管理するブロックＷｅｂ文書は１文書である。複数ページ（複数文書）を管理する場合には、ページ数だけブロックＷｅｂ文書処理モジュールＭ２２を生成する必要がある。
【０１３６】
ブロックＷｅｂ文書処理モジュールＭ２２は、複数のサブモジュールから構成されており、これらが互いに協調動作する。以下にそれぞれに焦点を当てて詳細説明する。
【０１３７】
（ページ部品管理モジュール）
ページ部品管理モジュールＭ２２１は、ページを含み、ページ内の全てのページ部品を管理し、構成変更のためのＡＰＩ（ａｐｐｒｉｃａｔｉｏｎ　ｐｒｏｇｒａｍｍｉｎｇ　ｉｎｔｅｒｆａｃｅ）を提供する他のモジュール向けのベースサービスモジュールである。ページ部品のデータ構成は図４で説明したとおりである。
【０１３８】
図１０に示すように、ページ部品管理モジュールＭ２２１は、ページ部品読込モジュールＭ２２１ａ、ページ部品データベース（ＤＢ）Ｍ２２１ｂ、ページ部品挿入モジュールＭ２２１ｃ、ページ部品削除モジュールＭ２２１ｄ、ページ部品保存モジュールＭ２２１ｅという５つのサブモジュールから構成されている。
【０１３９】
ページ部品読込モジュールＭ２２１ａは、入力されたブロックＷｅｂ文書を解析し、当該ブロックＷｅｂ文書中に含まれているサブコンテンツに対応する部分文書についてのページ部品を作成し、最終的に出来上がったページ部品群をページ部品ＤＢＭ２２１ｂに登録する。
【０１４０】
ブロックＷｅｂ文書では、独立的に取り扱うサブコンテンツは、ブロックＷｅｂ文書そのものであったり、当該Ｗｅｂ文書中の「ｃｏｍｐｏｎｅｎｔ」属性の付与されているエレメント（要素）をトップノードとする部分文書に含まれるものであったり、あるいは、「ｉｍｐｏｒｔ」エレメントで例えばＵＲＬで指定されたで外部リソースである。
【０１４１】
そこでページ部品読込モジュールＭ２２１ａは、まず入力されたブロックＷｅｂ文書から、「ｃｏｍｐｏｎｅｎｔ」属性の付与されている部分文書、「ｉｍｐｏｒｔ」エレメントで構成される部分文書を抽出する。ただし、サブコンテンツ自体（サブコンテンツの実体）は、「ｃｏｍｐｏｎｅｎｔ」属性が与えられている部分文書は、そのトップノードとしてのエレメントの子エレメントに含まれている。また、「ｉｍｐｏｒｔ」エレメントの場合は、当該エレメントの「ｈｒｅｆ」属性で指定されている外部リソースとしてのコンテンツを、公知技術を用いてダウンロードすることにより、サブコンテンツの実体（内容）を取得することができる。
【０１４２】
そして、ブロックＷｅｂ文書から抽出された各サブコンテンツについて、「ｃｏｍｐｏｎｅｎｔ」属性が付与されているエレメントをトップノードとする部分文書、「ｉｍｐｏｒｔ」エレメントから構成される部分文書のそれぞれを基に、図４に示したようなページ部品Ｄ１を生成する。なお、サブコンテンツとしてのブロックＷｅｂ文書自体についてのページ部品Ｄ１も生成されるが、その生成も上記同様である。
【０１４３】
図４のページ部品Ｄ１中のコンテンツＤ１２には、例えば、サブコンテンツ（表示データ）が書き込まれる。
【０１４４】
各ページ部品を生成する際には、ブロックＷｅｂ文書で表されている部分文書間の親子関係（ＸＭＬ文書中のエレメント間の親子関係と同様）から、各ページ部品間の親子関係が得られているので、親子関係の存在するページ部品については、それに従い、親のページ部品へ当該ページ部品を関連付けるためのポインタやリンクなどの情報（すなわち、ここでは、親ページ部品への参照Ｄ１５）や、子供のページ部品を当該ページを関連付けるための情報（すなわち、ここでは子ページ部品管理情報Ｄ１６）として、子ページ部品を当該ページ部品に関連付けるためのポインタやリンクなどの情報（子ページ部品への参照Ｄ１６２）や、当該ページ部品中の当該子ページ部品を挿入する場所（位置）Ｄ１６１を書き込む。
【０１４５】
各サブコンテンツについて、当該サブコンテンツに対応する部分文書が含まれているブロックＷｅｂ文書の文書構造上の位置を指定するポインタ情報であるＸＰｏｉｎｔｅｒつきＵＲＬは、リンクＵＲＬＤ１７に書き込む。「ｉｍｐｏｒｔ」エレメントによって外部から取得されるサブコンテンツの場合は、「ｉｍｐｏｒｔ」エレメントのｈｒｅｆ属性で指定されていたＸＰｏｉｎｔｅｒつきＵＲＬをリンクＵＲＬＤ１７に書き込む。
【０１４６】
「ｃｏｍｐｏｎｅｎｔ」属性を有する部分文書、「ｉｍｐｏｒｔ」エレメントから構成される部分文書のそれぞれについて、その属性として、「ｔｙｐｅ」属性が記述されていれば、その値を、タイプ名Ｄ１１として書き込み、「ｓｔｙｌｅ」属性が記述されていれば（その値がセミコロンで複数の文字列（各文字列は、例えばスタイルシートの識別子に対応する）に分割されていれば、その各文字列を）スタイルシートＤ１３としてそれぞれ書き込む。
【０１４７】
「ｃｏｍｐｏｎｅｎｔ」属性を有する部分文書、「ｉｍｐｏｒｔ」エレメントを有する部分文書のそれぞれについて、例えば、当該部分文書中の子エレメントとして、「ａｃｃｅｐｔ」エレメントが存在すれば、それは、当該部分文書に対応するサブコンテンツには、挿入可能なサブコンテンツがあることを表し、その挿入可能（受け入れ可能）なサブコンテンツのタイプ名が属性として示されている。この場合、サブコンテンツを挿入するための受理情報Ｄ１４を書き込む。まず、サブコンテンツの挿入場所（位置）Ｄ１４１として、当該「ａｃｃｅｐｔ」エレメントの構造上の位置を書き込み、「ａｃｃｅｐｔ」エレメントに「ｔｙｐｅ」属性があれば（その値がセミコロンで複数の文字列（各文字列は、例えば受け入れ可能なサブコンテンツのタイプ（受理タイプ）の識別子に対応する）に分割されていれば、その各文字列を）受理タイプＤ１４２としてそれぞれ書き込む。
【０１４８】
「ａｃｃｅｐｔ」エレメントは複数存在する可能性があり、その数だけ書き込み処理を行う。
【０１４９】
ページ部品ＤＢＭ２２１ｂは、ブロックＷｅｂ文書に含まれるページ部品をすべて格納し管理している。各ページ部品は、自分の親となるページ部品および子供のページ部品群への参照情報を持っているので、この参照情報を基に順にたどっていくことで、任意のページ部品の情報を取り出すことができる。
【０１５０】
ページ部品挿入モジュールＭ２２１ｃは、任意のページ部品の子供として、新規にページ部品を追加・挿入するためのものである。
【０１５１】
図１１は、ページ部品挿入モジュールＭ２２１ｃの処理動作を説明するためのフローチャートである。以下、図１１を参照して説明する。例えば、ページ部品Ａをページ部品Ｂに挿入する場合（ステップＳ２０）、ページ部品ＤＢからページ部品Ｂの受理情報Ｄ１４に含まれる受理タイプＤ１４２を取出すとともに、挿入するページ部品Ａに含まれているタイプ名Ｄ１１を取出し、当該受理タイプＤ１４２に、タイプ名Ｄ１１として書き込まれているページ部品Ａのタイプ名が存在するか否かを判定する（ステップＳ２０〜２３）。存在するときは、ページ部品Ａをページ部品Ｂの子供のページ部品（子ページ部品）として関連付けるために、ページ部品Ａについての子ページ部品管理情報Ｄ１６をページ部品Ｂに登録する。また、ページ部品Ｂをページ部品Ａの親のページ部品（親ページ部品）として関連付けるために、ページ部品Ｂについての親ページ部品への参照Ｄ１５をページ部品Ａに登録する（ステップＳ２４）。
【０１５２】
ステップＳ２３において、受理タイプＤ１４２に、タイプ名Ｄ１１として書き込まれているページ部品Ａのタイプ名が存在しないときは、当該ページ部品Ａを適切なタイプのページ部品に変換をしてから挿入することを実現するため、ページ部品形式調整モジュールＭ２２５を呼び出す。その際、ページ部品形式調整モジュールＭ２２５にページ部品Ｂの受理タイプＤ１４２と、ページ部品Ａを渡して、ページ部品Ａのサブコンテンツのタイプをページ部品Ｂが受け入れ可能なタイプになるよう、変換を依頼する。
【０１５３】
ページ部品Ａのサブコンテンツのタイプが、ページ部品Ｂが受け入れ可能なタイプに変換できたときには、ステップＳ２４へ進む。
【０１５４】
なお、ステップＳ２２で、ページ部品Ａの受理情報Ｄ１４に受理タイプが指定されていないとき、ステップＳ２５で、ページ部品Ａのサブコンテンツのタイプをページ部品Ｂが受け入れ可能なタイプに変換できないとき、ステップＳ２６へ進み、ページ部品Ａのページ部品Ｂへの挿入は拒否される。
【０１５５】
図１０の説明に戻り、ページ部品削除モジュールＭ２２１ｄは、任意のページ部品を削除するためのものである。具体的には、削除されるページ部品の親ページ部品からは、当該削除されるページ部品を関連付けるための子ページ部品管理情報Ｄ１６を削除し、当該削除されるページ部品自体をページ部品ＤＢから削除する。このとき、削除対象のページ部品に対応する部分文書に、当該部分文書に包含される部分文書（すなわち、子供の部分文書）があるときは、当該包含される部分文書に対応するページ部品もページ部品ＤＢから削除する。なお、ページ部品挿入モジュールの機能と、このページ部品削除モジュールの機能を組み合わせることで、ページ部品の移動も実現できる。
【０１５６】
ページ部品保存モジュールＭ２２１ｅは、任意のページ部品をファイル保存する機能である。指定されたページ部品を保存する機能であり、この機能を利用する場合には、保存したいページ部品とファイル名を指定する。ただし保存対象には、指定されたページ部品だけでなく、その子孫ページ部品も含まれる。
【０１５７】
保存の形式としては、ブロックＷｅｂ文書形式、ＰｕｒｅＸＭＬ形式、ＨＴＭＬ形式の３種類ある。ブロックＷｅｂ文書形式とは、「ｃｏｍｐｏｎｅｎｔ」属性や「ａｃｃｅｐｔ」エレメントや「ｉｍｐｏｒｔ」エレメントなど、ブロック化・リンクのための特殊な表記を含む形式であり、次回に、ページ部品記憶ＤＢにロードしてもブロック構造情報やリンク関係を復元できる。
【０１５８】
ＰｕｒｅＸＭＬ形式は、これらブロック化のための特殊な表記を取り除いたものである。ＨＴＭＬ形式は、現在表示されているＨＴＭＬの状態をそのまま保存するものである。
【０１５９】
ブロックＷｅｂ文書形式とＰｕｒｅＸＭＬ形式の場合は、ページ部品Ｄ１のコンテンツＤ１２に対して、当該ページ部品の子孫ページ部品のコンテンツＤ１２を合成することで、保存内容を決定する。ページ部品Ｄ１には、子ページ部品管理情報Ｄ１６として、各子ページ部品とその子ページ部品を挿入すべき挿入場所Ｄ１６１書かれている。コンテンツの合成の際には、この情報を用いる。
【０１６０】
一方、ＨＴＭＬの場合は、後述するＨＴＭＬ合成モジュールＭ２２２ａ（図１２参照）を実行することで、保存内容を決定する。
【０１６１】
（レンダリング処理モジュール）
レンダリング処理モジュールＭ２２２は、ページ部品を表示する機能を持つ。
【０１６２】
重要な用途の１つとして、ページ部品管理モジュールＭ２２１によって解析処理済のブロックＷｅｂ文書を図６に示すように、表示画面上のＷｅｂ表示部６−２に表示する。
【０１６３】
ページ部品は、前述したように、他のページ部品に包含されることもあれば、他のページ部品を包含することもある（ページ部品は、必然的に他のページ部品と包含関係を有する）。各ページ部品に対応するサブコンテンツに対して、そのページ部品のスタイルシートＤ１２を適用するだけでは不十分で、そのページ部品の各子ページ部品のスタイルシート適用結果を、はめ込む処理が必要となる。これに対して、本システムでは、スタイルシートに「ｉｍｐｏｒｔ」エレメントを用意しており、「ｉｍｐｏｒｔ」エレメントの「ｔｙｐｅ」属性として挿入対象とする子ページ部品のタイプ名を書くとする（省略した場合はどんなタイプも受け入れる）。ＸＳＬＴ（スタイルシート）の適用処理をしただけでは、「ｉｍｐｏｒｔ」命令はそのままＨＴＭＬと混じって出力として出てくることになる。そこで、そのＨＴＭＬを解析しＨＴＭＬ合成を行う。
【０１６４】
なお、このスタイルシート中の「ｉｍｐｏｒｔ」エレメント（「ｉｍｐｏｒｔ」と呼ぶこともある）は、画面上に表示するためのＨＴＭＬ合成のためのものであり、ブロックＷｅｂ文書で記述されている「ｉｍｐｏｒｔ」とは機能面で似てはいるが、別の命令である。
【０１６５】
具体例を挙げると、適用結果が以下のようになるようなスタイルシートがあるとする。
【０１６６】
＜ｈｔｍｌ＞＜ｂｏｄｙ＞
＜ｈ１＞Ｔｉｔｌｅ＜／ｈ１＞
＜ｄｉｖ＞＜ｉｍｐｏｒｔ　ｔｙｐｅ＝“ｔｙｐｅ−ａ”＞＜／ｄｉｖ＞
＜ｄｉｖ＞＜ｉｍｐｏｒｔ　ｔｙｐｅ＝“ｔｙｐｅ−ｂ”＞＜／ｄｉｖ＞
＜／ｂｏｄｙ＞＜／ｈｔｍｌ＞
このとき、１番目の「ｄｉｖ」エレメントには「ｔｙｐｅ−ａ」タイプの子ページ部品のスタイル適用結果が入り、２番目の「ｄｉｖ」エレメントには「ｔｙｐｅ−ｂ」タイプの子ページ部品のスタイル適用結果が入る。
【０１６７】
この合成処理をするのがＨＴＭＬ合成モジュールＭ２２２ａである。ＨＴＭＬ合成モジュールＭ２２２ａは、指定されたページ部品に対してスタイルシート（複数のスタイルシートがある場合は、指定されたスタイルシートあるいは１番目）を適用してＨＴＭＬを得る。
【０１６８】
得られたＨＴＭＬの中から「ｉｍｐｏｒｔ」エレメントをすべて探し出し、それぞれに関して「ｓｒｃ」属性で指定された子ページ部品に関して、スタイルシートを適用して得られたＨＴＭＬの結果を「ｉｍｐｏｒｔ」エレメントの代わりにはめ込む。ただし子ページ部品のスタイル適用結果にも「ｉｍｐｏｒｔ」命令が含まれていた場合には、はめ込む前に同様にその子ページ部品のスタイル適用結果をはめ込む。この処理は再帰的に行われる。
【０１６９】
この再起処理が完了すると、すべての子ページ部品のスタイルシート適用結果が合成された１つのＨＴＭＬを得られる。この結果をＨＴＭＬレンダラＭ２２２ｂに渡すことでＨＴＭＬが表示される。なお、この手順において使用されるＨＴＭＬレンダラＭ２２２ｂは入力されたＨＴＭＬを表示する機能を持つ既存のコンポーネントであり、一般のブラウザも内蔵しているものである。
【０１７０】
以上がブロックＷｅｂ文書を表示するまでの処理であるが、説明簡便化のため省略した事項がある。上記、各ページ部品あるいはその子ページ部品に関してスタイルシート適用をしてＨＴＭＬを得た直後に、得られたＨＴＭＬのルートエレメントおよびページ部品への参照を入力として、ＧＵＩ処理モジュールＭ２２３のＧＵＩ処理初期化モジュールＭ２２３ａを呼び出す。これは、合成されたＨＴＭＬにおいて、サブコンテンツのためのドラッグドロップやコンテクストメニューなどのＧＵＩ操作機能を埋め込むためである。詳しくは、後述する。
【０１７１】
（ＧＵＩ処理モジュール）
ＧＵＩ処理モジュールＭ２２３は、表示されたページ部品に対して、ドラッグドロップやコンテクストメニューなどのサブコンテンツ向けＧＵＩ操作機能を提供するモジュールであり、図１３のような構成になっている。
【０１７２】
ＧＵＩ処理初期化モジュールＭ２２３ａは、後述するドラッグドロップ処理モジュールＭ２２３ｂやコンテクストメニュー処理モジュールＭ２２３ｃに対して、（マウス等で選択操作のなされた）処理対象のＨＴＭＬのエレメントやページ部品を登録する処理を行う。
【０１７３】
ＧＵＩ処理初期化モジュールＭ２２３ａは、ページ部品への参照情報、およびページ部品が表示において割り当てられているＨＴＭＬ文書の要素（エレメント）であるルートエレメントへの参照情報の２つを入力として、呼び出されて、それらをドラッグ処理モジュールＭ２２３ｂ、ドロップ処理モジュールＭ２２３ｃとコンテクストメニュー処理モジュールＭ２２３ｄにイベント登録することで、イベントと対応する処理を結びつける。
【０１７４】
これにより、登録されたＨＴＭＬエレメントでドラッグドロップ操作やコンテクストメニュー（右クリック）操作が行われたときに、これらの処理モジュールが呼び出されるようになり、サブコンテンツ向けのサービスが機能するようになる。
【０１７５】
また、これらの処理モジュールは、ＨＴＭＬエレメントとページ部品の対応表を持っているので、対象としているページ部品を特定できる。したがってページ部品の内容を基に、ＧＵＩサービス機能を提供することができる。
【０１７６】
以下はそれらイベントハンドラーの処理について述べる。
【０１７７】
ドラッグ処理モジュールＭ２２３ｂは、１つのページ部品に対応するＨＴＭＬ部分文書の表示領域がドラッグされたときに実行される処理モジュールで、一般にドラッグイベントハンドラーとも呼ばれる。ユーザは、ドラッグドロップＧＵＩ操作によってページ部品を移動あるいはコピーさせることができる。ドラッグ処理モジュールはその前半部を担当する。
【０１７８】
この処理手順は、図１４に示すように、画面上で選択された表示データに対応する部分文書に対し、ドラッグ操作がなされると、操作対象の当該表示データに対応する部品データをメモリに一時記憶する（ステップＳ３０からステップＳ３１）。このようにして、続いて発生するドロップイベントに備える処理を行う。補足すると、このドロップ先は、同じページ内とは限らなくて、別のプロセスのブロックＷｅｂ文書であっても、メーラー（電子メールソフト）やＯＡソフトなど別のアプリケーションであってもよいし、デスクトップであってもよい。そこで、
ステップＳ３２において、エクスポートモジュールＭ２２４を呼び出して、外部アプリケーション向けに当該ページ部品を転送するために、当該ページ部品をエクスポートモジュールＭ２２４へ渡す。
【０１７９】
続いて、ドロップ処理モジュールＭ２２３ｃは、ページ部品上に何かがドロップされたときに実行される処理モジュールで、一般にドロップイベントハンドラーとも呼ばれる。ドラッグドロップＧＵＩ操作の後半部を担当する。この処理手順の詳細は図１５に示す通りであって、サブコンテンツを操作対象とするドロップイベントが発生すると、当該操作対象のサブコンテンツに対応するページ部品をメモリから読み出して、ページ部品挿入モジュールＭ２２１ｃを用いて、ドロップ操作により指定された位置にサブコンテンツを挿入する（ステップＳ４０〜４２）。挿入されると、当該ドロップされたサブコンテンツに対応するページ部品を新規に作成する。先に読み出された、当該操作対象のサブコンテンツに対応するページ部品中の親ページ部品への参照情報Ｄ１５を参照して、当該操作対象のページ部品は、同じページからドラッグされたものであるか否かを判定する。同じページからドラッグされたものであるならば、当該操作対象のページ部品をページ部品削除モジュールＭ２２１ｄを用いてページ部品ＤＢＭ２２１ｂから削除する（ステップＳ４３〜ステップＳ４５）。そして、レンダリング処理モジュールＭ２２２を用いて、再描画を試みる（ステップＳ４６）。一方、ステップＳ４４で、操作対象のページ部品が同じページからドラッグされたものでないならば、そのままステップＳ４６へ進む。
【０１８０】
補足として、マウス右ボタンを押しながらのドロップであった場合は、ユーザはリンクを意図していると解釈し、リンクであることを示すフラグ（図４のリンクフラグＤ１８）を立てて（「１」にセットする）。この場合、図１５のステップＳ４２とステップＳ４３の間で、右ドロップかどうかを判定するステップを追加し、右ドロップであればリンクフラグＤ１８を「１」にセットし、そうでなければリンクフラグＤ１８を「０」とする。また、この場合、リンクＵＲＬＤ１７に、当該リンク情報を格納してもよい
なお、リンクとしておく場合、リンク先のページ部品のサブコンテンツが変化した場合でも、ブロックＷｅｂ文書を表示する際に、リンク先へ当該ページ部品を取りに行くため、その最新版のサブコンテンツが表示されるというメリットがある。たとえば、ユーザは、後述するスクラップブックに、所望するページ部品へのリンクを登録しておくことで、例えば、あるブロックＷｅｂ文書中の「ＣＤ売り上げベスト１０」というサブコンテンツと、他のブロックＷｅｂ文書中の「図書売り上げベスト１０」というサブコンテンツの両方が掲載された、毎日変化する自分だけのマイオリジナルポータルページを作成することができる。
【０１８１】
コンテクストメニュー処理モジュールＭ２２３ｄは、ページ部品上で右クリックされたときに、実行可能なコマンドのメニューをポップアップする機能である。本システムでは、コンテクストメニューとして削除コマンド・編集コマンド・新規作成コマンド・ＨＴＭＬカッターコマンド・スタイル切り替えコマンドを用意している。削除コマンドが選択されると、ページ部品削除モジュールＭ２１１ｄを実行した上で、レンダリング処理モジュールＭ２２２が実行されて、ページ部品の削除が行われる。
【０１８２】
また編集コマンドと新規作成コマンドは、既存あるいは新規のページ部品を編集するコマンドであり、これらの処理は編集モジュールＭ２２３ｅが担当する。
【０１８３】
具体的な処理の流れを、図２０に示す。図２０において、たとえば、図６に示したＷｅｂ表示部６−２上の所望のサブコンテンツを選択した後、新規作成コマンドが選択されると、空のページ部品を作成して、この空のページ部品を、ページ部品挿入モジュールを用いて、当該選択されたサブコンテンツに対応するページ部品に挿入する（ステップＳ６０〜ステップＳ６２）。その後、ＸＭＬ文書やＸＳＬＴ文書を編集するためのＸＭＬ／ＸＳＬエディタを起動して、各種編集コマンドを用いることで、新規作成されたページ部品中のコンテンツＤ１２やスタイルシートＤ１３の内容（実体）を作成する（ステップＳ６３）。編集作業が終了し、ＸＭＬ／ＸＳＬエディタが閉じられたら、編集結果を先に新規作成されたページ部品中のコンテンツＤ１２やスタイルシートＤ１３に書き込む（ステップＳ６４）。
【０１８４】
ただし、ステップＳ６３で起動されるＸＭＬ／ＸＳＬエディタは既存のものでよい。
【０１８５】
ＨＴＭＬカッターコマンドは、入力ページがもともと通常のＨＴＭＬである場合に（この場合、当該ＨＴＭＬ文書は、ページ読込モジュールＭ２１において、それ全体が１つの部品データとなるようなブロックＷｅｂ文書に変換されている）、図６のＷｅｂ表示部６−２上でユーザが範囲指定をし、その部分をページ部品として分割する機能であり、ＨＴＭＬカッターモジュールＭ２２３ｄが担当する。ページ部品として分割すると、その部分はその後、独立したサブコンテンツとして取り扱うことができる。ＨＴＭＬカッターの具体的な処理の流れを図２１に示す。
【０１８６】
図２１において、たとえば、文書処理モジュールＭ２に入力した時点では、通常のＨＴＭＬ文書であったものが、ページ読込モジュールＭ２１を経て、全体が１つの部品データとなるようなブロックＷｅｂ文書に変換され、さらに、ページ部品管理モジュールＭ２２１、レンダリング処理モジュールＭ２２２などを経由して、図６に示したＷｅｂ表示部６−２上に表示されたとする。このＷｅｂ表示部６−２上で、ユーザにより所望の領域が選択された後、ＨＴＭＬカッターコマンドが選択されると、まず、現在の選択範囲内におけるトップエレメントを特定する（ステップＳ７０〜ステップＳ７２）。
【０１８７】
特定されたエレメントに、当該エレメントは１つのサブコンテンツであることを示すための「ｃｏｍｐｏｎｅｎｔ」属性と、スタイル属性を付加する。すなわち、当該エレメントに「ｃｏｍｐｏｎｅｎｔ＝“ｙｅｓ”」と、スタイル属性として、ＨＴＭＬ用のデフォルトスタイルが記述されているスタイルシートの識別情報を書き込む（ステップＳ７３）。選択範囲内のコンテンツ、すなわち、上記トップエレメント以下の選択範囲内のエレメント（要素）から構成される部分文書に対するページ部品を新規作成し、ページ部品ＤＢへ登録する（ステップＳ７４）。
【０１８８】
このサブコンテンツとして指定されたコンテンツを含む、元のコンテンツ（１つのブロックＷｅｂ文書としての１つのページ）に対応するページ部品と、新規作成されたページ部品との間で親子関係があるので、この親子関係に基づき、前述したように、それぞれのページ部品中の親ページ部品への参照Ｄ１５と、子ページ部品管理情報Ｄ１６を書き込む（ステップＳ７５）。
【０１８９】
補足であるが、ステップＳ７１でのＨＴＭＬベースのページかどうかの判定は、スタイルシートがＨＴＭＬ用デフォルトスタイルであるかどうかで判定すればよい。もちろん、ブロックＷｅｂ文書や、それ以外の各種構造化文書である場合にも上記ＨＴＭＬカッターコマンドと同等のコマンドを用意して、それら構造化文書（すなわち、部分文書）から所望の部分文書をサブコンテンツとして区分するようにいしてもよい。
【０１９０】
スタイル切り替えコマンドは、ページ部品に登録されている複数のスタイルシートＤ１３の中から、ユーザに所望のものを選択させ、その選択されたスタイルシートでページ部品Ｄ１を表示しなおす機能であり、スタイル切り替えモジュールＭ２２３ｆが担当する。スタイル切り替えの具体的な処理の流れを図２２に示す。
【０１９１】
図２２において、たとえば、図６に示したＷｅｂ表示部６−２上の所望のサブコンテンツを選択した後、スタイル選択コマンドが選択される（ステップＳ８０）。ステップＳ８１において、当該選択されたサブコンテンツに対応するページ部品Ｄ１に複数のスタイルシートＤ１３が登録されているときには、ステップＳ８２へ進み、１つのみスタイルシートＤ１が登録されているときには、そのまま処理を中止する。
【０１９２】
ステップＳ８２において、当該選択されたページ部品に登録されている複数のいスタイルシートのうちのいずれか１つを選択させるためのメニュー画面を表示し、この中から、ユーザにより選択されたスタイルシートを、当該選択されたサブコンテンツ（ページ部品Ｄ１中のコンテンツＤ１２）に適用して、Ｗｅｂ表示部６−２に表示する（ステップＳ８３）。
【０１９３】
その他、説明は省略するが、切り取り、コピー、貼り付けなどのコマンドがあってもよい。
【０１９４】
（エクスポートモジュール）
図２のエクスポートモジュールＭ２２４は、前述のように、文書処理モジュールＭ２と外部アプリケーションとの間でサブコンテンツをドラッグドロップ操作により複写可能にするためのモジュールである。また、ここでは、説明は省略するが、文書処理モジュールＭ２からドラッグドロップされたサブコンテンツを外部アプリケーションの形式でファイル保存する目的にも利用可能である。
【０１９５】
ここでエクスポートとは、文書処理モジュールＭ２から外部アプリケーションへのサブコンテンツの複製を転送することを意味する。
【０１９６】
また、外部アプリケケーションとは、本実施形態に係る文書処理システム以外のアプリケーションを云うものとする。
【０１９７】
エクスポートモジュールＭ２２４は、図１６のように複数のサブモジュールから構成されている。外部アプリケーションからは、ページ部品を入力とするエクスポート要求を受けるが、その要求は共有メモリ登録モジュールＭ２２４ａに送られる。共有メモリ登録モジュールＭ２２４ａは、他の出力モジュールＭ２２４ｂからＭ２２４ｄを用いて、処理対象のページ部品を転送するための当該ページ部品を含むエクスポートデータを作成させ、それらを全ての外部アプリケーションからアクセスすることのできる共有メモリに登録する。これにより、外部アプリケーションは、ページ部品がドロップされたときに、その外部アプリケーションにとって最も都合の良いデータ形式で内容を読み込むことができる。
【０１９８】
アプリ別形式出力モジュールＭ２２４ｂは、いくつかの著名な外部アプリケーションに対象を絞り、処理対象のページ部品（少なくとも当該ページ部品で表示する表示データ）を、それら外部アプリケーションに適用可能なデータ形式に変換することにより、上記エクスポートデータを生成し、当該外部アプリケーションへ出力する。
【０１９９】
標準形式出力モジュールＭ２２４ｃは、処理対象のページ部品（少なくとも当該ページ部品で表示する表示データ）を、テキスト形式やＨＴＭＬ形式など広く使われているデータ形式に変換することにより、上記エクスポートデータを生成し、外部アプリケーションへ出力する。
【０２００】
オブジェクト埋込形式出力モジュールＭ２２４ｄは、処理対象のページ部品（少なくとも当該ページ部品で表示する表示データ）を、本システムのデータ形式（すなわち、例えば、ページ部品Ｄ１のデータ形式）のまま、当該ページ部品に対応する文書処理モジュールＭ２を当該ページ部品に対応付けるための参照情報とともに、上記エクスポートデータとして外部アプリケーションへ出力する。この方法では、ドロップ先の外部アプリケーションのウィンドウ領域の一部に本システムの文書処理モジュールＭ２が埋め込まれる。
【０２０１】
（ページ部品形式調整モジュール）
図２のページ部品形式調整モジュールＭ２２５は、前述のように、ページ部品挿入処理モジュールＭ２２１ｃで用いられるモジュールである。具体的には、ページ部品挿入処理モジュールＭ２２１ｃから、変換対象のページ部品と、他のページ部品中の受理タイプＤ１４２とを含む変換要求が入力されると、当該変換対象のページ部品のタイプ名Ｄ１１を調べ、少なくとも変換対象のページ部品に対応する部分文書のタイプ（例えば、データ形式）を他のページ部品中の受理タイプＤ１４２に含まれるいずれかのタイプに変換する処理である。
【０２０２】
この変換要求は、ページ部品挿入処理モジュールＭ２２１ｃから変換ルール検索モジュールＭ２２５ａに送られる。
【０２０３】
変換ルールデータベース（ＤＢ）Ｍ２２５ｂには、変換元と変換先のタイプ別に、複数の変換方法（変換規則あるは変換ルール）が予め記憶されている。
【０２０４】
変換ルール検索モジュールＭ２２５ａは、変換ルールＤＢＭ２２５ｂから、変換元と変換先のタイプに対応する変換方法を見つけ出し、変換結果のページ部品を返すか、あるいは見つからなかった場合には、変換に失敗した旨を要求元のページ部品挿入処理モジュールＭ２２１ｃへ返す。
【０２０５】
変換ルールＤＢＭ２２５ｂには、変換元のタイプと変換先のタイプと、変換ルール（例えばＸＳＬＴ文書などの変換規則を記述した文書）の３つを１組とした複数のデータを管理している。変換ルール検索モジュールＭ２２５ａは、入力された、処理対象のページ部品のタイプ名Ｄ１１から、最終的に求めているタイプのいずれかに変換するための、複数の変換ルールからなるシーケンスパス（順序つき組み合わせ）を検索し、最終的に複数のシーケンスが見つかった場合には、最短パスとなる組み合わせを採用する。
【０２０６】
たとえば、処理対象のページ部品のタイプが「ｔｙｐｅ−ｘ」タイプであり、最終目的のタイプが「ｔｙｐｅ−ｙ」タイプか「ｔｙｐｅ−ｚ」タイプであり、変換ルールＤＢＭ２２５ｂには、以下のデータが記憶されていたとする。
【０２０７】
（ｔｙｐｅ−ｘ，　ｔｙｐｅ−ａ，　ｘａ．ｘｓｌ）
（ｔｙｐｅ−ａ，　ｔｙｐｅ−ｂ，　ａｂ．ｘｓｌ）
（ｔｙｐｅ−ｂ，　ｔｙｐｅ−ｙ，　ｂｙ．ｘｓｌ）
（ｔｙｐｅ−ｘ，　ｔｙｐｅ−ｃ，　ｘｃ．ｘｓｌ）
（ｔｙｐｅ−ｃ，　ｔｙｐｅ−ｚ，　ｃｚ．ｘｓｌ）
この場合、最終目的のタイプに変換するシーケンスとして、ｘａ．ｘｓｌ　−＞　ａｂ．ｘｓｌ　−＞　ｂｙ．ｘｓｌ、と、ｘｃ．ｘｓｌ　−＞　ｃｚ．ｘｓｌ、の２種類があるが、変換ルール検索モジュールＭ２２５ａは後者を選択し、順にＸＳＬＴ文書を適用した結果得られるページ部品（「ｔｙｐｅ−ｚ」タイプ）を返す。
【０２０８】
（デスクトップ貼り付けモジュール）
デスクトップ貼り付けモジュールＭ３は、独立したプロセスで動作するアプリケーションである。このアプリケーションソフトウェアにより、一般的なブラウザで構成されている第１のホストモジュールＭ１や第２のホストモジュールＭ１を組み込んだアプリケーションソフトウェアからデスクトップへページ部品（サブコンテンツ）をドラッグドロップすると、当該ページ部品を付箋紙のようにデスクトップに貼り付けることが可能となる。
【０２０９】
また、逆に付箋紙からホストモジュールＭ１へドラッグドロップして戻すことも可能となっている。
【０２１０】
デスクトップ貼り付けモジュールＭ３は図１８に示すように、デスクトップ監視モジュールＭ３ａと付箋紙表示モジュールＭ３ｂから構成されている。付箋紙表示モジュールＭ３ｂは付箋紙の数だけ動的に生成されるモジュールである。また各付箋紙表示モジュールＭ３ｂは、内部に文書処理モジュールＭ２２を生成維持する。
【０２１１】
また、デスクトップ貼り付けモジュールＭ３において、ページ部品のデスクトップへのドロップイベントに関する処理の流れを図１９に示す。
【０２１２】
図１９において、たとえば、図６に示したＷｅｂ表示部６−２上の所望のサブコンテンツを選択した後、ドラッグ操作と、それに引き続き、デスクトップ上にドロップイベントが発生したことをデスクトップ監視モジュールＭ３ａが検知すると（ステップＳ５０）、付箋紙表示モジュールＭ３ｂが起動する（ステップＳ５１）。このとき、選択されたものがサブコンテンツ（ページ部品）でないときは、処理を中止する（ステップＳ５６）。
【０２１３】
起動された付箋紙表示モジュールＭ３ｂは、画面上にウインドウ領域を確保しするとともに、文書処理モジュールＭ２を起動する（ステップＳ５２からステップＳ５４）。
【０２１４】
付箋紙表示モジュールＭ３ｂは、起動した文書処理モジュールＭ２にドロップされたサブコンテンツ（ページ部品）を読み込ませ、当該ウインドウに表示させる（ステップＳ５５）。
【０２１５】
これにより、ページ部品を付箋紙に次々貼り付けることができる。なお公知の技術なのでここでは方法について言及してないが、各付箋紙表示モジュールが作成したウィンドウは、後から画面上のユーザの好きなところに移動させることができるようにする。
【０２１６】
逆に付箋紙として表示されたページ部品は、逆にブラウザへドラッグドロップすることで、ブラウザが表示しているページへ追加したり、あるいは削除することができる。
【０２１７】
これらの機能はデスクトップ貼り付けモジュールＭ３が特別に用意した機能ではなく、以前の詳細説明した各付箋紙表示モジュールＭ３ｂ内の文書処理モジュールＭ２２が行っていることである。
【０２１８】
（文書編集システムのまとめ）
以上説明したように、本実施形態に係る文書編集システムは、複数の要素から構成された文書構造を有する構造化文書を表示手段（図２４の出力装置２４に対応する）に表示するとともに、この構造化文書に一致または含まれる部分文書であって、予め操作単位として定められた表示データを表示手段に表示するための少なくとも１つの要素からなる部分文書を基に構造化文書を編集する文書編集システムであって、部分文書には、少なくとも１つのサブコンテンツに対応する部分文書であることを表す情報（例えば、「ｃｏｍｐｏｎｅｎｔ」属性）が含まれており、この情報を基に、少なくとも当該部分文書の位置情報（部分文書間の親子関係（包含関係）を表す情報を含む）を含む部分文書毎の部品データ（すなわち、ページ部品）を作成して、構造化文書を部品データの集合として記憶手段（すなわち、ページ部品ＤＢ）に記憶し、表示手段に表示された表示データのうち、操作対象として選択された表示データに対する操作内容に応じて、当該操作対象の表示データに対応する部品データを更新することにより構造化文書を編集する。
【０２１９】
各部分文書には、当該部分文書のタイプと、当該部分文書のデータ形式を当該部分文書に適用する表示形式に対応するデータ形式に変換するための少なくとも１つの変換規則と、当該部分文書の表示データとして表示手段に表示される他の構造化文書中の部分文書へのリンク情報と、当該部分文書に挿入可能な他の部分文書のタイプと挿入位置のうちの少なくとも１つが、当該部分文書の付加情報（例えば、属性情報など）として含まれており、この付加情報を各部分文書から抽出して、当該部分文書の部品データを作成する。従って、部品データには、当該部品データに対応する部分文書に含まれている付加情報が含まれている。
【０２２０】
なお、例えば、部分文書の位置は、当該部分文書を包含している、例えばＷｅｂページなどの他の部分文書の文書構造上の配置位置などで表すことができる。
【０２２１】
また、１つのＷｅｂページ全体に対応する部分文書と、当該Ｗｅｂページに含まれる１つのサブコンテンツに対応する部分文書との間の関係は、親子関係（包含関係）にあると言える。
【０２２２】
また、各部分文書で表示手段に表示されるデータ（表示データ）は、当該部分文書に包含されている場合と、当該表示データへのリンク情報が当該部分文書に含まれている場合とがある。
【０２２３】
このように、上記実施形態によれば、構造化文書に含まれている、操作単位の部分文書を表す情報を基に識別することができる各部分文書のそれぞれについて、その付加情報を基に、上記部品データ（ページ部品）を作成することで、この部品データを基に、画面上に表示された内容をサブコンテンツ単位（部分文書単位）で容易に編集操作を行うことできる。
【０２２４】
（サービスサーバ）
以上説明したように、ブロックＷｅｂ文書を用いたサブコンテンツ単位の操作・編集を行う仕組みが確立された場合、Ｗｅｂページの提供者（Ｗｅｂサイト）の中には、この仕組みを活用してページの利便性を向上させることで、当該Ｗｅｂページの閲覧者を増やしたいと考える者もいるだろう。
【０２２５】
Ｗｅｂページを提供する側として、ポータルサイトで各ポートレットをページ部品とするなど静的なＷｅｂページへの適用例と、ショッピングサイトなどで検索結果の商品カタログをページ部品とするなど動的なＷｅｂページへの適用例が考えられる。すなわち、前者の場合、サーバで保持するＷｅｂページは全て、ブロック構造情報などを有するブロックＷｅｂ文書とし、後者の場合、例えば、検索される各レコードを１つのサブコンテンツ（ページ部品）とし、検索結果として得られた複数のレコードを所定の形式でまとめ上げて、１つのブロックＷｅｂ文書を作成し、クライアントへ配信するようにしてもよい。
【０２２６】
Ｗｅｂサイトから提供されるＷｅｂページが前述のブロックＷｅｂ文書であると、Ｗｅｂサイトから提供されるコンテンツをユーザがブラウザで閲覧すると、当該Ｗｅｂページに含まれるページ部品に関する上述の操作機能を活用することができるという効果が得られる。
【０２２７】
図２３は、サーバ装置の構成例を示したもので、サーバ装置１０は、例えば、インターネットなどの所定のネットワーク１２を介して複数のクライアント端末（ここでは、２つ）１１ａ、１１ｂ（以下、これらを区別する必要がない場合は、それぞれをクライアント端末１１と呼ぶ）からの要求を受け付けて、ユーザに所望のＷｅｂ文書（Ｗｅｂページ）などを配信するためのものである。
【０２２８】
図２３に示すサーバ装置１０は、クライアント端末１１からの配信要求を受け付ける配信要求受付部１０ａと、複数のＷｅｂページ（全てブロックＷｅｂ文書であってもよいし、ＨＴＭＬ文書などのブロックＷｅｂ文書以外の文書であってもよい）を記憶するＷｅｂページ記憶部１０ｂと、ブロックＷｅｂ文書以外のＷｅｂ文書をブロックＷｅｂ文書に変換するための変換部１０ｃと、配信要求されたＷｅｂページを要求元のクライアント端末１１へ配信するための配信部１０ｄと、上記各部を制御するための制御部１０ｅとから構成されている。
【０２２９】
Ｗｅｂページ記憶部１０ｂには、前述したように、ブロックＷｅｂ文書のみを記憶するようにしてもよい。また、ブロックＷｅｂ文書以外のＷｅｂ文書が記憶されていてもよい。Ｗｅｂページ記憶部１０ａに記憶されているＷｅｂページのうち、ブロックＷｅｂ文書以外のものは、変換部１０ｃにて、ブロックＷｅｂ文書に変換する。
【０２３０】
変換部１０ｃは、前述のページ読込モジュールＭ２１で構成可能である。すなわち、Ｗｅｂページ記憶部１０ｂに格納されているＷｅｂ文書に対し適用可能な変換ルールが存在すれば、当該変換ルールを適用して、ブロックＷｅｂ文書に変換し、適用可能な変換ルールが存在しない場合には、当該Ｗｅｂ文書を１つのページ部品と解釈して、当該Ｗｅｂ文書のルートノードに、「ｃｏｍｐｏｎｅｎｔ」属性を付与するとともに、当該Ｗｅｂ文書にデフォルトのスタイルを与える。
【０２３１】
このようにして、配信要求受付部１０ａで受け付けられた、クライアント端末１１からの配信要求を基に、クライアント端末１１から要求されたブロックＷｅｂ文書が配信部１０ｄを介して、要求元へ配信するようになっている。
【０２３２】
ところで、本システムの別の特徴として、ユーザはＷｅｂサイトやＷｅｂページを越えて、ページ部品を受け渡すことができる。したがって、ユーザがコンテンツを提供するＷｅｂサイトからページ部品だけを抽出することができ、ユーザは好みのＷｅｂサイトをベースに情報閲覧作業を続けることができる。
【０２３３】
そこで各Ｗｅｂサイトは、Ｗｅｂテンプレート領域、すなわちページ部品を収納している余白部分で差別化を図ることができる。差別化として、デザインや機能で使い勝手を向上させて顧客をインセンティブを与えるとともに、バナー広告を行ったり、検索結果として自社製品を効果的に出力するなど自社サービスへの誘導を行うことで、メリットを得ることができる。
【０２３４】
システム構成としては、Ｗｅｂテンプレート領域だけを含むＷｅｂ文書・ページ部品を検索出力するＣＧＩ・検索ＣＧＩの出力結果とＷｅｂテンプレート領域を合成出力するＣＧＩをＷｅｂサーバ上に配置するというシステム構成となる。
【０２３５】
またサーバが提供する別のサービスとして、顧客（ユーザ）が、図２や図２４に示した文書編集システムを用いて作成したスクラップブックをサーバが代行管理するというサービスも考えられる。スクラップブックは、ユーザの操作するコンピュータ上に格納されるため、外出先などそのマシンにアクセスできない場所では、自分がスクラップブックに蓄積したサブコンテンツをアクセスすることができないという不便さがある。この問題を解決するサービスとして、サーバがスクラップブックを管理するというソリューションが考えられる。この場合、サーバはユーザを認証し、そのユーザでしかログインできないＵＲＬに、そのユーザのスクラップブック群を割り当てて閲覧できるようにするとともに、スクラップブックを更新するためのフォームを用意する。
【０２３６】
またサーバは、ユーザに表示するスクラップブックを、自社にとって都合の良い内容にすることができるので、たとえば自社製品情報を各スクラップブックに付記するなどして宣伝効果を得ることができる。
【０２３７】
あるいは、スクラップブックに記載されたサブコンテンツの内容から、データマイニングなど既存技術などを用いて、各ユーザの趣向などを分析し、当該ユーザにとって歓迎されることが期待される情報を各スクラップブックに付記するという、付加価値サービスで差別化することも可能となる。
【０２３８】
本発明の実施の形態に記載した本発明の手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピーディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、半導体メモリなどの記録媒体に格納して、あるいはインターネットなどのネットワークを介して頒布することもできる。
【０２３９】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明は含まれており、開示される複数の構成用件における適宜な組み合わせにより、種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題（の少なくとも１つ）が解決でき、発明の効果の欄で述べられている効果（のなくとも１つ）が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【０２４０】
【発明の効果】
以上説明したように、本発明によれば、構造化文書の中に含まれるコンテンツを、それよりさらに細かい操作単位としてのサブコンテンツ単位で容易に編集することができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る文書編集システムの機能を説明するための図。
【図２】文書編集システムの機能的な構成例を示した図。
【図３】１つのＷｅｂページ中のページ部品（サブコンテンツあるいは部分文書）について説明するための図。
【図４】ページ部品のデータ構成を説明するための図。
【図５】ホストモジュールの機能的な構成例を示した図。
【図６】画面表示例を示した図。
【図７】ページ読込モジュールの機能的な構成例を示した図。
【図８】ページ読込モジュールの動作を説明するためのフローチャート。
【図９】入力文書のブロックＷｅｂ文書への変換手順を説明するためのフローチャート。
【図１０】ページ部品管理モジュールの機能的な構成例を示した図。
【図１１】ページ部品挿入モジュールの動作を説明するためのフローチャート。
【図１２】レンダリング処理モジュールの機能的な構成例を示した図。
【図１３】ＧＵＩ処理モジュールの機能的な構成例を示した図。
【図１４】ドラッグ処理モジュールの動作を説明するためのフローチャート。
【図１５】ドロップ処理モジュールの動作を説明するためのフローチャート。
【図１６】エクスポートモジュールの機能的な構成例を示した図。
【図１７】ページ部品形式調整モジュールの機能的な構成例を示した図。
【図１８】デスクトップ貼り付けモジュールの機能的な構成例を示した図。
【図１９】デスクトップ貼り付けモジュールの動作を説明するためのフローチャート。
【図２０】ページ部品の編集動作を説明するためのフローチャート。
【図２１】ＨＴＭＬカッター処理動作を説明するためのフローチャート。
【図２２】スタイル切り替え処理動作を説明するためのフローチャート。
【図２３】サーバ装置の構成例を示した図。
【図２４】図２に示した文書編集システムを例えばコンピュータ（計算機）上で実現する場合の構成例を示した図。
【符号の説明】
Ｍ１…ホストモジュール
Ｍ２…文書処理モジュール
Ｍ２１…ページ読込モジュール
Ｍ２２…ブロックＷｅｂ文書処理モジュール
Ｍ２２１…ページ部品管理モジュール
Ｍ２２２…レンダリング処理モジュール
Ｍ２２３…ＧＵＩ処理モジュール
Ｍ２２４…エクスポートモジュール
Ｍ２２５…ページ部品形式調整モジュール
Ｍ３…デスクトップ貼り付けモジュール
【図１】
2004046357.tif 000003
【図２】
2004046357.tif 000004
【図３】
2004046357.tif 000005
【図４】
2004046357.tif 000006
【図５】
2004046357.tif 000007
【図６】
2004046357.tif 000008
【図７】
2004046357.tif 000009
【図８】
2004046357.tif 000010
【図９】
2004046357.tif 000011
【図１０】
2004046357.tif 000012
【図１１】
2004046357.tif 000013
【図１２】
2004046357.tif 000014
【図１３】
2004046357.tif 000015
【図１４】
2004046357.tif 000016
【図１５】
2004046357.tif 000017
【図１６】
2004046357.tif 000018
【図１７】
2004046357.tif 000019
【図１８】
2004046357.tif 000020
【図１９】
2004046357.tif 000021
【図２０】
2004046357.tif 000022
【図２１】
2004046357.tif 000023
【図２２】
2004046357.tif 000024
【図２３】
2004046357.tif 000025
【図２４】
2004046357.tif 000026