(57)【要約】【課題】デジタルコンテンツ上の目的の位置に修飾線を配置し続けることができる修飾線配置プログラム、修飾線配置装置及び修飾線配置方法を提供することを目的とする。【解決手段】コンピュータを、ブラウザに表示するデジタルコンテンツの識別情報を含むイベント通知をブラウザから受信し、デジタルコンテンツの識別情報と関連付けて修飾線付与位置情報を保持する位置情報管理手段から、修飾線付与位置情報を取得する修飾線付与位置情報取得手段と、修飾線付与位置情報取得手段が取得した修飾線付与位置情報に含まれる修飾線の論理的位置に基づき、デジタルコンテンツ上の論理的位置を決定し、決定された論理的位置に修飾線のオブジェクトを配置する修飾線配置処理手段として動作させることにより上記課題を解決する。【選択図】  図１０
2011003011.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
ブラウザに表示するデジタルコンテンツの識別情報を含むイベント通知を前記ブラウザから受信し、前記デジタルコンテンツの識別情報と関連付けて修飾線付与位置情報を保持する位置情報管理手段から、修飾線付与位置情報を取得する修飾線付与位置情報取得手段と、
前記修飾線付与位置情報取得手段が取得した修飾線付与位置情報に含まれる修飾線の論理的位置に基づき、前記デジタルコンテンツ上の論理的位置を決定し、決定された前記論理的位置に修飾線のオブジェクトを配置する修飾線配置処理手段と
して動作させる為の修飾線配置プログラム。
【請求項２】
前記修飾線配置処理手段は、前記修飾線付与位置情報取得手段が取得した修飾線付与位置情報に含まれる修飾線の第一の論理的開始位置及び第一の論理的終了位置に基づき、前記デジタルコンテンツ上の第二の論理的開始位置及び第二の論理的終了位置を決定し、決定された前記第二の論理的開始位置及び前記第二の論理的終了位置に基づいて決定された修飾線の長さと、行内の前記第二の論理的開始位置以降に描画可能な長さと、の差分を次行の修飾線の長さとして決定し、決定された前記長さの修飾線のオブジェクトを次行に配置する請求項１記載の修飾線配置プログラム。
【請求項３】
前記修飾線配置処理手段は、前記修飾線付与位置情報取得手段が取得した修飾線付与位置情報に含まれる修飾線の第一の論理的開始位置及び第一の論理的終了位置に基づき、前記デジタルコンテンツ上の第二の論理的開始位置及び第二の論理的終了位置を決定し、
前記修飾線の第一の論理的開始位置及び第一の論理的終了位置に基づき、修飾線が複数ブロックに跨るときに、前記修飾線の第一の論理的開始位置から第一の論理的終了位置まで深さ優先探索でブロックを保存し、一つずつ取り出した前記ブロックがテキストノードであるときに、一つずつ取り出した前記ブロックの深さ優先探索における位置が開始，中間，終了の何れであるかを判定して、
前記ブロックの深さ優先探索における位置が開始であるときに前記第一の論理的開始位置に基づき前記デジタルコンテンツ上の第二の論理的開始位置を決定すると共に、前記ブロックのテキストの最後に基づき前記デジタルコンテンツ上の第二の論理的終了位置を決定し、
前記ブロックの深さ優先探索における位置が中間であるときに前記ブロックのテキストの先頭に基づき前記デジタルコンテンツ上の第二の論理的開始位置を決定すると共に、前記ブロックのテキストの最後に基づき前記デジタルコンテンツ上の第二の論理的終了位置を決定し、
前記ブロックの深さ優先探索における位置が終了であるときに前記ブロックのテキストの先頭に基づき前記デジタルコンテンツ上の第二の論理的開始位置を決定すると共に、前記第一の論理的終了位置に基づき前記デジタルコンテンツ上の第二の論理的終了位置を決定し、
決定された前記第二の論理的開始位置及び前記第二の論理的終了位置に基づいて決定された修飾線の長さと、行内の前記第二の論理的開始位置以降に描画可能な長さと、の差分を次行の修飾線の長さとして決定し、決定された前記長さの修飾線のオブジェクトを次行に配置する請求項２記載の修飾線配置プログラム。
【請求項４】
ブラウザに表示するデジタルコンテンツの識別情報を含むイベント通知を前記ブラウザから受信し、前記デジタルコンテンツの識別情報と関連付けて修飾線付与位置情報を保持する位置情報管理手段から、修飾線付与位置情報を取得する修飾線付与位置情報取得手段と、
前記修飾線付与位置情報取得手段が取得した修飾線付与位置情報に含まれる修飾線の論理的位置に基づき、前記デジタルコンテンツ上の論理的位置を決定し、決定された前記論理的位置に修飾線のオブジェクトを配置する修飾線配置処理手段と
を有する修飾線配置装置。
【請求項５】
コンピュータによって実行される修飾線配置方法であって、
前記コンピュータが、
ブラウザに表示するデジタルコンテンツの識別情報を含むイベント通知を前記ブラウザから受信し、前記デジタルコンテンツの識別情報と関連付けて修飾線付与位置情報を保持する位置情報管理手段から、修飾線付与位置情報を取得する修飾線付与位置情報取得ステップと、
前記修飾線付与位置情報取得ステップで取得した修飾線付与位置情報に含まれる修飾線の論理的位置に基づき、前記デジタルコンテンツ上の論理的位置を決定し、決定された前記論理的位置に修飾線のオブジェクトを配置する修飾線配置処理ステップと
を実行する修飾線配置方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、修飾線配置プログラム、修飾線配置装置及び修飾線配置方法に係り、特にデジタルコンテンツ上に修飾線を配置する修飾線配置プログラム、修飾線配置装置及び修飾線配置方法に関する。
【背景技術】
【０００２】
一般的に、電子文書の編集にはワードプロセッサが用いられる。また、複数のユーザで同一の電子文書を編集する場合には、元の電子文書をコピーし、コピーした電子文書を複数のユーザがそれぞれワードプロセッサを用いて編集し、最後に、編集後の電子文書の変更部分をマージして元の電子文書に反映させている。
【０００３】
また、デジタルコンテンツの一例としてのＷｅｂページを複数のユーザで編集する場合には、電子文書と同様、元のＷｅｂページのデータをコピーし、コピーしたＷｅｂページのデータを複数のユーザがそれぞれ編集できる。しかしながら、コピーしたＷｅｂページのデータの編集結果を確認する為にはブラウザに戻す必要があった。また、Ｗｅｂページのデータを編集するユーザはＨＴＭＬの記述方法が分からない場合もあった。
【０００４】
したがって、Ｗｅｂページを複数のユーザで編集する場合には、単純に、Ｗｅｂページをコピーしてユーザに編集させることができないこともあった。そこで、Ｗｅｂページを複数のユーザで編集する場合には、編集する各ユーザが修正箇所をＷｅｂページ上に明示して、修正の担当者に修正してもらう方法もとられている。
【０００５】
なお、ブラウザで見ているＷｅｂページに対して修正箇所を明示するためのシステムとしては、例えばＷｅｂアノテーションシステムがある（例えば特許文献１参照）。ＷｅｂアノテーションシステムはＷｅｂページに対して外部から情報を付け加え、付け加えた情報を共有するためのシステムである。
【０００６】
Ｗｅｂアノテーションシステムの技術を利用することで、編集する各ユーザは１つのＷｅｂページに対して修正箇所を各ユーザで共有の修飾線である下線などにより明示しながらＷｅｂページの校正作業を行っていた。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−１５０５４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、Ｗｅｂアノテーションシステムの技術は、Ｗｅｂページ上に、単純に情報を付け加えるものである。したがって、編集する各ユーザが、Ｗｅｂアノテーションシステムの技術を利用することで、１つのＷｅｂページに対して修正箇所を各ユーザで共有の下線により明示しながらＷｅｂページの校正作業を行う場合は、例えば以下のような問題が発生する。
【０００９】
図１はＷｅｂページを記述したＨＴＭＬの一例の構成図である。例えば図１に示すＨＴＭＬで記述されたＷｅｂページをレビューするような場合、レビュアはＷｅｂページの気になる部分を示すため、Ｗｅｂページの構造を変化させずに、Ｗｅｂページ上の該当部分に下線を引くものとする。ここでは図１に示すＨＴＭＬで記述されたＷｅｂページに含まれる文字列「朝から雨」に下線を引く例を説明する。
【００１０】
文字列「朝から雨」に下線を引く場合は図２に示すように、図１のオリジナルのＨＴＭＬへのタグ１の追加とスタイルシート２の用意とにより、オリジナルのＨＴＭＬの構造を変化させず、目的の部分に下線を引くことができる。図２はオリジナルのＨＴＭＬへ追加したタグと用意されたスタイルシートとを表した構成図である。図２に示すオリジナルのＨＴＭＬへのタグ１の追加とスタイルシート２の用意とにより、ブラウザは例えば図３に示すようなＷｅｂページを表示する。図３は該当部分に下線が引かれたＷｅｂページの一例のイメージ図である。図３ではＷｅｂページ上の該当部分である文字列「朝から雨」に下線が引かれている。
【００１１】
ところで、ブラウザの表示サイズ（以下、ブラウザサイズという）はユーザが自由に変更することができる。ブラウザサイズの変更により、ブラウザはＷｅｂページに含まれる文字列「今日は朝から雨だった。」の表示位置を自動的に調整する。一方、文字列「朝から雨」に引かれた下線の表示位置は変更されない。
【００１２】
したがって、図３のＷｅｂページがブラウザに表示されているとき、ブラウザサイズの変更があると、下線は図４に示すように、目的の位置に再現されない。図４は、ブラウザサイズの変更により意図しない位置に下線が引かれたＷｅｂページの一例のイメージ図である。図４ではＷｅｂページ上の下線の意図が不明となっている。
【００１３】
本発明の一実施形態は、上記の点に鑑みなされたもので、デジタルコンテンツ上の目的の位置に修飾線を配置し続けることができる修飾線配置プログラム、修飾線配置装置及び修飾線配置方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題を解決するため、本発明の一実施形態は、コンピュータを、ブラウザに表示するデジタルコンテンツの識別情報を含むイベント通知を前記ブラウザから受信し、前記デジタルコンテンツの識別情報と関連付けて修飾線付与位置情報を保持する位置情報管理手段から、修飾線付与位置情報を取得する修飾線付与位置情報取得手段と、前記修飾線付与位置情報取得手段が取得した修飾線付与位置情報に含まれる修飾線の論理的位置に基づき、前記デジタルコンテンツ上の論理的位置を決定し、決定された前記論理的位置に修飾線のオブジェクトを配置する修飾線配置処理手段として動作させる為の修飾線配置プログラムである。
【００１５】
なお、本発明の一実施形態の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１６】
上述の如く、本発明の一実施形態によれば、デジタルコンテンツ上の目的の位置に修飾線を配置し続けることができる修飾線配置プログラム、修飾線配置装置及び修飾線配置方法を提供可能である。
【図面の簡単な説明】
【００１７】
【図１】Ｗｅｂページを記述したＨＴＭＬの一例の構成図である。
【図２】オリジナルのＨＴＭＬへ追加したタグと用意されたスタイルシートとを表した構成図である。
【図３】該当部分に下線が引かれたＷｅｂページの一例のイメージ図である。
【図４】ブラウザサイズの変更により意図しない位置に下線が引かれたＷｅｂページの一例のイメージ図である。
【図５】本実施例のシステムの一実施例のシステム構成図である。
【図６】本実施例のシステムの他の実施例のシステム構成図である。
【図７】位置情報管理テーブルの一例の構成図である。
【図８】利用者端末の一例の構成図である。
【図９】利用者端末で実現される拡張機能部の一例の処理ブロック図である。
【図１０】コンテンツのロード時又はブラウザのリサイズ時における拡張機能部の処理手順を説明する為のフローチャートである。
【図１１】下線配置処理の手順を表した一例のフローチャートである。
【図１２】ノードに関する情報の一例のイメージ図である。
【図１３】単一行処理の手順を表した一例のフローチャートである。
【図１４】位置情報管理テーブルの一例の構成図である。
【図１５】同一ブロック内改行処理の手順を表した一例のフローチャートである。
【図１６】該当部分に下線が引かれたＷｅｂページの一例のイメージ図である。
【図１７】複数ブロック改行処理の手順を表した一例のフローチャートである。
【図１８】位置情報管理テーブルの一例の構成図である。
【図１９】Ｗｅｂページを記述したＨＴＭＬの一例の構成図である。
【図２０】該当部分に下線が引かれたＷｅｂページの一例のイメージ図である。
【図２１】ツリー構造の一例の構成図である。
【図２２】深さ優先探索で論理的開始位置から論理的終了位置まで保存されるノードの順序を表した模式図である。
【発明を実施するための形態】
【００１８】
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例では修飾線の一例として下線を例に説明するが、取り消し線など如何なる修飾線であってもよい。
【００１９】
（システム構成）
図５は本実施例のシステムの一実施例のシステム構成図である。図５に示す本実施例のシステムは、利用者端末１０，コンテンツサーバ２０，位置情報管理サーバ３０，ネットワーク５０を有する。利用者端末１０，コンテンツサーバ２０及び位置情報管理サーバ３０は、ネットワーク５０を介してデータ通信可能に接続されている。ネットワーク５０はインターネットやＬＡＮなど、データ通信可能な如何なる通信網であってもよい。
【００２０】
利用者端末１０はブラウザ１１がインストールされている。ブラウザ１１はプラグイン１２により拡張機能が追加されている。プラグイン１２はブラウザ１１に拡張機能を追加する為のプログラムの一例である。コンテンツサーバ２０はＷｅｂページ等のデジタルコンテンツ（以下、単にコンテンツと呼ぶ）２１を格納している。位置情報管理サーバ３０は位置情報管理テーブル３１を有している。
【００２１】
図６は本実施例のシステムの他の実施例のシステム構成図である。図６に示す本実施例のシステムは、図５のシステムと同様に、利用者端末１０，コンテンツサーバ２０，位置情報管理サーバ３０，ネットワーク５０を有する。利用者端末１０，コンテンツサーバ２０及び位置情報管理サーバ３０は、ネットワーク５０を介してデータ通信可能に接続されている。
【００２２】
利用者端末１０はブラウザ１１がインストールされている。また、コンテンツサーバ２０はコンテンツ２１を格納している。ＪａｖａＳｃｒｉｐｔ等のスクリプト２２はコンテンツ２１の一部を構成する。スクリプト２２は、ブラウザ１１に拡張機能を追加する為のプログラムの一例である。位置情報管理サーバ３０は位置情報管理テーブル３１を有している。
【００２３】
このように、図５のシステムはプラグイン１２によりブラウザ１１の拡張機能を実現している。また、図６のシステムはスクリプト２２によりブラウザ１１の拡張機能を実現している。
【００２４】
図７は位置情報管理テーブルの一例の構成図である。図７の位置情報管理テーブル３１は対象ＵＲＬ，スタートＸＰａｔｈ（Ｓｔａｒｔ＿ＸＰａｔｈ），スタートＸＰａｔｈオフセット（Ｏｆｆｓｅｔ），エンドＸＰａｔｈ，エンドＸＰａｔｈオフセットをデータ項目として含む下線付与位置情報が登録されている。
【００２５】
対象ＵＲＬは下線を付与したコンテンツ２１を特定するものである。スタートＸｐａｔｈ及びスタートＸＰａｔｈオフセットは付与した下線のコンテンツ２１内の論理的開始位置を特定するものである。エンドＸｐａｔｈ及びエンドＸＰａｔｈオフセットは付与した下線のコンテンツ２１内の論理的終了位置を特定するものである。
【００２６】
なお、図７の位置情報管理テーブル３１はユーザがＷｅｂアノテーションシステムを利用し、ブラウザ１１で見ているコンテンツ２１に下線を引くことで下線付与位置情報が登録される。Ｗｅｂアノテーションシステムによる位置情報管理テーブル３１への下線付与位置情報の登録は予め行われているものとする。
【００２７】
図５及び図６に示すシステムでは利用者端末１０のブラウザ１１にコンテンツサーバ２０からコンテンツ２１がロードされる。ブラウザ１１にコンテンツ２１がロードされた時点又はユーザからブラウザサイズを変更するリサイズの要求を受けた時点で、プラグイン１２又はスクリプト２２により実現されるブラウザ１１の拡張機能（以下、拡張機能部と言う）は位置情報管理サーバ３０へアクセスして、ロードされたコンテンツ２１の下線付与位置情報が位置情報管理テーブル３１に登録されているかを確認する。
【００２８】
ロードされたコンテンツ２１の下線付与位置情報が位置情報管理テーブル３１に登録されていれば、拡張機能部はロードされたコンテンツ２１の下線付与位置情報を位置情報管理テーブル３１から取得する。ロードされたコンテンツ２１の下線付与位置情報が位置情報管理テーブル３１に登録されていなければ、拡張機能部はロードされたコンテンツ２１の下線付与位置情報を位置情報管理テーブル３１から取得しない。
【００２９】
拡張機能部はコンテンツ２１の下線付与位置情報を取得した場合、取得したコンテンツ２１の下線付与位置情報を用いて、後述の下線配置処理を行うことにより、コンテンツ２１上に下線を付与する。その後、ブラウザ１１はコンテンツ２１を表示する。
【００３０】
（利用者端末１０の構成）
図８は利用者端末の一例の構成図である。利用者端末１０は、それぞれバスＢで相互に接続された入力装置６１，出力装置６２，ドライブ装置６３，補助記憶装置６４，主記憶装置６５，演算処理装置６６及びインターフェース装置６７を有する。
【００３１】
入力装置６１はキーボードやマウスなどである。入力装置６１は各種信号を入力するために用いられる。出力装置６２はディスプレイ装置などである。出力装置６２は各種ウインドウやデータ等を表示するために用いられる。インターフェース装置６７はモデム，ＬＡＮカードなどである。インターフェース装置６７はネットワーク５０に接続する為に用いられる。
【００３２】
本実施例に掛かるプラグイン１２やスクリプト２２等の下線配置プログラムは利用者端末１０を制御する各種プログラムの少なくとも一部である。下線配置プログラムは例えば記録媒体６８の配布やネットワーク５０からのダウンロードなどによって提供される。下線配置プログラムを記録した記録媒体６８はＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００３３】
また、下線配置プログラムを記録した記録媒体６８がドライブ装置６３にセットされると、下線配置プログラムは記録媒体６８からドライブ装置６３を介して補助記憶装置６４にインストールされる。ネットワーク５０からダウンロードされた下線配置プログラムはインターフェース装置６７を介して補助記憶装置６４にインストールされる。
【００３４】
補助記憶装置６４はインストールされた下線配置プログラムを格納すると共に、必要なファイル，データ等を格納する。主記憶装置６５は、補助記憶装置６４から下線配置プログラムを読み出して格納する。そして、演算処理装置６６は主記憶装置６５に格納された下線配置プログラムに従って、後述するような各種処理ブロックを実現している。
【００３５】
図９は利用者端末で実現される拡張機能部の一例の処理ブロック図である。図９の拡張機能部７０は、イベント受信部７１，下線付与位置情報取得部７２，下線配置処理部７３及び下線配置終了通知部７４を有する。なお、イベント受信部７１，下線付与位置情報取得部７２，下線配置処理部７３及び下線配置終了通知部７４は、演算処理装置６６がプラグイン１２又はスクリプト２２を実行することにより実現される。図９に示した拡張機能部７０の各種処理ブロックの処理手順は以下のようになる。
【００３６】
（処理手順）
図１０はコンテンツのロード時又はブラウザのリサイズ時における拡張機能部の処理手順を説明する為のフローチャートである。ステップＳ１に進み、利用者端末１０のブラウザ１１はコンテンツサーバ２０からのコンテンツ２１のロードを完了するか、ユーザからブラウザサイズを変更するリサイズの要求を受ける。
【００３７】
コンテンツ２１のロードが完了するか、ユーザからリサイズの要求を受けると、ブラウザ１１は拡張機能部７０へイベント通知を行う。イベント通知があると、拡張機能部７０のイベント受信部７１はステップＳ２に進み、下線配置処理の開始を下線付与位置情報取得部７２に通知する。
【００３８】
ステップＳ３に進み、下線付与位置情報取得部７２はブラウザ１１からコンテンツ２１のＵＲＬを取得する。なお、図６のシステムの場合はコンテンツ２１のＵＲＬが固定値となる。ステップＳ４に進み、下線付与位置情報取得部７２は位置情報管理サーバ３０へアクセスし、コンテンツ２１のＵＲＬを位置情報管理サーバ３０へ送信する。
【００３９】
ステップＳ５に進み、位置情報管理サーバ３０はブラウザ１１にロードされているコンテンツ２１のＵＲＬを取得する。ステップＳ６に進み、位置情報管理サーバ３０は取得したコンテンツ２１のＵＲＬをキーとして位置情報管理テーブル３１を検索する。ステップＳ７に進み、位置情報管理サーバ３０は検索された全ての下線付与位置情報を拡張機能部７０へ送信する。なお、ステップＳ６において位置情報管理サーバ３０により検索される下線付与位置情報はコンテンツ２１のＵＲＬを対象ＵＲＬとして持つ位置情報管理テーブル３１のレコードである。
【００４０】
ステップＳ８に進み、拡張機能部７０の下線配置処理部７３は位置情報管理サーバ３０により検索された全ての下線付与位置情報を受信する。ステップＳ９に進み、下線配置処理部７３は受信した全ての下線付与位置情報について下線の配置が完了したか否かを判定する。
【００４１】
受信した全ての下線付与位置情報について下線の配置が完了していなければ、下線配置処理部７３はステップＳ１０に進み、下線の配置が完了していない下線付与位置情報について後述の下線配置処理を行い、ステップＳ９に戻る。
【００４２】
なお、受信した全ての下線付与位置情報について下線の配置が完了していれば、下線配置処理部７３は下線の配置完了を下線配置終了通知部７４に通知する。下線の配置完了が通知されると、下線配置終了通知部７４はステップＳ１１に進み、下線の配置終了をブラウザ１１に通知する。下線の配置終了が通知されると、ブラウザ１１はステップＳ１２に進み、下線が配置されたコンテンツ２１を表示する。
【００４３】
ステップＳ１０の下線配置処理の詳細は図１１に示すようになる。図１１は下線配置処理の手順を表した一例のフローチャートである。ステップＳ２１に進み、下線配置処理部７３は位置情報管理サーバ３０から受信した図７のような下線付与位置情報からスタートＸｐａｔｈ及びスタートＸＰａｔｈオフセットを下線のコンテンツ２１内の論理的開始位置として取得し、論理的開始位置から下線の開始位置座標を取得する。
【００４４】
また、ステップＳ２２に進み、下線配置処理部７３は下線付与位置情報からエンドＸｐａｔｈ及びエンドＸＰａｔｈオフセットを下線のコンテンツ２１内の論理的終了位置として取得し、論理的終了位置から下線の終了位置座標を取得する。
【００４５】
なお、拡張機能部７０の下線配置処理部７３は、Ｗ３Ｃで規定されているＤｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ（ＤＯＭ）の定義に従い、図１２に示すように、ＸＰａｔｈで指示されるノードに関する情報を取得できる。図１２はノードに関する情報の一例のイメージ図である。下線配置処理部７３はノードに関する情報として、親ノード表示範囲，親ノードの高さ，文字の大きさ，行間の幅，コンテンツ２１上の表示位置としての開始位置座標及び終了位置座標をブラウザ１１から取得できる。
【００４６】
ステップＳ２３に進み、下線配置処理部７３は下線付与位置情報から取得したスタートＸｐａｔｈ及びエンドＸｐａｔｈが同じかを判定することで、下線の開始位置及び終了位置が同一のノード（ブロック）内であるか否かを判定する。スタートＸｐａｔｈ及びエンドＸｐａｔｈが同じであれば、下線配置処理部７３は下線の開始位置及び終了位置が同一ブロック内であると判定し、ステップＳ２４に進む。また、スタートＸｐａｔｈ及びエンドＸｐａｔｈが同じでなければ、下線配置処理部７３は下線の開始位置及び終了位置が同一ブロック内でないと判定し、ステップＳ２７に進む。
【００４７】
ステップＳ２４では、下線配置処理部７３が、下線の開始位置Ｙ座標及び終了位置Ｙ座標が同じかを判定する。下線の開始位置Ｙ座標及び終了位置Ｙ座標が同じであれば、下線配置処理部７３はステップＳ２５に進み、後述の単一行処理により下線の開始位置座標から終了位置座標まで下線を１つ配置したあと、下線配置処理を終了する。
【００４８】
下線の開始位置Ｙ座標及び終了位置Ｙ座標が同じでなければ、下線配置処理部７３はステップＳ２６に進み、後述の同一ブロック内改行処理により開始位置座標から終了位置座標まで改行を計測し、下線を複数配置したあと、下線配置処理を終了する。
【００４９】
ステップＳ２７では、下線配置処理部７３が、後述の複数ブロック改行処理により開始位置座標から終了位置座標の間に含まれる複数のブロックを計測し、下線を複数配置したあと、下線配置処理を終了する。
【００５０】
ステップＳ２５の単一行処理の詳細は図１３に示すようになる。図１３は単一行処理の手順を表した一例のフローチャートである。なお、ここでは位置情報管理テーブル３１が図１４、Ｗｅｂページを記述したＨＴＭＬが図１、ブラウザ１１により表示されるＷｅｂページが図３であるときの処理を一例として説明する。
【００５１】
図１４は位置情報管理テーブルの一例の構成図である。図１４の位置情報管理テーブル３１はスタートＸｐａｔｈ及びエンドＸｐａｔｈが同じ例を表している。また、ブラウザ１１により表示されるＷｅｂページ上の文字列「今日は朝から雨だった」は図３のように改行されていないものとする。
【００５２】
ステップＳ３１に進み、下線配置処理部７３は終了位置Ｘ座標と開始位置Ｘ座標との差を下線の長さとして算出する。ステップＳ３２に進み、下線配置処理部７３は開始位置Ｘ座標を下線開始Ｘ座標とする。ステップＳ３３に進み、下線配置処理部７３は開始位置Ｙ座標にフォントサイズ（文字の大きさ）を加算して下線開始Ｙ座標を算出する。
【００５３】
ステップＳ３４に進み、下線配置処理部７３は下線開始Ｘ座標及び下線開始Ｙ座標から下線の長さのＤＩＶ要素を挿入（配置）する。ＤＩＶ要素は下線のオブジェクト（下線表示用のオブジェクト）の一例である。つまり、本実施例ではＨＴＭＬ等で用いられる下線表示用のタグを用いずに画像やブロックを指定するタグ（ｄｉｖ）を用いてＷｅｂページ上に下線を配置する。
【００５４】
下線は図１３のフローチャートの処理により、下線付与位置情報の論理的開始位置である文字「朝」から論理的終了位置である文字「雨」まで、言い換えればＷｅｂページ上の文字列「朝から雨」に引かれることになる。
【００５５】
ステップＳ２６の同一ブロック内改行処理の詳細は図１５に示すようになる。図１５は同一ブロック内改行処理の手順を表した一例のフローチャートである。なお、ここでは位置情報管理テーブル３１が図１４、Ｗｅｂページを記述したＨＴＭＬが図１、ブラウザ１１に表示されるＷｅｂページが図１６であるときの処理を一例として説明する。
【００５６】
図１６は、該当部分に下線が引かれたＷｅｂページの一例のイメージ図である。図１６ではブラウザ１１により表示されるＷｅｂページ上の文字列「今日は朝から雨だった」がブラウザサイズの影響により文字「雨」の前で改行されている。
【００５７】
ステップＳ４１に進み、下線配置処理部７３は、開始位置Ｘ座標を下線開始Ｘ座標とする。ステップＳ４２に進み、下線配置処理部７３は開始位置Ｙ座標にフォントサイズを加算して下線開始Ｙ座標を算出する。ステップＳ４３に進み、下線配置処理部７３は下線開始Ｙ座標が終了位置Ｙ座標より大きいか否かにより、全ての下線を配置したか否かを判定する。
【００５８】
ステップＳ４３の処理では、下線開始Ｙ座標が終了位置Ｙ座標より大きくなければ配置していない下線があると判定される。最初は、下線開始Ｙ座標が終了位置Ｙ座標より大きくないと判定される。
【００５９】
下線開始Ｙ座標が終了位置Ｙ座標より大きくないと判定されると、下線配置処理部７３はステップＳ４４に進み、下線開始Ｙ座標と終了位置Ｙ座標とが等しいか否かにより最後の下線であるか否かを判定する。ステップＳ４４の処理では、下線開始Ｙ座標と終了位置Ｙ座標とが等しければ最後の下線であると判定される。最初は、下線開始Ｙ座標と終了位置Ｙ座標とが等しくないと判定される。
【００６０】
下線開始Ｙ座標と終了位置Ｙ座標とが等しくないと判定されると、下線配置処理部７３はステップＳ４５に進み、ブロック位置Ｘ座標及びブロック幅から得られるＸ座標と下線開始Ｘ座標との差を下線の長さとして算出する。例えば図１６の例ではＷｅｂページ上の文字列「朝から」に引く下線の長さを算出する。
【００６１】
ステップＳ４７に進み、下線配置処理部７３は図１３に示す単一行処理のステップＳ３４の処理を実行する。例えば図１６の例ではＷｅｂページ上の文字列「朝から」に下線を引く。
【００６２】
ステップＳ４８に進み、下線配置処理部７３はブロック位置Ｘ座標を新たな下線開始Ｘ座標とする。ステップＳ４９に進み、下線配置処理部７３は下線開始Ｙ座標にフォントサイズを加算して新たな下線開始Ｙ座標とする。ステップＳ４３に戻り、下線配置処理部７３は下線開始Ｙ座標が終了位置Ｙ座標より大きいかを判定する。ここでも、下線開始Ｙ座標が終了位置Ｙ座標より大きくないと判定される。
【００６３】
下線開始Ｙ座標が終了位置Ｙ座標より大きくないと判定されると、下線配置処理部７３はステップＳ４４に進み、下線開始Ｙ座標と終了位置Ｙ座標とが等しいか否かにより最後の下線であるか否かを判定する。ここでは、下線開始Ｙ座標と終了位置Ｙ座標とが等しく最後の下線であると判定される。下線開始Ｙ座標と終了位置Ｙ座標とが等しいと判定されると、下線配置処理部７３はステップＳ４６に進み、終了位置Ｘ座標と下線開始Ｘ座標との差を下線の長さとして算出する。図１６の例ではＷｅｂページ上の文字列「雨」に引く下線の長さを算出する。ステップＳ４７に進み、下線配置処理部７３は図１３に示す単一行処理のステップＳ３４の処理を実行する。例えば図１６の例ではＷｅｂページ上の文字列「雨」に下線を引く。
【００６４】
ステップＳ４８に進み、下線配置処理部７３はブロック位置Ｘ座標を新たな下線開始Ｘ座標とする。ステップＳ４９に進み、下線配置処理部７３は下線開始Ｙ座標にフォントサイズを加算して新たな下線開始Ｙ座標を算出する。
【００６５】
ステップＳ４３に戻り、下線配置処理部７３は下線開始Ｙ座標が終了位置Ｙ座標より大きいかを判定する。ここでは、下線開始Ｙ座標が終了位置Ｙ座標より大きいため、全ての下線を配置したと判定し、同一ブロック内改行処理を終了する。
【００６６】
下線は図１５のフローチャートの処理により、下線付与位置情報の論理的開始位置である文字「朝」から論理的終了位置である文字「雨」まで、言い換えればＷｅｂページ上の改行された文字列「朝から雨」に引かれることになる。
【００６７】
ステップＳ２７の複数ブロック改行処理の詳細は図１７に示すようになる。図１７は複数ブロック改行処理の手順を表した一例のフローチャートである。なお、ここでは位置情報管理テーブル３１が図１８、Ｗｅｂページを記述したＨＴＭＬが図１９、ブラウザ１１に表示されるＷｅｂページが図２０であるときの処理を一例として説明する。
【００６８】
図１８は位置情報管理テーブルの一例の構成図である。図１８の位置情報管理テーブル３１はスタートＸｐａｔｈ及びエンドＸｐａｔｈが異なる例を表している。図１９はＷｅｂページを記述したＨＴＭＬの一例の構成図である。図２０は該当部分に下線が引かれたＷｅｂページの一例のイメージ図である。図２０では、ブラウザ１１により表示されるＷｅｂページ上の文字列「今日は朝から雨だった」が文字「か」の前で改行されている。
【００６９】
ステップＳ５１に進み、下線配置処理部７３は深さ優先探索で論理的開始位置から論理的終了位置までノードを保存する。例えばＨＴＭＬが図２１のツリー構造の場合、下線配置処理部７３は図２２に示すような順番でノードを保存する。
【００７０】
ステップＳ５２に進み、下線配置処理部７３は、保存されたノードがないか否かを判定する。保存されたノードがあれば、下線配置処理部７３はステップＳ５３に進み、保存されたノードから一つのノードを取り出す。ステップＳ５４に進み、下線配置処理部７３は取り出したノードがテキストノードであるか否かを判定する。
【００７１】
テキストノードでなければ、下線配置処理部７３はステップＳ５２に戻る。一方、テキストノードであれば、下線配置処理部７３はステップＳ５５に進み、ステップＳ５３で取り出した一つのノードの深さ優先探索における位置を判定する。最初は、深さ優先探索における位置として開始と判定される。
【００７２】
開始と判定されると、下線配置処理部７３はステップＳ５６に進み、終了位置座標をテキストの最後とする。なお、開始位置座標は下線付与位置情報の論理的開始位置から取得する。
【００７３】
中間と判定されると、下線配置処理部７３はステップＳ５７に進み、開始位置座標をテキストの先頭とする。ステップＳ５７に続いてステップＳ５８に進み、下線配置処理部７３は終了位置座標をテキストの最後とする。
【００７４】
終了と判定されると、下線配置処理部７３はステップＳ５９に進み、開始位置座標をテキストの先頭とする。なお、終了位置座標は下線付与位置情報の論理的終了位置から取得する。
【００７５】
ステップＳ５６，Ｓ５８，Ｓ５９に続いてステップＳ６０に進み、下線配置処理部７３は図１５の同一ブロック内改行処理を実行したあと、ステップＳ５２に戻る。ステップＳ５２において保存されたノードがなければ、下線配置処理部７３は複数ブロック改行処理を終了する。
【００７６】
図１７のフローチャートの処理は複数のブロックを跨る下線をブロック毎に分けることにより、同一ブロック内改行処理で下線の配置を実現するものである。下線は、図１７のフローチャートの処理により、下線付与位置情報の論理的開始位置である文字「朝」から論理的終了位置である文字「雨」まで、言い換えればＷｅｂページ上の改行された文字列である「朝から雨」に引かれることになる。
【００７７】
（効果）
以上、本実施例のシステムによればブラウザ１１にコンテンツ２１がロードされた時点又はユーザからブラウザサイズを変更するリサイズの要求を受けた時点で、Ｗｅｂページ上の論理的位置に下線を動的に配置することで、Ｗｅｂページ上の目的の位置に下線を再現できる。即ち、本実施例によれば、Ｗｅｂページ上の目的の位置に下線を配置し続けることができる。
【００７８】
本発明は、以下に記載する付記のような構成が考えられる。
（付記１）
コンピュータを、
ブラウザに表示するデジタルコンテンツの識別情報を含むイベント通知を前記ブラウザから受信し、前記デジタルコンテンツの識別情報と関連付けて修飾線付与位置情報を保持する位置情報管理手段から、修飾線付与位置情報を取得する修飾線付与位置情報取得手段と、
前記修飾線付与位置情報取得手段が取得した修飾線付与位置情報に含まれる修飾線の論理的位置に基づき、前記デジタルコンテンツ上の論理的位置を決定し、決定された前記論理的位置に修飾線のオブジェクトを配置する修飾線配置処理手段と
して動作させる為の修飾線配置プログラム。
（付記２）
前記修飾線配置処理手段は、前記修飾線付与位置情報取得手段が取得した修飾線付与位置情報に含まれる修飾線の第一の論理的開始位置及び第一の論理的終了位置に基づき、前記デジタルコンテンツ上の第二の論理的開始位置及び第二の論理的終了位置を決定し、決定された前記第二の論理的開始位置及び前記第二の論理的終了位置に基づいて決定された修飾線の長さと、行内の前記第二の論理的開始位置以降に描画可能な長さと、の差分を次行の修飾線の長さとして決定し、決定された前記長さの修飾線のオブジェクトを次行に配置する付記１記載の修飾線配置プログラム。
（付記３）
前記修飾線配置処理手段は、前記修飾線付与位置情報取得手段が取得した修飾線付与位置情報に含まれる修飾線の第一の論理的開始位置及び第一の論理的終了位置に基づき、前記デジタルコンテンツ上の第二の論理的開始位置及び第二の論理的終了位置を決定し、
前記修飾線の第一の論理的開始位置及び第一の論理的終了位置に基づき、修飾線が複数ブロックに跨るときに、前記修飾線の第一の論理的開始位置から第一の論理的終了位置まで深さ優先探索でブロックを保存し、一つずつ取り出した前記ブロックがテキストノードであるときに、一つずつ取り出した前記ブロックの深さ優先探索における位置が開始，中間，終了の何れであるかを判定して、
前記ブロックの深さ優先探索における位置が開始であるときに前記第一の論理的開始位置に基づき前記デジタルコンテンツ上の第二の論理的開始位置を決定すると共に、前記ブロックのテキストの最後に基づき前記デジタルコンテンツ上の第二の論理的終了位置を決定し、
前記ブロックの深さ優先探索における位置が中間であるときに前記ブロックのテキストの先頭に基づき前記デジタルコンテンツ上の第二の論理的開始位置を決定すると共に、前記ブロックのテキストの最後に基づき前記デジタルコンテンツ上の第二の論理的終了位置を決定し、
前記ブロックの深さ優先探索における位置が終了であるときに前記ブロックのテキストの先頭に基づき前記デジタルコンテンツ上の第二の論理的開始位置を決定すると共に、前記第一の論理的終了位置に基づき前記デジタルコンテンツ上の第二の論理的終了位置を決定し、
決定された前記第二の論理的開始位置及び前記第二の論理的終了位置に基づいて決定された修飾線の長さと、行内の前記第二の論理的開始位置以降に描画可能な長さと、の差分を次行の修飾線の長さとして決定し、決定された前記長さの修飾線のオブジェクトを次行に配置する付記２記載の修飾線配置プログラム。
（付記４）
前記修飾線配置処理手段は、前記修飾線付与位置情報取得手段が取得した修飾線付与位置情報に含まれる修飾線の論理的開始位置及び論理的終了位置に基づき、修飾線が同一ブロック内に含まれ、修飾線の論理的開始位置及び論理的終了位置のＹ座標が異なるときに同一ブロック内改行処理を選択する付記２又は３記載の修飾線配置プログラム。
（付記５）
前記修飾線配置処理手段は、前記修飾線付与位置情報取得手段が取得した修飾線付与位置情報に含まれる修飾線の論理的開始位置及び論理的終了位置に基づき、修飾線が同一ブロック内に含まれ、修飾線の論理的開始位置及び論理的終了位置のＹ座標が同じときに単一行処理を選択する付記２乃至４何れか一項記載の修飾線配置プログラム。
（付記６）
前記コンピュータを、更に、
前記ブラウザからの前記デジタルコンテンツのロード完了又は前記ブラウザサイズを変更するリサイズの要求をイベント通知として受信すると、修飾線配置処理の開始を通知するイベント受信手段として機能させる付記１乃至５何れか一項記載の修飾線配置プログラム。
（付記７）
前記修飾線配置プログラムは、前記ブラウザに機能を追加するプログラム又は前記デジタルコンテンツの一部を構成するスクリプトである付記１乃至６何れか一項記載の修飾線配置プログラム。
（付記８）
ブラウザに表示するデジタルコンテンツの識別情報を含むイベント通知を前記ブラウザから受信し、前記デジタルコンテンツの識別情報と関連付けて修飾線付与位置情報を保持する位置情報管理手段から、修飾線付与位置情報を取得する修飾線付与位置情報取得手段と、
前記修飾線付与位置情報取得手段が取得した修飾線付与位置情報に含まれる修飾線の論理的位置に基づき、前記デジタルコンテンツ上の論理的位置を決定し、決定された前記論理的位置に修飾線のオブジェクトを配置する修飾線配置処理手段と
を有する修飾線配置装置。
（付記９）
コンピュータによって実行される修飾線配置方法であって、
前記コンピュータが、
ブラウザに表示するデジタルコンテンツの識別情報を含むイベント通知を前記ブラウザから受信し、前記デジタルコンテンツの識別情報と関連付けて修飾線付与位置情報を保持する位置情報管理手段から、修飾線付与位置情報を取得する修飾線付与位置情報取得ステップと、
前記修飾線付与位置情報取得ステップで取得した修飾線付与位置情報に含まれる修飾線の論理的位置に基づき、前記デジタルコンテンツ上の論理的位置を決定し、決定された前記論理的位置に修飾線のオブジェクトを配置する修飾線配置処理ステップと
を実行する修飾線配置方法。
【００７９】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、実施例において処理の主体がプログラムのように記載されている箇所は、演算処理装置６６がプログラムを実行することにより処理することを表している。
【符号の説明】
【００８０】
１    タグ
２    スタイルシート
１０    利用者端末
１１    ブラウザ
１２    プラグイン
２０    コンテンツサーバ
２１    コンテンツ
２２    スクリプト
３０    位置情報管理サーバ
３１    位置情報管理テーブル
５０    ネットワーク
６１    入力装置
６２    出力装置
６３    ドライブ装置
６４    補助記憶装置
６５    主記憶装置
６６    演算処理装置
６７    インターフェース装置
６８    記録媒体
７０    拡張機能部
７１    イベント受信部
７２    下線付与位置情報取得部
７３    下線配置処理部
７４    下線配置終了通知部
Ｂ    バス
【図１】
2011003011.tif 000003
【図２】
2011003011.tif 000004
【図３】
2011003011.tif 000005
【図４】
2011003011.tif 000006
【図５】
2011003011.tif 000007
【図６】
2011003011.tif 000008
【図７】
2011003011.tif 000009
【図８】
2011003011.tif 000010
【図９】
2011003011.tif 000011
【図１０】
2011003011.tif 000012
【図１１】
2011003011.tif 000013
【図１２】
2011003011.tif 000014
【図１３】
2011003011.tif 000015
【図１４】
2011003011.tif 000016
【図１５】
2011003011.tif 000017
【図１６】
2011003011.tif 000018
【図１７】
2011003011.tif 000019
【図１８】
2011003011.tif 000020
【図１９】
2011003011.tif 000021
【図２０】
2011003011.tif 000022
【図２１】
2011003011.tif 000023
【図２２】
2011003011.tif 000024