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
Application number
JP2001284289A
Other languages
English (en)
Inventor
Nobuaki Wake
伸明 和家
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JustSystems Corp
Original Assignee
JustSystems Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by JustSystems Corp filed Critical JustSystems Corp
Priority to JP2001284289A priority Critical patent/JP2003091419A/ja
Publication of JP2003091419A publication Critical patent/JP2003091419A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 オブジェクトに対し、ユーザが選択した特定
の文書型に特有のインターフェースを用いてアクセスす
ることができるようにすること。 【解決手段】 コアインターフェースと特定の文書型に
特有のインターフェースであるファセットインターフェ
ースを持ったファセットオブジェクトを、コアオブジェ
クトを構成するノードオブジェクトに関連付ける。これ
はファセットオブジェクトとノードオブジェクトとの対
応を関係付けるノードファセット対応マップによって行
う。コアインターフェースをファセットインターフェー
スにキャストすることによって、特定の文書型に特有の
インターフェースを用いてコアオブジェクトにアクセス
することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報処理装置、及
び情報処理プログラムに関し、例えば、オブジェクトに
対しインターフェースを擬似的に追加するものに関す
る。
【0002】
【従来の技術】近年XML(Extensible M
arkup Language)ファイルを用いたホー
ムページ作成などが一般的に行われるようになってき
た。XMLファイルをパーサと呼ばれる読み込みプログ
ラムを用いてコンピュータのメモリに展開すると、階層
的なツリー構造を持つオブジェクトのモデル、即ちDO
M(Document Object Model)が
得られる。このツリー状のオブジェクトでは、ノードオ
ブジェクトがツリー構造に構成されている。ノードオブ
ジェクトにおけるインターフェースはオブジェクトのコ
ンパイル時に決まってしまう。また、DOMに限らず一
般的なオブジェクト指向言語では、オブジェクトにおけ
るインターフェースはオブジェクト生成のコンパイル時
に決まってしまう。
【0003】
【発明が解決しようとする課題】しかし、オブジェクト
におけるインターフェースは、コンパイル時に決まって
しまうため、後からコンパイル後のインターフェースと
異なる他の種類のインターフェースを用いたい場合に、
それらインターフェースを用いるのは困難であった。そ
のため、例えば、オブジェクトのツリー構造に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の情報処理装置を提供することもできる。
【0006】
【発明の実施の形態】以下、本発明の好適な実施の形態
について、図1ないし図9を参照して詳細に説明する。
まず以下に、DOMの概念について説明する。図1
(a)は、名簿を例とし、DOMを生成するための元と
なる文書4の一例を示したものである。DOMの元とな
るデータは所定の文法に従ってテキストファイルなどに
より作成される。なお、文書4は、一例としてXMLの
文法に従って作成されているものとする。
【0007】文書4は、名簿タグ6という最上位の項目
(ルート)があり、その下に人物タグ6という項目が設
けられている。そして、人物タグ6の下には更に名前タ
グ7、年齢タグ8、所属タグ9などの項目が設けられて
いる。名前タグ7、年齢タグ8、所属タグ9の各項目に
は、当該人物の名前、年齢、所属が記入されている。な
お、XMLでは、開始タグ(<名前>など)から終了タ
グ(</名前>)までを要素と呼び、開始タグや終了タ
グのタグ名を要素名と呼び、開始タグと終了タグで挟ま
れた部分を要素の内容という。
【0008】図1(b)は、後に説明するコンピュータ
などのメモリに生成されたDOM12を模式的に示した
図である。DOM12は、後に説明するCPU(Cen
tral Processing Unit)が文書4
を読み込み、記載されているデータを所定のプログラム
を用いてメモリに展開することにより生成される。DO
M12は、XMLで要素に該当する部分をノード(節)
とした、ツリー構造に階層化されたオブジェクトのモデ
ルである。
【0009】ツリー構造状のオブジェクト(以下DOM
オブジェクト)は、名簿というルートオブジェクト14
の下に人物というオブジェクト15が生成されており、
更にオブジェクト15の下には、名前7、年齢8、所属
9に対応するオブジェクト16、17、18が生成され
ている。これらのツリー構造の節を成すオブジェクトは
ノードオブジェクトと呼ばれる。
【0010】更に、詳しく述べるとDOMは、DOM対
応のアプリケーションソフトやその他のプログラムなど
からDOMの各要素にアクセスするためのインターフェ
ースから構成されている。そしてDOMオブジェクトの
うち、特定の文書型に特有のインターフェースを持たな
い部分をコアオブジェクトという。なお、以降アプリケ
ーションソフトがDOMオブジェクトの各要素にアクセ
スするなどと、表現するがこれは、後に説明するコンピ
ュータのCPUがアプリケーションソフトに従ってDO
Mオブジェクトの各要素にアクセスすることを意味する
ものとする。
【0011】文書型特有のインターフェースを持たない
DOMオブジェクトはコアオブジェクトと呼ばれる。コ
アオブジェクトは全ての文書型に共通の基本的にコアイ
ンターフェースを持つ。コアインターフェースを用いて
タグやアトリビュートの取得、追加、削除、トラバース
などを行うことができる。コアオブジェクトは、複数の
ノードオブジェクトと呼ばれる単位が組み合わされたツ
リー構造を持つ。
【0012】ノードオブジェクトには、要素タイプ、コ
メントタイプ、属性タイプなどのいくつかのノードタイ
プがある。そして、ノードオブジェクトは全てのノード
タイプに共通なノードインターフェースを持ち、また、
ノードタイプごとに定義されたインターフェースも持
つ。なお、コアインターフェースはノードインターフェ
ースや要素インターフェースなどを含んだ概念である。
【0013】このようにノードオブジェクトには、コア
インターフェースなどを用いてアクセスすることができ
る。コアオブジェクトは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、・・・、から利用することができる。
【0016】ところで、XML Namespace規
約に従って、例えばXHTML文書の中にSVG文書型
に含まれる要素やXLink文書型に含まれる要素な
ど、異種の文書型の要素を混在させることができる。こ
のように異種の文書型の要素から構成された文書から生
成されるコアオブジェクトは、異種の文書型が混在した
ものとなる。
【0017】ところが、コアオブジェクトは、動的にイ
ンターフェースを追加する機能は持っていない。そのた
め、例えば、コンパイル時に決まったコアオブジェクト
のインターフェースがHTMLに特有のものであったと
すると、SVGの文書型のノードに対してはSVGに特
有のインターフェースを用いた高水準なアクセスするこ
とはできず、コアインターフェースによる低水準なアク
セスしかできない。
【0018】このように、DOM利用プログラムでコア
オブジェクトにアクセスする場合、コンパイル後にユー
ザが希望の文書型に特有なインターフェースを自由にコ
アオブジェクトに追加することはできない。
【0019】本実施の形態では、デザインパターンにお
けるデコレータパターンに近い手法を用いて、コアイン
ターフェースと所定の文書型のインターフェースを有す
るオブジェクトを動的にコアインターフェースに対応付
けることにより、コアオブジェクトを構成する要素の文
書型によらずに高水準な操作を可能とするものである。
【0020】図3は、コアインターフェースに所定の文
書型のインターフェースを関連付けるオブジェクトを説
明するための模式図である。なお、このようにコアイン
ターフェースと所定の文書型のインターフェースを関連
付けるオブジェクトをファセットオブジェクトと呼ぶこ
とにする。ファセットオブジェクトは、ノードオブジェ
クトごとに対応付けられている。
【0021】図3(a)で、ノードオブジェクト60
は、あるコアオブジェクトを構成するノードオブジェク
トであって、コアインターフェースを持っている。一
方、プログラム64は、ノードオブジェクト60を文書
型Aに特有のインターフェースを使用するものとする。
【0022】今、コアインターフェースを持ち、文書型
Aに対応したインターフェースを持つファセットオブジ
ェクト62を用意し、これをノードオブジェクト60に
関連付けて、プログラム63がファセットオブジェクト
62を用いてノードオブジェクト60にアクセスするも
のとする。
【0023】ここで、ファセットオブジェクト62は以
下の性質を持つものとする。ファセットオブジェクト6
2は、ノードオブジェクト60を参照するものとする。
また、ファセットオブジェクト62はコンテンツ(文書
内容)を一切持たないものとする。更に、ファセットオ
ブジェクト62はコアインターフェースと同じインター
フェースを持ち、ノードオブジェクトと全く同じように
振舞う。つまり、ファセットオブジェクトの行う処理
は、コアインターフェースについては全てコアオブジェ
クトに移譲する。
【0024】加えて、ファセットオブジェクト62は文
書型Aで定義された高水準インターフェース(以下アス
ペクトインターフェースと呼ぶことにする)を持ち、プ
ログラム64は、このアスペクトインターフェースを使
用することができる。そして、ユーザは、ファセットオ
ブジェクト66を取得し、それをアスペクトインターフ
ェースにキャストすることにより利用する。
【0025】以上のようなファセットオブジェクト62
を介してプログラム64がノードオブジェクト60にア
クセスすると、プログラム64に対してファセットオブ
ジェクト62は、あたかもノードオブジェクト60であ
るかのように機能する。
【0026】SVGを例に用いて更に詳細に述べる。フ
ァセットオブジェクト62は、あるノードオブジェクト
を対応するファセットオブジェクトに変換するメソッド
を備えている。即ち、このメソッドはプログラム64が
ノードオブジェクトを渡すと対応するファセットオブジ
ェクトを返す。なお、このメソッドはファセットオブジ
ェクトとは別に用意しても良い。
【0027】そして、対象となるノードオブジェクトが
SVGであった場合は、コアインターフェースからファ
セットインターフェースにキャストし、SVGに特有の
インターフェースを使用することができる。ここで、メ
ソッドとは、オブジェクトの実行する手続を記述したプ
ログラムであり、キャストとは、インターフェースの型
を変換することである。
【0028】例えば、SVGで中心の座標(100、2
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”が取得できる。
【0030】コアインターフェースは、要素と属性を表
す文字列があることしか認識できないため、ユーザはc
ircleが円を表し、半径を表す文字がrでることを
知らなければならない。また、返値50は文字列なの
で、これを数値に変換する必要もある。
【0031】ところで、circle要素に対して以下
のような半径rの数値を返すアスペクトインターフェー
スを作ることが可能である。 circle.getR() このインターフェースは、半径はrの後にある文字列を
数値に変換して返す。ユーザは、半径を表す文字がrで
あることを知る必要がない。また返値50を数値に変換
する必要がない。
【0032】このように、アスペクトインターフェース
はデータを持たずにデータの処理の仕方を規定する。こ
のように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といったような高水準な操作を行うことが
できるようになる。このように、コンパイル済みのオブ
ジェクトに対し、擬似的にインターフェースを追加する
ことができる。
【0034】このように、本実施の形態では、クラスの
継承ではなく、オブジェクトコンポジションを利用して
アスペクトを追加する。このノードオブジェクトとファ
セットオブジェクトの関係は、デコレータパターンと同
様である。デコレータパターンは、デザインパターンの
1つであり、個個のオブジェクトに責任を動的かつ透明
(他のオブジェクトに影響を与えないこと)に追加する
ことができるものである。
【0035】図3(b)は、コアインターフェースと文
書型Bに特有なインターフェースを持ったファセットオ
ブジェクト66を介することにより、プログラム68が
文書型Bに特有なインターフェースを使ってコアオブジ
ェクト66にアクセスしているところを表した模式図で
ある。
【0036】ファセットオブジェクト60は、ノードオ
ブジェクト60と全く同様に振る舞い、そのためプログ
ラム68からは、あたかも文書型Bの要素で構成された
ノードオブジェクト60を扱っているように見える。即
ち、DOMの利用者は、コアオブジェクトとかアスペク
トオブジェクトとかいうことを気にする必要が無い。
【0037】このようなファセットオブジェクトをコア
オブジェクトの各ノードオブジェクトに対応付けると、
ファセットオブジェクトからなるツリー構造が得られ
る。これをコアオブジェクトに対し、アスペクトオブジ
ェクトと呼ぶことにする。このように、文書型ごとにコ
アオブジェクトとは別にアスペクトオブジェクトを作成
し、これをコアオブジェクトに動的に関連付けることに
より、コアオブジェクトの要素の文書型の違いを吸収す
ることができる。アスペクトオブジェクトは、文書型ご
とに作成されるため、必要に応じて文書型の数だけ作成
される。即ち、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がメモリに展
開された後に関連付けられたものである。
【0039】ファセットオブジェクト75は、コアイン
ターフェースによってノードオブジェクト74にアクセ
スする一方、プログラム90が持つ所定の文書型に依存
するインターフェース(アスペクトインターフェース)
にてプログラム90からのアクセスを受ける。
【0040】ファセットオブジェクト75は、プログラ
ム90からの作用に対してノードオブジェクト74の全
く同様に機能するので、プログラム90からは、ノード
オブジェクトを扱っているのかそれともファセットオブ
ジェクトを扱っているのかは一切気にしなくても良い。
そして、プログラム90は、所定の文書型に依存する高
水準なアクセスをノードオブジェクト74に対して行う
ことができる。
【0041】同様にプログラム90は、ファセットオブ
ジェクト77を介してノードオブジェクト76にアクセ
スし、ファセットオブジェクト79、81、83を介し
てノードオブジェクト78、80、82にアクセスす
る。
【0042】プログラム90がファセットオブジェクト
75からツリー構造を辿ってファセットオブジェクト7
9にアクセスしたい場合、プログラム90はファセット
オブジェクト75→ノードオブジェクト74→ノードオ
ブジェクト78→ファセットオブジェクト79と辿る。
【0043】このように、ファセットオブジェクトは直
接他のファセットオブジェクトには繋がっていず、対応
するノードオブジェクトを介するようになっている。即
ち、各ファセットは、自身が接続するノードオブジェク
トを特定する情報はもっていするが、自分の親や子供、
兄弟のファセットオブジェクトを特定する情報は持って
いない。これらのファセットを特定する情報は、ノード
オブジェクトから間接的に得ることになる。
【0044】ファセットオブジェクトをツリー構造によ
り直接関連づけた場合、コアオブジェクトのノードオブ
ジェクトのツリー構造が変化した際に、ファセットオブ
ジェクトのツリー構造も変更して同期をとらなければな
らい。同期をとる処理は一般に複雑である。本実施の形
態のように、ファセットオブジェクトをノードオブジェ
クトを介してツリー構造に関連付ければ、同期をとる処
理は必要なくなる。
【0045】ところで、ノードオブジェクトは、自身が
接続するファセットオブジェクトを特定する情報は持っ
ていない。そのため、例えば、ノードオブジェクト→フ
ァセット79といったようにノードオブジェクト側から
ファセットオブジェクト側へ情報を伝達する場合は、ノ
ードファセット対応マップを用いる。ノードファセット
対応マップは、ノードオブジェクトとファセットオブジ
ェクトを関連付ける手段でもある。
【0046】図5は、ノードファセット対応マップ91
の一例を示した図である。このマップはアスペクトオブ
ジェクトを生成する際にコンピュータのメモリ上に生成
される。ノードファセット対応マップ91の左の欄はノ
ードオブジェクトを特定する情報が格納されており、右
の欄には左の欄のノードオブジェクトに対応するファセ
ットオブジェクトを特定するための情報が格納されてい
る。各ファセットオブジェクトは、ノードファセット対
応マップ91により、ノードオブジェクトからファセッ
トオブジェクトへの対応付けを受けることになる。
【0047】以上のように、プログラム90がファセッ
トオブジェクトを介してコアオブジェクトにアクセスす
るように構成すると、図4(b)に示したようにプログ
ラム90からはファセットオブジェクトのツリー構造か
ら構成されたアスペクトオブジェクト72にアクセスし
ているように見える。
【0048】アスペクトオブジェクト72のプログラム
90に対する機能は、アスペクトオブジェクト72は、
プログラム90に対してコアオブジェクト71と全く同
様に機能する。
【0049】なお、ファセットオブジェクトは、全ての
ノードオブジェクトに対して生成する必要は無く、プロ
グラム90が必要としたときに、必要とされるファセッ
トオブジェクトを生成するように構成することができ
る。
【0050】以上に説明したようにファセットオブジェ
クトはノードオブジェクトに対応するファセットオブジ
ェクトのツリー構造を持つ。即ち、そのツリー構造はコ
アオブジェクトのツリー構造と全く同じである。ファセ
ットオブジェクトの特徴をまとめると以下のようにな
る。
【0051】1.それぞれのファセットオブジェクトは
対応するノードオブジェクトを参照する。 2.ファセットオブジェクトは対応するノードオブジェ
クトと同じインターフェースを持つ。そのインターフェ
ースの処理は全て、対応するノードオブジェクトに移譲
する。
【0052】3.ただし、ノードオブジェクトが同一ツ
リー内の別のノードオブジェクトを参照し、その別のノ
ードオブジェクトを返すインターフェースがある場合、
ノードオブジェクトに対応するファセットオブジェクト
の同一インターフェースは、当該別のノードオブジェク
トそのものではなく、それに対応するファセットオブジ
ェクトを返す。すなわち、利用者はノードオブジェクト
に直接触れることは一切無く、全てのインターフェース
呼び出しにおいてファセットオブジェクトが介在する。
【0053】4.ノードタイプが要素のファセットオブ
ジェクトは、その要素型に対してユニークなインターフ
ェース(ファセットインターフェース)を持つ。利用者
はオブジェクト指向言語におけるキャストによって、そ
れぞれのファセットインターフェースを得ることができ
る。
【0054】図6は、DOM利用プログラム、コアオブ
ジェクト及びアスペクトオブジェクトの相関の一例を示
した図である。図6は、アスペクトオブジェクトを用い
ずにプログラム101からDOMを利用した場合を示し
た模式図である。この場合、プログラム101は、コア
インターフェース102を介してコアオブジェクト10
3にアクセスする。
【0055】図6(b)は、XHTMLアスペクトオブ
ジェクトを用いた例を模式的に示した図である。プログ
ラム105は、XHTML(Extensible H
ypertext Markup Language)
特有のインターフェースを用いてコアオブジェクト10
3にアクセスする。
【0056】コアオブジェクト103の各ノードオブジ
ェクトにXHTMLアスペクト用のファセットオブジェ
クトが対応付けられてXHTMLアスペクトオブジェク
トジェクト108が生成される。
【0057】XHTMLアスペクトオブジェクト108
は、XHTMLアスペクトインターフェース107とコ
アインターフェース106を持っており、プログラム1
05からは、コアインターフェース106及びXHTM
Lアスペクトインターフェース107(XHTMLに特
有のインターフェース)の双方を用いてXHTMLアス
ペクトオブジェクト108にアクセスすることができ
る。コアインターフェース106は、例えばSVGのノ
ードなどのXHTML以外のノードにアクセスする際な
どに使用される。プログラム105からはコアオブジェ
クトがXHTML型文書として使用することができる。
【0058】図6(c)は、SVGアスペクトオブジェ
クトを用いた例を模式的に示した図である。プログラム
110は、SVG特有のインターフェースを用いてコア
オブジェクトに103にアクセスする。
【0059】コアオブジェクト103の各ノードオブジ
ェクトにSVGアスペクト用のファセットオブジェクト
が対応付けられてSVGアスペクトオブジェクトジェク
ト113が生成される。
【0060】SVGアスペクトオブジェクト113は、
SVGアスペクトインターフェース112とコアインタ
ーフェース111を備えており、プログラム110から
は、コアインターフェース及びSVGに特有のインター
フェースの双方を用いてSVGアスペクトオブジェクト
108にアクセスすることができる。プログラム110
は、コアオブジェクト103をSVG型文書として使用
することができる。
【0061】図7は、アスペクトオブジェクトマップ1
20の概念を示した概念図である。アスペクトオブジェ
クト120は、後に説明するコンピュータのCPUが所
定のプログラムに従い、例えばRAM(Random
Access Memory)などのメモリで構成した
ものである。アスペクトオブジェクトマップ120は、
アスペクトオブジェクトとコアオブジェクトをキーとす
る2次元マップとなっており、アスペクトサーバにより
管理される。
【0062】アスペクトオブジェクトマップ120の縦
の欄121はプログラムが利用する文書1、文書2、・
・・、のコアオブジェクトを特定する情報から成り、横
の欄122は、アスペクトオブジェクトの文書型を特定
する情報から構成されている。アスペクトオブジェクト
マップ120でコアオブジェクトと文書型の交差する欄
は、当該コアオブジェクトの当該文書型に係るアスペク
トオブジェクトが生成されるメモリ上のエリアを特定し
ている。なお、より具体的には、アスペクトオブジェク
トは、メモリ上の当該エリアでノードファセット対応マ
ップとして生成される。
【0063】例えば、あるプログラムが文書2のコアオ
ブジェクトを文書型SVGとして利用する場合、文書2
と文書型SVGの交差する欄で特定されるエリアに文書
2をSVGに特有なインターフェースでアクセスするこ
とのできるアスペクトオブジェクト123(詳細にはノ
ードファセット対応マップ)が生成される。
【0064】当該プログラムは、直接コアオブジェクト
にアクセスせずにアスペクトオブジェクト123にアク
セスして文書2を利用する。このようにして、プログラ
ムは、所定の文書型に特有なインターフェースを用いて
コアオブジェクトを利用することができるようになる。
【0065】本実施の形態では、アスペクトオブジェク
ト123はトラバース中に必要となったときにその都度
必要なファセットオブジェクトを生成するように構成し
た。なお、そのためアスペクトオブジェクト123を管
理することが必要であり、この目的のためにアスペクト
オブジェクトサーバは、ノードファセット対応マップを
生成する。また、各文書のコアオブジェクトに対してX
HTML、SVGなど複数の文書型に対応したアスペク
トオブジェクトを作成することが可能である。
【0066】図8は、本実施の形態の情報処理装置24
の構成の一例を示した図である。本実施の形態では、情
報処理装置24をパーソナルコンピュータを用いて構成
した。情報処理装置24は、制御部26に、バスライン
43を介して入力装置34、出力装置38、通信制御装
置42、記憶装置48、記憶媒体駆動装置46、入出力
インターフェース44などが接続して構成されている。
【0067】制御部26は、CPU28、ROM(Re
ad Only Memory)30、RAM30など
から構成されている。制御部26は、各種プログラムに
従って動作し、コアオブジェクトの生成、アスペクトオ
ブジェクトの生成、プログラムの実行などの各種情報処
理や情報処理装置24全体を制御したりなどする。
【0068】CPU28は、制御部26の中心的なデバ
イスであって、ROM30や記憶装置48、又は記憶媒
体駆動装置46によって駆動される記憶媒体などからプ
ログラムをロードし、プログラムに従って制御部26を
制御する。
【0069】ROM30は、CPU28が各種演算や制
御を行うための各種プログラム、データ及びパラメータ
などを格納したリードオンリーメモリである。ROM3
0は、不揮発性のメモリであって、ROM30に供給さ
れる電力がゼロの状態でも記憶内容は保持される。ま
た、ROM30は、読み込み専用のメモリであるため、
通常はデータの書き込みは行われない。
【0070】RAM32は、CPU28にワーキングメ
モリとして使用されるランダムアクセスメモリである。
CPU28は、RAM32にプログラムやデータなどを
書込んだり消去したりすることができる。本実施の形態
では、RAM32には、コアオブジェクト、アスペクト
オブジェクトマップ、ノードファセット対応マップを生
成するエリアや、プログラムを実行するためのエリアを
確保可能となっている。
【0071】入力装置34は、例えばキーボードやマウ
スなどの入力装置から構成されている。キーボードは、
情報処理装置24に対して文字や数字などの情報を入力
するための装置である。キーボードは、カナや英文字な
どを入力するためのキーや数字を入力するためのテンキ
ー、各種機能キー、カーソルキー及びその他のキーによ
って構成されている。キーボートは、例えばユーザが情
報処理装置24にログインするためのログインIDやパ
スワードを入力したり、あるいはプログラムを操作した
りする際に使用する。
【0072】マウスは、ポインティングデバイスであ
る。GUI(Graphical User Inte
rface)などを用いて情報処理装置24を操作する
場合、表示装置上に表示されたボタンやアイコンなどを
マウスでクリックすることにより、所定の情報の入力を
行うことができる。
【0073】出力装置38は、例えば表示装置、印刷装
置などのから構成されている。表示装置は、例えば例え
ばCRT(Cathode Ray Tube)ディス
プレイ、液晶ディスプレイ、プラズマディスプレイなど
で構成された情報を画面上に提示するための装置であ
る。表示装置は、キーボードやマウスの入力結果や、プ
ログラムが表示する画面などを表示することができる。
【0074】印刷装置は、プログラムの実行結果などを
紙などの印刷媒体に印刷する装置である。例えばプログ
ラムがエディタの場合は、編集した文章を印刷すること
ができ、また、プログラムがデータベースの場合は、デ
ータを印刷することができる。印刷装置は、例えば、イ
ンクジェットプリンタ、レーザプリンタ、熱転写プリン
タ、ドットプリンタなどの各種プリンタ装置によって構
成されている。
【0075】通信制御装置42は、専用回線10を介し
て情報処理装置24を端末装置9に接続するための装置
であって、モデム、ターミナルアダプタその他の装置に
よって構成されている。通信制御装置42は、例えばイ
ンターネットやLAN(Local AreaNetw
ork)などに接続しており、これらのネットワークに
接続したサーバ装置などに対してデータの送受信を行う
ことができる。通信制御装置42はCPU28によって
制御され、所定のプロトコルに従って送受信を行う。
【0076】記憶装置48は、読み書き可能な記憶媒体
と、その記憶媒体に対してプログラムやデータを読み書
きするための駆動装置によって構成されている。当該記
憶媒体として主にハードディスクが使用されるが、その
他に、例えば、光磁気ディスク、磁気ディスク、半導体
メモリなどの他の読み書き可能な記憶媒体によって構成
することも可能である。
【0077】記憶装置48は、アスペクトサーバプログ
ラム50、コアオブジェクト生成プログラム51、プロ
グラム52、プログラム53、・・・、その他のプログ
ラム55、文書58、文書59、・・・、やその他のデ
ータなどが記憶されている。
【0078】アスペクトサーバプログラム50は、アス
ペクトオブジェクトとコアオブジェクトを関連づけ、プ
ログラムが所定の文書型に特有のインターフェースにて
コアオブジェクトを利用可能にするためのプログラムで
ある。アスペクトサーバプログラム50に従ってCPU
28は、RAM32にアスペクトオブジェクトマップ1
20を生成する。更に、CPU28がプログラムに従っ
てコアオブジェクトにアクセスする際に、CPU28
は、アスペクトサーバプログラム50に従って文書ごと
及び文書型ごとにアスペクトオブジェクト(ノードアス
ペクト対応マップ)を生成させたりなどする。
【0079】なお、アスペクトプログラム50は、ノー
ドオブジェクトに対応するファセットオブジェクトを文
書型ごとにデータベースとして持っており、CPU28
は、ここから所定のノードオブジェクトに対応する所定
の文書型のファセットオブジェクトを取得できるように
なっている。
【0080】コアオブジェクト生成プログラム51は、
プログラムが使用する文書のコアオブジェクトを生成す
るためのプログラムである。コアオブジェクト生成プロ
グラム51に従ってCPU28は、対象となっている文
書ファイルを読み込み、これをRAM32の所定のエリ
アにコアオブジェクトとして展開する。プログラム5
2、53、・・・、は、コアオブジェクトを利用する各
種プログラムである。
【0081】その他のプログラム55は、例えば、ブラ
ウザ、通信制御装置42を制御し、情報処理装置24と
ネットワークでつながれたサーバ装置などとの通信を行
う通信プログラム、メモリ管理や入出力管理などの情報
処理装置24を動作させるための基本ソフトウェアであ
るOS(Operating System)などで構
成されている。
【0082】記憶媒体駆動装置46は、着脱可能な記憶
媒体を駆動してデータの読み書きを行うための駆動装置
である。着脱可能な記憶媒体としては、例えば、光磁気
ディスク、磁気ディスク、磁気テープ、半導体メモリ、
データをパンチした紙テープ、CD−ROMなどがあ
る。なお、CD−ROMや紙テープは、読み込みのみ可
能である。
【0083】入出力インターフェース44は、例えば、
シリアルインターフェースやその他の規格のインターフ
ェースにより構成されている。入出力インターフェース
44に当該インターフェースに対応した外部機器を接続
することにより、情報処理装置24の機能を拡張するこ
とができる。このような外部機器として例えば、ハード
ディスクなどの記憶装置、スピーカ、マイクロフォンな
どがある。
【0084】図9は、CPU28がファセットオブジェ
クトを取得する手順を示したフローチャートである。こ
こでは、CPU28は、ノードオブジェクトBにアクセ
スし、その親ノードオブジェクトAから値を取得する場
合を例にとる。この場合、ノードオブジェクトBに対し
てファセットオブジェクトB’が生成され、ノードオブ
ジェクトAに対してファセットオブジェクトA’が生成
されこととなる。
【0085】まず、CPU28は、プログラム52、5
3、・・・、のうちの何れかをロードし実行する(ステ
ップ10)。次に、CPU28は、コアオブジェクト生
成プログラム51に従って、プログラムが利用する文書
ファイルを読み込みコアオブジェクトを生成する(ステ
ップ15)。
【0086】次に、CPU28は、アスペクトサーバプ
ログラム50をロードして実行し、アスペクトサーバを
生成する(ステップ20)。ユーザはプログラムの操作
により、コアオブジェクトのノードオブジェクトBにア
クセスを試みる。即ち、特定の文書型に固有のインター
フェース又はコアインターフェースによって、コアオブ
ジェクトにアクセスする。これによって、CPU28は
ノードオブジェクトBを特定する情報を取得する(ステ
ップ25)。なお、ユーザはプログラムで所定のパラメ
ータを特定するなどしてどの文書型によってコアオブジ
ェクトにアクセスするかを決めてある。この文書型を特
定する情報はCPU28によって取得される。
【0087】次に、CPU28は、ノードオブジェクト
を特定する情報Bと、文書型(アスペクトタイプ)を特
定する情報からファセットオブジェクトB’を取得する
(ステップ30)。次に、CPU28は、ノードファセ
ット対応マップを生成し、ノードBとファセットB’を
対応付ける(ステップ35)。
【0088】次に、CPU28は、ノードオブジェクト
Bから親ノードオブジェクトAを特定する情報を取得す
る(ステップ40)。次に、CPU28は、ノードオブ
ジェクトAに対応するファセットオブジェクトA’を取
得し(ステップ45)、ステップ35で生成したノード
ファセット対応マップ上でノードオブジェクトAとファ
セットオブジェクトA’を関連づける(ステップ5
0)。
【0089】このように、ノードオブジェクトAとファ
セットオブジェクトB’との対と及び、ノードオブジェ
クトBとファセットオブジェクトB’との対がノードフ
ァセット対応マップ上で生成されることにより、アスペ
クトオブジェクトが生成される。次に、CPU28は、
ファセットA’から出力である値を取得する(ステップ
55)。
【0090】本実施の形態では、アスペクトオブジェク
トがトラバース中に必要となったときに必要なファセッ
トオブジェクトを用いて生成されように構成したが、こ
れに限定するものではなく、例えば、予め全てのノード
オブジェクトに対応するファセットオブジェクトを用い
てアスペクトオブジェクト生成しておき、これを全ての
セッションで使用するように構成することもできる。ま
た、ファセットオブジェクトを使用後に消去するように
構成することもできる。
【0091】本実施の形態では、アスペクトタイプとし
て単純な文字列識別子(AspectSVGなど)やU
RI(Uniform Resource Ident
ifier)を用いることができる。
【0092】以上に述べた本実施の形態では以下のよう
な効果を得ることができる。ファセットプラグインは、
ノードが渡されるとファセットオブジェクトを返すよう
なメソッドを提供するだけでよい。コアオブジェクトの
コアインターフェースでは、単一のノードオブジェクト
からコアオブジェクト全体にアクセスできるような構造
を持つため、それ以上に複雑なメソッドは必要としな
い。
【0093】コアオブジェクトに対して、文書型(HT
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のオ
    ブジェクトに対し、 前記第1のインターフェースを持ち、かつ所定の文書型
    に依存した第2のインターフェースを持つ第2のオブジ
    ェクトと、 前記第2のオブジェクトを前記ノードオブジェクトに対
    応付ける対応付け手段と、 を具備したことを特徴とする情報処理装置。
  2. 【請求項2】 前記第1のインターフェースはコアイン
    ターフェースであり、前記第1のオブジェクトはコアオ
    ブジェクトであることを特徴とする請求項1に記載の情
    報処理装置。
  3. 【請求項3】 前記対応付け手段は、前記ノードオブジ
    ェクトと当該ノードオブジェクトに対応する前記第2の
    オブジェクトを対応付ける対応マップにて前記ノードオ
    ブジェクトと前記第2のオブジェクトを対応付けること
    を特徴とする請求項1または請求項2に記載の情報処理
    装置。
  4. 【請求項4】 前記ノードオブジェクトが前記所定の文
    書型に係るノードオブジェクトでない場合には、前記第
    2のオブジェクトは前記コアインターフェースを提供す
    ることを特徴とする請求項2、又は請求項3に記載の情
    報処理装置。
  5. 【請求項5】 第1のインターフェースを持つノードオ
    ブジェクトがツリー状の階層構造に構成された第1のオ
    ブジェクトに対し、 前記第1のインターフェースを持ち、かつ所定の文書型
    に依存した第2のインターフェースを持つ第2のオブジ
    ェクトを取得するオブジェクト取得機能と、 前記取得した前記第2のオブジェクトを前記ノードオブ
    ジェクトに対応付ける対応付け機能と、 をコンピュータで実現するための情報処理プログラム。
JP2001284289A 2001-09-19 2001-09-19 情報処理装置、及び情報処理プログラム Pending JP2003091419A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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型文書用のインタフェースと接続するためのアプリケーション用の内部データ構造

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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