以下、情報編集装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
図1は、本実施の形態における情報編集装置のブロック図である。
情報編集装置1は、オブジェクト格納部11、配置情報格納部12、オブジェクト出力部13、入力受付部14、および配置変更部15を具備する。
オブジェクト格納部11は、文字列または画像の少なくとも一方をデータとして有し得る2以上のオブジェクトを含むオブジェクト群が格納される。オブジェクトとは、情報編集装置1が編集する情報の構成要素であり、文字列または画像の少なくとも一方を含むデータである。ここでは、文字列を含むオブジェクトを、文字列オブジェクトと称し、画像を含むオブジェクトを画像オブジェクトと称す。オブジェクト群は、2以上のオブジェクトを含む集合である。各オブジェクトはどのような構成を有していても良い。例えば、オブジェクトは、文字列や、画像のみから構成されていてもよいし、タブ等の所定の記号等で区切られた文字列であってもよく、文字列や画像に識別情報や属性値等を付加したものであっても良い。オブジェクトは、タグとタグに関連づけられたデータにより構成されていてもよい。具体的には、オブジェクトは、タグと、タグの要素とにより構成されてもよいし、タグと、タグにリンクされるデータにより構成されてもよい。また、オブジェクトは、データベースのレコードや、レコードの属性および属性値とを組み合わせたものであってもよい。オブジェクトおよびオブジェクト群は、汎用性が高いことから、XML(extensible markup language)を用いて記述されることが好ましい。また、この場合、オブジェクトの内容とは、例えば、後述するオブジェクト出力部13から出力されるデータや、オブジェクトの出力に関する属性値等であり、例えば、オブジェクトが、タグと、タグの要素等とにより構成される場合、タグの要素や、タグにリンクされているデータ等である。また、HTMLやSGML等で記述されていても良い。また、オブジェクトがデータベースの属性値等であれば、オブジェクト群は、CSVファイルやデータテーブル等を構成していてもよい。各オブジェクト同士は、所定の対応関係を有していても良いし、関係を有していなくても良い。ここでは特に、各オブジェクトが、木構造に階層化されている場合について説明する。この場合、各オブジェクトの階層関係は、例えばXMLにより指定可能である。オブジェクトに含まれる画像のデータは、ビットマップデータであっても、ベクトルデータであっても良い。ここで述べる格納とは、データの送信時や、受信時、取得時、出力時等における一時記憶も含む概念である。オブジェクト格納部11は、不揮発性の記録媒体でも、揮発性の記録媒体でも良い。
配置情報格納部12は、オブジェクト格納部11に格納されたオブジェクトをそれぞれ配置するための、前記オブジェクトに対応した、互いに重ならない2以上の領域である配置領域を設定するための情報である配置領域指定情報を格納する。配置領域とは、各オブジェクトを配置する領域であり、通常、フレームや、ボックス等と呼ばれるものもこれに含まれる。配置領域指定情報は、具体的には、配置領域のサイズや位置を指定するための情報である。例えば、配置領域指定情報は、配置領域の幅や高さの情報と、配置領域内の一点、例えば左上隅の座標情報とにより構成される。また、配置領域指定情報は、配置領域の出力されるページ等を指定する情報を有していても良い。また、配置領域指定情報は、例えば、配置領域の形状が矩形であれば、左上隅と、右下隅の座標情報とであっても良い。また、配置領域指定情報は、配置領域の四隅の座標情報であっても良い。また、配置領域指定情報は、例えば、配置領域の幅や高さの情報と、配置領域と他の配置領域との縦方向や横方向の余白の距離、ページ等のオブジェクトが出力されうる領域に対する配置領域の縦方向や横方向の余白の距離を示す情報等の情報であってもよい。配置領域の位置を指定するための情報は、ページ等の配置領域を配置可能な領域に対する座標等の、絶対的な位置を示す情報であっても良いし、配置領域を配置可能な領域の辺や、他の配置領域に対する相対的な位置を示す情報であっても良い。配置領域指定情報と、配置領域指定情報により設定される配置領域に配置されるオブジェクトとの対応関係はどのように管理されていてもよく、例えば、配置領域指定情報とオブジェクトとを対にもつレコードを有するテーブル等を用いて管理されてもよい。また、各オブジェクトやタグと、これらに対応する配置領域指定情報とに、共通する識別情報を設定することで、配置領域指定情報と、配置領域に配置されるオブジェクトとの対応関係を管理してもよい。各配置領域と、各配置領域に配置される各オブジェクトとは通常一対一で対応している。ただし、二以上の配置領域と、一つのオブジェクトとが対応していてもよい。例えば、オブジェクトが文字列を有するオブジェクトである場合、文字列の一部を一方の配置領域に配置し、文字列の残りを他方の配置領域に配置しても良い。配置情報格納部12は、不揮発性の記録媒体でも、揮発性の記録媒体でも良い。
オブジェクト出力部13は、配置領域指定情報に基づいて設定される配置領域に、それぞれの配置領域に対応した前記各オブジェクトを出力する。例えば、オブジェクト出力部13は、オブジェクト情報と配置領域指定情報とを取得し、ページ等のオブジェクトが出力され得る領域内の、配置領域指定情報により指定される位置に位置決めされる、配置領域指定情報により指定されるサイズを有する配置領域内に、それぞれの配置領域に対応した各オブジェクトを出力する。また、オブジェクト出力部13は、配置領域の位置を視覚的に認識しやすくするために、配置領域の枠に枠線を表示するようにしても良い。オブジェクト出力部13は、ディスプレイやプリンタ等の出力デバイスを含むと考えても含まないと考えても良い。オブジェクト出力部13は、出力デバイスのドライバーソフト、または出力デバイスのドライバーソフトと出力デバイス等で実現され得る。出力とは、ディスプレイへの表示、プリンタへの印字、外部の装置への送信等を含む概念である。また、オブジェクト出力部13の、配置領域を設定するための構成等は、MPUやメモリ等から実現され得る。これらの処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
入力受付部14は、オブジェクト出力部13が出力したオブジェクトの少なくとも1つに対して、削除指示またはオブジェクトの内容を変更する指示である変更指示を受け付ける。オブジェクトの内容を変更する指示とは、例えば、オブジェクトが文字列を含む文字列オブジェクトである場合、文字列の入力や、文字列の属性、例えば文字の大きさ等を変更する指示である。また、例えば、オブジェクトが画像を含む画像オブジェクトである場合、画像の大きさを変更する指示等である。なお、出力されているオブジェクトを削除したり、オブジェクトの内容を変更、例えば、文字列を入力したり、画像のサイズを変更したり、する処理については、公知技術であるので説明は省略する。入力受付部14が受け付ける入力は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。入力受付部14は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
なお、入力受付部14が受け付けた入力に基づいて、オブジェクト出力部13が出力するオブジェクトが変更される。例えば、入力受付部14が文字の入力を受け付けた場合、オブジェクト出力部13は、入力された文字を追加したオブジェクトを出力する。また、入力受付部14が文字列や画像を有するオブジェクトの削除の指示を受け付けた場合、出力されていた画像や文字列を削除する。このような削除を行う場合において、複数のオブジェクト、すなわちオブジェクト群、が木構造を有する場合には、削除されるオブジェクトの下位に属するオブジェクトを全て削除するようにしても良い。また、場合によっては、オブジェクト格納部11に格納されているオブジェクトの情報も変更してもよい。例えば、入力受付部14が文字の入力を受け付けた場合、オブジェクト出力部13は、入力された文字をオブジェクト格納部11に格納されているオブジェクトに追加してもよい。
なお、入力受付部14が受け付けた入力に基づくオブジェクトに対する変更(削除も含む)は、オブジェクト出力部13により、オブジェクト出力部13がオブジェクト格納部11からメモリ等に読み出した情報に対して行われても良い。この場合、この変更指示に基づいて変更、例えば書き換え、されたメモリ上のオブジェクトが、オブジェクト出力部13から出力されることで、変更指示に基づく変更が出力に反映される。また、変更指示に基づくオブジェクトに対する変更(削除も含む)は、オブジェクト格納部11に格納されているデータに対して行われても良い。この場合、この変更指示に基づいて変更されたオブジェクト格納部11のオブジェクトが、毎回オブジェクト出力部13により読み出され、オブジェクト出力部13から出力されることで、変更指示に基づく変更が出力に反映される。
配置変更部15は、入力受付部14が受け付けた削除指示または変更指示に対応して、配置領域が重ならずに配置されるように、オブジェクトの配置領域を変更する。具体的には、配置変更部15は、配置領域を変更する際、配置情報格納部12に格納されている配置領域指定情報を、変更後の配置領域を設定する情報となるよう更新する。配置変更部15は、入力受付部14が、オブジェクト出力部13の出力しているオブジェクトに対する、オブジェクトの出力に要する領域が、配置領域よりも大きくなるような変更指示を受け付けた場合、変更指示に基づいた変更を行ったオブジェクトが、配置領域内に収まるよう、配置領域のサイズを変更し、変更後の配置領域が、他の近接する配置領域と重ならないよう、他の近接する配置領域当の位置を変更する。また、配置変更部15は、例えば、入力受付部14が、オブジェクト出力部13の出力しているオブジェクトに対する削除指示を受け付けた場合、オブジェクト出力部13が削除したオブジェクトに対応する配置領域を削除し、この削除された配置領域に近接して設定されていた配置領域等を、削除された配置領域が配置されていた領域を詰めるように、位置を変更する。配置変更部15は、特に、オブジェクト同士が木構造を有している場合、削除されたオブジェクトが配置されていた配置領域を削除し、削除指示が指定するオブジェクトと同じ階層のオブジェクトであって、削除指示が指定するオブジェクトの一階層上位のオブジェクトに直属となるオブジェクトが配置されている一以上の配置領域の位置を、前記削除されたオブジェクトが配置されていた領域を詰めるような位置に変更するようにしてもよい。そして、その他のオブジェクトの配置領域は変更しないようにしてもよい。このようにすることで、配置領域の変更を局所的な変更とすることができる。配置変更部15が、どのように、配置領域が削除された領域を詰めるように、近接する配置領域の位置を移動させてもよい。例えば、削除された配置領域の横に近接していた配置領域等を、横に移動させて、配置領域が削除された領域を詰めるようにしてもよい。また、例えば、削除された配置領域の下に近接していた配置領域等を、上に移動させて、配置領域が削除された領域を詰めるようにしてもよい。また、配置変更部15が、どのように、配置領域のサイズを変更するようにしても良い。例えば、オブジェクトが全て収まるよう、オブジェクトのサイズに合わせて、配置領域の縦方向の高さを高くするようにしてもよい。また、横の方向の幅を広くしてもよい。また、配置変更部15が、どのように、サイズが変更された配置領域と重ならないように、近接する他の配置領域の位置を移動させてもよい。例えば、幅方向にサイズ変更された配置領域の横に近接していた配置領域を、幅が広がった方向に向かって、幅が広がった分だけ横に移動させてもよい。高さ方向にサイズ変更された配置領域の下に近接していた配置領域を、下方向に向かって、高さが高くなった分だけ移動させてもよい。また、例えば、複数の配置領域が、複数のページに配置される場合においては、サイズが変更された配置領域の下、または横にある配置領域を、次のページ等の他のページに移動させても良いし、新たにページを追加して、そのページに移動させるようにしても良い。なお、上記のような、配置領域を変更する際のルールは、各配置領域それぞれに設定されていても良いし、共通する配置領域、例えば、同じタグや、クラスにより定義されるオブジェクトが配置される配置領域ごとに、設定されていてもよい。このようなルールは、配置領域指定情報とともに配置情報格納部12に格納されていても良いし、他の記録媒体等に格納されていても良い。配置変更部15は、通常、MPUやメモリ等から実現され得る。配置変更部15の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、情報編集装置の動作について図2のフローチャートを用いて説明する。
(ステップS201)オブジェクト出力部13は、オブジェクトを出力するか否かを判定する。オブジェクト出力部13は、どのようにオブジェクトを出力するか否かを判定しても良い。例えば、ユーザ等から、入力受付部14等の受付部が、オブジェクトの出力をする指示や、情報を編集する指示等を受け付けたか否かを判定して、受け付けた場合にオブジェクトを出力すると判定してもよい。また、他の処理部等からの指示に基づいて、オブジェクトを出力するか否かを判定しても良い。オブジェクトを出力する場合、ステップS202へ進み、出力しない場合、ステップS201に戻る。
(ステップS202)オブジェクト出力部13は、オブジェクトを出力する。具体的には、オブジェクト出力部13は、配置情報格納部12に格納されている配置領域指定情報に基づいて、配置領域指定情報により設定される各配置領域に対応するオブジェクトを、オブジェクト格納部11から取得し、このオブジェクトを、このオブジェクトに対応した配置領域指定情報により設定される配置領域内に、配置して出力する。配置領域内におけるオブジェクトの縦方向や、横方向における配置、例えば、左揃え、中央揃えや、上揃え、下揃え等は、問わない。また、オブジェクト出力部13は、オブジェクト格納部11に格納されている全てのオブジェクトを出力してもよいし、一部のオブジェクト、例えばユーザ等により指定されたオブジェクトや、対応する配置領域指定情報が存在するオブジェクト、のみを出力してもよい。
(ステップS203)配置変更部15は、入力受付部14が変更指示、例えば文字の入力や、画像のサイズの拡大指示等、を受け付けたか否かを判定する。受け付けた場合、ステップS204へ進み、受け付けていない場合、ステップS210へ進む。
(ステップS204)配置変更部15は、変更後のオブジェクトが、このオブジェクトが配置されている配置領域内に収まるか否かを判定する。具体的には、変更指示に基づいて変更したオブジェクトのサイズを求め、このオブジェクトが配置されている配置領域のサイズと比較する。配置領域のサイズは、配置領域指定情報から取得、もしくは配置領域指定情報から取得した情報に基づいて算出する。変更後のオブジェクトのサイズが、配置領域のサイズよりも大きければ、収まらないと判定し、配置領域以下のサイズであれば、収まると判定する。収まる場合、ステップS205に進み、収まらない場合、ステップS206へ進む。
(ステップS205)オブジェクト出力部13は、オブジェクトを変更指示等に基づいて変更したオブジェクトを、配置領域内に出力する。また、配置やサイズが変更された配置領域等がある場合には、この変更された配置領域内に、対応した各オブジェクトを出力する。そして、ステップS203に戻る。なお、オブジェクト出力部13は、例えば、オブジェクトが文字列オブジェクトであって、変更指示が文字の入力であれば、新たに入力された文字を加えた文字列オブジェクトを、この配置領域に対応した新たなオブジェクトとして、オブジェクト格納部11に蓄積しても良いし、以前のオブジェクトを、この新たなオブジェクトで上書きしても良い。
(ステップS206)配置変更部15は、変更後のオブジェクトが配置領域内に収まるように、配置領域を変更、すなわち配置領域のサイズを変更する。具体的には、配置変更部15は、配置領域のサイズを設定する配置領域指定情報を変更する。このサイズの変更の仕方は、例えば予め決められたルール、例えば配置領域を下方向に広げる等のルール、等に従って行われる。
(ステップS207)配置変更部15は、サイズ変更後の配置領域が、他の配置領域と重なるか否かを判定する。重なる場合、ステップS208へ進み、重ならない場合、ステップS205へ進む。
(ステップS208)配置変更部15は、ステップS206で変更した配置領域と重なる配置領域の位置を、配置領域と重ならないように、変更する。この変更は、例えば予め設定されたルール、例えば、位置の変更は常に下方向への移動に限定するといったルールや、移動後の配置領域が元のページ内に収まらない場合、新たなページを作成し、そのページに配置領域を移動させるといったルール等、に従って行われる。
(ステップS209)配置変更部15は、ステップS208で移動した配置領域が、他の配置領域と重なるか否かを判定する。重なる場合、ステップS208へ戻り、重ならない場合、ステップS205へ進む。
(ステップS210)配置変更部15は、入力受付部14が、削除指示を受け付けたか否かを判定する。受け付けた場合、ステップS211へ進み、受け付けていない場合、ステップS203に戻る。
(ステップS211)オブジェクト出力部13は、削除指示を受けたオブジェクトを削除する。なお、オブジェクト格納部11に格納されている削除されたオブジェクトのオリジナルとなるオブジェクトも削除するようにしても良い。
(ステップS212)配置変更部15は、オブジェクトが削除された配置領域を削除する。具体的には、オブジェクトが削除された配置領域を設定していた配置領域指定情報を削除する。なお、ここで述べる削除とは、配置領域指定情報に基づいて、削除された配置領域を設定できないようにすることも含む。
(ステップS213)配置変更部15は、ステップS212で削除された配置領域が配置されていた領域を、詰めるための配置領域が存在するか否かを判定する。どのような配置領域を、詰めるための配置領域と判定するかというルール等は、予め設定しておく。例えば、削除された配置領域と同じページに配置されている配置領域のうち、削除された配置領域の下に他の配置領域があるか否か等を判定し、下に他の配置領域がある場合、詰めるための配置領域が存在すると判定する。また、配置領域に配置されるオブジェクトが、木構造に階層化されている場合、削除指示が指定するオブジェクトと同じ階層のオブジェクトであって、削除指示が指定するオブジェクトの一階層上位のオブジェクトに直属となるオブジェクトが配置されている一以上の配置領域が存在するか否かを判定し、存在する場合、詰めるための配置領域が存在すると判定するようにしてもよい。詰めるための配置領域が存在する場合、ステップS214に進み、存在しない場合、ステップS203に戻る。
(ステップS214)配置変更部15は、ステップS212で削除された配置領域が配置されていた領域を詰めるように、ステップS213で存在すると判定された詰めるための配置領域を移動させる。具体的には、移動後の配置領域を設定するための配置領域指定情報により、移動前の配置領域指定情報を更新する。この移動は、例えば予め設定されているルール、例えば、上方向に移動させるというルールや、次ページの配置領域は移動させないというルール等、に沿って行われる。なお、配置領域に配置されるオブジェクトが、木構造に階層化されており、削除指示が指定するオブジェクトと同じ階層のオブジェクトであって、削除指示が指定するオブジェクトの一階層上位のオブジェクトに直属となるオブジェクトが配置されている配置領域が複数存在する場合、この配置領域を一つのグループとして、このグループ内の配置領域のみを削除した領域を詰めるように移動させてもよい。
(ステップS215)配置変更部15は、ステップS214で移動させた配置領域が配置されていた領域を詰める配置領域があるか否かを判定する。この判定は、ステップS213と同様の処理により行われる。詰める配置領域がある場合、ステップS214に戻り、ない場合、ステップS203に戻る。
(ステップS216)オブジェクト出力部13は、配置が変更された配置領域内に、対応した各オブジェクトを出力する。そして、ステップS203に戻る。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報編集装置の具体的な動作について説明する。情報編集装置の概念図は図3である。ここではオブジェクト出力部13は表示デバイスとしてディスプレイ30を有する場合について説明する。
図4は、オブジェクト格納部11に格納されているオブジェクト群の構成を示す図である。ここでは、例えば、オブジェクト群は、XMLにより記述されているものとする。「<」と「>」とで囲まれているものがタグで、「<」と「>」とで囲まれている文字をそのタグの属性とする。また、開始タグ「<属性>」と、終了タグ「</属性>で囲まれている情報を要素とする。そして、開始タグと、終了タグと、要素とを組み合わせたものが一つのオブジェクトに相当する。また、一つの開始タグと終了タグとの間に、他のオブジェクトが挿入されている場合、その挿入されたオブジェクトは、挿入先となる開始タグと終了タグとで定義されるオブジェクトの、下位の階層のオブジェクト、より詳しくは、直属のオブジェクトとなる。通常同じ属性のタグにより定義されるオブジェクト同士は、同じ属性を有する情報として出力される。例えば、同じ属性の文字列オブジェクト同士には、同じフォントや、文字サイズ等の属性が適用されて出力される。例えば、このように同じ属性のタグによって定義されるオブジェクトに対して、同じ出力上の属性を定義する技術としては、例えば、カスケーディングスタイルシート(CSS)等が知られている。開始タグ内のIDは、オブジェクトを識別するための管理情報であり、ここではオブジェクトIDと呼ぶ。このオブジェクト群は、例として、一つの商品カタログを構成するために用いられるオブジェクトにより構成されるものである。「商品カタログ」タグは、商品カタログを示すオブジェクトを定義する。「商品情報」タグは、一つの商品を示すオブジェクト、「商品画像」タグは、商品の画像を示す画像オブジェクト、「生産地」タグは、商品の生産地を示す文字列オブジェクト、「商品名」タグは、商品名を示す文字列オブジェクト、「商品コード」タグは、商品コードを示す文字列オブジェクト、「商品単位」タグは、商品の重さを示す文字列オブジェクト、「コピー」タグは、商品についての説明を示す文字列オブジェクト、「税込価格」タグは、商品の税込価格を示す文字列オブジェクト、をそれぞれ定義する。なお、「商品画像」タグ内には、この画像オブジェクトを構成する画像情報のリンク先を指定する情報、「<img src="/images/・・・・・.JPG"/>等が記載されている。
図5は、配置情報格納部12が格納している配置領域指定情報を管理するための配置領域指定情報管理表を示す図である。配置領域指定情報管理表は、「領域ID」、「座標」、「サイズ」、「ページ」および「オブジェクトID」という属性を有している。「領域ID」は、配置領域を識別するための識別情報、「座標」は、ページ内の配置領域の左上隅の座標情報、「サイズ」は、配置領域の幅および高さの情報、「ページ」は、配置領域が配置されるページ番号、「オブジェクトID」は、配置領域に配置されるオブジェクトを指定するためのIDで、図4における開始タグ内のオブジェクトIDに対応する。ここでは、例として、「座標」および「サイズ」の単位はポイントを使用している。
まず、例えば、ユーザが、商品カタログを編集するために、オブジェクトが配置された商品カタログを編集する画面を開くための指示を、メニュー等を用いて情報編集装置1に与えたとする。
この指示に基づいて、オブジェクト出力部13は、図5に示した配置領域指定情報管理表に基づいて、各配置領域指定情報のオブジェクトIDと同じオブジェクトIDを持つオブジェクトを、図4に示したオブジェクト群の中から順次取得し、それぞれが対応する配置領域指定情報により設定される配置領域内に、各オブジェクトを配置する。そして各オブジェクトを配置して得られる画像を、図6に示すように、ディスプレイ30に出力する。なお、ここでは、各配置領域についても、編集時には配置領域間の位置関係が判断しやすいため、枠線を描画しているものとする。なお、各配置領域の左上隅のIDは、実際には表示されないが説明のために付与したもので、図5の領域IDに対応しており、どの配置領域がどの配置領域指定情報に対応するかを示している。例えば、図5の「領域ID」が「4」である配置領域指定情報における「オブジェクトID」は「005」であることから、図4における開始タグ内のIDが「005」であるオブジェクトの要素、すなわち「北海巻きえび」という文字列が、「領域ID」が「4」である配置領域指定情報により設定される配置領域61内に出力される。なお、以下、「領域ID」が「4」である配置領域指定情報により設定される配置領域、のことを、単に、「領域ID」が「4」である配置領域と称すこととする。かかることは、「領域ID」が「4」以外である場合についても同様とする。
ここで、ユーザが、図6に示す画面において、「領域ID」が「14」である配置領域61内をポインタ等でクリックして、文字を入力するためのカーソルを表示させ、キーボード等から文字列を追加入力したとする。入力した文字列は、「2006年特別限定企画商品です。200箱限定となっておりますので、お早めにご予約下さい。」であったとする。入力受付部14は、この入力された文字列を受け付ける。
配置変更部15は、入力受付部14が文字列を受け付けたことから、入力受付部14が変更指示を受け付けたと判断し、配置領域61内に配置されていた文字列オブジェクトに、この追加された文字列を加えて得られる文字列オブジェクトのサイズを算出する。ここでは、「厳選されたスケトウダラの卵の中から手作業で選別された極みの味。2006年特別限定企画商品です。200箱限定となっておりますので、お早めにご予約下さい。」という文字列の大きさを、配置領域の幅に合わせて文字列を折り返した場合について、文字のサイズ、文字間の間隔、行間等から算出する。算出して得られた文字列の幅が240ポイント、高さが74ポイントであったとする。
次に、配置変更部15は、配置領域61のサイズを配置領域指定情報から取得する。ここでは、図5に示すように、配置領域61のサイズは、幅が240ポイント、高さが44ポイントである。
このため、現在の配置領域61には、変更指示により変更された文字列オブジェクトの全てが収まらないため、配置変更部15は、この文字列オブジェクトが収まるよう、予め設定されているルールに従って配置領域61のサイズを変更する。ここでは、変更のルールが、「配置領域の幅は常に変更せず、高さのみを文字列が全て収まるよう変更する。変更により高さが増加する方向は下方向とする」というルールに設定されているとする。配置変更部15は、このルールに従って、幅が240ポイント、高さが74ポイントの文字列オブジェクトが収まるよう、配置領域61のサイズを、幅は240ポイントのまま変更せず、高さのみを文字列オブジェクトと同じ大きさである74ポイントに変更することを決定し、この値により、図5に示した配置領域指定情報管理表の「領域ID」が「14」である配置領域指定情報の「サイズ」属性を書き換える。
次に、配置変更部15は、サイズが変更された配置領域61が、他の配置領域と重なるか否かを判定する。例えば、サイズが変更された配置領域61のx座標の範囲とy座標の範囲とを求め、他の配置領域のx座標の範囲およびy座標の範囲がともに、配置領域61のx座標の範囲とy座標の範囲との少なくとも一部と重複するか否かを判断し、ともに重複する部分がある場合に、この配置領域同士は重なっていると判断できる。
重なっていなければ、オブジェクト出力部13は、書き換えられた配置領域指定情報管理表に基づいて、サイズを変更した配置領域61内に、変更された文字列を配置して出力する。
重なっている場合、配置変更部15は、重なっているオブジェクトを予め設定されているルールに従って移動させる。ここでは、「領域ID」が「15」である配置領域62が、サイズを変更したい配置領域61と重なることとなるため、配置領域62の位置を移動させる。この移動させる際のルールは、「上方に位置する表示領域との余白が、18ポイントとなるように、下方向に移動させる。移動後の配置領域がページからはみ出す場合、配置領域を次ページの先頭に移動させる」というルールであったとする。このルールに従って、配置変更部15は、配置領域62の上端が、サイズが変更された配置領域61の下辺から、18ポイント下の位置とすることを決定する。ここでは、ページの表示領域を配置できる最も下のy座標は、800ポイントで、移動後の配置領域62は、元のページ内に収まることから、配置領域62は、次ページに移動させる必要はない。そして、この位置に配置領域62が設定されるよう、図5の配置領域指定情報管理表の「領域ID」が「15」である配置領域指定情報の「座標」を「(300、676)」に変更する。
次に、配置変更部15は、この移動させた配置領域62に重なる配置領域があるか否かを判定する。ここでは、重なる配置領域がないため、オブジェクト出力部13は、書き換えられた配置領域指定情報管理表に基づいた出力を行う。
図7は、書き換えられた配置領域指定情報管理表を示す図である。また図8は、変更指示により変更された配置領域にオブジェクトを配置した場合の、ディスプレイ30の表示例を示す。
つぎにユーザが、図8に示す画面において、「領域ID」が「6」である配置領域81内の文字列を、マウス等を用いて選択し、キーボードの削除キー等を押したとする。
この操作により、入力受付部14は、配置領域81内の文字列オブジェクトの削除指示を受け付ける。
オブジェクト出力部13は、この削除指示に基づいて、配置領域81内に配置していたIDが「007」である文字列オブジェクトを削除する。
また、配置変更部15は、この削除された文字列オブジェクトに対応した配置領域81を削除する。
次に、配置変更部15は、削除指定されたオブジェクトであるオブジェクトIDが「007」のオブジェクトと同じ階層のオブジェクトであって、削除指示が指定するオブジェクトの一階層上位のオブジェクトに直属となるオブジェクトが配置されている一以上の配置領域が存在するか否かを判定する。ここでは、オブジェクトIDが「007」のオブジェクトと同じ階層のオブジェクトであって、削除指示が指定するオブジェクトの一階層上位のオブジェクト、すなわちオブジェクトIDが「002」のオブジェクト、に直属となるオブジェクトとして、図4に示すオブジェクト群の構成から、オブジェクトIDが「003」、「004」、「005」、「006」、「008」、「009」のオブジェクトが存在することを判定する。また、これらに対応した配置領域として、「領域ID」が「2」、「3」、「4」、「5」、「7」、「8」である配置領域があるため、配置変更部15は、配置領域が存在する、と判定する。さらにここでは、これらの配置領域のうち、削除された配置領域の下方に位置する配置領域を、図7に示した配置領域指定情報管理表の、「座標」属性のyの値から判定する。ここでは、削除した「領域ID」が「6」である配置領域についての「座標」属性のyの値は、「248」で、「座標」属性のyの値が、これよりも小さい配置領域は、「領域ID」が「7」、および「8」である配置領域となる。
配置変更部15は、まず、「領域ID」が「7」、および「8」である配置領域のうちの、削除した配置領域にもっとも近接した配置領域である「領域ID」が「7」の配置領域82の位置を、予め設定されたルールに従って移動させて、削除した配置領域が配置されていた領域を詰める。ここでは、「上方に位置する表示領域との余白が、18ポイントとなるように、上方向に移動させる。移動後の配置領域がページからはみ出す場合、配置領域は移動させない。」というルールが設定されていたとする。このルールに従って、配置変更部15は、配置領域82の上端が、削除された配置領域81の直上に存在している「領域ID」が「5」の配置領域の下辺から、18ポイント下の位置となるように配置領域82を移動させることを決定する。ここでは、このような移動後の配置領域82は、元のページ内に収まることから、配置領域82を移動させてもよいこととなる。そして、この位置に配置領域82は設定されるよう、図7の配置領域指定情報管理表の「領域ID」が「7」である配置領域情報の「座標」を「(300、248)に変更する。
さらに、配置変更部15は、前記と同様の判定を行い、削除された配置領域81と移動させた配置領域82とにより生じた配置領域がない領域を詰めるための配置領域として、「領域ID」が「8」である配置領域83を決定する。そして、この配置領域83の位置を、前記と同様のルールに従って移動させ、配置領域がない領域を「領域ID」が「8」の配置領域83により詰めるよう、配置領域指定情報の「座標」を、「(300、310)」に変更する。
さらに、配置変更部15は、前記と同様の判定を行い、削除された配置領域81と移動させた配置領域82および配置領域83とにより生じた配置領域がない領域を詰めるための配置領域があるか否かを判定する。ここでは、対象となる配置領域がないため、オブジェクト出力部13は、変更された配置領域指定情報管理表に基づいた出力を行う。
図9は、書き換えられた配置領域指定情報管理表を示す図である。また、図10は、変更指示により変更された配置領域にオブジェクトを配置した場合の、ディスプレイ30の表示例を示す。
以上、本実施の形態によれば、配置領域内のオブジェクトに対する変更により、オブジェクトが、配置領域内に収まらなくなった場合に、配置領域を広げるようにし、さらに、配置領域を広げたことによって、配置領域が他の配置領域に重なる場合には、重なる他の配置領域の位置をずらすようにしたことにより、配置領域内に収まらなくなったオブジェクトも全て出力することが可能となる。さらに、配置領域を広げた場合においても、この配置領域と重なるようになる他の配置領域については、この配置領域と重ならないように配置領域を変更することで、他の配置領域内におけるオブジェクトの出力の妨げにならないようにすることができる。
また、配置領域内のオブジェクトを削除した場合に、この削除したオブジェクトの配置領域も削除し、さらにこの配置領域の削除により生じた配置領域のない領域を、近接する配置領域で詰めるようにしたので、無駄な空間や不必要な空間を減らして、情報伝達性に優れた情報を提供することが可能となる。
なお、前記具体例において説明した配置領域を拡大したり、移動させたりする際のルール等は一例であり、オブジェクトの内容等により、ページ構成等から、適宜設定するようにすればよい。
なお、本実施の形態に係る情報編集装置をサーバ・クライアントシステムにおいて実現するようにしても良い。このような場合、サーバ装置は、文字列または画像の少なくとも一方をデータとして有し得る2以上のオブジェクトを含むオブジェクト群が格納されるオブジェクト格納部と、前記オブジェクト格納部に格納されたオブジェクトをそれぞれ配置するための、前記オブジェクトに対応した、互いに重ならない2以上の領域である配置領域を設定するための情報である配置領域指定情報を格納する配置情報格納部と、前記配置領域指定情報に基づいて設定される配置領域に、それぞれの配置領域に対応した前記各オブジェクトを出力するオブジェクト出力部と、前記オブジェクト出力部が出力したオブジェクトの少なくとも1つに対して、削除指示またはオブジェクトの内容を変更する指示である変更指示を受け付ける入力受付部と、前記入力受付部が受け付けた削除指示または変更指示に対応して、前記配置領域が重ならずに配置されるように、前記オブジェクトの配置領域を変更する配置変更部とを具備する構成とすればよい。
また、クライアント装置は、サーバ装置のオブジェクト出力部等により、ネットワーク等を介して送信される、オブジェクトを出力するための情報等を受信する受信部と、受信した情報の出力、例えば表示等を行う出力部を備えるとともに、変更指示を受け付ける受付部と、受け付けた変更指示を、ネットワーク等を介してサーバ装置の入力受付部に対して送信する送信部を備えるものとすればよい。
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記各実施の形態における情報編集装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、文字列または画像の少なくとも一方をデータとして有し得る2以上のオブジェクトをそれぞれ配置するための、互いに重ならない2以上の領域である配置領域を設定するための情報である前記配置領域指定情報に基づいて設定される配置領域に、それぞれの配置領域に対応した前記各オブジェクトを出力するオブジェクト出力ステップと、前記オブジェクト出力ステップで出力したオブジェクトの少なくとも1つに対して、削除指示またはオブジェクトの内容を変更する指示である変更指示を受け付ける入力受付ステップと、前記入力受付ステップで受け付けた削除指示または変更指示に対応して、前記配置領域が重ならずに配置されるように、前記オブジェクトの配置領域を変更する配置変更ステップとを実行させるためのプログラム、である。
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。かかることは、他の実施の形態においても同様である。
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、CD−ROMなどの光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。かかることは、他の実施の形態においても同様である。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。かかることは、他の実施の形態においても同様である。
(実施の形態2)
本実施の形態に係る情報編集装置は、上記実施の形態1に係る情報編集装置において、一つの文字列オブジェクトに特定のキーワードが含まれる場合に、この文字列オブジェクトに関連した文字列オブジェクトの属性を変更するようにしたものである。
図11は、本実施の形態における情報編集装置のブロック図である。
情報編集装置2は、オブジェクト格納部11、配置情報格納部12、オブジェクト出力部13、入力受付部14、配置変更部15、属性値変更情報格納部21、判断部22、属性値変更部23とを具備する。
オブジェクト格納部11、配置情報格納部12、オブジェクト出力部13、入力受付部14、および配置変更部15の構成については前記実施の形態1と同様であるので説明は省略する。なお、本実施の形態においては、複数のオブジェクトは、木構造に階層化されており、オブジェクト格納部11に格納されているオブジェクト群は、文字列を有するオブジェクトである文字列オブジェクトを2以上有するものとする。
属性値変更情報格納部21は、文字列オブジェクトが有し得るキーワードと、文字列オブジェクトの属性値とを有する情報である属性値変更情報との組を1組以上格納している。キーワードとは予め設定された所定の文字列である。文字列オブジェクトの属性値とは、文字列オブジェクトが有する文字列を出力する際の、文字サイズや、フォント、斜体や長体や太字等の文字の修飾、文字色等の、文字列を構成する文字の属性を決定する値である。文字列オブジェクトの属性値のデータ構造は問わない。このような文字列に属性値を適用する技術としては、例えば、上述したようなCSSの技術等が利用可能である。属性値変更情報は、キーワードと属性値変更情報との対を、1以上、有している。属性値変更情報格納部21は、不揮発性の記録媒体でも、揮発性の記録媒体でも良い。
判断部22は、文字列オブジェクトが有する文字列が、前記キーワードを含むか否かを判断する。判断部22が判断の対象とする文字列オブジェクトは、どの文字列オブジェクトであってもよく、例えば、オブジェクト格納部11に格納されているオブジェクトであってもよく、オブジェクト出力部13が出力のために取得したオブジェクトや、出力したオブジェクトであってもよい。また、判断部22が判断の対象とする文字列オブジェクトは、入力受付部14が受け付けた文字列の入力により内容が変更されたオブジェクトであってもよい。判断部22は、具体的には、前記属性値変更情報格納部21に格納されているキーワードが、各文字列オブジェクト、例えば、オブジェクト出力部13がオブジェクトを出力するために取得した文字列オブジェクト、に含まれるか否かを検索して、一致する文字列がある場合に、その文字列オブジェクトがキーワードを含むと判断する。判断部22が、キーワードが含まれるかを検索し、判断する処理を行うタイミングやトリガーは問わない。例えば、オブジェクト出力部13がオブジェクトを出力する際に処理を行うようにしてもよいし、オブジェクト出力部13がオブジェクトを出力した直後に処理を行うようにしてもよいし、入力受付部14が文字列の入力を受け付けた場合に処理を行うようにしてもよい。また、入力受付部14等の受付部が、ユーザからの上記の処理を行う指示を受け付けた場合に処理を行うようにしても良い。判断部22は、通常、MPUやメモリ等から実現され得る。判断部22の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
属性値変更部23は、判断部22がキーワードを含むと判断した場合、このキーワードを含む文字列オブジェクトに対して、所定の対応関係の有する文字列オブジェクトの属性値を、このキーワードと対になる属性値に変更する。「キーワードと対になる属性値」とは、キーワードを有する属性値変更情報が、キーワードと対にして保持している文字列オブジェクトの属性値のことである。「所定の対応関係」とは、1以上のオブジェクトが特定可能であれば、どのような対応関係であっても良い。所定の対応関係の有する文字列オブジェクトとは、例えば、キーワードを含む文字列オブジェクトと関連づけられた特定の識別情報を有する文字列オブジェクトや、特定のタグを有する文字列オブジェクトである。また、所定の対応関係の有する文字列オブジェクトとは、キーワードを含む文字列オブジェクトに対して、所定の階層関係を有するオブジェクトであってもよい。例えば、キーワードを含む文字列オブジェクトに直属する下位の階層のオブジェクトや、キーワードを含む文字列オブジェクトが直属する上位の階層のオブジェクト等であってもよい。また、キーワードを含む文字列オブジェクトの一階層上位のオブジェクトに直属となる文字列オブジェクトであってもよい。また、キーワードを含む文字列オブジェクトに対して所定の階層だけ上位の階層のオブジェクトや、所定の階層だけ下位の階層のオブジェクトであっても良い。なお、「所定の階層」が何階層は問わない。例えば、所定の階層だけ上位の階層の文字列オブジェクトが、一階層だけ上位の階層の文字列オブジェクトであっても良いし、二階層上位の階層の文字列オブジェクトであっても良い。また、この場合は特に、複数の階層を同時に指定しても良い。この「所定の階層」はどのように設定できるようにしても良い。例えば、階層数を整数の数値で設定しても良いし、たとえば、オブジェクト間の階層構造が、上述した実施の形態1の具体例のように、XML等を用いてタグにより定義される場合、「所定の階層」をタグで指定しても良い。また、属性値変更部23は、判断部が前記キーワードを含むと判断した場合、当該キーワードを含む文字列オブジェクトに対して、所定の階層だけ上位の階層のオブジェクトと、その下位の階層となるオブジェクトとのうちの、上述したような所定の対応関係を有する文字列オブジェクトの属性値を、キーワードと対になる属性値に変更するようにしてもよい。例えば、キーワードを含む文字列オブジェクトの上位の階層となるオブジェクトの下位の階層となるオブジェクトのうちの、キーワードを含む文字列オブジェクトに対応付けられた特定のタグで定義されるオブジェクトのみの属性値を変更するようにしても良い。属性値変更部23は、どのように文字列オブジェクトの属性値を変更しても良い。通常は、属性値変更部23は、文字列オブジェクトの文字列の属性値を書き換えたり、追加したりすることで属性値を変更する。文字列オブジェクトの属性値は文字列オブジェクトに対応して保持されていれば、文字列オブジェクトが有していても、属性値を管理する情報として、文字列オブジェクトとは別に蓄積されていてもよい。なお、文字列オブジェクトに対して設定される属性値が重複することが考えられる場合、例えば、一つの文字列オブジェクトに対して、文字色の属性値が二つ設定される場合等には、どのように、どちらの属性値を優先させるようにしても良い。例えば、属性値変更部23が設定する属性値が、予め設定されている文字列よりも優先されるようにしても良い。また、属性値自身に、優先順位を判定するための情報を与えておき、オブジェクト出力部13が、出力する際に、この情報に基づいて、いずれの属性値を利用するかを判断するようにしてもよい。また、オブジェクト出力部13が出力する際に、先に読み出される属性値あるいは後に読み出される属性値が優先されるようにしても良い。属性値変更部23は、どこに格納されているオブジェクトに対して属性値の変更を行なっても良い。例えば、オブジェクト出力部13が取得し、メモリ等に記憶しているオブジェクトに対して、属性値の変更を行なってもよいし、オブジェクト格納部11に格納されているオブジェクトに対して属性値の変更を行なっても良い。属性値変更部23は、通常、MPUやメモリ等から実現され得る。属性値変更部23の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、情報編集装置の動作について図12のフローチャートを用いて説明する。なお、図において、図2と同一符号は同一または相当する処理を示し、ここでは説明を省略する。
(ステップS1201)判断部22と属性値変更部23とは、文字列オブジェクトの属性値を変更する。なお、この処理の詳細については、図13のフローチャートを用いて後述する。なお、この処理は、ステップS202において、オブジェクト出力部13がオブジェクトを取得した後であって、取得したオブジェクトを出力する前に、行なうようにしても良いし、ステップS202の前のステップとして、オブジェクト格納部11が格納しているオブジェクトに対して行なうようにしても良い。
(ステップS1202)判断部22と属性値変更部23とは、文字列オブジェクトの属性値を変更する。なお、この処理は、ステップS203により文字の入力を受け付けた文字列オブジェクトに対してのみ、所定のキーワードが含まれているかを判断すること以外は、ステップS1201と同様の処理であるので、説明は省略する。
なお、図12のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、図12のステップS1201の処理の詳細について、図13のフローチャートを用いて説明する。
(ステップS1301)判断部22は、カウンターkに1を代入する。
(ステップS1302)判断部22は、属性値変更情報格納部21が格納している属性値変更情報のうちの、k番目の属性値変更情報に含まれるキーワードを取得する。
(ステップS1303)判断部22は、カウンターmに1を代入する。
(ステップS1304)判断部22は、m番目の文字列オブジェクトに、ステップS1302で取得したキーワードが含まれるか否かを判断する。具体的には、キーワードにより文字列オブジェクト内を検索し、一致する文字列がある場合、キーワードが含まれると判断する。キーワードが含まれる場合、ステップS1305へ進み、含まれない場合、ステップS1306へ進む。
(ステップS1305) 属性値変更部23は、m番目の文字列オブジェクトに対して、所定の階層だけ上位の階層の文字列オブジェクトの属性値を、キーワードと対になる属性値、すなわちk番目の属性値変更情報に含まれる属性値に変更する。そして、ステップS1306に進む。
(ステップS1306)判断部22は、カウンターmを1インクリメントする。
(ステップS1307)判断部22は、m番目の文字列オブジェクトがあるか否かを判定する。ある場合、ステップS1304に進み、ない場合、ステップS1308に進む。
(ステップS1308)判断部22は、カウンターkを1インクリメントする。
(ステップS1309)判断部22は、k番目の属性値変更情報があるか否かを判定する。ある場合、ステップS1302に戻り、ない場合、上位関数にリターンする。
以下、本実施の形態における情報編集装置の具体的な動作について説明する。情報編集装置の概念図は図3と同様である。
図14は、オブジェクト格納部11に格納されているオブジェクト群の構成を示す図である。このオブジェクト群については、<商品名>というタグで定義されるテキストオブジェクトがない点、<商品情報>タグ内に商品名の文字列が格納されている点、<コピー>タグ内の要素が異なる点等を除けば、図4と同様であるのでここでは、詳細の説明は省略する。なお、ここでは、<商品情報>タグにより定義される文字列オブジェクトについては、文字の太さが標準であり、文字サイズが12ポイントという文字の属性値が初期値として定義されているものとする。
図15は、配置情報格納部12が格納している配置領域指定情報を管理するための配置領域指定情報管理表を示す図である。この配置領域指定情報管理表については、図5と同様であるので、詳細な説明は省略する。
図16は、属性値変更情報格納部21が格納している属性値変更情報を管理するための属性値変更情報管理表である。属性値変更情報管理表は、「変更ID」、「キーワード」、「属性値」という属性を有している。「変更ID」は、属性値変更情報を管理するための識別情報である。「キーワード」は、属性値を変更する文字列情報を検索する際に用いられるキーワード、「属性値」は、文字列オブジェクトに適用される属性値であり、「font−style:italic」とは、文字の形状を斜体に変更する属性値、「font−size:18pt」とは、文字のサイズを18ポイントに設定する属性値、「font−weight:bold」とは、文字を太字に設定する属性値である。なお、ここでは、説明を簡単にするために、一つの文字列オブジェクトに対して設定される文字の属性は、その文字列オブジェクトの下位の階層の文字列オブジェクトに継承されないものとする。
まず、例えば、ユーザが、商品カタログを編集するために、オブジェクトが配置された商品カタログを編集する画面を、開く指示を、メニュー等を用いて情報編集装置1に与えたとする。
判断部22は、図14に示したようなオブジェクト格納部11が格納している文字列オブジェクトの中に、図16に示した属性値変更情報が有するキーワードが含まれるか否かを判断する。ここでは、図16に示すように、属性値変更情報は、「新商品」、「限定」というキーワードを有しており、それぞれのキーワードが、含まれる文字列オブジェクトを検索する。ここでは、「限定」というキーワード141が、オブジェクトIDが「007」の、<コピー>タグで定義される文字列オブジェクト内に検出され、キーワードが含まれると判断される。
判断部22は、この判断結果に基づいて、このオブジェクトIDが「007」である文字列オブジェクトに対して、所定の階層だけ上位の階層の文字列オブジェクトの属性値を、図16に示した属性値変更情報のうちの、「限定」というキーワードを含む「変更ID」が「02」である属性値変更情報に含まれる属性値に変更する。ここでは上位の階層は、予め一階層上位の階層に設定されているものとし、この階層を設定する情報は、メモリ等に格納されている。このため、属性値の変更対象となる文字列オブジェクトは、IDが「002」である<商品情報>タグで定義される文字列オブジェクトとなる。この文字列オブジェクトに対する属性の変更は、例えば、この文字列を定義するタグである<商品情報>の開始タグを、このタグに「変更ID」が「02」である属性値変更情報に含まれる属性値を示す情報を加えた<商品情報 ID=002 style="font−size:18pt;font−weight:bold;">というタグに置き換えることにより、行われる。なお、タグ内のstyle="属性値"とは、このタグで定義される文字列オブジェクトの属性値を、"属性値"内の属性値に設定する、ということを示す。また、ここでは、style="属性値"で設定される属性値が、タグに元々設定されている初期値の属性値よりも優先されるものとする。この判断部22が属性値を変更した文字列オブジェクトによって、例えば、図17に示すように、オブジェクト格納部11に格納されている文字列オブジェクトが上書きされる。上書きせずに、属性値の変更等をメモリ等に保持しているようにしてもよい。
オブジェクト出力部13は、図15に示した配置領域指定情報管理表に基づいて、各配置領域指定情報のオブジェクトIDと同じIDを持つオブジェクトを、図17に示したオブジェクト群の中から順次取得し、それぞれが対応する配置領域指定情報により設定される配置領域内に、各オブジェクトを配置する。なお、属性値が変更された文字列オブジェクトについては、この属性値が変更された文字列オブジェクトを取得し、配置する。そして、オブジェクト出力部13配置した文字列オブジェクトを出力する。出力例を図18に示す。なお、図18においては、編集画面の一部を拡大表示した出力例を示している。IDが「002」である文字列オブジェクトの文字列「北海巻きえび」は、「領域ID」が「2」の配置領域181に配置されており、その文字サイズは18ポイントで、文字は太字となる。
次に、ユーザが、画面に表示される、「領域ID」が「14」である配置領域内をポインタ等でクリックして、文字を入力するためのカーソルを表示させ、キーボード等から文字列を追加入力したとする。入力した文字列は、「新商品です。」であったとする。入力受付部14は、この入力された文字列を受け付ける。
判断部22は、文字の入力を受け付けた文字列オブジェクトである、「領域ID」が「14」内に配置されたIDが「014」文字列オブジェクトの中に、図16に示した属性値変更情報が有するキーワードが含まれるか否かを判断する。ここでは、新たに、「新商品」というキーワードが、図17に示したオブジェクト群の中の、オブジェクトIDが「014」の、<コピー>タグで定義される文字列オブジェクト内に検出され、キーワードが含まれると判断される。
判断部22は、この判断結果に基づいて、このオブジェクトIDが「014」である文字列オブジェクトに対して、所定の階層だけ上位の階層の文字列オブジェクトの属性値を、図16に示した属性値変更情報のうちの、「新商品」というキーワードを含む「変更ID」が「01」である属性値変更情報に含まれる属性値に変更する。ここでは上位の階層は、予め一階層上位の階層に設定されているため、属性値の変更対象となる文字列オブジェクトは、IDが「009」である<商品情報>タグで定義される文字列オブジェクトとなる。この文字列オブジェクトに対する属性の変更は、例えば、この文字列を定義するタグである<商品情報>の開始タグを、このタグに「変更ID」が「01」である属性値変更情報に含まれる属性値を示す情報を加えた<商品情報 ID=009 style="font−style:italic;">というタグに置き換えることにより、行われる。この判断部22が属性値を変更した文字列オブジェクトによって、例えばオブジェクト格納部11に格納されている文字列オブジェクトが上書きされる。この属性値が変更された文字列オブジェクトの出力例を図19に示す。IDが「009」である文字列オブジェクトの文字列「特選明太子」は、「領域ID」が「14」の配置領域191に配置されており、文字は斜体となる。
なお、ここでは、「新商品」というキーワードを含む文字列オブジェクトの一階層上位の階層の文字列オブジェクトの属性値を変更するようにしたが、本発明においては、「新商品」というキーワードを含む文字列オブジェクトの一階層上位の階層の文字列オブジェクトに直属であって、「新商品」というキーワードを含む文字列オブジェクトと同じ階層である文字列オブジェクト、すなわち、オブジェクトIDが011から015までの文字列オブジェクトの属性値を変更するようにしても良い。また、仮に、「新商品」というキーワードを含む文字列オブジェクトに直属の一階層下位の文字列オブジェクトがあれば、この文字列オブジェクトの属性値を変更するようにしてもよい。
その他の、文字オブジェクトの変更や、削除によって、配置領域のサイズや位置を変更する処理等については、上記実施の形態1と同様であるのでここでは省略する。
以上、本実施の形態によれば、文字列オブジェクト内に含まれるキーワードに応じて、この文字列オブジェクトの上位の階層の文字列オブジェクトの属性値を変更することができる。これにより、文字列オブジェクトの内容により、その文字列オブジェクトに対応した見出し等の文字列オブジェクトを変更して、強調表示したりすること等が可能となり、情報を効果的に提供することが可能となる。また、文字列オブジェクトの内容に応じて、その文字列オブジェクトの見出し等を自動的に変更させることが可能となり、文字列オブジェクトの内容をユーザが調べたりする処理が不要であり、処理の負担も増加しない。
なお、本実施の形態に係る情報編集装置をサーバ・クライアントシステムにおいて実現するようにしても良い。このような場合、サーバ装置は、木構造に階層化された、文字列をデータとして有し得る2以上の文字列オブジェクトを含むオブジェクト群が格納されるオブジェクト格納部と、文字列オブジェクトが有し得るキーワードと、文字列オブジェクトの属性値とを有する情報である属性値変更情報との組を1組以上格納している属性値変更情報格納部と、文字列オブジェクトが有する文字列が、前記キーワードを含むか否かを判断する判断部と、前記判断部が前記キーワードを含むと判断した場合、当該キーワードを含む文字列オブジェクトに対して、所定の対応関係を有する文字列オブジェクトの属性値を、当該キーワードと対になる属性値に変更する属性値変更部と、前記文字列オブジェクトを出力するオブジェクト出力部と、を具備する構成とすればよい。
また、クライアント装置は、サーバ装置のオブジェクト出力部等により、ネットワーク等を介して送信される、オブジェクトを出力するための情報等を受信する受信部と、受信した情報の出力、例えば表示等を行う出力部を備えるものとすればよい。
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記各実施の形態における情報編集装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、木構造に階層化された、文字列をデータとして有し得る2以上の文字列オブジェクトの文字列が、所定のキーワードを含むか否かを判断する判断ステップと、前記判断ステップが前記キーワードを含むと判断した場合、当該キーワードを含む文字列オブジェクトに対して、所定の対応関係を有する文字列オブジェクトの属性値を、当該キーワードと対にして設定されている属性値に変更する属性値変更ステップと、前記文字列オブジェクトを出力するオブジェクト出力ステップと、を実行させるためのプログラム、である。
また、上記各実施の形態において、一の装置に存在する2以上の格納部などは、物理的に一の媒体で実現されても良いことは言うまでもない。係ることは、他の実施の形態においても同様である。
(実施の形態3)
本実施の形態における情報編集システムは、前記実施の形態1において説明した情報編集装置と同様の装置をサーバ装置として用いるとともに、クライアント装置において、このサーバ装置において出力するオブジェクトのソースを編集できるようにし、編集したオブジェクトをサーバ装置において出力できるようにしたものである。
図20は、本実施の形態における情報編集システムのブロック図である。
情報編集システムは、サーバ装置100と、クライアント装置200とを具備する。サーバ装置100と、クライアント装置200とは、情報の送受信が可能である。各装置は、例えば、インターネット、WAN、LAN等のネットワーク300で相互に接続されている。ただし、情報の送受信の手段は、通信手段でも、放送手段等でも良い。
サーバ装置100は、オブジェクト格納部11、配置情報格納部12、ソース変更情報受信部101、オブジェクト出力部102、および配置変更部103を具備する。
クライアント装置200は、編集オブジェクト格納部201、ソース出力部202、ソース変更指示受付部203、ソース変更情報送信部204を具備する。
サーバ装置100のオブジェクト格納部11、および配置情報格納部12の構成については、実施の形態1と同様であるので説明は省略する。
ソース変更情報受信部101は、オブジェクト出力部102が出力しているオブジェクトの少なくとも1つに対しての、当該オブジェクトのソースを変更するための情報であるソース変更情報を受信する。オブジェクトのソースとは、オブジェクトを構成する文字列のことである。例えば、オブジェクトがタグとタグ間の要素により構成される場合、オブジェクトのソースとは、タグと、要素とを構成する文字列となる。ソース変更情報とは、オブジェクト出力部102が出力しているオブジェクトのソースを変更するための情報であり、詳細については後述する。ソース変更情報受信部101は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
オブジェクト出力部102の構成については、後述するソース変更情報に基づいて、オブジェクト出力部13が出力するオブジェクトに対して変更(削除を含む)が行われること以外は、実施の形態1と同様であるので、詳細な説明は省略する。なお、ソース変更情報に基づいて、オブジェクト出力部102により、オブジェクトに対して行われる変更は、オブジェクト出力部102がオブジェクト格納部11からメモリ等に読み出したオブジェクトの情報に対して行われても良いし、オブジェクト格納部11に格納されているオブジェクトの情報に対して行われても良い。
配置変更部103の構成については、後述するソース変更情報に対応して配置領域を変更すること以外は、実施の形態1と同様であるので、詳細な説明は省略する。なお、ソース変更情報に対応して配置領域を変更するということは、例えば、ソース変更情報により変更されたオブジェクトが、配置領域内に収まるよう、配置領域のサイズを変更し、変更後の配置領域が、他の近接する配置領域と重ならないよう、他の近接する配置領域当の位置を変更することである。また、例えば、ソース変更情報により削除されたオブジェクトに対応する配置領域を削除し、この削除された配置領域に近接して設定されていた配置領域等を、削除された配置領域が配置されていた領域を詰めるように、位置を変更することである。
編集オブジェクト格納部201には、オブジェクト出力部102が出力しているオブジェクトと同じオブジェクトが格納され得る。編集オブジェクト格納部201には、少なくとも、オブジェクト出力部102がオブジェクトの出力を開始した際に、出力しているオブジェクトと同じオブジェクトが格納されているようにすることが好ましい。編集オブジェクト格納部201に、どのような手段を用いて、オブジェクト出力部102が出力しているオブジェクトと同じオブジェクトが格納されるようにするかは問わない。例えば、着脱可能な磁気ディスクや光ディスク等を介して、オブジェクト出力部102が出力しているオブジェクトが、編集オブジェクト格納部201に複製されていてもよい。また、オブジェクト格納部11と、編集オブジェクト格納部201との内容が、オブジェクトの出力の開始時に、図示しないサーバ装置100の送信部と、クライアント装置200の受信部等を介して、ネットワーク300経由で、同期されるようにしてもよい。また、同様に、編集オブジェクト格納部201に格納されているオブジェクトを、ネットワーク300経由で、オブジェクト格納部11にファイル転送したり、オブジェクト出力部102が出力するオブジェクトを、ネットワーク300経由で、オブジェクト格納部11にファイル転送するようにしても良い。編集オブジェクト格納部201は、不揮発性の記録媒体でも、揮発性の記録媒体でも良い。
ソース出力部202は、編集オブジェクト格納部201が格納しているオブジェクトのうちの、オブジェクト出力部102が出力しているオブジェクトと同じオブジェクトのソースを出力する。具体的には、オブジェクトのソースは、ソースを編集可能なテキストエディタ等のアプリケーションを実行させて、オブジェクトを開くことにより出力させることができる。ここで述べるオブジェクトを開くとは、例えば、オブジェクトがファイルであれば、そのファイルを開いてソースを表示することである。また、オブジェクトがデータベースのレコードであれば、そのレコードのソースを表示することである。ソース出力部202が、どのようにして、オブジェクト出力部102が出力しているオブジェクトと同じオブジェクトを識別して出力するかは問わない。例えば、同じオブジェクトに対して、同じ識別番号等を記録しておき、ソース出力部202がオブジェクトのソースを出力する際に、このオブジェクトの識別番号を、ネットワーク300経由等でサーバ装置100に送信し、この識別番号と同じ識別番号、あるいは対応する識別番号をもつオブジェクトを、オブジェクト出力部102が識別して出力するようにしても良い。また、オブジェクト出力部102がオブジェクトを出力する際に、このオブジェクトの識別番号を、ネットワーク300経由等でクライアント装置200に送信し、この識別番号と同じ識別番号、あるいは対応する識別番号をもつオブジェクトのソースを、ソース出力部202が識別して出力するようにしても良い。また、サーバ装置100とクライアント装置200とのそれぞれに対して、ユーザにより、同じオブジェクトを出力するコマンド等の指示を入力するようにしても良い。ソース出力部202は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。ソース出力部202は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。また、ソース出力部202は、いわゆるテキストエディタ等の、オブジェクトのソースを表示可能なアプリケーションソフトを実行可能なMPUやメモリ等を備えていても良い。出力とは、ディスプレイへの表示、外部の装置への送信等を含む概念である。
ソース変更指示受付部203は、ソース出力部202が出力しているオブジェクトのソースに対するソースを変更する指示であるソース変更指示を受け付ける。ソース変更指示は、具体的には、ソースに対する文字列の追加や削除の指示である。ソース変更指示の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。ソース変更指示受付部203は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
なお、ソース変更指示受付部203が受け付けたソース変更指示に基づくオブジェクトのソースに対する変更は、ソース出力部202が編集オブジェクト格納部201からメモリ等に読み出したオブジェクトのソースに対して行われても良い。この場合、この変更指示に基づいてソースが変更、例えば書き換え、されたメモリ上のオブジェクトが、ソース出力部202から出力されることで、ソース変更指示に基づく変更が出力に反映される。また、ソース変更指示に基づくオブジェクトのソースに対する変更(削除も含む)は、編集オブジェクト格納部201に格納されているオブジェクトのソースに対して行われても良い。この場合、このソース変更指示に基づいて変更された編集オブジェクト格納部201のオブジェクトが、毎回ソース出力部202により読み出され、ソース出力部202からソースが出力されることで、ソース変更指示に基づく変更が出力に反映される。
ソース変更情報送信部204は、ソース変更指示に基づいてソース変更情報を構成し、サーバ装置に送信する。ソース変更情報は、ソース変更指示により行なわれたソースの変更を、オブジェクト出力部102が出力しているオブジェクトに反映させるために用いられる情報である。ソース変更情報は、例えば、オブジェクトのソースに対して追加あるいは削除された文字列と、その箇所を示す情報とを含む、変更前と変更後のオブジェクトのソースの差分を示す情報である。また、ソース変更指示により変更された結果得られるオブジェクトのソースと、そのオブジェクトを識別するための識別情報とを含む情報であってもよい。また、ソース変更指示によりソースが変更された、ソース出力部202が出力しているオブジェクトのデータを、ソース変更情報としてもよい。また、ソース出力部202が出力しているオブジェクト群全体のデータを、ソース変更情報としてもよい。また、ソース変更情報は、ソースを変更させるためのコマンド等の指示を含むものであっても良い。例えば、ソース変更情報は、変更を指示する命令と変更対象であるオブジェクトの識別情報とを組み合わせた情報、具体的には、「命令+オブジェクトID」であっても良い。ソース変更情報送信部204が、どのようなタイミングやトリガーにより、ソース変更情報を構成し、サーバ装置100に送信するようにしてもよい。例えば、ユーザからのクライアント装置200におけるソースの変更を、サーバ装置100に反映させるコマンドを受け付けた場合に、ソース変更情報を構成し、サーバ装置100に送信するようにしてもよい。ただし、クライアント装置200におけるソースの変更が、リアルタイム、もしくはユーザにリアルタイムに近い印象を与える程度の時間差で、サーバ装置100のオブジェクト出力部102の出力に、反映されるようにすることが好ましい。このためには、例えば、ソース変更情報送信部204は、ソース変更指示受付部203がソース変更指示を受け付けた場合に、ソース変更情報を構成し、送信するようにすることが好適である。具体的には、ソース変更指示受付部203が、例えば、文字の入力や、所定数の文字列の入力を受け付けたことをトリガーとして、ソース変更情報を構成し、送信するようにしてもよい。また、ソース変更指示受付部203が、例えば、所定のキーやコマンド、例えば「enter」キーや、「delete」キーや、「入力確定」コマンド、「削除」コマンド等、の入力を受け付けたことをトリガーとして、ソース変更情報を構成し、送信するようにしてもよい。また、例えば、ソース変更情報送信部204は、定期、または不定期等の、所定の時間間隔で、ソース変更指示受付部203からソース変更指示を取得して、ソース変更情報を構成し、送信するようにしてもよい。この場合、ソース変更指示受付部203が、新たな、ソース変更指示を受け付けていない場合には、ソース変更指示を取得しないようにしても良いし、常に取得するようにしても良い。また、所定の時間間隔は、クライアント装置200におけるソースの変更が、リアルタイムで反映されるようにするためには、短いことが好ましい。ソース変更情報送信部204は、無線または有線の通信手段等で実現され得る。通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。また、ソース変更情報送信部204が、ソース変更情報を構成するための手段は、通常、MPUやメモリ等から実現され得る。ソース変更情報送信部204が、ソース変更情報を構成する処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、情報編集システムのサーバ装置100の動作について図21のフローチャートを用いて説明する。なお、図2と同一符号は、同一または相当するステップを示しており、ここでは説明を省略する。ただし、図21においては、図2におけるオブジェクト出力部13、および配置変更部15の実行する処理等は、オブジェクト出力部102、および配置変更部103がそれぞれ実行するものとする。
(ステップS2101)オブジェクト出力部102は、1以上のオブジェクトを出力するか否かを判定する。オブジェクト出力部102は、どのようにオブジェクトを出力するか否かを判定しても良い。例えば、ユーザ等から、図示しない受付部等が、オブジェクトの出力をする指示や、クライアント装置200等において情報が編集されることを示す情報等を受け付けたか否かを判定して、受け付けた場合にオブジェクトを出力すると判定してもよい。また、他の処理部等からの指示に基づいて、オブジェクトを出力するか否かを判定しても良い。オブジェクトを出力する場合、ステップS2102へ進み、出力しない場合、ステップS2101に戻る。
(ステップS2102)オブジェクト出力部102は、1以上のオブジェクトを出力する。具体的には、オブジェクト出力部102は、配置情報格納部12に格納されている配置領域指定情報に基づいて、配置領域指定情報により設定される各配置領域に対応するオブジェクトを、オブジェクト格納部11から取得し、このオブジェクトを、このオブジェクトに対応した配置領域指定情報により設定される配置領域内に、配置して出力する。配置領域内におけるオブジェクトの縦方向や、横方向における配置、例えば、左揃え、中央揃えや、上揃え、下揃え等は、問わない。また、オブジェクト出力部102は、オブジェクト格納部11に格納されている全てのオブジェクトを出力してもよいし、一部のオブジェクト、例えばユーザ等により指定されたオブジェクトや、対応する配置領域指定情報が存在するオブジェクト、のみを出力してもよい。
(ステップS2103)ソース変更情報受信部101は、ソース変更情報を受信したか否かを判定する。受信した場合、ステップS2104へ進み、受信していない場合、ステップS2103に戻る。
(ステップS2104)オブジェクト出力部102は、ステップS2103において受信したソース変更情報に基づいて、出力しているオブジェクトのソースを変更する。具体的には、オブジェクト出力部102は、出力のためにメモリ等に読み出したオブジェクトのソースを変更してもよい。また、例えば、オブジェクト出力部102による出力の更新が、オブジェクト格納部11に格納されているオブジェクトを、更新時ごとに、読み出して行なわれる場合、オブジェクト出力部102は、オブジェクト格納部11に格納されているオブジェクトのソースを変更してもよい。
(ステップS2105)配置変更部103は、ステップS2104によるソースの変更により、オブジェクトが削除されたか否かを判定する。例えば、配置変更部103は、変更前と変更後の各オブジェクトのソースを比較することで、削除されたオブジェクトを判断してもよい。具体的には、各オブジェクトに付加された識別情報の一つが、変更後になくなっていた場合、この識別情報が付加されたオブジェクトが削除されたと判定してもよい。また、例えば、変更後の各オブジェクトと、ステップS2102において取得した配置領域指定情報とを比較し、配置領域指定情報が指定する配置領域に対応したオブジェクトが変更後のオブジェクトの中にない場合、このオブジェクトが削除されたと判定してもよい。オブジェクトが削除されていない場合、ステップS2106へ進み、オブジェクトが削除された場合、ステップS212に進む。
(ステップS2106)配置変更部103は、ステップS2104のソースの変更により、変更されたオブジェクトについて、変更後のオブジェクトが、このオブジェクトが配置されている配置領域内に収まるか否かを判定する。具体的には、変更指示に基づいて変更したオブジェクトのサイズを求め、このオブジェクトが配置されている配置領域のサイズと比較する。配置領域のサイズは、配置領域指定情報から取得、もしくは配置領域指定情報から取得した情報に基づいて算出する。変更後のオブジェクトのサイズが、配置領域のサイズよりも大きければ、収まらないと判定し、配置領域以下のサイズであれば、収まると判定する。収まる場合、ステップS205に進み、収まらない場合、ステップS206へ進む。
なお、図21のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、クライアント装置200の動作について、図22のフローチャートを用いて説明する。
(ステップS2201)ソース出力部202は、1以上のオブジェクトのソースを出力するか否かを判定する。ソース出力部202は、どのようにオブジェクトのソースを出力するか否かを判定しても良い。例えば、ユーザ等から、図示しない受付部等が、オブジェクトのソースを出力する指示や、サーバ装置100等からオブジェクトの編集を指示する情報等を受け付けたか否かを判定して、受け付けた場合にオブジェクトのソースを出力すると判定してもよい。また、他の処理部等からの指示に基づいて、オブジェクトのソースを出力するか否かを判定しても良い。オブジェクトのソースを出力する場合、ステップS2202へ進み、出力しない場合、ステップS2201に戻る。
(ステップS2202)ソース出力部202は、1以上のオブジェクトのソースを出力する。具体的には、ソース出力部202は、編集オブジェクト格納部201に格納されているオブジェクトを取得し、このオブジェクトのソースを出力する。ソースを出力する際の、文字列のフォント等の属性は問わない。また、ソース出力部202は、編集オブジェクト格納部201に格納されている全てのオブジェクトのソースを出力してもよいし、一部のオブジェクト、例えばユーザ等により指定されたオブジェクトや、対応する配置領域指定情報が存在するオブジェクト、のソースのみを出力してもよい。
(ステップS2203)ソース変更指示受付部203は、ソース変更指示を受け付けたか否かを判定する。受け付けた場合、ステップS2204に進み、受け付けていない場合、ステップS2203に戻る。
(ステップS2204)ソース出力部202は、ステップS2203において受け付けたソース変更指示に基づいて、出力しているオブジェクトのソースを変更する。例えば、ソース変更指示が文字列を追加する指示であれば、追加された文字列をソースに追加する。また、ソース変更指示が、ソースの所望の文字列を削除する指示であれば、この文字列を削除する。ソース出力部202は、出力のためにメモリ等に読み出したオブジェクトのソースを変更してもよい。また、例えば、ソース出力部202によるソースの出力の更新が、編集オブジェクト格納部201に格納されているオブジェクトを、更新時ごとに、読み出して行なわれる場合、ソース出力部202は、編集オブジェクト格納部201に格納されているオブジェクトのソースを変更してもよい。
(ステップS2205)ソース出力部202は、ソースの出力を更新する。具体的には、ステップS2204において変更されたオブジェクトのソースにより、現在出力されているソースを書き換えて出力する。
(ステップS2206)ソース変更情報送信部204は、ステップS2203において受け付けたソース変更指示に基づいて、ソース変更情報を構成する。なお、ステップS2206は、ステップS2204やステップS2205の前の処理としても良い。
(ステップS2207)ソース変更情報送信部204は、ステップS2206において構成したソース変更情報を、サーバ装置100に送信する。そして、ステップS2203に戻る。
なお、図22のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報編集システムの具体的な動作について説明する。情報編集システムの概念図は図23である。ここではオブジェクト出力部102は表示デバイスとしてディスプレイ130を、ソース出力部202は、表示デバイスとしてディスプレイ230有する場合について説明する。また、オブジェクト格納部11および編集オブジェクト格納部201には、オブジェクト群として、図4に示したものと同様のXMLファイルがそれぞれ格納されており、配置情報格納部12に格納されている配置領域指定情報は、図5に示したような配置領域指定情報管理表により管理されているものとする。なお、図4と同様のXMLファイルのタイトルは「list.xml」であるとする。
ここでは、例えば、クライアント装置200で、オブジェクト群のソースの編集を行なうとともに、その編集結果をネットワーク300で接続されたサーバ装置100において出力し、確認する、とする。
まず、クライアント装置200のユーザが、クライアント装置200に対しては、編集オブジェクト格納部201に格納されている、図4に示したXMLファイルと同様のファイル「list.xml」のソースを開く指示をメニュー等を用いて与えるとする。
また、ほぼ同時期に、サーバ装置100のユーザが、サーバ装置100に対しても、オブジェクト格納部11に格納されている、クライアント装置200において開くファイルと同じファイル「list.xml」を配置領域に配置して開く指示を、メニュー等を用いて与えるとする。
ソース出力部202は、図4に示したXMLファイルを編集オブジェクト格納部201から読み出し、そのソースを、テキストを編集可能なエディタ等を用いてディスプレイ200に出力する。出力例を、図24に示す。
また、サーバ装置100においても、上述した実施の形態1と同様に、図6に示すように、XMLファイル「list.xml」を構成するオブジェクトが、配置領域指定情報により指定される配置領域に配置されて出力される。
次に、クライアント装置200のユーザが、キーボード等を用いて、例えば、ソース出力部202が出力しているファイル「list.xml」のソースにおいて、オブジェクトIDが「016」であるオブジェクト2400のソース「<コピー ID=016>厳選されたスケトウ・・・の味。</コピー>」の要素「厳選されたスケトウ・・・の味。」の末尾に、文字列「2006年特別限定企画商品です。200箱限定となっておりますので、お早めにご予約ください。」を入力し、例えば、キーボードの「enter」キーを押したとする。これにより、ソース変更指示受付部203は、このオブジェクト2400のソースに文字列「2006年特別限定企画商品です。200箱限定となっておりますので、お早めにご予約ください。」を加えるソース変更指示を受け付ける。このソース変更指示により、このオブジェクトのソースが「<コピー ID=016>厳選されたスケトウ・・・の味。2006年特別限定企画商品です。200箱限定となっておりますので、お早めにご予約ください。</コピー>」に変更され、変更されたソースが図25に示すようにディスプレイ230に表示される。
次に、ソース変更情報送信部204は、上述したソース変更指示を受け付けたことをトリガーとして、このソース変更指示に基づいて、IDが「016」であるオブジェクトの要素を「厳選されたスケトウ・・・の味。2006年特別限定企画商品です。200箱限定となっておりますので、お早めにご予約ください。」に変更するためのソース変更情報を構成する。このソース変更情報の構成例を図26に示す。図26において、ソース変更情報は、変更するオブジェクトを指定するためのオブジェクトID2601と、当該オブジェクトに対する変更を指示するコマンド2602とにより構成されている。ここでは、コマンドとして、オブジェクトの要素を「厳選されたスケトウ・・・の味。2006年特別限定企画商品です。200箱限定となっておりますので、お早めにご予約ください。」に書き換えるためのコマンドである、「rewrite_element_"厳選されたスケトウ・・・の味。2006年特別限定企画商品です。200箱限定となっておりますので、お早めにご予約ください。"」というコマンドが格納されている。
ソース変更情報送信部204は、この構成したソース変更情報を、サーバ装置100に対して送信する。サーバ装置100のIPアドレス等のネットワークアドレスは、予め、クライアント装置200に蓄積されているものとする。
サーバ装置100のソース変更情報受信部101が、図26に示したソース変更情報を受信すると、オブジェクト出力部102は、当該オブジェクト出力部102が出力しているオブジェクト群のうちから、オブジェクトIDが、ソース変更情報に含まれるオブジェクトID2601と同じであるオブジェクトを検出し、そのオブジェクトのソースに対して、ソース変更情報に含まれるコマンド2602を実行する。具体的には、図4に示したようなオブジェクト群のなかから、「ID=016」を含む開始タグを検索する。そして、このタグで定義されるオブジェクト、すなわちに「<コピー ID=016>厳選されたスケトウ・・・の味。</コピー>」というオブジェクトに対し、ソース変更情報に含まれるコマンドに基づいて、オブジェクトのエレメントを" 厳選されたスケトウ・・・の味。2006年特別限定企画商品です。200箱限定となっておりますので、お早めにご予約ください。"に書き換える処理を実行する。この結果、図8と同様に、領域IDが「14」である領域に出力される、オブジェクトIDが「016」であるオブジェクトの情報が、「厳選されたスケトウ・・・の味。2006年特別限定企画商品です。200箱限定となっておりますので、お早めにご予約ください。」に変更される。
なお、このとき、ソース変更情報に基づいて、オブジェクトが変更された結果、オブジェクトが、領域IDが「14」である配置領域内に収まらなくなるため、領域IDが「14」である配置領域の大きさを変更したり、それに応じて他の配置領域の位置を変更したりする処理等が行なわれるが、これらの処理は、上述した実施の形態1と同様であるので、説明は省略する。
次に、クライアント装置200のユーザが、図27に示すように、マウスや、キーボード等を用いて、ソース出力部202が出力しているファイル「list.xml」のソースにおいて、オブジェクトIDが「007」であるオブジェクト2700のソース「<商品単位 ID=007>340g</商品単位>」を選択し、「削除」キーを押したとする。これにより、ソース変更指示受付部203は、このオブジェクト2700のソースを削除するソース変更指示を受け付ける。このソース変更指示により、このオブジェクト2700のソースが削除され、変更されたソースが図28に示すようにディスプレイ230に表示される。
次に、ソース変更情報送信部204は、上述したソース変更指示を受け付けたことをトリガーとして、このソース変更指示に基づいて、IDが「007」であるオブジェクトを削除するためのソース変更情報を構成する。このソース変更情報の構成例を図29に示す。図29において、ソース変更情報は、変更するオブジェクトを指定するためのオブジェクトID2901と、当該オブジェクトに対する変更を指示するコマンド2902とにより構成されている。ここでは、コマンドとして、オブジェクトを削除するコマンドである、「delete」というコマンドが格納されている。
ソース変更情報送信部204は、この構成したソース変更情報を、サーバ装置100に対して送信する。
サーバ装置100のソース変更情報受信部101が、図29に示したソース変更情報を受信すると、オブジェクト出力部102は、当該オブジェクト出力部102が出力しているオブジェクト群のうちから、オブジェクトIDが、ソース変更情報に含まれるオブジェクトID2901と同じであるオブジェクトを検出し、そのオブジェクトのソースに対して、ソース変更情報に含まれるコマンド2902を実行する。具体的には、図4に示したようなオブジェクト群のなかから、「ID=007」を含む開始タグを検索する。そして、このタグで定義されるオブジェクト、すなわちに「<商品単位 ID=007>340g</商品単位>」というオブジェクトを削除する処理を実行する。この結果、図10と同様に、オブジェクト出力部102の出力から、領域IDが「6」である領域が削除される。
なお、このようなソース変更情報に基づくオブジェクトの削除に応じて、他の配置領域を詰める処理等については、上述した実施の形態1と同様であるので、説明は省略する。
以上、本実施の形態によれば、配置領域内のオブジェクトに対する変更により、オブジェクトが、配置領域内に収まらなくなった場合に、配置領域を広げるようにし、さらに、配置領域を広げたことによって、配置領域が他の配置領域に重なる場合には、重なる他の配置領域の位置をずらすようにしたことにより、配置領域内に収まらなくなったオブジェクトも全て出力することが可能となる。さらに、配置領域を広げた場合においても、この配置領域と重なるようになる他の配置領域については、この配置領域と重ならないように配置領域を変更することで、他の配置領域内におけるオブジェクトの出力の妨げにならないようにすることができる。
また、配置領域内のオブジェクトを削除した場合に、この削除したオブジェクトの配置領域も削除し、さらにこの配置領域の削除により生じた配置領域のない領域を、近接する配置領域で詰めるようにしたので、無駄な空間や不必要な空間を減らして、情報伝達性に優れた情報を提供することが可能となる。
さらに、クライアント装置200によるオブジェクトのソースの変更を、ネットワーク経由で、サーバ装置100において各オブジェクトの配置等に反映させて出力することが可能となる。これにより、例えば、異なる場所間において、編集作業を協調して行なうことが可能となる。
また、クライアント装置200側においては、配置情報に基づくオブジェクトの配置は行なわないため、オブジェクトのソースに対して変更が行えればよい、このため、クライアント装置200は、XMLファイルのソースや、テキストの編集が行える程度の処理ができればよく、高い処理能力が要求されない。この結果、クライアント装置200としては、比較的処理能力の低いノートパソコンのような、携帯性の高い機器が十分に利用可能となる。この結果、可搬性に富み、場所を選ばずに編集作業が可能となる。
また、クライアント装置200において行なわれた変更が、速やかにサーバ装置100のオブジェクトの配置に反映されるため、オブジェクトのソースの編集と、編集結果の確認との間に大きな時間差や待ち時間等が発生せず、編集作業の高速化を図ることが可能となる。
なお、上記具体例においては、オブジェクト格納部11と編集オブジェクト格納部201とが、オブジェクト出力部102が出力するオブジェクトと、同じオブジェクトを予め格納している場合について説明した。しかしながら、本願においては、オブジェクト格納部11だけが、オブジェクトを予め格納しており、オブジェクトの編集を行なう際等に、オブジェクト出力部102が出力するオブジェクトを、クライアント装置200に送信するようにしても良い。
図30は、このようなサーバ装置からオブジェクトを送信するための構成を備えた、本実施の形態の情報編集システムの変形例を示す図である。この変形例は、図20に示した情報編集システムにおいて、サーバ装置100に対してオブジェクト送信部104をさらに備えたサーバ装置100aを、クライアント装置200に対して編集オブジェクト受信部205をさらに備えたクライアント装置200aを、それぞれ設けるようにしたものである。
オブジェクト送信部104は、オブジェクト出力部102が出力するオブジェクトを、クライアント装置200に対して送信する。オブジェクト送信部104は、オブジェクト出力部102が出力するオブジェクトを、オブジェクト格納部11から取得して送信しても良いし、オブジェクト出力部102が出力時にオブジェクト格納部11からメモリ等に読み出したオブジェクトを取得して送信してもよい。オブジェクト送信部104がオブジェクトを取得し、送信するタイミングやトリガーは問わない。オブジェクト出力部102がオブジェクトを出力することをトリガーとして、出力するオブジェクトを送信しても良い。また、クライアント装置200aからのオブジェクトの送信要求を受けた場合に、要求を受けたオブジェクトを送信してもよいし、ユーザからの送信指示を受け付けた場合に送信指示を受けたオブジェクトを送信してもよい。ただし、少なくとも、オブジェクト出力部102がオブジェクトの出力を開始する際にはオブジェクトを取得し送信することが好ましい。また、オブジェクト送信部104は、オブジェクト出力部102がオブジェクトの出力を開始した後、オブジェクト出力部102が出力するオブジェクトに対して、変更が加えられたり削除が行なわれた場合においても、変更されたオブジェクトを取得し送信してもよい。オブジェクト送信部104は、無線または有線の通信手段等で実現され得る。
編集オブジェクト受信部205は、サーバ装置100から送信されるオブジェクトを受信し、編集オブジェクト格納部201に蓄積する。編集オブジェクト受信部205は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。また、受信したオブジェクトを蓄積するための処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。編集オブジェクト受信部205は、この蓄積する処理を実行するための、例えば、MPUやメモリ等を備えていても良い。
このような構成において、例えば、サーバ装置100aにおいて所望のオブジェクトの編集を行なうために、オブジェクト格納部11に格納されているオブジェクトを出力する指示をサーバ装置100aの図示しない受付部等が受け付けると、この所望のオブジェクト、あるいはこのオブジェクトを含むオブジェクト群が、オブジェクト送信部104から、クライアント装置200aに送信される。
クライアント装置200aにおいては、編集オブジェクト受信部205が、このオブジェクトを受信して、編集オブジェクト格納部201に蓄積する。そして、例えば、このオブジェクトを受信したことをトリガーとして、このオブジェクトのソースをソース出力部202が出力し、その後、オブジェクトのソースの編集が可能となる。
このような変形例によれば、クライアント装置200aは、予め、編集するオブジェクトを格納している必要がないため、サーバ装置100aにおいて出力しているオブジェクトのソース等を、随時クライアント装置200aにおいて編集することが可能となる。
また、オブジェクトをサーバ装置100aにおいて一元管理することが可能となる。
また、上記変形例とは異なり、編集オブジェクト格納部201だけが、オブジェクトを予め格納しており、オブジェクトの編集を行なう際等に、ソース出力部202がソースを出力するオブジェクトを、クライアント装置からサーバ装置に送信するようにしても良い。
図31は、このようなサーバ装置からオブジェクトを送信するための構成を備えた、本実施の形態の情報編集システムの変形例を示す図である。この変形例は、図20に示した情報編集システムにおいて、サーバ装置100に対してオブジェクト受信部105をさらに備えたサーバ装置100bを設け、クライアント装置200に対して編集オブジェクト送信部206をさらに備えたクライアント装置200bを設けるようにしたものである。
オブジェクト受信部105は、サーバ装置100から送信されるオブジェクトを受信し、編集オブジェクト格納部201に蓄積する。オブジェクト受信部105は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。また、受信したオブジェクトを蓄積するための処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。オブジェクト受信部105は、この蓄積する処理を実行するための、例えば、MPUやメモリ等を備えていても良い。
編集オブジェクト送信部206は、ソース出力部202が出力するオブジェクトを、サーバ装置100bに対して送信する。編集オブジェクト送信部206は、ソース出力部202が出力するオブジェクトを、編集オブジェクト格納部201から取得して送信しても良いし、ソース出力部202が出力時に編集オブジェクト格納部201からメモリ等に読み出したオブジェクトを取得して送信してもよい。編集オブジェクト送信部206がオブジェクトを取得し、送信するタイミングやトリガーは問わない。ソース出力部202がオブジェクトのソースを出力することをトリガーとして、このソースを出力するオブジェクトを送信しても良い。また、サーバ装置100bからのオブジェクトの送信要求を受けた場合に、要求を受けたオブジェクトを送信してもよいし、ユーザからの送信指示を受け付けた場合に送信指示を受けたオブジェクトを送信してもよい。ただし、少なくとも、ソース出力部202がオブジェクトのソースの出力を開始する際にはオブジェクトを取得し送信することが好ましい。編集オブジェクト送信部206は、無線または有線の通信手段等で実現され得る。
このような構成において、例えば、クライアント装置200bにおいて所望のオブジェクトのソースの編集を行なうために、編集オブジェクト格納部201に格納されているオブジェクトのソースを出力する指示をクライアント装置200bの図示しない受付部等が受け付けると、このソースの出力が指示されたオブジェクトが、編集オブジェクト送信部206から、サーバ装置100bに送信される。
サーバ装置100bにおいては、オブジェクト受信部105が、このオブジェクトを受信して、オブジェクト格納部11に蓄積する。そして、例えば、このオブジェクトを受信したことをトリガーとして、このオブジェクトをオブジェクト出力部102が出力することが可能となる。
このような変形例によれば、サーバ装置100bは、予め、ソースが編集されるオブジェクトを格納している必要がないため、クライアント装置200bにおいてソースを編集したいオブジェクトを、随時サーバ装置100において出力させることが可能となる。このため、クライアント装置200bにおいて用意したオブジェクト、例えばクライアント装置200bにおいて作成したオブジェクト、等を予めサーバ装置100bに送信しておく手間と時間が削減でき、クライアント装置200bの格納しているオブジェクトを配置する際の確認作業が容易に行なうことができる。
なお、上記実施の形態の情報編集システムにおいて、図32に示すように、上記実施の形態3において示したサーバ装置100に対して、上記実施の形態2と同様の、属性値変更情報格納部21と、判断部22と、属性値変更部23とをさらに設けたサーバ装置100cに設けるようにし、上記実施の形態2と同様に、オブジェクト格納部11に格納されていた文字列オブジェクトや、ソース変更情報受信部101において受信したソース変更情報に基づいて変更された文字列オブジェクトに対して、特定のキーワード等が含まれる場合に、その文字列オブジェクトの属性を変更するようにしても良い。
また、本実施の形態において、クライアント装置200と同様のクライアント装置を複数設けるようにし、それぞれのクライアント装置で、異なるオブジェクトや同じオブジェクト、あるいは異なるオブジェクト群や同じオブジェクト群のソースを出力して、ソース変更指示に基づいて、ソースの変更を受け付けるとともに、そのソースの変更に基づいて、サーバ装置100において、それぞれのオブジェクトを変更して、オブジェクトの出力を変更するようにしてもよい。例えば、図33に示す概略図のように、2つのクライアント装置200(1)、200(n)(nは2以上の整数)を設けるようにし、クライアント装置200(1)では、第一のオブジェクト群3300(1)のソース3301(n)を表示し、クライアント装置200(n)においては、第nのオブジェクト群3300(n)のソース3301(n)を表示し、サーバ装置100においては、第一のオブジェクト群3300(1)と、第nのオブジェクト3300群(n)とを含む複数のオブジェクトを、合成して、あるいは個別に、出力するようにする。そして、クライアント装置200(1)による第一のオブジェクト群3300(1)のソース3301(1)に対する変更と、クライアント装置200(n)による第nのオブジェクト群3300(n)のソース3301(n)に対する変更とに基づいて、サーバ装置100において、それぞれの変更に対応したオブジェクトの配置等を変更してオブジェクトを出力するようにしてもよい。これにより、クライアント装置200を利用するユーザが複数であっても、同時にオブジェクトの編集作業を行うことが可能となる。
また、複数のクライアント装置により、同じオブジェクトのソース、あるいは同じオブジェクト群のソースを同時期に変更することが起こりうる場合には、一のクライアント装置によるオブジェクトのソースの変更が、他のクライアント装置の同じオブジェクトのソースにも行なわれるようにする必要があることから、情報編集システムの構成を図34に示すような構成とすることが好ましい。
図34において、クライアント装置700(1)〜700(n)(nは2以上の整数)は、上述した実施の形態3におけるクライアント装置200に、同じ実施の形態3において説明したソース変更情報受信部101と同様の構成を有する編集ソース変更情報受信部701を設けるようにしたものである。そして、一のクライアント装置が、ソース変更指示を受け付けた場合、これに基づいて構成されたソース変更情報を、ソース変更情報送信部204は、サーバ装置100だけではなく、ネットワーク300経由で、他のクライアント装置に対しても、送信する。他のクライアント装置においては、このソース変更情報を、編集ソース変更情報受信部701において受信し、ソース出力部202が、この受信したソース変更情報に基づいて、オブジェクトのソースを変更し、変更したオブジェクトのソースを出力する。これにより、一のクライアント装置で受け付けたオブジェクトのソースの変更と同様の変更が、他のクライアント装置の出力しているオブジェクトのソースに対しても行なわれ、全てのクライアント装置700(1)〜700(n)が、変更の対象とするオブジェクトのソースを同期させることが可能となる。
また、本実施の形態において、サーバ装置100と同様のサーバ装置を複数設けるようにしてもよい。この場合、クライアント装置200においてソースの変更を行なっているオブジェクトを、それぞれのサーバ装置において出力し、さらに、クライアント装置200においてソース変更指示を受け付けた場合に、ソース変更指示に基づいて構成したソース変更情報を、それぞれのサーバ装置に送信することで、クライアント装置200におけるオブジェクトのソースの変更を、各サーバ装置の出力するオブジェクトに反映させることができる。
なお、上記各実施の形態における情報編集システムのサーバ装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納されている文字列または画像の少なくとも一方をデータとして有し得る2以上のオブジェクトをそれぞれ配置するための、互いに重ならない2以上の領域である配置領域を設定するための情報である前記配置領域指定情報に基づいて設定される配置領域に、それぞれの配置領域に対応した前記各オブジェクトを出力するオブジェクト出力ステップと、前記オブジェクト出力ステップで出力しているオブジェクトの少なくとも1つに対しての、当該オブジェクトのソースを変更するための情報であるソース変更情報を受信するソース変更情報受信ステップと、前記ソース変更情報受信ステップで受信した削除指示または変更指示に対応して、前記配置領域が重ならずに配置されるように、前記オブジェクトの配置領域を変更する配置変更ステップとを実行させるためのプログラムである。
さらに、このプログラムは、前記オブジェクトのうちの2以上は、文字列を有するオブジェクトである文字列オブジェクトであり、コンピュータに、前記文字列オブジェクトの文字列が、所定のキーワードを含むか否かを判断する判断ステップと、前記判断ステップが前記キーワードを含むと判断した場合、当該キーワードを含む文字列オブジェクトに対して、所定の対応関係を有する文字列オブジェクトの属性値を、当該キーワードと対にして設定されている属性値に変更する属性値変更ステップとをさらに実行させるためのプログラムである。
また、上記各実施の形態における情報編集システムのクライアント装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納されている文字列または画像の少なくとも一方をデータとして有し得る2以上のオブジェクトのソースを出力するソース出力ステップと、前記ソース出力ステップで出力しているオブジェクトのソースに対するソースを変更する指示であるソース変更指示を受け付けるソース変更指示受付ステップと、前記ソース変更指示に基づいて、ソース出力ステップでソースを出力しているオブジェクトの少なくとも1つと同じオブジェクトに対してソースを変更するための情報であるソース変更情報を構成して送信するソース変更情報送信ステップとを実行させるためのプログラムである。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。