(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024090290
(43)【公開日】2024-07-04
(54)【発明の名称】情報処理方法、プログラム、および記憶媒体
(51)【国際特許分類】
G06F 40/117 20200101AFI20240627BHJP
【FI】
G06F40/117
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2022206088
(22)【出願日】2022-12-22
(71)【出願人】
【識別番号】522039773
【氏名又は名称】株式会社 ラセングル
(74)【代理人】
【識別番号】100153246
【弁理士】
【氏名又は名称】伊吹 欽也
(72)【発明者】
【氏名】石田 臣
【テーマコード(参考)】
5B109
【Fターム(参考)】
5B109NH07
(57)【要約】
【課題】
ある文章群から所定のポリシーでレイアウトされた文章群を作成した際、その利便性を向上可能な情報処理方法、プログラム、および記憶媒体を提供すること。
【解決手段】
本発明の一実施形態に係る情報処理方法は、所定のレイアウトポリシーに対応付けられた特殊記号と紐づくように文字列が記載された原文200を取得し(ステップS31)、特殊記号を用いて原文200の文字列の各々に対するレイアウトの仕方を特定し、該特定に応じてHTMLタグを生成し、該生成されたHTMLタグの各々に識別子を付与し(ステップS33、S34)、識別子が付与されたHTMLタグを含むHTML文書によってレンダリングし(ステップS35)、レンダリングにより得られた第2の文章群において配置された文字列の各々の絶対座標を取得する(ステップS36)。
【選択図】
図3
【特許請求の範囲】
【請求項1】
テキストデータである第1の文章群から、所定のレイアウトポリシーによりレイアウトされ、HTML文書である第2の文章群を生成する情報処理方法であって、
前記レイアウトポリシーに対応付けられた特殊記号と紐づくように文字列が記載された前記第1の文章群を取得する工程と、
前記第1の文章群の文字列の各々に対する、前記HTML文書に含まれるHTML要素を生成する工程であって、前記特殊記号を用いて前記第1の文章群の文字列の各々に対するレイアウトの仕方を特定し、該特定に応じてHTMLタグを生成し、該生成されたHTMLタグの各々に識別子を付与する工程と、
前記識別子が付与されたHTMLタグを含むHTML文書によってレンダリングする工程と、
前記レンダリングにより得られた第2の文章群において配置された文字列の各々の絶対座標を取得する工程と
を有することを特徴とする情報処理方法。
【請求項2】
コンピュータに、テキストデータである第1の文章群から、所定のレイアウトポリシーによりレイアウトされ、HTML文書である第2の文章群を生成する情報処理方法を実行させるプログラムであって、
前記情報処理方法は、
前記レイアウトポリシーに対応付けられた特殊記号と紐づくように文字列が記載された前記第1の文章群を取得する工程と、
前記第1の文章群の文字列の各々に対する、前記HTML文書に含まれるHTML要素を生成する工程であって、前記特殊記号を用いて前記第1の文章群の文字列の各々に対するレイアウトの仕方を特定し、該特定に応じてHTMLタグを生成し、該生成されたHTMLタグの各々に識別子を付与する工程と、
前記識別子が付与されたHTMLタグを含むHTML文書によってレンダリングする工程と、
前記レンダリングにより得られた第2の文章群において配置された文字列の各々の絶対座標を取得する工程と
を有することを特徴とするプログラム。
【請求項3】
請求項2に記載のプログラムを記憶したコンピュータ読取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理方法、プログラム、および記憶媒体に関する。
【背景技術】
【0002】
映画やテレビ番組、舞台、さらにはゲーム等のコンテンツにおいて、該コンテンツの進行やストーリーに関する各演者やキャラクタのセリフやシーンなどの小見出し、さらにはスタッフの動き方などが記載された台本や脚本といった文書が作成されることがあるが、こういった文書作成においては、作家といった作り手が台本や脚本の原文を作成し、それらを監督や演者/声優、製作スタッフなどが活用する、という流れが多い。すなわち、コンテンツの作り手と使い手とが別、というコンテンツの制作プロセスは多いのである。
【0003】
例えば、台本や脚本といった文書の場合、ストーリーの章や節の冒頭部分に対応する小見出しが記載されたり、各セリフとそのセリフに対応する演者名とが紐づくようにレイアウトされることが多い。このようにレイアウトされた文書は見易く構成されているので、監督や演者といったコンテンツの使い手側には非常に好ましいものとなる。一方、上記レイアウトされた文書の作成にあたっては、該レイアウトを構築するためのポリシー(ルールや決まり)に則る必要があるが、各文字列(セリフの話者名やセリフなど)をポリシーに沿って配置したり、所定の文字列を枠で囲ったりしなければならず、レイアウト構築のための作業が発生する。作家といったコンテンツの作り手にとってはより質の高い/魅力的なストーリーを作成することに注力したいであろう。よって、コンテンツの作り手に対しては、構想したストーリーの文章化に集中して欲しく、レイアウト作業まで行わせるような事態はなるべく避けたいところであるかもしれない。
【0004】
さて、台本調にレイアウトされていないコンテンツの原文を台本調に変換するWebアプリも登場してきている(非特許文献1参照)。こちらのWebアプリは、台本調にレイアウトされていない原文を入力欄に入力すると、小見出しや演者とセリフが紐づいた形式の縦書きの台本に変換するものである。よって、例えば、作り手としての作家がレイアウトを気にすることなく原稿を作成し、上記Webアプリの入力欄に原稿データを入力すると、該原稿を台本調にレイアウトされたファイルに変換するので、作り手は台本調にレイアウトする作業を行う必要が無くなる。
【先行技術文献】
【特許文献】
【0005】
【非特許文献1】台本ジェイピー Daihon.jp ボイスドラマの台本から縦書きPDFを生成するWebアプリ、インターネット<https://daihon.jp/>
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1に開示の技術は、レイアウトされていない原文を入力するだけで台本調のレイアウトが形成された台本が出力されるので、コンテンツの作り手はレイアウト構築の手間をかけることなくストーリーの創作に専念できるので好ましい。しかしながら、所定のレイアウトがなされていない文書(原文など)を、所定のレイアウトがなされた文書(台本など)に変換する技術において、まだまだ解決しなければならない課題がある。
【0007】
例えば、原文から台本を作成し、該台本を複数人が別々に活用する際、ある文字列について台本と原文とを相互に参照し合いたい場合(台本中で誤字を発見した場合や、台本を見たある使用者が所定のセリフの変更を希望し作家や他の使用者と議論したい場合など)、非特許文献1の技術では、台本中の各文字列(例えば、セリフ)が原文中のどの部分に記載されているか、であってり、原文中のある文字列が台本中のどこにあるのかをすぐには特定することが難しい。特に原文の分量が多い場合は、これら特定はより困難なものとなる。
【0008】
本発明は、このような課題に鑑みてなされたものであって、その目的とするところは、ある文章群から所定のポリシーでレイアウトされた文章群を作成した際、その利便性を向上可能な情報処理方法、プログラム、および記憶媒体を提供することにある。
【課題を解決するための手段】
【0009】
このような目的を達成するために、本発明の第一の態様は、テキストデータである第1の文章群から、所定のレイアウトポリシーによりレイアウトされ、HTML文書である第2の文章群を生成する情報処理方法であって、前記レイアウトポリシーに対応付けられた特殊記号と紐づくように文字列が記載された前記第1の文章群を取得する工程と、前記第1の文章群の文字列の各々に対する、前記HTML文書に含まれるHTML要素を生成する工程であって、前記特殊記号を用いて前記第1の文章群の文字列の各々に対するレイアウトの仕方を特定し、該特定に応じてHTMLタグを生成し、該生成されたHTMLタグの各々に識別子を付与する工程と、前記識別子が付与されたHTMLタグを含むHTML文書によってレンダリングする工程と、前記レンダリングにより得られた第2の文章群において配置された文字列の各々の絶対座標を取得する工程とを有することを特徴とする。
【0010】
本発明の第二の態様は、コンピュータに、テキストデータである第1の文章群から、所定のレイアウトポリシーによりレイアウトされ、HTML文書である第2の文章群を生成する情報処理方法を実行させるプログラムであって、前記情報処理方法は、前記レイアウトポリシーに対応付けられた特殊記号と紐づくように文字列が記載された前記第1の文章群を取得する工程と、前記第1の文章群の文字列の各々に対する、前記HTML文書に含まれるHTML要素を生成する工程であって、前記特殊記号を用いて前記第1の文章群の文字列の各々に対するレイアウトの仕方を特定し、該特定に応じてHTMLタグを生成し、該生成されたHTMLタグの各々に識別子を付与する工程と、前記識別子が付与されたHTMLタグを含むHTML文書によってレンダリングする工程と、前記レンダリングにより得られた第2の文章群において配置された文字列の各々の絶対座標を取得する工程とを有することを特徴とする。
【0011】
本発明の第三の態様は、本発明の第二の態様に係るプログラムを記憶したコンピュータ読取り可能な記憶媒体である。
【発明の効果】
【0012】
本発明によれば、ある文章群から所定のポリシーでレイアウトされた文章群を作成した際、その利便性を向上可能である。
【図面の簡単な説明】
【0013】
【
図1】本発明の一実施形態に係る情報処理装置の概略構成を示す図である。
【
図2】本発明の一実施形態に係る第1の文書群および第2の文書群を説明するための図である。
【
図3】本発明の一実施形態に係る第1の文章群としての原文から第2の文章群としての脚本を生成する処理手順を示すフローチャートである。
【
図4】本発明の一実施形態に係る原文の行配列データを示す図である。
【
図5】本発明の一実施形態に係る表示画面を示す図である。
【発明を実施するための形態】
【0014】
以下、図面を参照して、本発明の実施の形態を説明するが、本発明は本実施形態に限定されるものではない。なお、以下で説明する図面で、同機能を有するものは同一符号を付け、その繰り返しの説明は省略することもある。
【0015】
本発明の一実施形態では、第1の文章群から、該第1の文章群とは同じ内容であり所定のポリシーでレイアウトされた第2の文章群を作成し、該第2の文章群をWebページで表示するものであって、第1の文章群を構成する各文字列に対応するWebページで表示するためのHTMLタグの各々に識別子を付すことによって、上記文字列の各々に対して上記Webページ内における絶対座標を付与するものである。
【0016】
本明細書において、「文字列」とは、例えば、タイトルや見出し、小見出し、セリフ、セリフの話者名、ナレーション、所定の記事の内容、所定の説明文、所定の指示文等の、第1および第2の文章群のコンテンツ部分(文字からなるコンテンツ)を構成する一要素である。「第1の文章群」とは、少なくとも1つの文字列からなる文章群であって、所定のポリシーでレイアウトされていないテキストデータである。「第2の文章群」とは、第1の文章群と同一の文字列)を含み(従って、第1の文章群と同じ内容のもの)、所定のポリシーでレイアウトされた文章群であって、例えば、脚本や台本、ニュースや所定のテーマに対する記事、小説等の書籍等、見易く整形された文書である。また、「所定のポリシー」とは、例えば、「小見出しや各章のタイトルは矩形で囲む」、「縦書きの台本において話者と同行(同列)に該話者のセリフを配置する」といった、所定の文書レイアウトを実現するためのルールや決まりである。よって、「所定のポリシーでレイアウトされた」とは、上記ルールや決まりに従ってレイアウトされることを示す。
【0017】
図1は、本実施形態に係る情報処理装置100の概略構成を示す図である。
情報処理装置100は、CPU(Central Processing Unit)101、GPU(Graphics Processing Unit)102、ストレージ103、メモリ104、出力インタフェース(I/F)105、リーダ106、リーダインタフェース(I/F)107、入力インタフェース(I/F)108、通信モジュール109を備えている。情報処理装置100には、出力I/F105を介して表示部110が接続され、また入力I/F108を介して入力部111が接続される。
【0018】
CPU101は、種々の演算、制御、判別などの処理動作を実行するものであり、例えばストレージ103から所定のプログラムをメモリ104にロードし、該プログラムに含まれる一連の命令を実行することによって、様々な処理を実行するよう機能する。GPU102は、画像処理を行うためのプロセッサであって、CPU101からの所定の命令に応じて画像を描画し、表示部110に画像を表示させる。
【0019】
ストレージ103は、CPU101が読み出して実行するためのプログラム(例えば、
図3に示すプログラム等)及び各種のデータが格納されている。メモリ104は、データ及びプログラムを一時的に保持する。メモリ104は、揮発性メモリであり、CPU101やGPU102の処理動作中のデータや入力データ、さらにはリーダ106にて読み取られたデータ(画像等)を一時的に格納するものであって、例えばRAM(Random Access Memory)である。
【0020】
出力I/F105は、CPU101やGPU102の指令に従って、ディスプレイといった表示部110に映像を表示する。リーダ106は、情報処理装置100に設けられ、各種データ、プログラム等が格納されたメモリカードやDVD(Digital Versatile Disc)といった外部記憶媒体を装着可能に構成され、該装着された外部記憶媒体から所定のデータを読み取る。リーダI/F107は、CPU101からの指令に応じて、リーダ106に装着された外部記憶媒体からのデータの読み取りを行う。入力I/F108は、キーボード等の入力部111を介して使用者が操作することによって入力された操作に関する入力信号を受付ける。通信モジュール109は、通信回路網に接続されて、通信回路網に接続されている他のコンピュータと通信する。この通信は有線であっても無線であってもよい。通信モジュール109を介して上記元画像等、所定のデータを取得しても良い。
【0021】
以下、最終的に出力したい第2の文章群を縦書きの脚本調にレイアウトされた文書(以下、単に“脚本”とも呼ぶ)とし、第1の文書群を該脚本の構成要素としての各種文字列(タイトル、章毎のタイトル、話者、セリフ等)が記載されたプレーンテキストである原文とする。すなわち、情報処理装置100によって、
図2に示す原文200から脚本300を生成するのである。なお、第1の文章群としての原文200のファイル形式はテキストファイルとなり、第2の文章群としての脚本300のファイル形式はHTML文書である。
【0022】
本実施形態において、原文200は、あるRPG型ゲームのシナリオである。
図2において、符号201~214、および符号301~符号314はそれぞれ文字列である。文字列201、301は上記RPG型ゲームのタイトルに対応し、文字列202、207、302、307は各節のタイトルに対応し、文字列203、210、212、303、310、312は話者に対応し、文字列204、205、206、211、213、214、304、305、306、311、313、314は話者のセリフに対応し、文字列208、209、308、309はト書きに対応する。また、符号216は改行コードである。なお、
図2において、文字列201~214の各々の最後尾、および文字列202と203との間、文字列205と206との間、文字列206と207との間、文字列207と文字列208との間、文字列208と文字列209との間、文字列209と文字列210との間、文字列211と文字列212との間にも改行コードは設けられているが、図面の煩雑化を防ぐため、ここでは符号の表記を省略している。
【0023】
図2に示されるように、脚本300においては、タイトル「『〇〇物語』」に関する文字列301は最も大きい所定のフォントサイズにて縦書きで配置され、節のタイトル「[1節 プロローグ]」に関する文字列302には矩形315で囲まれて縦書きで配置される。また、「案内人」、「主人公」、「使者」といった話者に関する文字列303、310、312は、矩形315、316の上端の位置から縦書きで配置され、セリフに関する文字列304、305、306、311、313、314は対応する話者に関する文字列から所定の距離だけ離間した位置から縦書きに配置される。ト書きに関する文字列308、309は話者の文字列とセリフの文字列の間の同一の位置から縦書きで配置される。このように各文字列は、対応する役割(例えば、文字列301であればタイトルを示す役割、文字列304であればセリフを示す役割など)に応じて決まって位置に配置されるので、上述した各文字列の役割に応じて配置するというポリシー(以降、本実施形態に係るポリシーと呼ぶ)でレイアウトされた文章群である。
【0024】
一方、原文200においては、タイトルに関する文字列201のフォントサイズを最も大きい所定のサイズにしたり、節のサブタイトルに関する文字列202を矩形で囲ったりという上述した本実施形態に係るポリシーでレイアウトされた文章群ではない。しかしながら、本実施形態では、各文字列201~214を脚本300においてどのようにレイアウトするのかというレイアウトの仕方を特殊文字(記号、符号、数字)や特殊文字の有無によって、すなわち特殊文字を用いて規定する(なお、特殊文字の有無(例えば、後述のセリフが該当)についても、特殊文字が無い場合は、それに対応するレイアウトの仕方(役割)が対応することになるので、特殊文字を用いている、と言える)。本実施形態では、特殊文字を付す場合は、対応する特殊文字の冒頭部分に特殊文字を配置する。例えば、原文200の1行目に記載された「■■『〇〇物語』」については、該当する行に記載された文字列の冒頭部分の特殊文字“■■”がレイアウトの仕方(該当する文字列の役割(ここでは、タイトル))に対応するものであり、それに続く“『〇〇物語』”が表示内容(コンテンツ部分)である。
【0025】
本実施形態では、原文200において付される特殊文字は、脚本300におけるレイアウトに係る本実施形態に係るポリシーと対応付けられている。本実施形態に係る特殊文字とレイアウトの仕方は以下の通りである。
特殊文字“■■”→タイトルとして最も大きい所定のフォントサイズで縦書き。
特殊文字“■N”(Nは自然数)→節のタイトルとして矩形で囲って縦書きとし、節タイトルを示す文字列を墨付き括弧で囲う。さらに、Nの数字を節番号として節タイトルの前に記載する(Nが“1”であれば、“1節”)。
特殊文字“@”→話者名として脚本300の上端から第1の距離から縦書き。
特殊文字“//”→ト書きとして脚本300の上端から第2の距離から縦書き。
特殊文字無し → 該特殊文字無しの行の直前の話者(@が付された文字列)のセリフとして、該直前の話者の文字列から第3の距離から縦書き。
なお、本実施形態では、冒頭に特殊文字が無い文字列はセリフとして脚本300においてレイアウトするようにしているが、例えば、セリフに対応する特殊文字(例えば、“#”)を設けるようにしても良い。
【0026】
本実施形態では、原文200は横書きの様式(上から下に向かって記載されていく様式)で脚本300は縦書きの様式(右から左に向かって記載されていく様式)であり、原文200の一行目の文字列から順番に、脚本300を生成する際に対応するWebページにおいて右側から左に向かって配置されていくことになる。脚本300にて右側から順番に配置されていく場所は予め決まっていても良い。すなわち、原文200の各文字列は、対応する行番号の順番で脚本300において右側(スタート地点)から順番に配置されていく。例えば、原文200の一行目の文字列201が脚本300にて最も右側に文字列301として配置され、文字列201の次の文字列である3行目の文字列202が脚本300において文字列301の左側に配置される。また、原文200において改行が実行された場合改行コードが付されるが、原文200中のある行において改行コードのみが付されている場合(文字列が存在しない行)は、脚本300においてはその分空白の領域を設ける。例えば、原文200の2行目には改行コード216のみが配置されている。原文200の2行目の文字列は1行目の文字列201に対応する文字列301の左側に配置されるのだが、2行目は改行コード216のみなのでその領域は空白となるのである。一方、原文200の6行目とその次の7行目とには文字列204と205とが記載されており、脚本300において原文200の6行目が配置される場所に文字列204に対応する文字列304が配置され、そのすぐ左隣りに原文200の7行目の文字列205に対応する文字列305が配置される。よって、
図2に示されるように、原文200の1行目に対応する文字列301と原文200の3行目に対応する文字列302との間は、空白領域が設けられていない(原文200において改行コードのみの行が間に存在していない場合)文字列304と305との間よりも大きく離間するのである。
【0027】
さらに、本実施形態では、原文200において、特殊文字が付されていない文字列はセリフとしてレイアウトされるものであって、該当文字列の直前の話者(特殊文字“@”が付された文字列)のセリフとして扱う。よって、例えば、文字列204、205、206はそれぞれ特殊文字が付されていない文字列であるので、セリフの役割を持つ文字列である。原文200の5行目の文字列203が、文字列204~206の直前の話者に該当する文字列(特殊文字“@”が付された文字列)であるので、脚本300においては、セリフに関する文字列304~306は話者に関する文字列203に対応する文字列303が該当する話者のセリフとしてレイアウトされる。なお、原文200において8行目(文字列205と206との間の行)は改行コード216のみの行であるので、脚本300において、原文200の8行目に対応する領域は空白となり、文字列305と文字列306との間に空白の領域が設けられることになる。本実施形態では、上述のように、脚本300を作成する際は原文200の各文字列は行番号の順番に対応するWebページにおいて右側から配置されていくが、話者に関する文字列と該話者のセリフに関する文字列については例外的である。すなわち、話者に関する文字列(例えば、文字列203)とその次の行番号の文字列(例えば、文字列204)とが、脚本300において、脚本300の左右方向Pの位置が同一となる(他の文字列は、該左右方向Pで異なる位置に配置される)ように文字列をレイアウトしていく。
【0028】
このように、本実施形態では、原文200から脚本300を生成する際、対応するWebページにおいて、該Webページの左右方向Pに沿って原文200の行番号に従って各文字列を順番に配置していくこと(話者とセリフに関する文字列は例外的に取り扱う)を基本とし、原文200の各文字列の特殊文字を用いて各文字列をレイアウトしていくのである。
【0029】
さて、本実施形態では、テキスト形式である原文200からHTML文書を作成し、該HTML文書をレンダリングすることによって脚本300を生成するのだが、HTML文書作成の際、原文200の全行のHTMLタグにIDを付与し、上記HTML文書によって生成されたWebページにおいて各文字列の絶対座標を取得し、該取得された絶対座標と対応するIDとを紐づけて管理している。
【0030】
図3は、本実施形態に係る第1の文章群としての原文200から第2の文章群としての脚本300を生成する処理手順を示すフローチャートである。
本実施形態では、脚本300は上述した本実施形態に係るポリシーでレイアウトされたものであるので、原文200の作り手は、本実施形態に係るポリシーに対応する特殊記号を駆使して原文200を生成することになる。脚本300を利用したいユーザが入力部111により情報処理装置100にインストールされた本実施形態に係る処理を実行するアプリケーションを起動を指示すると、情報処理装置100が備えるWebブラウザにて該アプリケーションが起動する。
【0031】
ステップS31では、CPU101は、原文200を取得する。例えば、ユーザが原文200に関するテキストファイルから原文200を上記アプリケーションにドラッグ&ドロップするなどして原文200を入力すると、CPU101は入力された原文200を取得することができる。または、原文200のテキストファイルを上記アプリケーションにて開くことによって、原文200を取得しても良い。さらには、上記アプリケーションが原文200を生成する機能(例えば、文書作成機能)を備えており、作り手が入力部111を操作して原文200を作成し、該作成されたものを入力データとしても良い。本実施形態では、原文200の取得方法は本質ではなく、いずれの方法を採っても良い。
【0032】
ステップS32では、CPU101は、ステップS31にて取得された原文200に基づいて、該原文200中の改行コードを区切り文字として原文200中の各文字列を分割し、分割された各文字列を配列したデータ(原文の行配列データと呼ぶ)を生成する。すなわち、CPU101は、原文200の各行に対して改行コードが出現するまでの文字列を抽出し、新規のテキストデータ(原文の行配列データとなるデータ)において該抽出された文字列の行番号に対応するように文字列を配列していく。また、ある行において改行コードが出現するまでに文字列が存在しない空行についても、新規のテキストデータにおいては空行として、原文200の行番号と対応する行番号に空行を形成する。原文200の全ての行に対してこのような処理を実行することによって、改行コードが無くなった形の原文200に対応する原文の行配列データ(テキストデータ)が生成される。該原文の行配列データは、どの行に何の文字列が配列しているのかを示すデータである。
図4は、本実施形態に係る原文の行配列データを示す図である。文字列401~414はそれぞれ、文字列201~214と同一の文字列であり、同一の行番号である。
【0033】
ステップS33では、CPU101は、ステップS32にて生成された原文の行配列データ400を解析し、各文字列の役割(出力すべき脚本300におけるレイアウトの仕方)を特定する。すなわち、CPU101は、原文の行配列データ400の各行に対して、文字列の冒頭に付された特殊文字を解析し、該文字列の役割を特定し、該特定結果を含む解析済行データを生成する。該解析済行データは、各行について、解析によって特定された役割(レイアウトの仕方)、文字列による表示内容(文字列から特殊文字を除いたもの)、原文における文字列(特殊文字を含む文字列)、行番号の4つの情報を1つの要素とした情報(例えば、Javascript(登録商標)のオブジェクト型データ等)である。例えば、原文の行配列データ400の1行目に対しては、
役割(レイアウトの仕方)→タイトル
表示内容→“『〇〇物語』”
原文→“■■『〇〇物語』”
行番号1
という4つの情報を1つの要素(解析済行データの要素1)とする。一方、空行である原文の行配列データ400の2行目に対しては、
役割→空白
表示内容→“”
原文→“”
行番号2”
という4つの情報を1つの要素(解析済行データの要素2)としている。このように、解析済行データは、原文の行配列データ400の各行に対する、上記4つの情報を持った要素を有するものである。
【0034】
ステップS34では、CPU101は、ステップS34にて生成された解析済行データの要素毎に特定された役割(レイアウトの仕方)に応じてHTMLタグ化し、該HTMLタグの各々に対して識別子(ID)を付与する。すなわち、CPU101は、解析済行データの各要素に基づいて、「役割」に対応したHTMLタグを生成し、「表示内容」を表示テキスト値に設定し、「行番号」をID属性値に設定することにより、役割に該当するHTMLタグ(開始タグにID属性値が含まれる)で表示テキスト値を囲んだHTML要素を解析済データの要素毎(すなわち、原文200の行毎)に生成する。なお、原文200の空白行については、空白を示すHTMLタグで要素化される。例えば、
図2の2行目に対する解析済行データの要素では、「役割」は空白、「表示内容」は“”、行番号は2であるので、空白を示すHTMLタグにて空白領域を囲い、HTMLタグの開始タグにID属性値2を含めてHTML要素を生成すれば良い。CPU101は、生成した全てのHTML要素を連結して、各HTMLタグに識別子が付された脚本300を表示するためのHTML要素群を有するデータ(HTMLタグ配列データと呼ぶ)を生成する。
【0035】
ステップS35では、CPU101は、ステップS34にて生成されたHTMLタグ配列データをHTML文書に追加し、該HTML文書に基づいてWebページとしてレンダリングする(描画する)。すなわち、CPU101は、HTMLタグ配列データの各要素に基づいて脚本300が構築されたWebページを生成する。
【0036】
ステップS36では、CPU101は、Webページとしてレンダリングされた脚本300における、解析済行データの要素毎に脚本300にて対応するHTML要素(文字列301~314)の各々の絶対座標を取得する。CPU101は、取得された各絶対座標を解析済行データにおける対応する要素に紐づけた絶対座標データを生成する。例えば、現在レンダリングされた脚本300において文字列301の絶対座標がXだとすると、改行済行データの要素1と絶対座標Xとが関連付けられて絶対座標データが生成されるのである。
【0037】
ステップS37では、CPU101は、レンダリングされた脚本300を表示部110に表示する。このようにして、原文200から所定のポリシーでレイアウトされた脚本300が生成され表示される。
【0038】
本実施形態によれば、原文200に含まれる特殊文字を用いて原文200の各文字列に対して所定のポリシーに対応したレイアウトの仕方(役割)に関するHTMLタグを生成し、該HTMLタグを含むHTML要素に基づいてレンダリングするので、上記所定のポリシーでレイアウトされた脚本300を生成することができる。そして、上記HTMLタグの各々に対して識別子を付与し、該HTMLタグに基づいてレンダリングされた後の文字列(HTML要素)の各々の絶対座標を取得しているので、脚本300における文字列301~314の各々は、絶対座標とHTMLタグに付された識別子を持つことになる。よって、脚本300中の絶対座標をたよりに該絶対座標に対応する原文200中の文字列を特定することができる。例えば、脚本300において文字列306を指定すると、該文字列306に関するHTMLタグの識別子を特定でき、該特定された識別子に対応する原文200中の行番号を特定することで、原文200における文字列206を抽出することができる。すなわち、解析済行データの各要素が原文200の対応する文字列の識別子としての行番号を有しているので、解析済行データのどの要素が、原文200のどの文字列に対応するかを特定することができるのである。従って、脚本300のある文字列の絶対座標が分かれば、該文字列に対応する原文200中の文字列を特定することができる。よって、例えば脚本300を見たユーザがある文字列に誤字を発見したり、その表現を変えたいといった要望から原文200中の表記を確認したい場合、脚本300にて所望の文字列を特定するだけで、それに対応する原文200中の文字列を抽出することができる。よって、原文200の分量が多い場合であっても、脚本300の所定の文字列に対応する原文200中の文字列を容易に抽出することができる。
【0039】
本実施形態では、
図5に示すように、CPU101は、脚本300が表示されたウィンドウ500において、該ウィンドウ500にてユーザが指定した文字列(例えば、文字列306)の絶対座標から該文字列のHTMLタグに付された識別子を特定し、該識別子に対応する原文200中の文字列(行番号9の文字列206)を特定し、該特定された文字列を抽出してポップアップウィンドウ501に表示するようにしても良い。
【0040】
また、本実施形態によれば、脚本300の各文字列の絶対座標を取得しているので、ユーザが脚本300をスクロールした際、ウィンドウの所定の位置に設けられたスクロールの判定ライン上の文字列の絶対座標を取得することにより、脚本300において現在ウィンドウに表示されている領域を特定することができる。従って、上記スクロールによって画面を切り替えていく際、ウィンドウに現在表示されている章や節やフェーズを上記ウィンドウに常時表示することができる。同様に、ウィンドウに表示されている文字列のいずれかをユーザが指定した際も、ウィンドウに現在表示されている章や節を常時表示することができる。従って、脚本300を読んでいるユーザは、脚本300の全体像の中で現在読んでいる個所を把握することができ、「今、何処を読んでいるんだっけ?」といった迷子になることを低減することができる。
【0041】
また、本実施形態では、脚本300を表示するウィンドウサイズや文字サイズを変えた場合、CPU101がその都度ステップS35~S37を実行することによって、上記変更に合わせたWebページ(脚本300)を生成するようにしても良い。本実施形態では、脚本300の各文字列のHTMLタグに識別子が振られ、上記変更前の脚本300の各文字列の絶対座標を保持しつつ、上記変更後にレンダリングされた脚本300において各文字列の絶対座標を取得しているので、上記変更により文字サイズや折り返し位置が変わることでスクロール位置が変わったとしても、上記変更の直前にウィンドウに表示されていた文字列を該ウィンドウに表示させることができる。すなわち、上記変更の直前のウィンドウに表示されている文字列のいずれかを特定しておけば(ユーザによる所望の文字列の指定や、スクロールの判定ラインとの比較等)、該特定された文字列のHTMLタグに付与された識別子を認識することができる。上記変更により、特定された文字列の絶対座標が変わったとしても、該特定された文字列のHTMLタグの識別子は認識されているので、上記変更後における該識別子に対応する文字列が特定できる。変更後も各文字列の絶対座標が取得されているので、上記特定された文字列に対する絶対座標の領域をウィンドウに表示することにより、上記変更があっても、変更の直前までウィンドウに表示されていた文字列の絶対座標までスクロール位置をズラすことができる。
【0042】
なお、本実施形態では、本実施形態に特徴的な
図3に示す処理を情報処理装置100にて実行しているが、情報処理装置100にインターネット等で通信可能な外部サーバにて実行しても良い。例えば、原文200に対するテキストデータを情報処理装置100から外部サーバに送信し、外部サーバにてステップS31~ステップS36までを外部サーバにて実行し、該外部サーバがステップS35で生成されたHTML文書とステップS36で取得された絶対座標データを情報処理装置100に送信し、情報処理装置100が受信したHTML文書をレンダリングするようにすれば良い。
【0043】
(その他の実施形態)
上述した実施形態の機能を実現するように前述した実施形態の構成を動作させるプログラム(例えば、
図3に示す処理を行うプログラム)を記憶媒体に記憶させ、該記憶媒体に記憶されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も上述の実施形態の範疇に含まれる。即ちコンピュータ読み取り可能な記憶媒体も実施例の範囲に含まれる。また、前述のコンピュータプログラムが記憶された記憶媒体はもちろんそのコンピュータプログラム自体も上述の実施形態に含まれる。かかる記憶媒体としてはたとえばフロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、磁気テープ、不揮発性メモリカード、ROM等を用いることができる。また上述の記憶媒体に記憶されたプログラム単体で処理を実行しているものに限らず、他のソフトウエア、拡張ボードの機能と共同して、OS上で動作し上述の実施形態の動作を実行するものも上述した実施形態の範疇に含まれる。
【符号の説明】
【0044】
100 情報処理装置
101 CPU
103 ストレージ
104 メモリ
200 原文
201~214、301~314、401~414 文字列
216 改行コード
400 原文の行配列データ