JP2003091419A - 情報処理装置、及び情報処理プログラム - Google Patents
情報処理装置、及び情報処理プログラムInfo
- Publication number
- JP2003091419A JP2003091419A JP2001284289A JP2001284289A JP2003091419A JP 2003091419 A JP2003091419 A JP 2003091419A JP 2001284289 A JP2001284289 A JP 2001284289A JP 2001284289 A JP2001284289 A JP 2001284289A JP 2003091419 A JP2003091419 A JP 2003091419A
- Authority
- JP
- Japan
- Prior art keywords
- interface
- node
- facet
- core
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
(57)【要約】
【課題】 オブジェクトに対し、ユーザが選択した特定
の文書型に特有のインターフェースを用いてアクセスす
ることができるようにすること。 【解決手段】 コアインターフェースと特定の文書型に
特有のインターフェースであるファセットインターフェ
ースを持ったファセットオブジェクトを、コアオブジェ
クトを構成するノードオブジェクトに関連付ける。これ
はファセットオブジェクトとノードオブジェクトとの対
応を関係付けるノードファセット対応マップによって行
う。コアインターフェースをファセットインターフェー
スにキャストすることによって、特定の文書型に特有の
インターフェースを用いてコアオブジェクトにアクセス
することができる。
の文書型に特有のインターフェースを用いてアクセスす
ることができるようにすること。 【解決手段】 コアインターフェースと特定の文書型に
特有のインターフェースであるファセットインターフェ
ースを持ったファセットオブジェクトを、コアオブジェ
クトを構成するノードオブジェクトに関連付ける。これ
はファセットオブジェクトとノードオブジェクトとの対
応を関係付けるノードファセット対応マップによって行
う。コアインターフェースをファセットインターフェー
スにキャストすることによって、特定の文書型に特有の
インターフェースを用いてコアオブジェクトにアクセス
することができる。
Description
【0001】
【発明の属する技術分野】本発明は、情報処理装置、及
び情報処理プログラムに関し、例えば、オブジェクトに
対しインターフェースを擬似的に追加するものに関す
る。
び情報処理プログラムに関し、例えば、オブジェクトに
対しインターフェースを擬似的に追加するものに関す
る。
【0002】
【従来の技術】近年XML(Extensible M
arkup Language)ファイルを用いたホー
ムページ作成などが一般的に行われるようになってき
た。XMLファイルをパーサと呼ばれる読み込みプログ
ラムを用いてコンピュータのメモリに展開すると、階層
的なツリー構造を持つオブジェクトのモデル、即ちDO
M(Document Object Model)が
得られる。このツリー状のオブジェクトでは、ノードオ
ブジェクトがツリー構造に構成されている。ノードオブ
ジェクトにおけるインターフェースはオブジェクトのコ
ンパイル時に決まってしまう。また、DOMに限らず一
般的なオブジェクト指向言語では、オブジェクトにおけ
るインターフェースはオブジェクト生成のコンパイル時
に決まってしまう。
arkup Language)ファイルを用いたホー
ムページ作成などが一般的に行われるようになってき
た。XMLファイルをパーサと呼ばれる読み込みプログ
ラムを用いてコンピュータのメモリに展開すると、階層
的なツリー構造を持つオブジェクトのモデル、即ちDO
M(Document Object Model)が
得られる。このツリー状のオブジェクトでは、ノードオ
ブジェクトがツリー構造に構成されている。ノードオブ
ジェクトにおけるインターフェースはオブジェクトのコ
ンパイル時に決まってしまう。また、DOMに限らず一
般的なオブジェクト指向言語では、オブジェクトにおけ
るインターフェースはオブジェクト生成のコンパイル時
に決まってしまう。
【0003】
【発明が解決しようとする課題】しかし、オブジェクト
におけるインターフェースは、コンパイル時に決まって
しまうため、後からコンパイル後のインターフェースと
異なる他の種類のインターフェースを用いたい場合に、
それらインターフェースを用いるのは困難であった。そ
のため、例えば、オブジェクトのツリー構造にSVG
(ScalableVector Graphics)
や、XLink(XML LinkingLangua
ge)といったボキャブラリ(文書型)の異なるオブジ
ェクトが混在する場合、自由にSVGに特有なインター
フェースでアクセスしたりXLinkに特有のインター
フェースでアクセスしたりすることは困難である。この
困難を解決するため、例えば、クラスの継承を利用する
方法も考えられるが、この場合どの文書型に特有のイン
ターフェースを追加するかは静的に行われるため、柔軟
性に欠けることとなる(継承はコンパイル時に行われ、
ランタイム時には行われない)。
におけるインターフェースは、コンパイル時に決まって
しまうため、後からコンパイル後のインターフェースと
異なる他の種類のインターフェースを用いたい場合に、
それらインターフェースを用いるのは困難であった。そ
のため、例えば、オブジェクトのツリー構造にSVG
(ScalableVector Graphics)
や、XLink(XML LinkingLangua
ge)といったボキャブラリ(文書型)の異なるオブジ
ェクトが混在する場合、自由にSVGに特有なインター
フェースでアクセスしたりXLinkに特有のインター
フェースでアクセスしたりすることは困難である。この
困難を解決するため、例えば、クラスの継承を利用する
方法も考えられるが、この場合どの文書型に特有のイン
ターフェースを追加するかは静的に行われるため、柔軟
性に欠けることとなる(継承はコンパイル時に行われ、
ランタイム時には行われない)。
【0004】そこで、本発明の目的は、オブジェクトに
対してユーザがインターフェースを柔軟に選択すること
ができる情報処理装置及び情報処理プログラムを提供す
ることである。
対してユーザがインターフェースを柔軟に選択すること
ができる情報処理装置及び情報処理プログラムを提供す
ることである。
【0005】
【課題を解決するための手段】本発明は、前記目的を達
成するために、請求項1に記載の発明では、第1のイン
ターフェースを持つノードオブジェクトがツリー状の階
層構造に構成された第1のオブジェクトに対し、前記第
1のインターフェースを持ち、かつ所定の文書型に依存
した第2のインターフェースを持つ第2のオブジェクト
と、前記第2のオブジェクトを前記ノードオブジェクト
に対応付ける対応付け手段と、を具備したことを特徴と
する情報処理装置を提供する。前記第2のオブジェクト
は前記第1のインターフェースを第2のインターフェー
スにキャストすることができるキャスト手段を構成して
いる。請求項2に記載の発明では、前記第1のインター
フェースがコアインターフェースであり、前記第1のオ
ブジェクトはコアオブジェクトであることを特徴とする
請求項1に記載の情報処理装置を提供する。請求項3に
記載の発明では、前記対応付け手段が、前記ノードオブ
ジェクトと当該ノードオブジェクトに対応する前記第2
のオブジェクトを対応付ける対応マップにて前記ノード
オブジェクトと前記第2のオブジェクトを対応付けるこ
とを特徴とする請求項1または請求項2に記載の情報処
理装置を提供する。請求項4に記載の発明では、前記ノ
ードオブジェクトが前記所定の文書型に係るノードオブ
ジェクトでない場合には、前記第2のオブジェクトは前
記コアインターフェースを提供することを特徴とする請
求項2、又は請求項3に記載の情報処理装置を提供す
る。請求項5に記載の発明では、第1のインターフェー
スを持つノードオブジェクトがツリー状の階層構造に構
成された第1のオブジェクトに対し、前記第1のインタ
ーフェースを持ち、かつ所定の文書型に依存した第2の
インターフェースを持つ第2のオブジェクトを取得する
オブジェクト取得機能と、前記取得した前記第2のオブ
ジェクトを前記ノードオブジェクトに対応付ける対応付
け機能と、をコンピュータで実現するための情報処理プ
ログラム又は情報処理プログラムを記憶したコンピュー
タが読み取り可能な記憶媒体を提供する。更に、前記対
応付け手段にて対応付けた前記ノードオブジェクトと前
記オブジェクトの対応を解消する対応付け解消手段を更
に具備した請求項1から請求項4までのうちの何れかの
1の情報処理装置を提供することもできる。
成するために、請求項1に記載の発明では、第1のイン
ターフェースを持つノードオブジェクトがツリー状の階
層構造に構成された第1のオブジェクトに対し、前記第
1のインターフェースを持ち、かつ所定の文書型に依存
した第2のインターフェースを持つ第2のオブジェクト
と、前記第2のオブジェクトを前記ノードオブジェクト
に対応付ける対応付け手段と、を具備したことを特徴と
する情報処理装置を提供する。前記第2のオブジェクト
は前記第1のインターフェースを第2のインターフェー
スにキャストすることができるキャスト手段を構成して
いる。請求項2に記載の発明では、前記第1のインター
フェースがコアインターフェースであり、前記第1のオ
ブジェクトはコアオブジェクトであることを特徴とする
請求項1に記載の情報処理装置を提供する。請求項3に
記載の発明では、前記対応付け手段が、前記ノードオブ
ジェクトと当該ノードオブジェクトに対応する前記第2
のオブジェクトを対応付ける対応マップにて前記ノード
オブジェクトと前記第2のオブジェクトを対応付けるこ
とを特徴とする請求項1または請求項2に記載の情報処
理装置を提供する。請求項4に記載の発明では、前記ノ
ードオブジェクトが前記所定の文書型に係るノードオブ
ジェクトでない場合には、前記第2のオブジェクトは前
記コアインターフェースを提供することを特徴とする請
求項2、又は請求項3に記載の情報処理装置を提供す
る。請求項5に記載の発明では、第1のインターフェー
スを持つノードオブジェクトがツリー状の階層構造に構
成された第1のオブジェクトに対し、前記第1のインタ
ーフェースを持ち、かつ所定の文書型に依存した第2の
インターフェースを持つ第2のオブジェクトを取得する
オブジェクト取得機能と、前記取得した前記第2のオブ
ジェクトを前記ノードオブジェクトに対応付ける対応付
け機能と、をコンピュータで実現するための情報処理プ
ログラム又は情報処理プログラムを記憶したコンピュー
タが読み取り可能な記憶媒体を提供する。更に、前記対
応付け手段にて対応付けた前記ノードオブジェクトと前
記オブジェクトの対応を解消する対応付け解消手段を更
に具備した請求項1から請求項4までのうちの何れかの
1の情報処理装置を提供することもできる。
【0006】
【発明の実施の形態】以下、本発明の好適な実施の形態
について、図1ないし図9を参照して詳細に説明する。
まず以下に、DOMの概念について説明する。図1
(a)は、名簿を例とし、DOMを生成するための元と
なる文書4の一例を示したものである。DOMの元とな
るデータは所定の文法に従ってテキストファイルなどに
より作成される。なお、文書4は、一例としてXMLの
文法に従って作成されているものとする。
について、図1ないし図9を参照して詳細に説明する。
まず以下に、DOMの概念について説明する。図1
(a)は、名簿を例とし、DOMを生成するための元と
なる文書4の一例を示したものである。DOMの元とな
るデータは所定の文法に従ってテキストファイルなどに
より作成される。なお、文書4は、一例としてXMLの
文法に従って作成されているものとする。
【0007】文書4は、名簿タグ6という最上位の項目
(ルート)があり、その下に人物タグ6という項目が設
けられている。そして、人物タグ6の下には更に名前タ
グ7、年齢タグ8、所属タグ9などの項目が設けられて
いる。名前タグ7、年齢タグ8、所属タグ9の各項目に
は、当該人物の名前、年齢、所属が記入されている。な
お、XMLでは、開始タグ(<名前>など)から終了タ
グ(</名前>)までを要素と呼び、開始タグや終了タ
グのタグ名を要素名と呼び、開始タグと終了タグで挟ま
れた部分を要素の内容という。
(ルート)があり、その下に人物タグ6という項目が設
けられている。そして、人物タグ6の下には更に名前タ
グ7、年齢タグ8、所属タグ9などの項目が設けられて
いる。名前タグ7、年齢タグ8、所属タグ9の各項目に
は、当該人物の名前、年齢、所属が記入されている。な
お、XMLでは、開始タグ(<名前>など)から終了タ
グ(</名前>)までを要素と呼び、開始タグや終了タ
グのタグ名を要素名と呼び、開始タグと終了タグで挟ま
れた部分を要素の内容という。
【0008】図1(b)は、後に説明するコンピュータ
などのメモリに生成されたDOM12を模式的に示した
図である。DOM12は、後に説明するCPU(Cen
tral Processing Unit)が文書4
を読み込み、記載されているデータを所定のプログラム
を用いてメモリに展開することにより生成される。DO
M12は、XMLで要素に該当する部分をノード(節)
とした、ツリー構造に階層化されたオブジェクトのモデ
ルである。
などのメモリに生成されたDOM12を模式的に示した
図である。DOM12は、後に説明するCPU(Cen
tral Processing Unit)が文書4
を読み込み、記載されているデータを所定のプログラム
を用いてメモリに展開することにより生成される。DO
M12は、XMLで要素に該当する部分をノード(節)
とした、ツリー構造に階層化されたオブジェクトのモデ
ルである。
【0009】ツリー構造状のオブジェクト(以下DOM
オブジェクト)は、名簿というルートオブジェクト14
の下に人物というオブジェクト15が生成されており、
更にオブジェクト15の下には、名前7、年齢8、所属
9に対応するオブジェクト16、17、18が生成され
ている。これらのツリー構造の節を成すオブジェクトは
ノードオブジェクトと呼ばれる。
オブジェクト)は、名簿というルートオブジェクト14
の下に人物というオブジェクト15が生成されており、
更にオブジェクト15の下には、名前7、年齢8、所属
9に対応するオブジェクト16、17、18が生成され
ている。これらのツリー構造の節を成すオブジェクトは
ノードオブジェクトと呼ばれる。
【0010】更に、詳しく述べるとDOMは、DOM対
応のアプリケーションソフトやその他のプログラムなど
からDOMの各要素にアクセスするためのインターフェ
ースから構成されている。そしてDOMオブジェクトの
うち、特定の文書型に特有のインターフェースを持たな
い部分をコアオブジェクトという。なお、以降アプリケ
ーションソフトがDOMオブジェクトの各要素にアクセ
スするなどと、表現するがこれは、後に説明するコンピ
ュータのCPUがアプリケーションソフトに従ってDO
Mオブジェクトの各要素にアクセスすることを意味する
ものとする。
応のアプリケーションソフトやその他のプログラムなど
からDOMの各要素にアクセスするためのインターフェ
ースから構成されている。そしてDOMオブジェクトの
うち、特定の文書型に特有のインターフェースを持たな
い部分をコアオブジェクトという。なお、以降アプリケ
ーションソフトがDOMオブジェクトの各要素にアクセ
スするなどと、表現するがこれは、後に説明するコンピ
ュータのCPUがアプリケーションソフトに従ってDO
Mオブジェクトの各要素にアクセスすることを意味する
ものとする。
【0011】文書型特有のインターフェースを持たない
DOMオブジェクトはコアオブジェクトと呼ばれる。コ
アオブジェクトは全ての文書型に共通の基本的にコアイ
ンターフェースを持つ。コアインターフェースを用いて
タグやアトリビュートの取得、追加、削除、トラバース
などを行うことができる。コアオブジェクトは、複数の
ノードオブジェクトと呼ばれる単位が組み合わされたツ
リー構造を持つ。
DOMオブジェクトはコアオブジェクトと呼ばれる。コ
アオブジェクトは全ての文書型に共通の基本的にコアイ
ンターフェースを持つ。コアインターフェースを用いて
タグやアトリビュートの取得、追加、削除、トラバース
などを行うことができる。コアオブジェクトは、複数の
ノードオブジェクトと呼ばれる単位が組み合わされたツ
リー構造を持つ。
【0012】ノードオブジェクトには、要素タイプ、コ
メントタイプ、属性タイプなどのいくつかのノードタイ
プがある。そして、ノードオブジェクトは全てのノード
タイプに共通なノードインターフェースを持ち、また、
ノードタイプごとに定義されたインターフェースも持
つ。なお、コアインターフェースはノードインターフェ
ースや要素インターフェースなどを含んだ概念である。
メントタイプ、属性タイプなどのいくつかのノードタイ
プがある。そして、ノードオブジェクトは全てのノード
タイプに共通なノードインターフェースを持ち、また、
ノードタイプごとに定義されたインターフェースも持
つ。なお、コアインターフェースはノードインターフェ
ースや要素インターフェースなどを含んだ概念である。
【0013】このようにノードオブジェクトには、コア
インターフェースなどを用いてアクセスすることができ
る。コアオブジェクトは1つの文書から1つだけ生成さ
れる。文書型としては、例えば、HTML(Hyper
text Markup Language)、SV
G、XLinkなどがある。SVGはベクターグラフィ
ックスを記述するための標準仕様であり、XLinkは
XML文書同士のリンクを記述するための標準仕様であ
る。
インターフェースなどを用いてアクセスすることができ
る。コアオブジェクトは1つの文書から1つだけ生成さ
れる。文書型としては、例えば、HTML(Hyper
text Markup Language)、SV
G、XLinkなどがある。SVGはベクターグラフィ
ックスを記述するための標準仕様であり、XLinkは
XML文書同士のリンクを記述するための標準仕様であ
る。
【0014】データをメモリ上で標準的なオブジェクト
として管理し、標準的なインターフェースでアクセスす
ることで、複数のプログラム間で容易にデータを流用す
ることができるようになる。また、オブジェクト指向プ
ログラミングによりプログラムの部品化を進めることが
できる。
として管理し、標準的なインターフェースでアクセスす
ることで、複数のプログラム間で容易にデータを流用す
ることができるようになる。また、オブジェクト指向プ
ログラミングによりプログラムの部品化を進めることが
できる。
【0015】図2は、コアオブジェクト10を各種プロ
グラム2、3、・・・、で利用する場合を模式的に表し
た図である。図は、文書1をコンピュータに読み込み、
データをメモリ上に展開してコアオブジェクト10が生
成されているところを示している。コアオブジェクト1
0として展開されたデータはDOM対応のプログラム
2、3、・・・、から利用することができる。
グラム2、3、・・・、で利用する場合を模式的に表し
た図である。図は、文書1をコンピュータに読み込み、
データをメモリ上に展開してコアオブジェクト10が生
成されているところを示している。コアオブジェクト1
0として展開されたデータはDOM対応のプログラム
2、3、・・・、から利用することができる。
【0016】ところで、XML Namespace規
約に従って、例えばXHTML文書の中にSVG文書型
に含まれる要素やXLink文書型に含まれる要素な
ど、異種の文書型の要素を混在させることができる。こ
のように異種の文書型の要素から構成された文書から生
成されるコアオブジェクトは、異種の文書型が混在した
ものとなる。
約に従って、例えばXHTML文書の中にSVG文書型
に含まれる要素やXLink文書型に含まれる要素な
ど、異種の文書型の要素を混在させることができる。こ
のように異種の文書型の要素から構成された文書から生
成されるコアオブジェクトは、異種の文書型が混在した
ものとなる。
【0017】ところが、コアオブジェクトは、動的にイ
ンターフェースを追加する機能は持っていない。そのた
め、例えば、コンパイル時に決まったコアオブジェクト
のインターフェースがHTMLに特有のものであったと
すると、SVGの文書型のノードに対してはSVGに特
有のインターフェースを用いた高水準なアクセスするこ
とはできず、コアインターフェースによる低水準なアク
セスしかできない。
ンターフェースを追加する機能は持っていない。そのた
め、例えば、コンパイル時に決まったコアオブジェクト
のインターフェースがHTMLに特有のものであったと
すると、SVGの文書型のノードに対してはSVGに特
有のインターフェースを用いた高水準なアクセスするこ
とはできず、コアインターフェースによる低水準なアク
セスしかできない。
【0018】このように、DOM利用プログラムでコア
オブジェクトにアクセスする場合、コンパイル後にユー
ザが希望の文書型に特有なインターフェースを自由にコ
アオブジェクトに追加することはできない。
オブジェクトにアクセスする場合、コンパイル後にユー
ザが希望の文書型に特有なインターフェースを自由にコ
アオブジェクトに追加することはできない。
【0019】本実施の形態では、デザインパターンにお
けるデコレータパターンに近い手法を用いて、コアイン
ターフェースと所定の文書型のインターフェースを有す
るオブジェクトを動的にコアインターフェースに対応付
けることにより、コアオブジェクトを構成する要素の文
書型によらずに高水準な操作を可能とするものである。
けるデコレータパターンに近い手法を用いて、コアイン
ターフェースと所定の文書型のインターフェースを有す
るオブジェクトを動的にコアインターフェースに対応付
けることにより、コアオブジェクトを構成する要素の文
書型によらずに高水準な操作を可能とするものである。
【0020】図3は、コアインターフェースに所定の文
書型のインターフェースを関連付けるオブジェクトを説
明するための模式図である。なお、このようにコアイン
ターフェースと所定の文書型のインターフェースを関連
付けるオブジェクトをファセットオブジェクトと呼ぶこ
とにする。ファセットオブジェクトは、ノードオブジェ
クトごとに対応付けられている。
書型のインターフェースを関連付けるオブジェクトを説
明するための模式図である。なお、このようにコアイン
ターフェースと所定の文書型のインターフェースを関連
付けるオブジェクトをファセットオブジェクトと呼ぶこ
とにする。ファセットオブジェクトは、ノードオブジェ
クトごとに対応付けられている。
【0021】図3(a)で、ノードオブジェクト60
は、あるコアオブジェクトを構成するノードオブジェク
トであって、コアインターフェースを持っている。一
方、プログラム64は、ノードオブジェクト60を文書
型Aに特有のインターフェースを使用するものとする。
は、あるコアオブジェクトを構成するノードオブジェク
トであって、コアインターフェースを持っている。一
方、プログラム64は、ノードオブジェクト60を文書
型Aに特有のインターフェースを使用するものとする。
【0022】今、コアインターフェースを持ち、文書型
Aに対応したインターフェースを持つファセットオブジ
ェクト62を用意し、これをノードオブジェクト60に
関連付けて、プログラム63がファセットオブジェクト
62を用いてノードオブジェクト60にアクセスするも
のとする。
Aに対応したインターフェースを持つファセットオブジ
ェクト62を用意し、これをノードオブジェクト60に
関連付けて、プログラム63がファセットオブジェクト
62を用いてノードオブジェクト60にアクセスするも
のとする。
【0023】ここで、ファセットオブジェクト62は以
下の性質を持つものとする。ファセットオブジェクト6
2は、ノードオブジェクト60を参照するものとする。
また、ファセットオブジェクト62はコンテンツ(文書
内容)を一切持たないものとする。更に、ファセットオ
ブジェクト62はコアインターフェースと同じインター
フェースを持ち、ノードオブジェクトと全く同じように
振舞う。つまり、ファセットオブジェクトの行う処理
は、コアインターフェースについては全てコアオブジェ
クトに移譲する。
下の性質を持つものとする。ファセットオブジェクト6
2は、ノードオブジェクト60を参照するものとする。
また、ファセットオブジェクト62はコンテンツ(文書
内容)を一切持たないものとする。更に、ファセットオ
ブジェクト62はコアインターフェースと同じインター
フェースを持ち、ノードオブジェクトと全く同じように
振舞う。つまり、ファセットオブジェクトの行う処理
は、コアインターフェースについては全てコアオブジェ
クトに移譲する。
【0024】加えて、ファセットオブジェクト62は文
書型Aで定義された高水準インターフェース(以下アス
ペクトインターフェースと呼ぶことにする)を持ち、プ
ログラム64は、このアスペクトインターフェースを使
用することができる。そして、ユーザは、ファセットオ
ブジェクト66を取得し、それをアスペクトインターフ
ェースにキャストすることにより利用する。
書型Aで定義された高水準インターフェース(以下アス
ペクトインターフェースと呼ぶことにする)を持ち、プ
ログラム64は、このアスペクトインターフェースを使
用することができる。そして、ユーザは、ファセットオ
ブジェクト66を取得し、それをアスペクトインターフ
ェースにキャストすることにより利用する。
【0025】以上のようなファセットオブジェクト62
を介してプログラム64がノードオブジェクト60にア
クセスすると、プログラム64に対してファセットオブ
ジェクト62は、あたかもノードオブジェクト60であ
るかのように機能する。
を介してプログラム64がノードオブジェクト60にア
クセスすると、プログラム64に対してファセットオブ
ジェクト62は、あたかもノードオブジェクト60であ
るかのように機能する。
【0026】SVGを例に用いて更に詳細に述べる。フ
ァセットオブジェクト62は、あるノードオブジェクト
を対応するファセットオブジェクトに変換するメソッド
を備えている。即ち、このメソッドはプログラム64が
ノードオブジェクトを渡すと対応するファセットオブジ
ェクトを返す。なお、このメソッドはファセットオブジ
ェクトとは別に用意しても良い。
ァセットオブジェクト62は、あるノードオブジェクト
を対応するファセットオブジェクトに変換するメソッド
を備えている。即ち、このメソッドはプログラム64が
ノードオブジェクトを渡すと対応するファセットオブジ
ェクトを返す。なお、このメソッドはファセットオブジ
ェクトとは別に用意しても良い。
【0027】そして、対象となるノードオブジェクトが
SVGであった場合は、コアインターフェースからファ
セットインターフェースにキャストし、SVGに特有の
インターフェースを使用することができる。ここで、メ
ソッドとは、オブジェクトの実行する手続を記述したプ
ログラムであり、キャストとは、インターフェースの型
を変換することである。
SVGであった場合は、コアインターフェースからファ
セットインターフェースにキャストし、SVGに特有の
インターフェースを使用することができる。ここで、メ
ソッドとは、オブジェクトの実行する手続を記述したプ
ログラムであり、キャストとは、インターフェースの型
を変換することである。
【0028】例えば、SVGで中心の座標(100、2
00)半径50の円は以下のように表される(単位は例
えばピクセル)。 <circle cx=”100” cy=”200”
r=”50”/>
00)半径50の円は以下のように表される(単位は例
えばピクセル)。 <circle cx=”100” cy=”200”
r=”50”/>
【0029】コアインターフェースでは、要素(cir
cle)と属性を表す文字列(cx=”100” cy
=”200” r=”50”)があることは認識できる
が、これが円を表し中心座標が(100、200)で半
径が50であることは分からない。このため、コアイン
ターフェースは低水準なインターフェースと呼ばれる。
そして、ユーザがこの円の半径を取得する場合、例えば
以下のような関数を使用する。 elem.getAtribute(”r”) これは、rに係る属性を取得する関数である。これによ
って、返値として文字列”50”が取得できる。
cle)と属性を表す文字列(cx=”100” cy
=”200” r=”50”)があることは認識できる
が、これが円を表し中心座標が(100、200)で半
径が50であることは分からない。このため、コアイン
ターフェースは低水準なインターフェースと呼ばれる。
そして、ユーザがこの円の半径を取得する場合、例えば
以下のような関数を使用する。 elem.getAtribute(”r”) これは、rに係る属性を取得する関数である。これによ
って、返値として文字列”50”が取得できる。
【0030】コアインターフェースは、要素と属性を表
す文字列があることしか認識できないため、ユーザはc
ircleが円を表し、半径を表す文字がrでることを
知らなければならない。また、返値50は文字列なの
で、これを数値に変換する必要もある。
す文字列があることしか認識できないため、ユーザはc
ircleが円を表し、半径を表す文字がrでることを
知らなければならない。また、返値50は文字列なの
で、これを数値に変換する必要もある。
【0031】ところで、circle要素に対して以下
のような半径rの数値を返すアスペクトインターフェー
スを作ることが可能である。 circle.getR() このインターフェースは、半径はrの後にある文字列を
数値に変換して返す。ユーザは、半径を表す文字がrで
あることを知る必要がない。また返値50を数値に変換
する必要がない。
のような半径rの数値を返すアスペクトインターフェー
スを作ることが可能である。 circle.getR() このインターフェースは、半径はrの後にある文字列を
数値に変換して返す。ユーザは、半径を表す文字がrで
あることを知る必要がない。また返値50を数値に変換
する必要がない。
【0032】このように、アスペクトインターフェース
はデータを持たずにデータの処理の仕方を規定する。こ
のようにgetR()は、初めから円の半径を取得する
インターフェースであるので、高水準なインターフェー
スと呼ばれる。そして、コアオブジェクトはget
R()がcircle要素に関するインターフェースで
あるという情報を持っていないため、コアインターフェ
ースをファセットインターフェースにキャストすること
により機能することができる。
はデータを持たずにデータの処理の仕方を規定する。こ
のようにgetR()は、初めから円の半径を取得する
インターフェースであるので、高水準なインターフェー
スと呼ばれる。そして、コアオブジェクトはget
R()がcircle要素に関するインターフェースで
あるという情報を持っていないため、コアインターフェ
ースをファセットインターフェースにキャストすること
により機能することができる。
【0033】例えば、XHTMLに特有のインターフェ
ースしか持たないワープロソフトの場合、SVGボキャ
ブラリに含まれる要素<circle cx=”10
0”cy=”200” r=”50”/>に対してel
ement.getAttribute(”r”)=”
50”といった低水準な操作しかできない。ここで、こ
のワープロソフトにSVGを扱うためのアスペクトイン
ターフェースを組み込むと、circle.get
R()=50といったような高水準な操作を行うことが
できるようになる。このように、コンパイル済みのオブ
ジェクトに対し、擬似的にインターフェースを追加する
ことができる。
ースしか持たないワープロソフトの場合、SVGボキャ
ブラリに含まれる要素<circle cx=”10
0”cy=”200” r=”50”/>に対してel
ement.getAttribute(”r”)=”
50”といった低水準な操作しかできない。ここで、こ
のワープロソフトにSVGを扱うためのアスペクトイン
ターフェースを組み込むと、circle.get
R()=50といったような高水準な操作を行うことが
できるようになる。このように、コンパイル済みのオブ
ジェクトに対し、擬似的にインターフェースを追加する
ことができる。
【0034】このように、本実施の形態では、クラスの
継承ではなく、オブジェクトコンポジションを利用して
アスペクトを追加する。このノードオブジェクトとファ
セットオブジェクトの関係は、デコレータパターンと同
様である。デコレータパターンは、デザインパターンの
1つであり、個個のオブジェクトに責任を動的かつ透明
(他のオブジェクトに影響を与えないこと)に追加する
ことができるものである。
継承ではなく、オブジェクトコンポジションを利用して
アスペクトを追加する。このノードオブジェクトとファ
セットオブジェクトの関係は、デコレータパターンと同
様である。デコレータパターンは、デザインパターンの
1つであり、個個のオブジェクトに責任を動的かつ透明
(他のオブジェクトに影響を与えないこと)に追加する
ことができるものである。
【0035】図3(b)は、コアインターフェースと文
書型Bに特有なインターフェースを持ったファセットオ
ブジェクト66を介することにより、プログラム68が
文書型Bに特有なインターフェースを使ってコアオブジ
ェクト66にアクセスしているところを表した模式図で
ある。
書型Bに特有なインターフェースを持ったファセットオ
ブジェクト66を介することにより、プログラム68が
文書型Bに特有なインターフェースを使ってコアオブジ
ェクト66にアクセスしているところを表した模式図で
ある。
【0036】ファセットオブジェクト60は、ノードオ
ブジェクト60と全く同様に振る舞い、そのためプログ
ラム68からは、あたかも文書型Bの要素で構成された
ノードオブジェクト60を扱っているように見える。即
ち、DOMの利用者は、コアオブジェクトとかアスペク
トオブジェクトとかいうことを気にする必要が無い。
ブジェクト60と全く同様に振る舞い、そのためプログ
ラム68からは、あたかも文書型Bの要素で構成された
ノードオブジェクト60を扱っているように見える。即
ち、DOMの利用者は、コアオブジェクトとかアスペク
トオブジェクトとかいうことを気にする必要が無い。
【0037】このようなファセットオブジェクトをコア
オブジェクトの各ノードオブジェクトに対応付けると、
ファセットオブジェクトからなるツリー構造が得られ
る。これをコアオブジェクトに対し、アスペクトオブジ
ェクトと呼ぶことにする。このように、文書型ごとにコ
アオブジェクトとは別にアスペクトオブジェクトを作成
し、これをコアオブジェクトに動的に関連付けることに
より、コアオブジェクトの要素の文書型の違いを吸収す
ることができる。アスペクトオブジェクトは、文書型ご
とに作成されるため、必要に応じて文書型の数だけ作成
される。即ち、1つのコアオブジェクトに対して複数の
アスペクトオブジェクトが対応することとなる。
オブジェクトの各ノードオブジェクトに対応付けると、
ファセットオブジェクトからなるツリー構造が得られ
る。これをコアオブジェクトに対し、アスペクトオブジ
ェクトと呼ぶことにする。このように、文書型ごとにコ
アオブジェクトとは別にアスペクトオブジェクトを作成
し、これをコアオブジェクトに動的に関連付けることに
より、コアオブジェクトの要素の文書型の違いを吸収す
ることができる。アスペクトオブジェクトは、文書型ご
とに作成されるため、必要に応じて文書型の数だけ作成
される。即ち、1つのコアオブジェクトに対して複数の
アスペクトオブジェクトが対応することとなる。
【0038】図4(a)は、ノードオブジェクト74、
76、78、80、82からなるコアオブジェクト71
にファセットオブジェクト75、77、79、81、8
3を関連付け、プログラム90(より詳細にはCPU)
でコアオブジェクト71にアクセスするところを概念的
に示している。ファセットオブジェクト75、77、7
9、81、83は、コアオブジェクト71がメモリに展
開された後に関連付けられたものである。
76、78、80、82からなるコアオブジェクト71
にファセットオブジェクト75、77、79、81、8
3を関連付け、プログラム90(より詳細にはCPU)
でコアオブジェクト71にアクセスするところを概念的
に示している。ファセットオブジェクト75、77、7
9、81、83は、コアオブジェクト71がメモリに展
開された後に関連付けられたものである。
【0039】ファセットオブジェクト75は、コアイン
ターフェースによってノードオブジェクト74にアクセ
スする一方、プログラム90が持つ所定の文書型に依存
するインターフェース(アスペクトインターフェース)
にてプログラム90からのアクセスを受ける。
ターフェースによってノードオブジェクト74にアクセ
スする一方、プログラム90が持つ所定の文書型に依存
するインターフェース(アスペクトインターフェース)
にてプログラム90からのアクセスを受ける。
【0040】ファセットオブジェクト75は、プログラ
ム90からの作用に対してノードオブジェクト74の全
く同様に機能するので、プログラム90からは、ノード
オブジェクトを扱っているのかそれともファセットオブ
ジェクトを扱っているのかは一切気にしなくても良い。
そして、プログラム90は、所定の文書型に依存する高
水準なアクセスをノードオブジェクト74に対して行う
ことができる。
ム90からの作用に対してノードオブジェクト74の全
く同様に機能するので、プログラム90からは、ノード
オブジェクトを扱っているのかそれともファセットオブ
ジェクトを扱っているのかは一切気にしなくても良い。
そして、プログラム90は、所定の文書型に依存する高
水準なアクセスをノードオブジェクト74に対して行う
ことができる。
【0041】同様にプログラム90は、ファセットオブ
ジェクト77を介してノードオブジェクト76にアクセ
スし、ファセットオブジェクト79、81、83を介し
てノードオブジェクト78、80、82にアクセスす
る。
ジェクト77を介してノードオブジェクト76にアクセ
スし、ファセットオブジェクト79、81、83を介し
てノードオブジェクト78、80、82にアクセスす
る。
【0042】プログラム90がファセットオブジェクト
75からツリー構造を辿ってファセットオブジェクト7
9にアクセスしたい場合、プログラム90はファセット
オブジェクト75→ノードオブジェクト74→ノードオ
ブジェクト78→ファセットオブジェクト79と辿る。
75からツリー構造を辿ってファセットオブジェクト7
9にアクセスしたい場合、プログラム90はファセット
オブジェクト75→ノードオブジェクト74→ノードオ
ブジェクト78→ファセットオブジェクト79と辿る。
【0043】このように、ファセットオブジェクトは直
接他のファセットオブジェクトには繋がっていず、対応
するノードオブジェクトを介するようになっている。即
ち、各ファセットは、自身が接続するノードオブジェク
トを特定する情報はもっていするが、自分の親や子供、
兄弟のファセットオブジェクトを特定する情報は持って
いない。これらのファセットを特定する情報は、ノード
オブジェクトから間接的に得ることになる。
接他のファセットオブジェクトには繋がっていず、対応
するノードオブジェクトを介するようになっている。即
ち、各ファセットは、自身が接続するノードオブジェク
トを特定する情報はもっていするが、自分の親や子供、
兄弟のファセットオブジェクトを特定する情報は持って
いない。これらのファセットを特定する情報は、ノード
オブジェクトから間接的に得ることになる。
【0044】ファセットオブジェクトをツリー構造によ
り直接関連づけた場合、コアオブジェクトのノードオブ
ジェクトのツリー構造が変化した際に、ファセットオブ
ジェクトのツリー構造も変更して同期をとらなければな
らい。同期をとる処理は一般に複雑である。本実施の形
態のように、ファセットオブジェクトをノードオブジェ
クトを介してツリー構造に関連付ければ、同期をとる処
理は必要なくなる。
り直接関連づけた場合、コアオブジェクトのノードオブ
ジェクトのツリー構造が変化した際に、ファセットオブ
ジェクトのツリー構造も変更して同期をとらなければな
らい。同期をとる処理は一般に複雑である。本実施の形
態のように、ファセットオブジェクトをノードオブジェ
クトを介してツリー構造に関連付ければ、同期をとる処
理は必要なくなる。
【0045】ところで、ノードオブジェクトは、自身が
接続するファセットオブジェクトを特定する情報は持っ
ていない。そのため、例えば、ノードオブジェクト→フ
ァセット79といったようにノードオブジェクト側から
ファセットオブジェクト側へ情報を伝達する場合は、ノ
ードファセット対応マップを用いる。ノードファセット
対応マップは、ノードオブジェクトとファセットオブジ
ェクトを関連付ける手段でもある。
接続するファセットオブジェクトを特定する情報は持っ
ていない。そのため、例えば、ノードオブジェクト→フ
ァセット79といったようにノードオブジェクト側から
ファセットオブジェクト側へ情報を伝達する場合は、ノ
ードファセット対応マップを用いる。ノードファセット
対応マップは、ノードオブジェクトとファセットオブジ
ェクトを関連付ける手段でもある。
【0046】図5は、ノードファセット対応マップ91
の一例を示した図である。このマップはアスペクトオブ
ジェクトを生成する際にコンピュータのメモリ上に生成
される。ノードファセット対応マップ91の左の欄はノ
ードオブジェクトを特定する情報が格納されており、右
の欄には左の欄のノードオブジェクトに対応するファセ
ットオブジェクトを特定するための情報が格納されてい
る。各ファセットオブジェクトは、ノードファセット対
応マップ91により、ノードオブジェクトからファセッ
トオブジェクトへの対応付けを受けることになる。
の一例を示した図である。このマップはアスペクトオブ
ジェクトを生成する際にコンピュータのメモリ上に生成
される。ノードファセット対応マップ91の左の欄はノ
ードオブジェクトを特定する情報が格納されており、右
の欄には左の欄のノードオブジェクトに対応するファセ
ットオブジェクトを特定するための情報が格納されてい
る。各ファセットオブジェクトは、ノードファセット対
応マップ91により、ノードオブジェクトからファセッ
トオブジェクトへの対応付けを受けることになる。
【0047】以上のように、プログラム90がファセッ
トオブジェクトを介してコアオブジェクトにアクセスす
るように構成すると、図4(b)に示したようにプログ
ラム90からはファセットオブジェクトのツリー構造か
ら構成されたアスペクトオブジェクト72にアクセスし
ているように見える。
トオブジェクトを介してコアオブジェクトにアクセスす
るように構成すると、図4(b)に示したようにプログ
ラム90からはファセットオブジェクトのツリー構造か
ら構成されたアスペクトオブジェクト72にアクセスし
ているように見える。
【0048】アスペクトオブジェクト72のプログラム
90に対する機能は、アスペクトオブジェクト72は、
プログラム90に対してコアオブジェクト71と全く同
様に機能する。
90に対する機能は、アスペクトオブジェクト72は、
プログラム90に対してコアオブジェクト71と全く同
様に機能する。
【0049】なお、ファセットオブジェクトは、全ての
ノードオブジェクトに対して生成する必要は無く、プロ
グラム90が必要としたときに、必要とされるファセッ
トオブジェクトを生成するように構成することができ
る。
ノードオブジェクトに対して生成する必要は無く、プロ
グラム90が必要としたときに、必要とされるファセッ
トオブジェクトを生成するように構成することができ
る。
【0050】以上に説明したようにファセットオブジェ
クトはノードオブジェクトに対応するファセットオブジ
ェクトのツリー構造を持つ。即ち、そのツリー構造はコ
アオブジェクトのツリー構造と全く同じである。ファセ
ットオブジェクトの特徴をまとめると以下のようにな
る。
クトはノードオブジェクトに対応するファセットオブジ
ェクトのツリー構造を持つ。即ち、そのツリー構造はコ
アオブジェクトのツリー構造と全く同じである。ファセ
ットオブジェクトの特徴をまとめると以下のようにな
る。
【0051】1.それぞれのファセットオブジェクトは
対応するノードオブジェクトを参照する。 2.ファセットオブジェクトは対応するノードオブジェ
クトと同じインターフェースを持つ。そのインターフェ
ースの処理は全て、対応するノードオブジェクトに移譲
する。
対応するノードオブジェクトを参照する。 2.ファセットオブジェクトは対応するノードオブジェ
クトと同じインターフェースを持つ。そのインターフェ
ースの処理は全て、対応するノードオブジェクトに移譲
する。
【0052】3.ただし、ノードオブジェクトが同一ツ
リー内の別のノードオブジェクトを参照し、その別のノ
ードオブジェクトを返すインターフェースがある場合、
ノードオブジェクトに対応するファセットオブジェクト
の同一インターフェースは、当該別のノードオブジェク
トそのものではなく、それに対応するファセットオブジ
ェクトを返す。すなわち、利用者はノードオブジェクト
に直接触れることは一切無く、全てのインターフェース
呼び出しにおいてファセットオブジェクトが介在する。
リー内の別のノードオブジェクトを参照し、その別のノ
ードオブジェクトを返すインターフェースがある場合、
ノードオブジェクトに対応するファセットオブジェクト
の同一インターフェースは、当該別のノードオブジェク
トそのものではなく、それに対応するファセットオブジ
ェクトを返す。すなわち、利用者はノードオブジェクト
に直接触れることは一切無く、全てのインターフェース
呼び出しにおいてファセットオブジェクトが介在する。
【0053】4.ノードタイプが要素のファセットオブ
ジェクトは、その要素型に対してユニークなインターフ
ェース(ファセットインターフェース)を持つ。利用者
はオブジェクト指向言語におけるキャストによって、そ
れぞれのファセットインターフェースを得ることができ
る。
ジェクトは、その要素型に対してユニークなインターフ
ェース(ファセットインターフェース)を持つ。利用者
はオブジェクト指向言語におけるキャストによって、そ
れぞれのファセットインターフェースを得ることができ
る。
【0054】図6は、DOM利用プログラム、コアオブ
ジェクト及びアスペクトオブジェクトの相関の一例を示
した図である。図6は、アスペクトオブジェクトを用い
ずにプログラム101からDOMを利用した場合を示し
た模式図である。この場合、プログラム101は、コア
インターフェース102を介してコアオブジェクト10
3にアクセスする。
ジェクト及びアスペクトオブジェクトの相関の一例を示
した図である。図6は、アスペクトオブジェクトを用い
ずにプログラム101からDOMを利用した場合を示し
た模式図である。この場合、プログラム101は、コア
インターフェース102を介してコアオブジェクト10
3にアクセスする。
【0055】図6(b)は、XHTMLアスペクトオブ
ジェクトを用いた例を模式的に示した図である。プログ
ラム105は、XHTML(Extensible H
ypertext Markup Language)
特有のインターフェースを用いてコアオブジェクト10
3にアクセスする。
ジェクトを用いた例を模式的に示した図である。プログ
ラム105は、XHTML(Extensible H
ypertext Markup Language)
特有のインターフェースを用いてコアオブジェクト10
3にアクセスする。
【0056】コアオブジェクト103の各ノードオブジ
ェクトにXHTMLアスペクト用のファセットオブジェ
クトが対応付けられてXHTMLアスペクトオブジェク
トジェクト108が生成される。
ェクトにXHTMLアスペクト用のファセットオブジェ
クトが対応付けられてXHTMLアスペクトオブジェク
トジェクト108が生成される。
【0057】XHTMLアスペクトオブジェクト108
は、XHTMLアスペクトインターフェース107とコ
アインターフェース106を持っており、プログラム1
05からは、コアインターフェース106及びXHTM
Lアスペクトインターフェース107(XHTMLに特
有のインターフェース)の双方を用いてXHTMLアス
ペクトオブジェクト108にアクセスすることができ
る。コアインターフェース106は、例えばSVGのノ
ードなどのXHTML以外のノードにアクセスする際な
どに使用される。プログラム105からはコアオブジェ
クトがXHTML型文書として使用することができる。
は、XHTMLアスペクトインターフェース107とコ
アインターフェース106を持っており、プログラム1
05からは、コアインターフェース106及びXHTM
Lアスペクトインターフェース107(XHTMLに特
有のインターフェース)の双方を用いてXHTMLアス
ペクトオブジェクト108にアクセスすることができ
る。コアインターフェース106は、例えばSVGのノ
ードなどのXHTML以外のノードにアクセスする際な
どに使用される。プログラム105からはコアオブジェ
クトがXHTML型文書として使用することができる。
【0058】図6(c)は、SVGアスペクトオブジェ
クトを用いた例を模式的に示した図である。プログラム
110は、SVG特有のインターフェースを用いてコア
オブジェクトに103にアクセスする。
クトを用いた例を模式的に示した図である。プログラム
110は、SVG特有のインターフェースを用いてコア
オブジェクトに103にアクセスする。
【0059】コアオブジェクト103の各ノードオブジ
ェクトにSVGアスペクト用のファセットオブジェクト
が対応付けられてSVGアスペクトオブジェクトジェク
ト113が生成される。
ェクトにSVGアスペクト用のファセットオブジェクト
が対応付けられてSVGアスペクトオブジェクトジェク
ト113が生成される。
【0060】SVGアスペクトオブジェクト113は、
SVGアスペクトインターフェース112とコアインタ
ーフェース111を備えており、プログラム110から
は、コアインターフェース及びSVGに特有のインター
フェースの双方を用いてSVGアスペクトオブジェクト
108にアクセスすることができる。プログラム110
は、コアオブジェクト103をSVG型文書として使用
することができる。
SVGアスペクトインターフェース112とコアインタ
ーフェース111を備えており、プログラム110から
は、コアインターフェース及びSVGに特有のインター
フェースの双方を用いてSVGアスペクトオブジェクト
108にアクセスすることができる。プログラム110
は、コアオブジェクト103をSVG型文書として使用
することができる。
【0061】図7は、アスペクトオブジェクトマップ1
20の概念を示した概念図である。アスペクトオブジェ
クト120は、後に説明するコンピュータのCPUが所
定のプログラムに従い、例えばRAM(Random
Access Memory)などのメモリで構成した
ものである。アスペクトオブジェクトマップ120は、
アスペクトオブジェクトとコアオブジェクトをキーとす
る2次元マップとなっており、アスペクトサーバにより
管理される。
20の概念を示した概念図である。アスペクトオブジェ
クト120は、後に説明するコンピュータのCPUが所
定のプログラムに従い、例えばRAM(Random
Access Memory)などのメモリで構成した
ものである。アスペクトオブジェクトマップ120は、
アスペクトオブジェクトとコアオブジェクトをキーとす
る2次元マップとなっており、アスペクトサーバにより
管理される。
【0062】アスペクトオブジェクトマップ120の縦
の欄121はプログラムが利用する文書1、文書2、・
・・、のコアオブジェクトを特定する情報から成り、横
の欄122は、アスペクトオブジェクトの文書型を特定
する情報から構成されている。アスペクトオブジェクト
マップ120でコアオブジェクトと文書型の交差する欄
は、当該コアオブジェクトの当該文書型に係るアスペク
トオブジェクトが生成されるメモリ上のエリアを特定し
ている。なお、より具体的には、アスペクトオブジェク
トは、メモリ上の当該エリアでノードファセット対応マ
ップとして生成される。
の欄121はプログラムが利用する文書1、文書2、・
・・、のコアオブジェクトを特定する情報から成り、横
の欄122は、アスペクトオブジェクトの文書型を特定
する情報から構成されている。アスペクトオブジェクト
マップ120でコアオブジェクトと文書型の交差する欄
は、当該コアオブジェクトの当該文書型に係るアスペク
トオブジェクトが生成されるメモリ上のエリアを特定し
ている。なお、より具体的には、アスペクトオブジェク
トは、メモリ上の当該エリアでノードファセット対応マ
ップとして生成される。
【0063】例えば、あるプログラムが文書2のコアオ
ブジェクトを文書型SVGとして利用する場合、文書2
と文書型SVGの交差する欄で特定されるエリアに文書
2をSVGに特有なインターフェースでアクセスするこ
とのできるアスペクトオブジェクト123(詳細にはノ
ードファセット対応マップ)が生成される。
ブジェクトを文書型SVGとして利用する場合、文書2
と文書型SVGの交差する欄で特定されるエリアに文書
2をSVGに特有なインターフェースでアクセスするこ
とのできるアスペクトオブジェクト123(詳細にはノ
ードファセット対応マップ)が生成される。
【0064】当該プログラムは、直接コアオブジェクト
にアクセスせずにアスペクトオブジェクト123にアク
セスして文書2を利用する。このようにして、プログラ
ムは、所定の文書型に特有なインターフェースを用いて
コアオブジェクトを利用することができるようになる。
にアクセスせずにアスペクトオブジェクト123にアク
セスして文書2を利用する。このようにして、プログラ
ムは、所定の文書型に特有なインターフェースを用いて
コアオブジェクトを利用することができるようになる。
【0065】本実施の形態では、アスペクトオブジェク
ト123はトラバース中に必要となったときにその都度
必要なファセットオブジェクトを生成するように構成し
た。なお、そのためアスペクトオブジェクト123を管
理することが必要であり、この目的のためにアスペクト
オブジェクトサーバは、ノードファセット対応マップを
生成する。また、各文書のコアオブジェクトに対してX
HTML、SVGなど複数の文書型に対応したアスペク
トオブジェクトを作成することが可能である。
ト123はトラバース中に必要となったときにその都度
必要なファセットオブジェクトを生成するように構成し
た。なお、そのためアスペクトオブジェクト123を管
理することが必要であり、この目的のためにアスペクト
オブジェクトサーバは、ノードファセット対応マップを
生成する。また、各文書のコアオブジェクトに対してX
HTML、SVGなど複数の文書型に対応したアスペク
トオブジェクトを作成することが可能である。
【0066】図8は、本実施の形態の情報処理装置24
の構成の一例を示した図である。本実施の形態では、情
報処理装置24をパーソナルコンピュータを用いて構成
した。情報処理装置24は、制御部26に、バスライン
43を介して入力装置34、出力装置38、通信制御装
置42、記憶装置48、記憶媒体駆動装置46、入出力
インターフェース44などが接続して構成されている。
の構成の一例を示した図である。本実施の形態では、情
報処理装置24をパーソナルコンピュータを用いて構成
した。情報処理装置24は、制御部26に、バスライン
43を介して入力装置34、出力装置38、通信制御装
置42、記憶装置48、記憶媒体駆動装置46、入出力
インターフェース44などが接続して構成されている。
【0067】制御部26は、CPU28、ROM(Re
ad Only Memory)30、RAM30など
から構成されている。制御部26は、各種プログラムに
従って動作し、コアオブジェクトの生成、アスペクトオ
ブジェクトの生成、プログラムの実行などの各種情報処
理や情報処理装置24全体を制御したりなどする。
ad Only Memory)30、RAM30など
から構成されている。制御部26は、各種プログラムに
従って動作し、コアオブジェクトの生成、アスペクトオ
ブジェクトの生成、プログラムの実行などの各種情報処
理や情報処理装置24全体を制御したりなどする。
【0068】CPU28は、制御部26の中心的なデバ
イスであって、ROM30や記憶装置48、又は記憶媒
体駆動装置46によって駆動される記憶媒体などからプ
ログラムをロードし、プログラムに従って制御部26を
制御する。
イスであって、ROM30や記憶装置48、又は記憶媒
体駆動装置46によって駆動される記憶媒体などからプ
ログラムをロードし、プログラムに従って制御部26を
制御する。
【0069】ROM30は、CPU28が各種演算や制
御を行うための各種プログラム、データ及びパラメータ
などを格納したリードオンリーメモリである。ROM3
0は、不揮発性のメモリであって、ROM30に供給さ
れる電力がゼロの状態でも記憶内容は保持される。ま
た、ROM30は、読み込み専用のメモリであるため、
通常はデータの書き込みは行われない。
御を行うための各種プログラム、データ及びパラメータ
などを格納したリードオンリーメモリである。ROM3
0は、不揮発性のメモリであって、ROM30に供給さ
れる電力がゼロの状態でも記憶内容は保持される。ま
た、ROM30は、読み込み専用のメモリであるため、
通常はデータの書き込みは行われない。
【0070】RAM32は、CPU28にワーキングメ
モリとして使用されるランダムアクセスメモリである。
CPU28は、RAM32にプログラムやデータなどを
書込んだり消去したりすることができる。本実施の形態
では、RAM32には、コアオブジェクト、アスペクト
オブジェクトマップ、ノードファセット対応マップを生
成するエリアや、プログラムを実行するためのエリアを
確保可能となっている。
モリとして使用されるランダムアクセスメモリである。
CPU28は、RAM32にプログラムやデータなどを
書込んだり消去したりすることができる。本実施の形態
では、RAM32には、コアオブジェクト、アスペクト
オブジェクトマップ、ノードファセット対応マップを生
成するエリアや、プログラムを実行するためのエリアを
確保可能となっている。
【0071】入力装置34は、例えばキーボードやマウ
スなどの入力装置から構成されている。キーボードは、
情報処理装置24に対して文字や数字などの情報を入力
するための装置である。キーボードは、カナや英文字な
どを入力するためのキーや数字を入力するためのテンキ
ー、各種機能キー、カーソルキー及びその他のキーによ
って構成されている。キーボートは、例えばユーザが情
報処理装置24にログインするためのログインIDやパ
スワードを入力したり、あるいはプログラムを操作した
りする際に使用する。
スなどの入力装置から構成されている。キーボードは、
情報処理装置24に対して文字や数字などの情報を入力
するための装置である。キーボードは、カナや英文字な
どを入力するためのキーや数字を入力するためのテンキ
ー、各種機能キー、カーソルキー及びその他のキーによ
って構成されている。キーボートは、例えばユーザが情
報処理装置24にログインするためのログインIDやパ
スワードを入力したり、あるいはプログラムを操作した
りする際に使用する。
【0072】マウスは、ポインティングデバイスであ
る。GUI(Graphical User Inte
rface)などを用いて情報処理装置24を操作する
場合、表示装置上に表示されたボタンやアイコンなどを
マウスでクリックすることにより、所定の情報の入力を
行うことができる。
る。GUI(Graphical User Inte
rface)などを用いて情報処理装置24を操作する
場合、表示装置上に表示されたボタンやアイコンなどを
マウスでクリックすることにより、所定の情報の入力を
行うことができる。
【0073】出力装置38は、例えば表示装置、印刷装
置などのから構成されている。表示装置は、例えば例え
ばCRT(Cathode Ray Tube)ディス
プレイ、液晶ディスプレイ、プラズマディスプレイなど
で構成された情報を画面上に提示するための装置であ
る。表示装置は、キーボードやマウスの入力結果や、プ
ログラムが表示する画面などを表示することができる。
置などのから構成されている。表示装置は、例えば例え
ばCRT(Cathode Ray Tube)ディス
プレイ、液晶ディスプレイ、プラズマディスプレイなど
で構成された情報を画面上に提示するための装置であ
る。表示装置は、キーボードやマウスの入力結果や、プ
ログラムが表示する画面などを表示することができる。
【0074】印刷装置は、プログラムの実行結果などを
紙などの印刷媒体に印刷する装置である。例えばプログ
ラムがエディタの場合は、編集した文章を印刷すること
ができ、また、プログラムがデータベースの場合は、デ
ータを印刷することができる。印刷装置は、例えば、イ
ンクジェットプリンタ、レーザプリンタ、熱転写プリン
タ、ドットプリンタなどの各種プリンタ装置によって構
成されている。
紙などの印刷媒体に印刷する装置である。例えばプログ
ラムがエディタの場合は、編集した文章を印刷すること
ができ、また、プログラムがデータベースの場合は、デ
ータを印刷することができる。印刷装置は、例えば、イ
ンクジェットプリンタ、レーザプリンタ、熱転写プリン
タ、ドットプリンタなどの各種プリンタ装置によって構
成されている。
【0075】通信制御装置42は、専用回線10を介し
て情報処理装置24を端末装置9に接続するための装置
であって、モデム、ターミナルアダプタその他の装置に
よって構成されている。通信制御装置42は、例えばイ
ンターネットやLAN(Local AreaNetw
ork)などに接続しており、これらのネットワークに
接続したサーバ装置などに対してデータの送受信を行う
ことができる。通信制御装置42はCPU28によって
制御され、所定のプロトコルに従って送受信を行う。
て情報処理装置24を端末装置9に接続するための装置
であって、モデム、ターミナルアダプタその他の装置に
よって構成されている。通信制御装置42は、例えばイ
ンターネットやLAN(Local AreaNetw
ork)などに接続しており、これらのネットワークに
接続したサーバ装置などに対してデータの送受信を行う
ことができる。通信制御装置42はCPU28によって
制御され、所定のプロトコルに従って送受信を行う。
【0076】記憶装置48は、読み書き可能な記憶媒体
と、その記憶媒体に対してプログラムやデータを読み書
きするための駆動装置によって構成されている。当該記
憶媒体として主にハードディスクが使用されるが、その
他に、例えば、光磁気ディスク、磁気ディスク、半導体
メモリなどの他の読み書き可能な記憶媒体によって構成
することも可能である。
と、その記憶媒体に対してプログラムやデータを読み書
きするための駆動装置によって構成されている。当該記
憶媒体として主にハードディスクが使用されるが、その
他に、例えば、光磁気ディスク、磁気ディスク、半導体
メモリなどの他の読み書き可能な記憶媒体によって構成
することも可能である。
【0077】記憶装置48は、アスペクトサーバプログ
ラム50、コアオブジェクト生成プログラム51、プロ
グラム52、プログラム53、・・・、その他のプログ
ラム55、文書58、文書59、・・・、やその他のデ
ータなどが記憶されている。
ラム50、コアオブジェクト生成プログラム51、プロ
グラム52、プログラム53、・・・、その他のプログ
ラム55、文書58、文書59、・・・、やその他のデ
ータなどが記憶されている。
【0078】アスペクトサーバプログラム50は、アス
ペクトオブジェクトとコアオブジェクトを関連づけ、プ
ログラムが所定の文書型に特有のインターフェースにて
コアオブジェクトを利用可能にするためのプログラムで
ある。アスペクトサーバプログラム50に従ってCPU
28は、RAM32にアスペクトオブジェクトマップ1
20を生成する。更に、CPU28がプログラムに従っ
てコアオブジェクトにアクセスする際に、CPU28
は、アスペクトサーバプログラム50に従って文書ごと
及び文書型ごとにアスペクトオブジェクト(ノードアス
ペクト対応マップ)を生成させたりなどする。
ペクトオブジェクトとコアオブジェクトを関連づけ、プ
ログラムが所定の文書型に特有のインターフェースにて
コアオブジェクトを利用可能にするためのプログラムで
ある。アスペクトサーバプログラム50に従ってCPU
28は、RAM32にアスペクトオブジェクトマップ1
20を生成する。更に、CPU28がプログラムに従っ
てコアオブジェクトにアクセスする際に、CPU28
は、アスペクトサーバプログラム50に従って文書ごと
及び文書型ごとにアスペクトオブジェクト(ノードアス
ペクト対応マップ)を生成させたりなどする。
【0079】なお、アスペクトプログラム50は、ノー
ドオブジェクトに対応するファセットオブジェクトを文
書型ごとにデータベースとして持っており、CPU28
は、ここから所定のノードオブジェクトに対応する所定
の文書型のファセットオブジェクトを取得できるように
なっている。
ドオブジェクトに対応するファセットオブジェクトを文
書型ごとにデータベースとして持っており、CPU28
は、ここから所定のノードオブジェクトに対応する所定
の文書型のファセットオブジェクトを取得できるように
なっている。
【0080】コアオブジェクト生成プログラム51は、
プログラムが使用する文書のコアオブジェクトを生成す
るためのプログラムである。コアオブジェクト生成プロ
グラム51に従ってCPU28は、対象となっている文
書ファイルを読み込み、これをRAM32の所定のエリ
アにコアオブジェクトとして展開する。プログラム5
2、53、・・・、は、コアオブジェクトを利用する各
種プログラムである。
プログラムが使用する文書のコアオブジェクトを生成す
るためのプログラムである。コアオブジェクト生成プロ
グラム51に従ってCPU28は、対象となっている文
書ファイルを読み込み、これをRAM32の所定のエリ
アにコアオブジェクトとして展開する。プログラム5
2、53、・・・、は、コアオブジェクトを利用する各
種プログラムである。
【0081】その他のプログラム55は、例えば、ブラ
ウザ、通信制御装置42を制御し、情報処理装置24と
ネットワークでつながれたサーバ装置などとの通信を行
う通信プログラム、メモリ管理や入出力管理などの情報
処理装置24を動作させるための基本ソフトウェアであ
るOS(Operating System)などで構
成されている。
ウザ、通信制御装置42を制御し、情報処理装置24と
ネットワークでつながれたサーバ装置などとの通信を行
う通信プログラム、メモリ管理や入出力管理などの情報
処理装置24を動作させるための基本ソフトウェアであ
るOS(Operating System)などで構
成されている。
【0082】記憶媒体駆動装置46は、着脱可能な記憶
媒体を駆動してデータの読み書きを行うための駆動装置
である。着脱可能な記憶媒体としては、例えば、光磁気
ディスク、磁気ディスク、磁気テープ、半導体メモリ、
データをパンチした紙テープ、CD−ROMなどがあ
る。なお、CD−ROMや紙テープは、読み込みのみ可
能である。
媒体を駆動してデータの読み書きを行うための駆動装置
である。着脱可能な記憶媒体としては、例えば、光磁気
ディスク、磁気ディスク、磁気テープ、半導体メモリ、
データをパンチした紙テープ、CD−ROMなどがあ
る。なお、CD−ROMや紙テープは、読み込みのみ可
能である。
【0083】入出力インターフェース44は、例えば、
シリアルインターフェースやその他の規格のインターフ
ェースにより構成されている。入出力インターフェース
44に当該インターフェースに対応した外部機器を接続
することにより、情報処理装置24の機能を拡張するこ
とができる。このような外部機器として例えば、ハード
ディスクなどの記憶装置、スピーカ、マイクロフォンな
どがある。
シリアルインターフェースやその他の規格のインターフ
ェースにより構成されている。入出力インターフェース
44に当該インターフェースに対応した外部機器を接続
することにより、情報処理装置24の機能を拡張するこ
とができる。このような外部機器として例えば、ハード
ディスクなどの記憶装置、スピーカ、マイクロフォンな
どがある。
【0084】図9は、CPU28がファセットオブジェ
クトを取得する手順を示したフローチャートである。こ
こでは、CPU28は、ノードオブジェクトBにアクセ
スし、その親ノードオブジェクトAから値を取得する場
合を例にとる。この場合、ノードオブジェクトBに対し
てファセットオブジェクトB’が生成され、ノードオブ
ジェクトAに対してファセットオブジェクトA’が生成
されこととなる。
クトを取得する手順を示したフローチャートである。こ
こでは、CPU28は、ノードオブジェクトBにアクセ
スし、その親ノードオブジェクトAから値を取得する場
合を例にとる。この場合、ノードオブジェクトBに対し
てファセットオブジェクトB’が生成され、ノードオブ
ジェクトAに対してファセットオブジェクトA’が生成
されこととなる。
【0085】まず、CPU28は、プログラム52、5
3、・・・、のうちの何れかをロードし実行する(ステ
ップ10)。次に、CPU28は、コアオブジェクト生
成プログラム51に従って、プログラムが利用する文書
ファイルを読み込みコアオブジェクトを生成する(ステ
ップ15)。
3、・・・、のうちの何れかをロードし実行する(ステ
ップ10)。次に、CPU28は、コアオブジェクト生
成プログラム51に従って、プログラムが利用する文書
ファイルを読み込みコアオブジェクトを生成する(ステ
ップ15)。
【0086】次に、CPU28は、アスペクトサーバプ
ログラム50をロードして実行し、アスペクトサーバを
生成する(ステップ20)。ユーザはプログラムの操作
により、コアオブジェクトのノードオブジェクトBにア
クセスを試みる。即ち、特定の文書型に固有のインター
フェース又はコアインターフェースによって、コアオブ
ジェクトにアクセスする。これによって、CPU28は
ノードオブジェクトBを特定する情報を取得する(ステ
ップ25)。なお、ユーザはプログラムで所定のパラメ
ータを特定するなどしてどの文書型によってコアオブジ
ェクトにアクセスするかを決めてある。この文書型を特
定する情報はCPU28によって取得される。
ログラム50をロードして実行し、アスペクトサーバを
生成する(ステップ20)。ユーザはプログラムの操作
により、コアオブジェクトのノードオブジェクトBにア
クセスを試みる。即ち、特定の文書型に固有のインター
フェース又はコアインターフェースによって、コアオブ
ジェクトにアクセスする。これによって、CPU28は
ノードオブジェクトBを特定する情報を取得する(ステ
ップ25)。なお、ユーザはプログラムで所定のパラメ
ータを特定するなどしてどの文書型によってコアオブジ
ェクトにアクセスするかを決めてある。この文書型を特
定する情報はCPU28によって取得される。
【0087】次に、CPU28は、ノードオブジェクト
を特定する情報Bと、文書型(アスペクトタイプ)を特
定する情報からファセットオブジェクトB’を取得する
(ステップ30)。次に、CPU28は、ノードファセ
ット対応マップを生成し、ノードBとファセットB’を
対応付ける(ステップ35)。
を特定する情報Bと、文書型(アスペクトタイプ)を特
定する情報からファセットオブジェクトB’を取得する
(ステップ30)。次に、CPU28は、ノードファセ
ット対応マップを生成し、ノードBとファセットB’を
対応付ける(ステップ35)。
【0088】次に、CPU28は、ノードオブジェクト
Bから親ノードオブジェクトAを特定する情報を取得す
る(ステップ40)。次に、CPU28は、ノードオブ
ジェクトAに対応するファセットオブジェクトA’を取
得し(ステップ45)、ステップ35で生成したノード
ファセット対応マップ上でノードオブジェクトAとファ
セットオブジェクトA’を関連づける(ステップ5
0)。
Bから親ノードオブジェクトAを特定する情報を取得す
る(ステップ40)。次に、CPU28は、ノードオブ
ジェクトAに対応するファセットオブジェクトA’を取
得し(ステップ45)、ステップ35で生成したノード
ファセット対応マップ上でノードオブジェクトAとファ
セットオブジェクトA’を関連づける(ステップ5
0)。
【0089】このように、ノードオブジェクトAとファ
セットオブジェクトB’との対と及び、ノードオブジェ
クトBとファセットオブジェクトB’との対がノードフ
ァセット対応マップ上で生成されることにより、アスペ
クトオブジェクトが生成される。次に、CPU28は、
ファセットA’から出力である値を取得する(ステップ
55)。
セットオブジェクトB’との対と及び、ノードオブジェ
クトBとファセットオブジェクトB’との対がノードフ
ァセット対応マップ上で生成されることにより、アスペ
クトオブジェクトが生成される。次に、CPU28は、
ファセットA’から出力である値を取得する(ステップ
55)。
【0090】本実施の形態では、アスペクトオブジェク
トがトラバース中に必要となったときに必要なファセッ
トオブジェクトを用いて生成されように構成したが、こ
れに限定するものではなく、例えば、予め全てのノード
オブジェクトに対応するファセットオブジェクトを用い
てアスペクトオブジェクト生成しておき、これを全ての
セッションで使用するように構成することもできる。ま
た、ファセットオブジェクトを使用後に消去するように
構成することもできる。
トがトラバース中に必要となったときに必要なファセッ
トオブジェクトを用いて生成されように構成したが、こ
れに限定するものではなく、例えば、予め全てのノード
オブジェクトに対応するファセットオブジェクトを用い
てアスペクトオブジェクト生成しておき、これを全ての
セッションで使用するように構成することもできる。ま
た、ファセットオブジェクトを使用後に消去するように
構成することもできる。
【0091】本実施の形態では、アスペクトタイプとし
て単純な文字列識別子(AspectSVGなど)やU
RI(Uniform Resource Ident
ifier)を用いることができる。
て単純な文字列識別子(AspectSVGなど)やU
RI(Uniform Resource Ident
ifier)を用いることができる。
【0092】以上に述べた本実施の形態では以下のよう
な効果を得ることができる。ファセットプラグインは、
ノードが渡されるとファセットオブジェクトを返すよう
なメソッドを提供するだけでよい。コアオブジェクトの
コアインターフェースでは、単一のノードオブジェクト
からコアオブジェクト全体にアクセスできるような構造
を持つため、それ以上に複雑なメソッドは必要としな
い。
な効果を得ることができる。ファセットプラグインは、
ノードが渡されるとファセットオブジェクトを返すよう
なメソッドを提供するだけでよい。コアオブジェクトの
コアインターフェースでは、単一のノードオブジェクト
からコアオブジェクト全体にアクセスできるような構造
を持つため、それ以上に複雑なメソッドは必要としな
い。
【0093】コアオブジェクトに対して、文書型(HT
ML、SVGなど)特有のインターフェースを関連付け
ることで、様々な文書型の利用が可能になる。コンパイ
ル済みのプログラムに対して動的に書く文書型に依存し
たインターフェースを提供することができる。クラスの
継承ではなくオブジェクトコンポジションを利用してフ
ァセットを追加することができる。
ML、SVGなど)特有のインターフェースを関連付け
ることで、様々な文書型の利用が可能になる。コンパイ
ル済みのプログラムに対して動的に書く文書型に依存し
たインターフェースを提供することができる。クラスの
継承ではなくオブジェクトコンポジションを利用してフ
ァセットを追加することができる。
【0094】ノードファセット対応マップを作成するこ
とにより、ノードオブジェクトから当該ノードオブジェ
クトに対応するファセットオブジェクトを取得すること
ができる。ファセットオブジェクトを用いることによ
り、所定の文書型に特有の高水準なファセットインター
フェースを使用することができる一方、低水準なコアイ
ンターフェースを用いることもできる。
とにより、ノードオブジェクトから当該ノードオブジェ
クトに対応するファセットオブジェクトを取得すること
ができる。ファセットオブジェクトを用いることによ
り、所定の文書型に特有の高水準なファセットインター
フェースを使用することができる一方、低水準なコアイ
ンターフェースを用いることもできる。
【0095】高水準なインターフェースであるファセッ
トインターフェースを用いてプログラムなどを開発する
ことによりコード量を減らすことができる。そのため、
バグの発見などプログラムのメンテナンスが楽になる。
トインターフェースを用いてプログラムなどを開発する
ことによりコード量を減らすことができる。そのため、
バグの発見などプログラムのメンテナンスが楽になる。
【0096】なお、コアオブジェクトの仕様は実装する
言語を規定していないため、アスペクトオブジェクトを
実装する言語は、オブジェクト指向言語であれば何でも
可能である。
言語を規定していないため、アスペクトオブジェクトを
実装する言語は、オブジェクト指向言語であれば何でも
可能である。
【0097】
【発明の効果】本発明によれば、オブジェクトに対し、
インターフェースを擬似的に追加することができる。
インターフェースを擬似的に追加することができる。
【図1】DOMの概念を説明するための模式図である。
【図2】コアオブジェクトを各種プログラムで利用する
場合を模式的に表した図である。
場合を模式的に表した図である。
【図3】ファセットオブジェクトを説明するための模式
図である。
図である。
【図4】CPUがプログラムに従って、ファセットを介
してノードオブジェクトにアクセスするところを模式的
に示した図である。
してノードオブジェクトにアクセスするところを模式的
に示した図である。
【図5】ノードファセット対応マップの一例を示した図
である。
である。
【図6】DOM利用プログラム、コアオブジェクト及び
アスペクトオブジェクトの相関の一例を示した図であ
る。
アスペクトオブジェクトの相関の一例を示した図であ
る。
【図7】アスペクトオブジェクトマップの概念を示した
概念図である。
概念図である。
【図8】本実施の形態の情報処理装置24の構成の一例
を示した図である。
を示した図である。
【図9】CPUがファセットオブジェクトを取得する手
順を示したフローチャートである。
順を示したフローチャートである。
4 文書
6 人物タグ
7 名前タグ
8 年齢タグ
9 所属タグ
14 ルートオブジェクト
15 オブジェクト
16 オブジェクト
17 オブジェクト
18 オブジェクト
24 情報処理装置
26 制御部
28 CPU
30 ROM
32 RAM
34 入力装置
38 出力装置
42 通信制御装置
44 入出力インターフェース
46 記憶媒体駆動装置
48 記憶装置
50 アスペクトサーバプログラム
52 プログラム
53 プログラム
55 その他のプログラム
58 文書
59 文書
60 ノードオブジェクト
62 ファセットオブジェクト
64 プログラム
60 ノードオブジェクト
66 ファセットオブジェクト
68 プログラム
71 コアオブジェクト
74 ノードオブジェクト
75 ファセットオブジェクト
76 ノードオブジェクト
77 ファセットオブジェクト
90 プログラム
91 ノードファセット対応マップ
101 プログラム
102 コアインターフェース
103 コアオブジェクト
105 プログラム
106 コアインターフェース
107 XHTMLアスペクトインターフェース
108 XHTMLアスペクトオブジェクト
111 コアインターフェース
112 SVGアスペクトインターフェース
120 アスペクトオブジェクトマップ
Claims (5)
- 【請求項1】 第1のインターフェースを持つノードオ
ブジェクトがツリー状の階層構造に構成された第1のオ
ブジェクトに対し、 前記第1のインターフェースを持ち、かつ所定の文書型
に依存した第2のインターフェースを持つ第2のオブジ
ェクトと、 前記第2のオブジェクトを前記ノードオブジェクトに対
応付ける対応付け手段と、 を具備したことを特徴とする情報処理装置。 - 【請求項2】 前記第1のインターフェースはコアイン
ターフェースであり、前記第1のオブジェクトはコアオ
ブジェクトであることを特徴とする請求項1に記載の情
報処理装置。 - 【請求項3】 前記対応付け手段は、前記ノードオブジ
ェクトと当該ノードオブジェクトに対応する前記第2の
オブジェクトを対応付ける対応マップにて前記ノードオ
ブジェクトと前記第2のオブジェクトを対応付けること
を特徴とする請求項1または請求項2に記載の情報処理
装置。 - 【請求項4】 前記ノードオブジェクトが前記所定の文
書型に係るノードオブジェクトでない場合には、前記第
2のオブジェクトは前記コアインターフェースを提供す
ることを特徴とする請求項2、又は請求項3に記載の情
報処理装置。 - 【請求項5】 第1のインターフェースを持つノードオ
ブジェクトがツリー状の階層構造に構成された第1のオ
ブジェクトに対し、 前記第1のインターフェースを持ち、かつ所定の文書型
に依存した第2のインターフェースを持つ第2のオブジ
ェクトを取得するオブジェクト取得機能と、 前記取得した前記第2のオブジェクトを前記ノードオブ
ジェクトに対応付ける対応付け機能と、 をコンピュータで実現するための情報処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001284289A JP2003091419A (ja) | 2001-09-19 | 2001-09-19 | 情報処理装置、及び情報処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001284289A JP2003091419A (ja) | 2001-09-19 | 2001-09-19 | 情報処理装置、及び情報処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003091419A true JP2003091419A (ja) | 2003-03-28 |
Family
ID=19107638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001284289A Pending JP2003091419A (ja) | 2001-09-19 | 2001-09-19 | 情報処理装置、及び情報処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003091419A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7496568B2 (en) | 2006-11-30 | 2009-02-24 | International Business Machines Corporation | Efficient multifaceted search in information retrieval systems |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000222212A (ja) * | 1998-05-20 | 2000-08-11 | Sun Microsyst Inc | 実行時におけるオブジェクトの実クラス決定 |
WO2002101579A1 (en) * | 2001-06-07 | 2002-12-19 | International Business Machines Corporation | System & method of mapping between software objects & structured language element-based documents |
JP2003085166A (ja) * | 2001-04-27 | 2003-03-20 | Koninkl Philips Electronics Nv | Html又はxml型文書用のインタフェースと接続するためのアプリケーション用の内部データ構造 |
-
2001
- 2001-09-19 JP JP2001284289A patent/JP2003091419A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000222212A (ja) * | 1998-05-20 | 2000-08-11 | Sun Microsyst Inc | 実行時におけるオブジェクトの実クラス決定 |
JP2003085166A (ja) * | 2001-04-27 | 2003-03-20 | Koninkl Philips Electronics Nv | Html又はxml型文書用のインタフェースと接続するためのアプリケーション用の内部データ構造 |
WO2002101579A1 (en) * | 2001-06-07 | 2002-12-19 | International Business Machines Corporation | System & method of mapping between software objects & structured language element-based documents |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7496568B2 (en) | 2006-11-30 | 2009-02-24 | International Business Machines Corporation | Efficient multifaceted search in information retrieval systems |
US8032532B2 (en) | 2006-11-30 | 2011-10-04 | International Business Machines Corporation | Efficient multifaceted search in information retrieval systems |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6009436A (en) | Method and apparatus for mapping structured information to different structured information | |
US7797627B2 (en) | Method and apparatus for providing a graphical user interface for creating and editing a mapping of a first structural description to a second structural description | |
RU2365978C2 (ru) | Интерфейс программирования для компьютерной платформы | |
US9159040B2 (en) | Accessing a ERP application over the internet using strongly typed declarative language files | |
US7191394B1 (en) | Authoring arbitrary XML documents using DHTML and XSLT | |
US20030014442A1 (en) | Web site application development method using object model for managing web-based content | |
US20020143774A1 (en) | Dynamic, hierarchical data exchange system | |
US20070245232A1 (en) | Apparatus for Processing Documents That Use a Mark Up Language | |
JP2008508643A (ja) | マークアップ言語で記述された文書内にタグまたは属性を作成するための文書処理及び文書管理の手段と方法 | |
JP2008512794A (ja) | オブジェクト処理グラフアプリケーション開発システム | |
US20080134019A1 (en) | Processing Data And Documents That Use A Markup Language | |
US9817811B2 (en) | Web server system, dictionary system, dictionary call method, screen control display method, and demonstration application generation method | |
US20080209572A1 (en) | Data Processing System, Data Processing Method, and Management Server | |
WO2006051713A1 (ja) | 文書処理装置及び文書処理方法 | |
WO2006051960A1 (ja) | 文書処理装置及び文書処理方法 | |
WO2006051959A1 (ja) | 文書処理装置及び文書処理方法 | |
WO2006051716A1 (ja) | 文書処理装置及び文書処理方法 | |
US20070094289A1 (en) | Dynamic, hierarchical data exchange system | |
WO2006051966A1 (ja) | 文書管理装置及び文書管理方法 | |
WO2006051721A1 (ja) | 文書処理装置及び文書処理方法 | |
JP2003091419A (ja) | 情報処理装置、及び情報処理プログラム | |
JPH064280A (ja) | ウィズィウィグ式エディターでオブジェクトをユーザ制御する機能を備えたグラフィカル・ユーザ・インターフェース | |
EP0926607A2 (en) | Object-oriented system for mapping structered information to different structured information | |
Badros | Extending interactive graphical applications with constraints | |
JPH0683594A (ja) | ウィズィウィグ式エディターとコンパイラーとを統合したグラフィカル・ユーザ・インターフェース |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080618 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110411 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110415 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110805 |