(57)【特許請求の範囲】
【請求項１】
コンピュータによるウエブ・ドキュメントの再編集方法であって、
ドキュメント取得コード及びビュー編集コードをメモリに記憶するステップと、
マッピング定義コードをメモリに記憶するステップと、
他の再編集装置との間でデータ及び／又はメッセージをやり取りする共有インターフェース手段を確立するステップと、
ユーザの操作又は前記ドキュメント取得コードに従ってウエブ・サーバーからウエブ・ドキュメントを取得するステップと、
前記取得したウエブ・ドキュメントをＤＯＭツリー表現に解析するステップと、
前記ビュー編集コードが前記ＤＯＭツリー中の任意のノードを一意に指し示す情報と編集演算子を含み、当該情報及び演算子に従って前記ＤＯＭツリー表現を編集してビュー・ドキュメントを生成するステップと、
前記編集手段によって生成されたビュー・ドキュメントをレンダリングして当該ビュー・ドキュメントで表わされるウエブ・ドキュメントをモニタ上に表示するステップと、
前記マッピング定義コードが前記共有インターフェースへのデータの出力・入力・連携方法を記述するマッピング情報を有し、当該マッピング情報に従って前記ビュー・ドキュメントに含まれるデータを共有インターフェース手段にマッピングするステップと、
表示したウエブ・ドキュメントに対するユーザの操作をイベントとして取得、または発行するステップと、
からなり、
更に前記ビュー編集コードが、
編集対象のウェブドキュメントまたはビュードキュメントを指定する式と、編集方法を表す編集演算子と、編集箇所を指定するパス式とを含み、
前記編集演算子は、指定された編集箇所のサブツリーの削除（ＲＥＭＯＶＥ）又は、指定された編集箇所のサブツリー以外の総てのサブツリーの削除（ＥＸＴＲＡＣＴ）又は、指定された編集箇所への所与のＤＯＭツリーの挿入（ＩＮＳＥＲＴ）であり、
前記マッピング定義コードが、
マッピングされるデータの位置とノードタイプを表す式と、マッピング先の共有インターフェースに対する名前付けの範囲を表す識別子の定義とからなり、
前記マッピング情報が、前記ノードタイプに従って予め定められた共有インターフェースの名前付け規則、データ型、および入力、出力、イベント受信、イベント送信を含むマッピング・タイプの内の１つ、からなるノード・マッピング規則に従って決定される事を特徴とする方法。
【請求項２】
請求項１に記載の方法において、更に前記ドキュメント取得コードに従ってウエブ・サーバーからウエブ・ドキュメントを取得するステップに対してポーリング周期を指定する時間間隔をメモリに記憶するステップを有し、
当該時間間隔に従って周期的にウエブ・ドキュメントを取得し、当該取得したウエブ・ドキュメントに対して、前記ビュー編集コードに従って自動的に編集を行うステップを有することを特徴とする方法。
【請求項３】
ウエブ・ドキュメントの再編集装置であって、
ドキュメント取得コード及びビュー編集コードを記憶する手段と、
マッピング定義コードを記憶する手段と、
他の再編集装置との間でデータ及び／又はメッセージをやり取りする共有インターフェース手段と、
ユーザの操作又は前記ドキュメント取得コードに従ってウエブ・サーバーからウエブ・ドキュメントを取得する手段（１０３，１０４）と、
前記取得したウエブ・ドキュメントをＤＯＭツリー表現に解析する手段（１０３，１０５）と、
前記ビュー編集コードが前記ＤＯＭツリー中の任意のノードを一意に指し示す情報と編集演算子を含み、当該情報及び演算子に従って前記ＤＯＭツリー表現を編集してビュー・ドキュメントを生成する手段（１０３，１０６）と、
前記編集手段によって生成されたビュー・ドキュメントをレンダリングして当該ビュー・ドキュメントで表わされるウエブ・ドキュメントを表示する手段（１０７）と、
前記マッピング定義コードが前記共有インターフェースへのデータの出力・入力・連携方法を記述するマッピング情報を有し、当該マッピング情報に従って前記ビュー・ドキュメントに含まれるデータを共有インターフェース手段にマッピングするマッピング・エンジン（１０８）と、
表示したウエブ・ドキュメントに対するユーザの操作をイベントとして取得、または発行する手段と、
からなり、
更に前記ビュー編集コードが、
編集対象のウェブドキュメントまたはビュードキュメントを指定する式と、編集方法を表す編集演算子と、編集箇所を指定するパス式とを含み、
前記編集演算子は、指定された編集箇所のサブツリーの削除（ＲＥＭＯＶＥ）又は、指定された編集箇所のサブツリー以外の総てのサブツリーの削除（ＥＸＴＲＡＣＴ）又は、指定された編集箇所への所与のＤＯＭツリーの挿入（ＩＮＳＥＲＴ）であり、
前記マッピング定義コードが、
マッピングされるデータの位置とノードタイプを表す式と、マッピング先の共有インターフェースに対する名前付けの範囲を表す識別子の定義とからなり、
前記マッピング情報が、前記ノードタイプに従って予め定められた共有インターフェースの名前付け規則、データ型、および入力、出力、イベント受信、イベント送信を含むマッピング・タイプの内の１つ、からなるノード・マッピング規則に従って決定される事を特徴とする装置。
【請求項４】
請求項３に記載の装置において、更に前記ドキュメント取得コードに従ってウエブ・サーバーからウエブ・ドキュメントを取得する手段に対してポーリング周期を指定する時間間隔を記憶する手段を有し、
当該時間間隔に従って周期的にウエブ・ドキュメントを取得し、当該取得したウエブ・ドキュメントに対して、前記ビュー編集コードに従って自動的に編集を行うことを特徴とする装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はＷＷＷ（World Wide Web）技術に関し、特に公開されたＷＷＷのコンテンツを再編集し、更に再編集したコンテンツを再配布する技術に関する。
【０００２】
【従来の技術】
現在のＷＷＷ技術は、ＨＴＭＬでマルチメディア文書を発行し、発行されたそれらのマルチメディア文書をナビゲートし、そしてそれらの任意のものをブラウズするための、世界的な刊行のためのリポジトリを提供する。
【０００３】
発行するＨＴＭＬドキュメントには任意のサービスを埋め込むことができる。この種のサービスを定義するために、例えばデータベースサーバ、ファイルサーバ、そしてアプリケーションサーバのようなサーバを準備することができる。ＨＴＭＬドキュメントの一部を、アクセスされた時の対応するサーバの現在の出力値を見せるように定義することもできる。それがリフレッシュされるか又は再アクセスされるときはいつでも、この種のＨＴＭＬドキュメントは指定された部分のコンテンツを変更できる。この種のダイナミック・コンテンツの例としては、株式市場情報ページにおける株価や、宇宙ステーション・ホームページにおいて発表される宇宙ステーションの位置等がある。
【０００４】
このようなＷＷＷにおいて発行されたドキュメントをユーザが変更できるようにする技術が幾つか見られる。
例えばＭｙＹａｈｏｏ（Ｒ）（http://my.yahoo.co.jp/）のようなユーザ・カスタマイズ可能なポータル・サイトは、ウェブ・ページをパーソナライズする方法を提供する。このサイトにおいてユーザが自分の関心事項を登録すると、システムはそのユーザの興味の対象だけを表示するようにウェブ・ページをカスタマイズする。この種のシステムは、制限された方法でウェブ・ドキュメントの限られた部分だけをカスタマイズすることができる。しかも、この種のウェブ・サービスは、それが管理するドキュメントにアクセスすることができるだけである。
【０００５】
ＨＴＭＬ４．０１の仕様書（http://www.w3.org/TR/html4/）によれば、ＨＴＭＬ４．０１は、任意のウェブ・ドキュメントを目標のウェブ・ページに埋め込むために特別なＨＴＭＬタグ＜ｉｆｒａｍｅ＞、即ちインライン・フレームを提供する。しかしながら、この技術は、抜き出そうとするウェブ・ドキュメントの部分や、抜き出したドキュメントを挿入したい目標ドキュメント中の場所を直接特定することは許さない。従ってその様な目的のためには、ユーザがＨＴＭＬ定義を直接編集することが必要である。
【０００６】
ターコイス(Turquoise)［R.C. Miller, B.A. Myers, Creating Dynamic World Wide Web Pages By Demonstration. Carnegie Mellon University School of Computer Science Tech. Report, CMU-CS-97-131, 1997.］、及びインターネット・スクラップブック(Internet Scrapbook)［A. Sugiura, Y. Koseki, Internet Scrapbook: Automating Web Browsing Tasks by Demonstration. Proc. of the ACM Symposium on User Interface Software and Technology (UIST), pp.0-18, 1998.］は、ウェブ・ドキュメントの再編集機能をサポートするためにデモンストレーションによるプログラミング(programming-by-demonstration)という技術を採用している。この技術は、カスタマイズされたウェブ・ページを定義するために、そのウェブ・ページのレイアウトを変更する方法をユーザがスクリーン上で模擬することによってプログラムすることができ、ウェブ・ページがリフレッシュのためにアクセスされるときはいつでも、そのプログラムされた同じ編集ルールを適用できる。しかしながらこの技術は、レイアウトの変更は可能にするが、いかなるコンポーネントも抽出させないし、それらを機能的に一緒に接続させもしない。
【０００７】
トランスパブリッシング(Transpublishing)［T.H. Nelson, transpublishing for Today's web: Our Overall Design and Why It is Simple. http;//www.sfc.keio.ac.jp/ted/TPUB/Tqdesign99.html, 1999.］は、ウェブ・ドキュメントをウェブ・ページに埋め込むことを許す。これは、引用するドキュメントの著作権等のライセンス管理及び課金技術も提案する。しかしながらこの技術によるドキュメントの埋め込みは、特別なＨＴＭＬタグを使用する必要がある。
【０００８】
ドキュメント・コンポーネントをウェブ・ドキュメントから抜き出すための道具の例としては、Ｗ４Ｆ［A.Sahuguet, F. Azavant, Building Intelligent Web Applications Using Lightweight wrappers. Data and knowledge Engineering, 36 (3), pp.283-316, 2001. 及び A. sahuguet, F. Azavant, Wysiwyg Web wrapper Factory (W4F). http://db.cis.upenn.edu/DL/www8.pdf, 1999.］とＤＥＢｙＥ［B. A. Ribeiro-Neto, A.H.F. Laender, A.S. Da Silva. Extracting Semistructured Data Through Examples. Proc. of the 8th ACM int'l Conf. On Informtion and knowledge Management (CIKM'99), pp.91-101, 1999.］がある。Ｗ４Ｆは、抽出を定義するためにＧＵＩサポート・ツールを提供する。しかしながら、ユーザは、まだ若干のスクリプト・プログラムを書き込むことを要求され、情報の連携のためにはプログラミングの知識が要求される。ＤＥＢｙＥは、より強力なＧＵＩサポート・ツールを提供する。しかしながら、それは抜き出されたドキュメント・コンポーネントをＸＭＬフォーマットで出力するため、その再使用には、ＸＭＬに関する知識を必要とする。
【０００９】
【発明が解決しようとする課題】
前述の従来技術を含む現在のＷＷＷ技術では、サービスを埋め込まれたドキュメントを任意に再編集したり再配布することができない。
【００１０】
マウス操作によって、ウェブ・ページの本文の任意の部分をコピーするために選び、そしてこのコピーを、例えば、ＭＳ−Ｗｏｒｄ（Ｒ）フォーマットのローカル・ドキュメントに貼ることはできる。しかしながら、ウェブ・ページの任意の部分を任意に抜き出すことはできず、そして新規なドキュメントを組み立てるためにそれらを一緒に結合することもできない。特に抜き出す部分がダイナミック・コンテンツを有する場合、そのコピーが生きていること、即ち、周期的にそのコンテンツがアップデートされることが望ましい。
【００１１】
従って本発明は、以下の機能を実現することを目的とする。
（１）任意のウェブ・ドキュメント部分をそのスタイルと共に簡単に抽出する機能。
（２）ダイナミック・コンテンツを任意に再編集した後に生かしておく機能。
（３）新たなレイアウト及び新たな機能的構成の両方を定義するために、抜き出したドキュメント部分を相互に結合することによって、埋め込まれたウェブ・サービスと共にウェブ・ドキュメントを簡単に再編集する機能。
（４）再編集されたドキュメントをインターネットへ簡単に再配布する機能。
【００１２】
【課題を解決するための手段】
本発明は、上記の目的を実現するためにオブジェクト指向技術であるビジュアル・オブジェクトを用いて、以下の機能を有するシステムを提案する。
（１）表示画面上に２次元又は３次元表現を有するメディア・オブジェクトを定義するために、標準のビジュアル・ラッパで任意のオブジェクトをラップする機能。ラップされるオブジェクトは、マルチメディアのドキュメント、アプリケーションプログラム又はそれらのいかなる組合せでもよい。
（２）（１）で定義されたメディア・オブジェクトの再編集機能。マウス操作によって表示画面上で任意のコンポーネント・メディア・オブジェクトを他のコンポーネント又は合成(composite)メディア・オブジェクトと直接組み合わせて合成メディア・オブジェクトを作り、それらの間の機能のリンケージを定義できる。また合成メディア・オブジェクトから、いかなるコンポーネント・メディア・オブジェクトも取り出すことができる。
（３）（１）で定義されたメディア・オブジェクトの再配布機能。メディア・オブジェクトは、それらを再使用するためにインターネットを介して送受信できる永続的なオブジェクトである。
【００１３】
本発明は、上述の機能を有するシステムを実現するビジュアル・オブジェクトとして、具体的にはインテリジェント・パッド技術を使用する。インテリジェント・パッドは、２次元のメディア・オブジェクト・システムである。そのメディア・オブジェクトはパッドと呼ばれる。
【００１４】
従って本発明の目的は、具体化のレベルにおいて次のように言い換えることができる。
（１）ウェブ・ドキュメントの任意の部分を抜き出して、パッド・ラッパでそれをラップする機能を実現すること。
（２）周期的なサーバ−アクセス機能を、ダイナミック・ウェブ・ドキュメント部分のラップの中に取り入れる機能を実現すること。自動的な周期的リフレッシュ機能を有するこの種のドキュメントを、ライブ・ドキュメントと呼ぶ。
【００１５】
これらの問題を解決すると、インテリジェント・パッドは、その後述する本来固有の特徴的機能によって、それらの機能のリンケージと共にウェブ・サービスを簡単に再編集すること、及び再編集されたドキュメントのインターネットへの簡単な再配布の両方に対する解を与えることができる。
【００１６】
【発明の実施の形態】
ここで、本発明の説明のための前提として、メディア・オブジェクト［Y. Tanaka. Meme media and a world-wide meme pool. In Proc. ACM Multimedia 96, pp.175-186, 1996. 及び Y. Tanaka. Memes: New Knowledge Media for Intellectual resources. Modern Simulation and Training, 1, pp.22-25, 2000.］及びインテリジェント・パッドの簡単な説明をする。
【００１７】
１９８７年以降「ｍｅｍｅメディア」及び「ｍｅｍｅマーケット」と呼ばれるアーキテクチャの研究開発がなされた。１９８９と１９９５に、それぞれ２次元、３次元ｍｅｍｅメディア・アーキテクチャである「インテリジェント・パッド」［Y. Tanaka, and T. Imataki. IntelligentPad: A Hypermedia System allowing Functional Composition of Active Media Objects through Direct Manipulations. In Proc. of IFIP'89, pp.541-546, 1989. と Y. Tanaka, A. Nagasaki, M. Akaishi, and T. Noguchi. Synthetic media architecture for an object-oriented open platform. In Personal Computers and Intelligent Systems, Information Processing 92, Vol III, North Holland, pp.104-110, 1992. 及び Y. Tanaka. From augmentation media to meme media: IntelligentPad and the world-wide repository of pads. In Information Modelling and Knowledge Bases, VI (ed. H. Kangassalo et al.), IOS Press, pp.91-107, 1995.］と「インテリジェント・ボックス」［Y. Okada and Y. Tanaka. IntelligentBox: a constructive visual software development system for interactive 3D graphic applications. Proc. of the Computer Animation 1995 Conference, pp.114-125, 1995.］が開発され、それらの応用と改良はもちろん、それらのプール及びマーケット・アーキテクチャが開発された。
【００１８】
「インテリジェント・パッド」は、パッド（スクリーン上の１枚の紙のイメージ）として、各々のコンポーネントを表示する。パッドは、それらの間の物理的包含関係、及び機能のリンケージを定義するために他のパッドにペースト（貼り付け）することができる。例えばパッドＰ２が他のパッドＰ１にペーストされるとき、パッドＰ２はＰ１の子になり、同時にＰ１はＰ２の親になる。一つのパッドは、複数の親パッドを有することはできない。さまざまなマルチメディアのドキュメントとアプリケーション・ツールを定義するために、複数のパッドを他の一つのパッド上に一緒にペーストすることができる。特にその様に設定しない限り、合成パッドは常に分解でき、再編集も可能である。
【００１９】
別言すればインテリジェント・パッドは、オブジェクトどうしを関連づけるビジュアルプログラミングが可能なオブジェクト指向の基盤ソフトウェアであって、機能を持った「パッド」と呼ばれる部品の合成、分解、再利用を通じてソフトウェア開発を行ない、かつ開発されたパッドの動作環境をも実現するものである。「パッド」は一種のオブジェクトであり、パッド自身の状態を保持するスロットと呼ばれる構造を有するモデル部と、該モデル部とメッセージを交換しパッド自体の表示形態を定義するビュー部と、ユーザからの操作を受付けパッドの反応を定義するコントローラ部とからなる構成を持ち、固有のデータとメソッドをカプセル化した基本単位としてふるまう。夫々のパッドは他のパッドとの間で前記スロットを共通のインタフェースとして用いて互いにデータ及びメッセージの交換を行う事ができるように構成されており、上述のようにＧＵＩ環境においてパッドを相互に貼り合わせしたり、剥がしたりする事によって、合成、分解を可視的に操作することができるようになっている。インテリジェント・パッドについての詳細は各種文献及びインテリジェント・パッド・コンソーシアム（ＩＰＣ：IntelligentPad Consortium、http://www.pads.or.jp/）において公開されている。
【００２０】
オブジェクト指向のコンポーネント・アーキテクチャにおいて、知識フラグメントの全てのタイプは、オブジェクトとして定義される。インテリジェント・パッドは、オブジェクト指向のコンポーネント・アーキテクチャ、そしてラッパ・アーキテクチャを利用する。コンポーネント・オブジェクトを直接取扱う代わりに、インテリジェント・パッドは標準のパッド・ラッパで各々のオブジェクトをラップして、それをパッドとみなす。各々のパッドは、標準のユーザーインターフェースと標準の接続インタフェースを有する。パッドのユーザーインターフェースはスクリーン上でカード状のビューを有し、「移動(move)」、「リサイズ(resize)」、「コピー(copy)」、「ペースト(paste)」及び合成パッドからのパッドの「剥離(peel)」のような一組の標準的な操作を有する。
【００２１】
ユーザは、容易に任意のパッドの写しを作れ、パッド上に他のパッドをペーストでき、合成パッドからパッドを剥がすことができる。パッドは、分解可能な永続的なオブジェクトである。親パッドから基本パッドや合成パッドを単にはがすことによって、いかなる合成パッドも容易に分解できる。
【００２２】
各々のパッドは、その接続インタフェースとして、ＡＶ(Audio Visual)システム・コンポーネントの接続ジャックのように働くスロットのリストと、その親パッドのスロットへの単一の結合を提供する。各々のパッドは、その親パッドの単一のスロットにアクセスするための一組の標準的メッセージ「セット(set)」及び「ギミー(gimme)」と、その子パッドへ自分の状態の変化を伝播するためのもう１つのメッセージ「アップデート(update)」を使用する。それらのデフォルトの定義において、「セット」メッセージはその受け側スロットにパラメーター値を送り、一方「ギミー」メッセージはその受け側スロットに値を要求する。
【００２３】
【実施例】
本発明による、ＷＷＷのコンテンツの再編集及び再配布のためのライブ・ドキュメントを実現するオブジェクト指向方法及び装置は、次のような構造を有するビュー・パッドと呼ばれるインテリジェント・パッドによって実現される。
【００２４】
図１は、本発明によるビュー・パッドの内部構造を示す概念図である。
ビュー・パッドは大きく分けて２つの部分からなる。１０１はビューの評価を行う部分、１０２はビュー情報の処理を行う部分である。１０１は更にビュー定義（後述）を処理し評価プロセスを管理するビュー・エバリュエイター１０３、ドキュメント取得部１０４、ＨＴＭＬドキュメント・パーザー１０５、ドキュメント編集部１０６とからなる。１０２は更にビュー・ドキュメントのレンダリング・エンジン１０７及びビュー情報のマッピングを行うマッピング・エンジン１０８からなる。
【００２５】
ビューの評価プロセスでは、スロットに指定される（後述）ビュー定義に従ってＨＴＭＬビューの評価を行う。その結果出力されるビュー・ドキュメントは、レンダリング・エンジンによってパッド上に表示され、同時にマッピング・エンジンがビュー情報をスロットに割り当てる。
【００２６】
このほか、ビュー・パッドはインターバル・タイマー１０９を有し、もとのＷＷＷから更新されたライブ・ドキュメントを得るためにスロットに指定される値に基づいてＷＷＷサーバーをポーリングするために用いる。
【００２７】
一般にウェブ・ドキュメントは、ＨＴＭＬフォーマットで定義されている。「ＨＴＭＬビュー」は、ＨＴＭＬフォーマットで定義される任意のＨＴＭＬドキュメントの部分を表示するビューである。ビュー・パッドは、ウェブ・ドキュメントの任意の部分をラップするパッド・ラッパであり、任意のＨＴＭＬビューを特定し、そのＨＴＭＬドキュメントをレンダリングする事ができる。このようなパッド・ラッパを以下ＨＴＭＬｖｉｅｗＰａｄと呼ぶ。
【００２８】
レンダリング機能は、具体的には、例えばネットスケープ（Ｒ）やインターネット・エクスプローラ（Ｒ）のような従来のウェブ・ブラウザをラップすることにより実装できる。この実施例の実装においてはインターネット・エクスプローラをラップした。従って前述のビュー・パッドの構成要素である、ドキュメント取得部１０４、ＨＴＭＬドキュメント・パーザー１０５、ビュー・ドキュメントのレンダリング・エンジン１０７はインターネット・エクスプローラのコンポーネントをラッピングすることによって実装されている。このようなビュー・パッドは、一見従来のウエブ・ブラウザのように振る舞い、ユーザがこのビュー・パッドを用いて自由にＷＷＷを検索しながら、後述のような操作を介して本発明のライブ・ドキュメントの利用を実現する。
【００２９】
ビュー定義とは、HTML文書をRDBと同じくデータベースとみなし、ちょうどRDBがSQLによってテーブルに対する「演算」を定義することによって仮想的なテーブル即ちビューを定義することができるように、HTML文書に対する「編集」を予め定義しておくことによって仮想的なビューを定義することである。
【００３０】
本発明のビュー・パッドはこのようなビュー定義をユーザのＧＵＩ上での自由な操作に従って自動的に生成する機能を実現することによって、ユーザに負担をかけずにライブ・ドキュメントを生成し、操作できるようにするものである。
次にこのビュー定義の生成について説明する。
【００３１】
任意のウェブ・ドキュメント部分の抽出
（Ａ）ＨＴＭＬドキュメントの取得及びその編集
先ず、ビュー定義におけるＨＴＭＬドキュメントの取得は、対象とするＷＷＷサーバーのＵＲＬを使用し、ドキュメント参照変数として例えば変数名「ｄｏｃ」を用いて、
doc = getHTML(URL,REQUEST)
のような使い方の関数「ｇｅｔＨＴＭＬ」によりソース・ドキュメントの検索を実行するように定義される。第２のパラメータＲＥＱＵＥＳＴは、検索時にウェブ・サーバへのリクエストを特定するために用いる。この種のリクエストには、ＰＯＳＴ及びＧＥＴを含む。検索されたドキュメントは、ＤＯＭフォーマットに保たれる。
【００３２】
このようにして取得されたＨＴＭＬドキュメントに対して、ビュー定義は、ＨＴＭＬドキュメント部分の特定と、その特定された部分に対する一連のビュー編集操作とを、以下のように規定する。
【００３３】
与えられたＨＴＭＬドキュメント上で任意のＨＴＭＬビューを特定するには、ＨＴＭＬドキュメントの内部表現、即ち、ＤＯＭツリーを編集する機能による。ＤＯＭツリー表現は、そのパス式を用いて、ＤＯＭツリーノードと一致する任意のＨＴＭＬドキュメント部分を識別できる。
【００３４】
図２は、ＨＴＭＬドキュメントとそのＤＯＭツリー表現の例示である。図において、ドキュメントの強調された部分は、パス式が
/HTML[0]/BODY[0]/TABLE[0]/TR[1]/TD[1]
である強調されたノードと一致する。パス式は、ルートから指定されたノードへのパスに沿ったノード識別子の連結である。各々のノード識別子は、ノード名、即ちこのノード要素に与えられるタグと、このノードの左側に位置する兄弟ノードの数を表す値（これは兄弟要素の出現順に当たる）とから成る。
【００３５】
兄弟ノードの中で、その原文のコンテンツの部分文字列として特定の文字列を有するノードを特定する必要がある場合には、文字列のパターンマッチングを用いて、
tag-name[MatchingPattern:index]
のようにノードを特定する。ここで、ＭａｔｃｈｉｎｇＰａｔｔｅｒｎは特定された文字列であり、ｉｎｄｅｘは条件を満たしている複数の兄弟の中から１つのノードを指定するためのインデックスである。
【００３６】
またテキスト・ノードから文字列を抜き出すことが必要な場合、単なるパス式では、このノードの位置を決めることはできるが、この種の部分文字列の位置を決めることはできない。そこで、テキスト・ノード内のこの種の部分文字列の位置を決めるために正規表現を使用する。ノード演算子txt( )の括弧内に正規表現パターンを記述して、パターンによって指定される文字列を仮想的なノードとして指定することができるように次のようにパス式を拡張する。
/txt(RegularExpression)
ここでＲｅｇｕｌａｒＥｘｐｒｅｓｓｉｏｎは正規表現である。
【００３７】
図３は仮想ノードのＤＯＭツリー及びパス式を示す表示例であって、図３（ａ）のＤＯＭツリーに対して、ノード
/HTML[0]/BODY[0]/P/txt(.* (\d\d:\d\d) .*)
は、図３（ｂ）に示す仮想ノードを特定する。
【００３８】
ＨＴＭＬビューの編集は、図４に示す、以下のようなＤＯＭツリー上の編集演算子の動作から選ばれる一連のＤＯＭツリー操作オペレーションである。
（１）ＲＥＭＯＶＥ：指定されたノードをルートとして有するサブツリーを削除する。（図４（ａ）参照）
（２）ＥＸＴＲＡＣＴ：指定されたノードをそのルートとして有するサブツリー以外の全てのノードを削除する。（図４（ｂ）参照）
（３）ＩＮＳＥＲＴ：指定されたノードの指定された相対位置に、与えられたＤＯＭツリーを挿入する。（図４（ｃ）参照）
図５は上記ＩＮＳＥＲＴ演算子による挿入タイプを示し、相対位置として、ＣＨＩＬＤ、ＰＡＲＥＮＴ、ＢＥＦＯＲＥ、そしてＡＦＴＥＲから選ぶことができる。
【００３９】
以上の規定を用いてビュー定義は、次の式によって定義される。
defined-view = source-view.DOM-tree-operation(node)
ここで、ｄｅｆｉｎｅｄ−ｖｉｅｗは定義するビューの変数名、ｓｏｕｒｃｅ−ｖｉｅｗはウェブ・ドキュメント又は他のＨＴＭＬドキュメントであって良い編集対象のドキュメントの指定、ｔｒｅｅ−ｏｐｅｒａｔｉｏｎは編集演算子、ｎｏｄｅはその拡張パス式により特定される拡張指定表現である。
【００４０】
以下は、上記の構文の入れ子にされた使用を有するビュー定義の例である。
doc = getHTML(“http://www.abc.com/index.html”,null);
view = doc.EXTRACT(“/HTML/BODY/TABLE[0]/”)
view = view.EXTRACT(“/TABLE[0]/TR[0]/”)
view = view.REMOVE(“/TR[0]/TD[1]/”);
このような繰り返し演算は次のように簡単に記述することもできる。
view1 = doc
.EXTRACT(“/HTML/BODY/TABLE[0]/”)
.EXTRACT(“/TABLE[0]/TR[0]/”)
.REMOVE(“/TR[0]/TD[1]/”);
同一のウェブ・ドキュメント、又は異なるウェブ・ドキュメントから抜き出した２つのサブツリーを特定して、ビューを定義するためにそれらを結合することもできる。
doc = getHTML(“http://www.abc.com/index.html”,null);
view2 = doc
.EXTRACT(“/HTML/BODY/TABLE[0]/”)
.EXTRACT(“/TABLE[0]/TR[0]/”);
view1 = doc
.EXTRACT(“/HTML/BODY/TABLE[0]/”)
.INSERT(“/TABLE[0]/TR[0]/”,view2,BEFORE);
ｃｒｅａｔｅＨＴＭＬ関数を使って新規なＨＴＭＬドキュメントを作り、既存のＨＴＭＬドキュメントにそれを挿入することもできる。
doc1 = getHTML(“http://www.abc.com/index.html”,null);
doc2 = createHTML(“<TR>Hello World</TR>”);
view1 = doc1
.EXTRACT(“/HTML/BODY/TABLE[0]/”)
.INSERT(“/TABLE[0]/TR[0]/”,doc2,BEFORE);
【００４１】
（Ｂ）ＨＴＭＬビューの直接編集
上述のビュー定義のコードはユーザが記述する必要はなく、ＧＵＩ環境下でのマウス等によるＨＴＭＬビューの直接の編集操作で自動的に作られる。この動作について以下に説明する。
【００４２】
前述のＨＴＭＬｖｉｅｗＰａｄは、少なくとも次の４つのスロットを有する。
１．#UpdateInterval
このスロットは、参照されたＨＴＴＰサーバの周期的なポーリングのための時間間隔を指定する。ＨＴＴＰサーバ内のウェブ・ドキュメントを周期的に検索することによって、そのウェブ・ドキュメントを通じて定義されるビューのコンテンツがリフレッシュされる。
２．#RetrievalCode
このスロットは、ビュー定義コード中のドキュメント取得コードを設定する。
３．#ViewEditingCode
このスロットは、ビュー定義コード中のビュー編集コードを設定する。
４．#MappingCode
このスロットは、マッピング定義コードを設定する。
#RetrievalCodeスロット又は#ViewEditingCodeスロットが、セット・メッセージによってアクセスされるときはいつでも、ソース・ドキュメントにアクセスして、ＨＴＭＬｖｉｅｗＰａｄはそれ自身をアップデートする。
【００４３】
これ以外にも、#MappingCodeスロットにセットされるマッピング定義コードを指定すると、そのコードに従ってビュー定義情報を割り当てるスロットが自動的に生成される。
【００４４】
前述のようにＨＴＭＬｖｉｅｗＰａｄは、ビュー編集コードが設定されていない場合は、通常のウエブ・ブラウザと同様に扱える。新規に作成したスロット値が設定されていない、ＨＴＭＬｖｉｅｗＰａｄに対して、#RetrievalCodeスロットにドキュメント取得コード（ＵＲＬ）を指定すると、指定したウエブ・ドキュメントが取得されてパッド上に表示される。ＨＴＭＬドキュメント中のアンカーをクリックすることにより、通常のブラウザと同様にドキュメントを切り替えることができ、この時切り替えられたドキュメントに対応するＵＲＬが自動的に#RetrievalCodeスロットに反映される。従って、この操作により対象のドキュメントが決定された時点で、ドキュメント取得コードは自動的に設定されている。
【００４５】
こうして取得されたＨＴＭＬドキュメントのＤＯＭツリーのノードを識別するために、ユーザはパス式を特定する代わりにマウスカーソルの位置を変更してあらゆる抽出可能なドキュメント部を識別する事が出来る。このため、ＨＴＭＬｖｉｅｗＰａｄはマウス位置に対する抽出可能なドキュメント部をフレーム表示する。
【００４６】
図６は、この操作を例示する図であって、図中６０はユーザのマウスポインタによって指示されフレームされた状態を示す。ここで、同じ表示領域を有する異なるＨＴＭＬオブジェクトを区別するために、２つのボタンとノード・スペック・ボックスを有する追加のコンソールパネル６１を使用する。異なるドキュメント部分を選ぶためにマウスを動かすにつれて、前記コンソールパネルのノード・スペック・ボックス６２はその値を変化させる。コンソールパネルの第１のボタン６３は対応するＤＯＭツリーの親ノードへ移動するために用い、一方第２のボタン６４は最初の子ノードへ移動するために用いられる。
【００４７】
この様にしてＨＴＭＬｖｉｅｗＰａｄによって抜き出したい部分をフレーム表示し、抜き出されたドキュメント部分を有する独立のＨＴＭＬｖｉｅｗＰａｄをつくるようにマウスをドラッグすることができる。
【００４８】
図７はこの種のマウスドラッグ・オペレーションを使用する抽出例を示す。この操作をドラッグ・アウトと称する。
この操作が行なわれると、ＨＴＭＬｖｉｅｗＰａｄは新しいＨＴＭＬｖｉｅｗＰａｄを生成し、自分のビュー定義コードを新たに生成したパッドへコピーする。さらに、コピーされたビュー編集コードの末尾に指定箇所へのEXTRACT命令が追加される。新規なＨＴＭＬｖｉｅｗＰａｄは、それ自体の上に抜き出されたＤＯＭツリーをレンダリングしてビューを表示する。新しいパッドの生成時に、パッドのサイズを、切り取りった要素の大きさに設定すれば、見た目にも「切り取り」のイメージを与えるインタフェイスを実現できる。この操作によって、内部で生成される編集コードを以下に示す。
doc = getHTML(“http://www.abc.com/index.html”,null);
view = doc
.EXTRACT(“/HTML/BODY/.../TABLE[0]/”);
ＨＴＭＬｖｉｅｗＰａｄによって操作したい部分をフレームした後、マウスの操作によってＨＴＭＬｖｉｅｗＰａｄは、ＥＸＴＲＡＣＴ、ＲＥＭＯＶＥ及びＩＮＳＥＲＴを含むビュー編集オペレーションのポップアップメニューを表示する。こうして任意の部分を選んだ後、ＥＸＴＲＡＣＴかＲＥＭＯＶＥを選ぶことができる。
【００４９】
図８はＲＥＭＯＶＥオペレーションの例を示し、以下のコードを生成する。
doc = getHTML(“http://www.abc.com/index.html”,null);
view = doc
.EXTRACT((“/HTML/BODY/TABLE[0]/”)
.REMOVE(“/TABLE[0]/TR[1]/”);
ＩＮＳＥＲＴオペレーションは、ソースＨＴＭＬドキュメント及びターゲットＨＴＭＬドキュメントを示す２つのＨＴＭＬｖｉｅｗＰａｄを使用する。最初にメニューからＩＮＳＥＲＴオペレーションを指定し、その後に直接に挿入するドキュメント部分を特定し、ＣＨＩＬＤ、ＰＡＲＥＮＴ、ＢＥＦＯＲＥ、そしてＡＦＴＥＲを含むメニューから相対位置を指定して、ターゲット・ドキュメント上の挿入場所を特定する。それから、直接ソースドキュメント上のドキュメント部分を選んで、この部分をターゲット・ドキュメントにドラッグ＆ドロップする。
【００５０】
図９は、以下のコードを生成するＩＮＳＥＲＴオペレーションの例を示し、そこにおいて、ターゲットＨＴＭＬｖｉｅｗＰａｄは、それ自身の編集コードにドラッグされた外のＨＴＭＬｖｉｅｗＰａｄの編集コードをマージするために異なるネーム空間を使用する：
A::view = A::doc
.EXTRACT(“/HTML/BODY/.../TD[1]/.../TABLE[0]”)
.REMOVE(“/TABLE[0]/TR[1]/”);
view = doc
.EXTRACT(“/HTML/BODY/.../TD[0]/.../TABLE[0]/”)
.REMOVE(“/TABLE[0]/TR[1]/”)
.INSERT(“/TABLE[0]”,A::view,AFTER);
ドロップされたＨＴＭＬｖｉｅｗＰａｄは、挿入の後、削除される。
【００５１】
（Ｃ）スロットを定義するデータマッピング
ＨＴＭＬｖｉｅｗＰａｄは、表示するビューに含まれる情報をそのスロット値にマッピングする。これにより、パッドの外からビュー情報にアクセスすることが可能である。また同時にＨＴＭＬｖｉｅｗＰａｄ内で発生したイベントについてもスロット値にマッピングする。ビュー情報をどのようにスロットにマッピングするかを決定するのが、マッピング定義コード(Mapping-Defintion Code)である。このコードもまたスロット値として与えられるが、他のコード同様にユーザが直接記述する必要はなくシステムによりに自動的に設定されるか、若しくは上述のようなユーザのＧＵＩ上の操作により生成される。またＨＴＭＬｖｉｅｗＰａｄは、新しく定義されたスロットに、そのビューのいかなるノード値も、そしてそのビュー上のいかなるイベントもマップすることができる。マッピングの定義は、以下の書式を用いる。
MAP(<node>,NameSpace)
ここで、＜ｎｏｄｅ＞はノードタイプ指定表現であって、このように、マッピングの指定はノード単位で行う。ＮａｍｅＳｐａｃｅはシステムがスロットに名前を付ける際に用いる。この種のマッピング定義の具体的な例は、次のようなものである。
MAP(“/HTML/BODY/P/txt( )”,“#value”)
ノード・タイプに従い、ＨＴＭＬｖｉｅｗＰａｄは新しく定義されたスロットに選択されたノードの最も適当な値をマップするためにノード値評価を変更する。これらの評価ルールは、ノード・マッピング規則と呼ばれる。各々のノード・マッピング規則は、以下の構文を有する。
target-object => naming-rule(data-type)<MappingType>
ここで、ｔａｒｇｅｔ−ｏｂｊｅｃｔはマッピングの対象を表し、ｎａｍｉｎｇ−ｒｕｌｅはマッピング対象のスロットの名前付け規則、ｄａｔａ−ｔｙｐｅはマッピングを行うスロットのデータ型、ＭａｐｐｉｎｇＴｙｐｅは＜ＩＮ｜ＯＵＴ｜ＥｖｅｎｔＬｉｓｔｅｎｅｒ｜ＥｖｅｎｔＦｉｒｅ＞の内の一つである。
【００５２】
ＯＵＴタイプにより定義されるスロットは、読取り専用であり、ＩＮタイプ・マッピングは、書き換え可能なスロットを定義する。この種のスロットの書換えは、ＨＴＭＬビュー・ドキュメントの表示を変更できる。ＥｖｅｎｔＬｉｓｔｅｎｅｒタイプ・マッピングは、スクリーン上で選ばれたノードでイベントが起こるときはいつでも、その値を変更するスロットを定義する。一方、ＥｖｅｎｔＦｉｒｅタイプ・マッピングは、そのアップデートが、スクリーン上で選択されたノード内で、特定されたイベントをトリガーするスロットを定義する。
</HTML/.../txt( )>、</HTML/.../attr( )>又は</HTML/.../P/>のような一般的なノードに対しては、ＨＴＭＬｖｉｅｗＰａｄはスロットを定義し、このスロットに選択されたノード内のテキストをセットする。テキストが数字の文字列である場合は、この文字列を数値に変換してスロットにセットする。
【００５３】
図１０はスロットを定義するためのテキスト文字列ノードのマッピングを示す。
選択されたノード内のテキスト（文字列）
=> NameSpace::#Text(string)<OUT>
選択されたノード内のテキスト（数字の文字列）
=> NameSpace::#Text(number)<OUT>
</HTML/.../TABLE/>のようなテーブル・ノードに対しては、ＨＴＭＬｖｉｅｗＰａｄはテーブル値をＣＳＶ(Comma-Separated Value)表現に変換し、それをテキスト・タイプの新しく定義したスロットにマップする。
【００５４】
図１１はスロットを定義するためのテーブル・ノードのマッピングを示す。
</HTML/.../A/>のようなアンカー・ノードに対して、ＨＴＭＬｖｉｅｗＰａｄは以下の３つのマッピングを実行する。
選択されたノードのテキスト
=> NameSpace::#Text(string,number)<OUT>
選択されたノードのｈｒｅｆ属性
=> NameSpace::#refURL(string)<OUT>
ターゲット・オブジェクトのＵＲＬ
=> NameSpace::#jumpURL(string)<EventListener>
３番目のマッピングは、ＥｖｅｎｔＬｉｓｔｅｎｅｒタイプを有する。
アンカーがクリックされるときはいつでも、ターゲットＵＲＬは文字列タイプ・スロットにセットされる。
【００５５】
図１２はこれらの３つのスロットを定義するアンカー要素のマッピングを示す。
</HTML/.../FORM/>のようなフォーム・ノードに対して、ＨＴＭＬｖｉｅｗＰａｄは以下の３つのマッピングを実行する。
選択されたノードの名前属性を有するＩＮＰＵＴノードのｖａｌｕｅ属性値
=> NameSpace::#Input#type#name(string,number)<IN,OUT>
サブミット動作
=> NameSpace::#FORM#Submit(boolean)<EventFire>
サーバから得られる値
=> NameSpace::#FORM#Request(string)<EventListener>
type =
<text|pasword|file|checkbox|radio|hidden|submit|reset|button|image>
name = INPUTノードの<name>属性
３番目のマッピングは、ＥｖｅｎｔＬｉｓｔｅｎｅｒタイプを有する。フォーム・リクエストを送出するイベントが発生するときはいつでも、ＨＴＭＬｖｉｅｗＰａｄは対応する問合せを新しく定義されたスロットにセットする。２番目のマッピングは、ＥｖｅｎｔＦｉｒｅタイプ・マッピングである。ＴＲＵＥがスロットにセットされるときはいつでも、ＨＴＭＬｖｉｅｗＰａｄはフォーム・リクエスト・イベントをトリガーする。
【００５６】
図１３はこれら３つのスロットを定義するフォーム要素のマッピングを示す。
【００５７】
【発明の効果】
本発明によって得られる効果を応用例によって例示する。
（Ａ）数値データのライブ・コピー
ＨＴＭＬｖｉｅｗＰａｄは、表示されるウェブ・ドキュメントから任意のＨＴＭＬ要素を抜き出すことができる。抜き出そうとする部分を直接ドラッグ・アウトすると、抜き出された部分を示すもう１つのＨＴＭＬｖｉｅｗＰａｄができる。後者のＨＴＭＬｖｉｅｗＰａｄの周期的なポーリング機能は、抜き出されたドキュメント部を生きた状態に保つ。ドキュメント部分のこの種のコピーをライブ・コピーと言う。ライブ・コピーは、機能の合成のためのスロット接続を有する他のパッド上にペーストすることができる。また、通常のパッドをライブ・コピー上にペーストすることもでき、前者のパッドを後者のパッドのスロットのうちの１つに接続できる。この種の操作によって、異なるウェブ・ページから抜き出した複数のドキュメント部分のライブ・コピーを統合するアプリケーション・パッドを組み立てることができる。
【００５８】
図１４は、ＮＡＳＡの宇宙ステーションの軌道とＹｏｈｋｏｈ衛星の軌道のプロッティングを示す。プロッティング機能と共に世界地図のパッドを使用した。この地図パッドは、＃ｌｏｎｇｉｔｕｄｅ［１］スロットと＃ｌａｔｉｔｕｄｅ［１］スロットという一対のスロットを有し、ユーザの要求によって、異なるインデックスを有する同一のタイプのスロットの組をつくる。まず、宇宙ステーションと衛星のホームページにアクセスする。これらのページは、これらの宇宙船の現在の場所の経度と緯度を示す。そこで、各々のウェブ・ページの経度と緯度のライブ・コピーを作り、それらを夫々の＃ｌｏｎｇｉｔｕｄｅ［ｉ］スロット及び＃ｌａｔｉｔｕｄｅ［ｉ］スロットに対する接続を使って世界地図パッドにペーストする。宇宙ステーション・ウェブ・ページからのライブ・コピーは、第１のスロット対を使用し、衛星ウェブ・ページからのものは、第２のスロット対を使用する。これらのライブ・コピーは、ソース・ウエブ・ページをポーリングすることによって、それらの値を１０秒ごとにアップデートする。プロットされた位置の独立の２つのシーケンスは、２機の宇宙船の軌道を示す。
【００５９】
図１５は、株価変動のリアルタイムの可視化への応用を示す。まず、リアルタイムに現在の日経平均株価を示しているＹａｈｏｏ  Ｆｉｎａｎｃｅ（Ｒ）ウェブ・ページにアクセスする。そこで、日経平均インデックスのライブ・コピーを作成して、＃ｉｎｐｕｔスロットに対するその接続を伴ってＤａｔａＢｕｆｆｅｒＰａｄにペーストする。ＤａｔａＢｕｆｆｅｒＰａｄは、各々の＃ｉｎｐｕｔスロット入力をその入力時間と関連させ、この一組をＣＳＶフォーマットで出力する。この合成パッドを、＃ｄａｔａスロットへのその接続を伴ってＴａｂｌｅＰａｄ上にペーストする。ＴａｂｌｅＰａｄは、あらゆる＃ｄａｔａスロット入力をＣＳＶフォーマットで格納されたリストの終わりに付け加える。このパッドを＃ｉｎｐｕｔスロットへの接続を伴ってＧｒａｐｈＰａｄにペーストするために、ＴａｂｌｅＰａｄの主スロットを＃ｄａｔａスロットに変更する。それが新規な＃ｉｎｐｕｔスロット値を受信するときはいつでも、ＧｒａｐｈＰａｄは入力値と比例した新規な垂直バーを追加表示する。
【００６０】
（Ｂ）テーブル・データのライブ・コピー
図１６は、Ｙａｈｏｏ  Ｆｉｎａｃｅ（Ｒ）サービスの他のページを示す。このページは、指定された会社の、指定された期間の株価の時系列を示す。このテーブルのライブ・コピーを作成して、＃ｉｎｐｕｔスロットへのその接続を伴ってＴａｂｌｅＰａｄにペーストする。抜き出されたテーブルのコンテンツは、ＣＳＶフォーマットでＴａｂｌｅＰａｄに送られる。＃ｌｉｓｔスロットへの接続を伴ってＧｒａｐｈＰａｄ上にそのライブ・コピーをペーストすることによって、図に示されるチャートを提示する事ができる。
【００６１】
（Ｃ）アンカーのライブ・コピー
図１７は、Ｙａｈｏｏ  Ｍａｐｓ（Ｒ）ウェブ・ページを示す。このページは、指定する場所の周辺の地図を与える。そのマップ・ディスプレイ部、そのズーム・コントロールパネル及びそのシフト・コントロールパネルのライブ・コピーを作成して、マップ・ディスプレイの＃ＲｅｔｒｉｅｖａｌＣｏｄｅスロットに対する接続を伴って、２つのコントロールパネルをマップ・ディスプレイ上にペーストする。いずれかのコントロールパネルの何かのボタンをクリックするときはいつでも、コントロールパネルは要求されたページのＵＲＬをセットして、マップ・ディスプレイの＃ＲｅｔｒｉｅｖａｌＣｏｄｅスロットに、このＵＲＬを送る。そこでマップ・ディスプレイは、新規なマップで要求されたページにアクセスし、表示するためにマップ部を抜き出す。
【００６２】
（Ｄ）ライブ・コピーの再配布
ウェブ・ドキュメントから抜き出されたライブ・コピーを保存するとき、システムはパッド・タイプ、即ち「ＨＴＭＬｖｉｅｗＰａｄ」と、２つのスロット、＃ＲｅｔｒｉｅｖａｌＣｏｄｅスロット及び＃ＶｉｅｗＥｄｉｔｉｎｇＣｏｄｅスロットの値だけを保存する。ライブ・コピーのコピーは、これらだけをオリジナルと共有する。インターネットでのライブ・コピーの再配布は、そのセーブ・フォーマット表現を送ることだけで良い。送られたライブ・コピーが行き先のプラットホームで起動されるとき、検索されたウェブ・ドキュメントの定義部分だけを表示するために、＃ＲｅｔｒｉｅｖａｌＣｏｄｅスロットに格納された検索コードを起動し、＃ＶｉｅｗＥｄｉｔｉｎｇＣｏｄｅスロットのビュー編集コードを実行する。そこでその任意の部分をライブ・コピーとして更に抜き出すことができる。
【００６３】
なおこの実施例の説明は、本発明を実現する単なる例示であって、本発明をこの特定の実施例に限定する事を意図するものではない。当業者には本発明の範囲を逸脱せずに種々の変更が可能なことは自明である。例えば、この実施例ではＨＴＭＬｖｉｅｗＰａｄとしてインテリジェント・パッドにインターネット・エクスプローラ（Ｒ）のコンポーネントをラップした構造を記載したが、この構造に限らず本発明を実現するのに必要な機能を完備したオブジェクトを新たに構成しても良いことは自明であり、それらも本発明の範囲に入ることは明らかである。
【図面の簡単な説明】
【図１】  本発明によるビュー・パッドの内部構造を示す概念図。
【図２】  ＨＴＭＬドキュメント及びそのＤＯＭツリーとパス式の図。
【図３】  仮想ノードのＤＯＭツリー及びパス式の図。
【図４】  ＤＯＭツリー上の編集演算子の動作の図。
【図５】  ＩＮＳＥＲＴ演算子による挿入タイプの図。
【図６】  ＨＴＭＬドキュメント上での編集対象箇所の選択操作の図。
【図７】  マウスドラッグ・オペレーションを使用する要素のライブ抽出の図。
【図８】  ビューから要素を除去するための直接操作の図。
【図９】  ビューを他のビューに挿入する直接操作の図。
【図１０】  スロットを定義するためのテキスト文字列ノードのマッピングの図。
【図１１】  スロットを定義するためのテーブル・ノードのマッピングの図。
【図１２】  ３つのスロットを定義するアンカー要素のマッピングの図。
【図１３】  ３つのスロットを定義するフォーム要素のマッピングの図。
【図１４】  ＮＡＳＡ宇宙ステーションの軌道とＹｏｈｋｏｈ衛星の軌道のプロットの図。
【図１５】  ライブ・コピーを使用する株価チャートのリアルタイム描画の図。
【図１６】  テーブル要素のライブ・コピーを使用する、株価チャートのリアルタイム描画の図。
【図１７】  マップ・サービス及びそのコントロールパネルを使用するマップ・ツールの形成の図。
【符号の説明】
１０１：ビューの評価を行う部分
１０２：ビュー情報の処理を行う部分
１０３：ビュー・エバリュエイター
１０４：ドキュメント取得部
１０５：ＨＴＭＬドキュメント・パーザー
１０６：ドキュメント編集部
１０７：レンダリング・エンジン
１０８：マッピング・エンジン
１０９：インターバル・タイマー
【図１】
0004382326.tif 000002
【図２】
0004382326.tif 000003
【図３】
0004382326.tif 000004
【図４】
0004382326.tif 000005
【図５】
0004382326.tif 000006
【図６】
0004382326.tif 000007
【図７】
0004382326.tif 000008
【図８】
0004382326.tif 000009
【図９】
0004382326.tif 000010
【図１０】
0004382326.tif 000011
【図１１】
0004382326.tif 000012
【図１２】
0004382326.tif 000013
【図１３】
0004382326.tif 000014
【図１４】
0004382326.tif 000015
【図１５】
0004382326.tif 000016
【図１６】
0004382326.tif 000017
【図１７】
0004382326.tif 000018