(57)【要約】【課題】一つの種類の情報機器向けに作成されたウェブ画面の命令文群を、簡単な操作で他の種類の情報機器向けに変換するプログラム等を提供する。【解決手段】変換プログラムは、第１情報機器の表示部に表示されるべき第１画面を前記第１情報機器に伝える第１命令文群を解析し、第２情報機器の表示部に表示されるべき第２画面を前記第２情報機器に伝える第２命令文群を作成するためのテンプレートの命令文群を解析し、解析された両命令文群に基づいて前記第１画面および前記テンプレートを表示し、前記第１画面内から選択された第１要素に関する情報を受け付け、前記テンプレート内から選択された第２要素に関する情報を受け付け、前記第１命令文群内の前記第１要素に対応する部分を抽出し、前記テンプレートの命令文群内の前記第２要素に対応する部分を抽出された前記部分に変換する処理をコンピュータに実行させる。【選択図】図４
2016122287.tif 000002
【特許請求の範囲】
【請求項１】
取得された第１情報機器の表示部に表示されるべき第１画面を前記第１情報機器に伝える第１命令文群を解析し、
取得された第２情報機器の表示部に表示されるべき第２画面を前記第２情報機器に伝える第２命令文群を作成するためのテンプレートの命令文群を解析し、
解析された第１命令文群およびテンプレートの命令文群に基づいて前記第１画面および前記テンプレートを表示し、
前記第１画面内から選択された第１要素に関する情報を受け付け、
前記テンプレート内から選択された第２要素に関する情報を受け付け、
前記第１命令文群内の前記第１要素に対応する部分を抽出し、
前記テンプレートの命令文群内の前記第２要素に対応する部分を抽出された前記部分に変換する処理をコンピュータに実行させることを特徴とする変換プログラム。
【請求項２】
取得された前記第２命令文群から排除すべき命令が、抽出された前記部分に含まれるか否かを判定し、
前記命令が抽出された前記部分に含まれると判定した場合には、該命令が排除されるように該部分を修正し、
前記テンプレートの命令文群内の前記第２要素に対応する部分を修正された前記部分に変換する処理をコンピュータに実行させることを特徴とする請求項１に記載の変換プログラム。
【請求項３】
前記第１命令文群を解析した結果に基づいて、前記第１画面内の選択を受け付けることが可能な要素を区別して表示する処理をコンピュータに実行させることを特徴とする請求項１または請求項２に記載の変換プログラム。
【請求項４】
前記第１要素の前記第１命令文内群の位置、該第１要素の前記第１画面内の位置または前記第１要素に含まれる文字列と、前記テンプレートの命令文群または前記第２要素とを関連づけたデータを記録する処理をコンピュータに行わせることを特徴とする請求項１から請求項３のいずれか一つに記載の変換プログラム。
【請求項５】
前記データを統計的に処理した結果に基づいて、
前記第１要素の前記第１命令文内群の位置、該第１要素の前記第１画面内の位置または前記第１要素に含まれる文字列と、前記テンプレートの命令文群または前記第２要素との関連づけを推定し、
推定した結果に基づいて変換する処理をコンピュータに実行させることを特徴とする請求項４に記載の変換プログラム。
【請求項６】
第１情報機器の表示部に表示されるべき第１画面を前記第１情報機器に伝える第１命令文群を取得し、
取得した前記第１命令文群を解析し、
第２情報機器の表示部に表示されるべき第２画面を前記第２情報機器に伝える第２命令文群を作成するためのテンプレートの命令文群を取得し、
取得した前記テンプレートの命令文群を解析し、
解析された第１命令文群およびテンプレートの命令文群に基づいて前記第１画面および前記テンプレートを表示し、
前記第１画面内から選択された第１要素に関する情報を受け付け、
前記テンプレート内から選択された第２要素に関する情報を受け付け、
前記第１命令文群内の前記第１要素に対応する部分を抽出し、
前記テンプレートの命令文群内の前記第２要素に対応する部分を抽出された前記部分に変換する処理をコンピュータに実行させることを特徴とする変換方法。
【請求項７】
第１情報機器の表示部に表示されるべき第１画面を前記第１情報機器に伝える第１命令文群を取得する第１取得部と、
取得した前記第１命令文群を解析する解析部と、
第２情報機器の表示部に表示されるべき第２画面を前記第２情報機器に伝える第２命令文群を作成するためのテンプレートを取得する第２取得部と、
取得したテンプレートの命令文群を解析する解析部と、
解析された第１命令文群およびテンプレートの命令文群に基づいて前記第１画面および前記テンプレートを表示する表示部と、
前記第１画面内から選択された第１要素に関する情報を受け付ける第１受付部と、
前記テンプレート内から選択された第２要素に関する情報を受け付ける第２受付部と、
前記第１命令文群内の前記第１要素に対応する部分を抽出する抽出部と、
前記テンプレートの命令文群内の前記第２要素に対応する部分を抽出された前記部分に変換する変換部とを備える事を特徴とする変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変換プログラム、変換方法および変換装置に関する。
【背景技術】
【０００２】
ウェブ画面にコンテンツを繰り返し表示するソースコードの可読性を高める技術が開示されている（特許文献１）。
【０００３】
動的コンテンツを生成する際の処理時間を短縮して、ウェブ画面の応答性を高める技術が開示されている（特許文献２）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１５４９９３号公報
【特許文献２】特開２００５−３３２１４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１および特許文献２には、一つの種類の情報機器向けに作成されたウェブ画面のソースコードを、簡単な操作により他の種類の情報機器向けに変換するプログラム等については開示されていない。
【０００６】
一つの側面では、一つの種類の情報機器向けに作成されたウェブ画面のソースコードを、簡単な操作により他の種類の情報機器向けに変換するプログラム等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
変換プログラムは、取得された第１情報機器の表示部に表示されるべき第１画面を前記第１情報機器に伝える第１命令文群を解析し、取得された第２情報機器の表示部に表示されるべき第２画面を前記第２情報機器に伝える第２命令文群を作成するためのテンプレートの命令文群を解析し、解析された第１命令文群およびテンプレートの命令文群に基づいて前記第１画面および前記テンプレートを表示し、前記第１画面内から選択された第１要素に関する情報を受け付け、前記テンプレート内から選択された第２要素に関する情報を受け付け、前記第１命令文群内の前記第１要素に対応する部分を抽出し、前記テンプレートの命令文群内の前記第２要素に対応する部分を抽出された前記部分に変換する処理をコンピュータに実行させることを特徴とする。
【発明の効果】
【０００８】
一つの側面では、一つの種類の情報機器向けに作成されたウェブ画面のソースコードを、簡単な操作により他の種類の情報機器向けに変換するプログラム等を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】パソコン用のウェブ画面の例を示す説明図である。
【図２】タブレット用のウェブ画面の例を示す説明図である。
【図３】変換装置のハードウェア構成を示す構成図である。
【図４】変換プログラムの表示画面の例を示す説明図である。
【図５】変換途中のタブレット用のウェブ画面の例を示す説明図である。
【図６】変換元のソースコードの一例を示す説明図である。
【図７】ソースコードの階層構造を解析した例を示す説明図である。
【図８】ソースコードを変換テーブルに記載した例を示す説明図である。
【図９】ソースコードの第２階層以下の階層構造にＩＤを付与した例を示す説明図である。
【図１０】テンプレートの例を示す説明図である。
【図１１】作業中の変換テーブルの例を示す説明図である。
【図１２】変換後のファイルの例を示す説明図である。
【図１３】変換プログラムの処理手順を示すフローチャートである。
【図１４】Ｂｏｄｙ部の階層構造解析の処理手順を示すフローチャートである。
【図１５】Ｈｅａｄｅｒ  Ｆｏｏｔｅｒ  Ｃｏｎｔｅｎｔｓ  Ｍｅｎｕに分類の処理手順を示すフローチャートである。
【図１６】Ｈｅａｄｅｒを抽出の処理手順を示すフローチャートである。
【図１７】Ｆｏｏｔｅｒを抽出の処理手順を示すフローチャートである。
【図１８】Ｍｅｎｕを抽出の処理手順を示すフローチャートである。
【図１９】変換後のファイル構築の処理手順を示すフローチャートである。
【図２０】実施の形態２の変換後のファイル構築の処理手順を示すフローチャートである。
【図２１】実施の形態３の変換プログラムの表示画面の例を示す説明図である。
【発明を実施するための形態】
【００１０】
［実施の形態１］
本実施の形態は、第１情報機器の表示部にウェブ画面を表示する第１命令文群とユーザによる簡単な操作に基づいて、第２情報機器の表示部にウェブ画面を表示する第２命令文群を作成する変換プログラムに関する。さらに具体的には、本実施の形態では第１情報機器にはパソコンを、第２情報機器にはタブレットを、第１命令文群および第２命令文群にはウェブブラウザにウェブ画面を表示させるＨＴＭＬ（HyperText Markup Language）のソースコードを用いる場合を例にして説明する。なお、タブレットは表示装置および入力装置が一体となった板状の携帯型情報機器を意味する。
【００１１】
図１は、パソコン用のウェブ画面の例を示す説明図である。図２は、タブレット用のウェブ画面の例を示す説明図である。図１と図２は同一の目的のために作成された画面である。図１に示すパソコン用のウェブ画面は、パソコンに接続された表示装置に表示され、ハードウェアキーボード、タッチパネル、マウス、トラックボール等様々な入力装置と組み合わせて使用されるように設計されている。図２に示すタブレット用のウェブ画面は、パソコンに接続された表示装置と比較して小さな表示装置に表示され、タッチパネル、画面上に表示されるソフトウェアキーボードまたは音声入力等の入力装置と組み合わせて使用されるように設計されている。
【００１２】
ウェブサイトは、ＵＲＬ（Uniform Resource Locator）にアクセスした情報機器を検出し、検出結果に応じて適切なウェブ画面を表示するＵＲＬに切り替えることが望ましい。このようにすることで、ＵＲＬにアクセスしたそれぞれの情報機器の利用者に、快適に利用して貰えるウェブサイトを提供することができる。
【００１３】
図３は、変換装置のハードウェア構成を示す構成図である。本実施の形態においては、汎用のコンピュータ２０を使用する。コンピュータ２０は、ＣＰＵ（Central Processing Unit）１１、主記憶装置１２、補助記憶装置１３、入力装置１４、ディスクドライブ１５、表示装置１６、通信モジュール１７、バスを備える。
【００１４】
ＣＰＵ１１は、一または複数のＣＰＵまたはマルチコアＣＰＵ等を備えた演算制御装置である。ＣＰＵ１１は、バスを介してハードウェア各部と接続されている。ＣＰＵ１１は、補助記憶装置１３に保存された変換プログラム４１に従い、変換装置に必要な演算処理およびハードウェア各部の制御を行う。
【００１５】
主記憶装置１２は、ＳＲＡＭ（Static RAM）、ＤＲＡＭ（Dynamic RAM）またはフラッシュメモリ等の記憶装置である。主記憶装置１２には、ＣＰＵ１１が行う処理の途中で必要な情報およびＣＰＵ１１で実行中のプログラムが一時的に保存される。
【００１６】
補助記憶装置１３は、ハードディスクまたは半導体メモリディスク等の記憶装置である。補助記憶装置１３には、ＣＰＵ１１に実行させる変換プログラム４１および変換プログラム４１の実行に必要な各種データが保存される。
【００１７】
入力装置１４は、マウス、キーボード、タッチパネル、ペンタブレット等の機器である。入力装置１４は、ユーザによる操作をＣＰＵ１１が受け付ける際に使用する。
【００１８】
表示装置１６は、ディスプレイ、プロジェクタ等の機器である。入力装置１４および表示装置１６は、それぞれ一台のみでも良いし、複数でも良い。
【００１９】
ディスクドライブ１５は、可搬型記録媒体４２に記録された変換プログラム４１を読み込む。変換プログラム４１は、コンピュータ２０内に実装されたフラッシュメモリ等の半導体メモリ４３に記憶されていても良い。
【００２０】
通信モジュール１７は、インターネットまたはイントラネット等のネットワークとの通信を行う。通信モジュール１７は、ネットワーク上のウェブサーバに保存された変換前のソースコード書の読み込みおよび変換後ソースコード書の出力に使用される。
【００２１】
ＣＰＵ１１は、本実施の形態の変換プログラム４１を、可搬型記録媒体４２または半導体メモリ４３から読み取り、補助記憶装置１３に記憶する。変換プログラム４１は、汎用のコンピュータ２０の制御プログラムとしてインストールされ、主記憶装置１２にロードして実行される。これにより、コンピュータ２０は本実施の形態の変換装置として機能する。
【００２２】
図４は、変換プログラム４１の表示画面の例を示す説明図である。図５は、変換途中のタブレット用のウェブ画面の例を示す説明図である。図４および図５を用いて本実施の形態の変換プログラム４１の操作方法を説明する。
【００２３】
図４の画面は、ＣＰＵ１１により表示装置１６に表示される。図４の左側には、変換元であるパソコン用のウェブ画面が表示されている。図２の右側には、パソコン用のウェブ画面をタブレット用のウェブ変換に変換するために使うテンプレートの画面が表示されている。なお、テンプレートはタブレット用のＷＥＢ画面の雛形であり、タブレットの機種あるいはスペックに合わせてあらかじめ用意されている。
【００２４】
たとえば、ユーザが入力装置１４を操作して、図４に白抜き矢印で示すように画面左側の「ログインＩＤ（IDentification）」の部分を、画面右側の「文字」の欄にドラッグアンドドロップする。ＣＰＵ１１はユーザによる操作を受け付け、図４の画面右側のテンプレートの画面の部分を、図５に示すように変化させる。
【００２５】
同様に、ユーザが入力装置１４を操作して、図４の画面右側のテンプレートの画面の「ログインＩＤ」の下に設けられた入力窓の部分を、図４の画面右側の「入力項目フォーム」にドラッグアンドドロップする。ＣＰＵ１１はユーザによる操作を受け付け、ドロップされた場所にログインＩＤの入力欄を表示する。また、ユーザが入力装置１４を操作して、図４の画面の外側に表示された図示しない部品をテンプレートの画面上にドラッグアンドドロップする。ＣＰＵ１１はユーザによる操作を受け付け、新たなドロップ先を図４の画面右側のテンプレートの画面に追加する。この場合のテンプレートのソースコードの変更は既存の各種文書作成ソフトで行われている操作であるので、説明を省略する。
【００２６】
必要な操作が終了した後、ユーザが入力装置１４を操作して図示しない保存ボタンを選択する。ＣＰＵ１１は入力装置１４からユーザによる操作を受け付け、テンプレートの画面に表示された画面をタブレットに表示するソースコードを作成し、補助記憶装置１３に保存する。
【００２７】
図６は、変換元のソースコードの一例を示す説明図である。図６に示すソースコードは、図１に示すパソコン用のウェブ画面を表示するソースコードである。図６に示すソースコードはＨＴＭＬで記載されている。なお、図６ではたとえば文字の位置や大きさを指定するタグ等、本実施の形態の説明に直接関係しない記載は省略している。ＣＰＵ１１が図６のソースコードから、図２に示すタブレット用のウェブ画面を表示するソースコードを作成する方法の概略を以下に説明する。
【００２８】
図７は、ソースコードの階層構造を解析した例を示す説明図である。ＣＰＵ１１がソースコードを解析する方法については後述する。一番外側の矩形はソースコード全体を囲む枠を示す。一つ内側の矩形はソースコードのうち、ウェブ画面に表示する内容が記載されたＢｏｄｙ部を囲むＢｏｄｙ部枠１００を示す。なお、ＨＴＭＬの文法の定めにより、Ｂｏｄｙ部は＜ｂｏｄｙ＞タグから始まり、＜／ｂｏｄｙ＞タグで終了している。Ｂｏｄｙ部枠１００より上側のソースコードには、ＨＴＭＬのバージョン情報および文書のタイトル等を示すヘッダ情報が記載されている。
【００２９】
Ｂｏｄｙ部枠１００の内側の矩形は第１階層枠１０１を示す。図７では、第１層枠１０１は１個である。第１階層枠１０１の内側に３個の第２階層枠１０２Ａ、１０２Ｂ、１０２Ｃがある。各第２階層枠１０２Ａから１０２Ｃの内部には、各１個の第３階層枠１０３Ａ、１０３Ｂ、１０３Ｃがある。真ん中の第２階層枠１０２Ｂ内の第３階層枠１０３Ｂの内部には、３個の第４階層枠１０４Ａ、１０４Ｂ，１０４Ｃがある。１０４Ａの内部には３個の第５階層枠１０５Ａ、１０５Ｂ、１０５Ｃがある。１０５Ｂおよび１０５Ｃの内部には各１個の第６階層枠１０６Ａ、１０６Ｂがある。第４階層枠１０４Ｂおよび１０４Ｃの内部には、各１個の第５階層枠１０５Ｄおよび１０５Ｅがある。
【００３０】
なお、階層構造を視認しやすいように図６および図７のソースコードでは適宜改行および字下げを行っている。実際のソースコードでは改行および字下げは省略される場合もある。
【００３１】
図８は、ソースコードを変換テーブルに記載した例を示す説明図である。変換テーブルは、ＣＰＵ１１が後述する作業を行う際に、情報を整理するために使用するテーブルである。変換テーブルの１行目には、各列の表題が記載されている。一番左側の「行」の列には、ソースコードの行番号が記載されている。左から２番目の「行内容」の列には、ソースコードが記載されている。なお、変換テーブルを作成する前に、ＣＰＵ１１は少なくとも階層の境界では改行するように、ソースコードを整形しておく。
【００３２】
以下、図７および図８を参照して、変換テーブルの記載について説明する。変換テーブルの「所属」の列には、その行が所属する最も下の階層が記載されている。たとえば変換元のソースコードの２９行目は図７の第１階層枠１０１で囲まれたソースコードであるので、所属の列には第１階層を示す１が記載されている。３０行目は第１階層枠１０１と第２階層枠１０２Ａで囲まれたソースコードであるので、第２階層を示す２が記載されている。
【００３３】
「親」の列には、その行の所属する最も下の階層からみて一つ上の階層の１行目の行番号が記載されている。たとえば３０行目は第１階層枠１０１と第２階層枠１０２Ａで囲まれたソースコードであるので、このうち下から２番目の階層枠１０１の１行目である２９が記載されている。また、前述の通り２９行目は第１階層であり、一つ上の階層が存在しないので、「親」の列は空欄になっている。
【００３４】
ＣＰＵ１１は＜ｂｏｄｙ＞タグから始まり、＜／ｂｏｄｙ＞タグで終了するＢｏｄｙ部の外側の行については階層構造を解析しないので、「所属」の列はゼロ、「親」の列は空欄である。
【００３５】
「分類」の列には、その行の性質が４桁の数値で記載されている。千の位の数字は、その行がソースコード全体の中でのどの部分にあたるかを示す。千の位が４の場合はＢｏｄｙ部の行である。たとえば、千の位が２の場合は＜ｈｅａｄ＞タグではじまり＜／ｈｅａｄ＞タグで終了するヘッダ情報部の行である。
【００３６】
百の位の数字はその行が記載された言語の種類を示す。百の位が１の場合はｈｔｍｌタグが記載された行である。図８には含まれていないが、百の位が２の場合はＪａｖａＳｃｒｉｐｔ（登録商標）のコードが記載された行であり、百の位が３の場合はＪａｖａ（登録商標）のコードが記載された行である。百の位が４の場合は、ｈｔｍｌタグ、ＪａｖａＳｃｒｉｐｔのコード、Ｊａｖａのコードのいずれにも該当しない行である。たとえば３９行目および４２行目は、「＜ｓ：」で始まるＳｔｒｕｔｓ２のコードが記載されているので、百の位には４が示されている。なお、Ｓｔｒｕｔｓ２はウェブ上で動作するアプリケーションの作成に使用されるアプリケーションフレームワークの名称である。
【００３７】
十の位の数字は、Ｂｏｄｙ部をさらにヘッダ部、フッタ部、コンテンツ部、メニュー部に分けて、どの部分に該当する行であるかを示す。十の位が１の場合はヘッダ部の行であり、十の位が４の場合はフッタ部の行である。ヘッダ部、フッタ部は、画面のそれぞれ上側、下側の部分である。図８には含まれていないが、十の位の数字が２の場合はメニュー部の行である。メニュー部は、他の表示に遷移するためのリンクの一覧を表示する部分である。十の位が３の場合はコンテンツ部の行である。コンテンツ部は、画面内のヘッダ部、フッタ部およびメニュー部を除いた部分であり、一般的にはウェブ画面の主要な部分である。また、十の位が９の場合はヘッダ部、フッタ部、コンテンツ部、メニュー部のいずれにも分類されない行である。さらに具体的には、Ｂｏｄｙ部以外の行およびＢｏｄｙ部には含まれているが画面表示に関与していない行である。
【００３８】
一の位の数字は、ウェブ画面がユーザによる入力を受け付ける際の形式を示す。一の位が１の場合は、文字の入力を受け付ける行である。たとえば図８の３９行目および４２行目が該当している。図８には含まれていないが、一の位が２の場合はあらかじめ指定された複数の項目から１項目の選択を受け付けるいわゆるリストボックスの行である。また一の位が３の場合はあらかじめ指定された複数の項目から複数の項目の選択を受け付けるいわゆるチェックボックスの行である。一の位が０の場合は、上記のいずれにも該当しない行である。
【００３９】
なお、ここで説明した「分類」の列の各桁の意味および桁数はいずれも例示であり、任意に変更可能である。また、分類の列を複数の列に分けても良いし、分類の列に文字を記録しても良い。
【００４０】
図８においては、「移動先」、「連番」および「変換後」の列はいずれも空欄である。これらの列については後述する。
【００４１】
以上に説明したように、変換テーブルを使用することにより、ＣＰＵ１１はソースコードの階層構造と、各行の性質をまとめて扱うことができる。なお、図８に示す変換テーブルの形式は一例であり、列の配置順序、列の項目等は任意に変更可能である。
【００４２】
図９は、ソースコードの第２階層以下の階層構造にＩＤを付与した例を示す説明図である。ここでＩＤはＣＰＵ１１により各階層枠に固有に付与された符号である。ＩＤは、１つのソースコードの内部では重複しないユニークな符号である。ＨＴＭＬの文法の定めにより、ＩＤは「ｉｄ＝」に続くダブルクオーテーションで囲まれた符号で示される。
【００４３】
図９では、図７に示した各階層構造枠の先頭行に、「ＪＳＰ＿３５」「ＪＳＰ＿３６」等のＩＤが付与されている。なお、たとえば２９行目には、もともと「ｌｏｇｉｎ−ｐａｇｅ」のＩＤが付いているので、新たなＩＤは付与されない。
【００４４】
なお、図８に示す変換テーブルに「ＩＤ」の列を加えておき、ＣＰＵ１１が変換テーブルにＩＤを記録しても良い。この場合は、ＣＰＵ１１は、もともとソースコードに付与されているＩＤも「ＩＤ」の列に記載することが望ましい。
【００４５】
図１０は、テンプレートの例を示す説明図である。図１０には、図４の右側に示すタブレット用のテンプレートの画面をタブレットに表示するソースコードが示されている。図１０に示すテンプレートのソースコードはＨＴＭＬで記載されている。なお、図１０ではたとえば文字の位置や大きさを指定するタグ等、本実施の形態の説明に直接関係しない記載は省略している。
【００４６】
図１１は、作業中の変換テーブルの例を示す説明図である。前述のように、ユーザが入力装置１４を操作して、図４の画面左側の「ログインＩＤ」の部分を、図４の画面右側の「文字」の欄にドラッグアンドドロップした場合の処理を図４、図７、図１０および図１１を用いて説明する。
【００４７】
図４の画面右側の「ログインＩＤ」の部分は、図７に示す変換元のソースコードの３８行目に記載されている。また図４の画面右側の「文字」の欄は図１０に示すテンプレートの７４行目に記載されている。したがって、図１１に示す変換テーブルの３８行目の「移動先」の列に、移動先のテンプレートの行番号である７４がＣＰＵ１１により記載される。変換テーブル上の１行分だけがユーザの入力装置１４の操作によりドラッグアンドドロップされているので、変換テーブルの「連番」の列には１がＣＰＵ１１により記載される。
【００４８】
変換テーブルの「変換後」の列には、図４の左側の画面から右側の画面へドラッグアンドドロップされた部分を示すＨＴＭＬの文章がＣＰＵ１１により記載される。ここで、パソコン用のソースコードのＨＴＭＬがタブレットで使用しても問題が無い場合には、ＣＰＵ１１により「行内容」列に記載されているソースコードのＨＴＭＬがそのまま複写される。一方、タブレット用のＨＴＭＬからは排除する必要があるタグ等が含まれている場合には、ＣＰＵ１１によりタブレットに適するように変換された後のＨＴＭＬが記載される。タブレット用のＨＴＭＬからは排除する必要があるタグ等が含まれている場合とは、たとえばテーブルを示す＜ｔｒ＞タグと＜／ｔｒ＞タグが含まれている場合である。この場合は、ＣＰＵ１１はテーブルを示す＜ｔｒ＞タグと＜／ｔｒ＞タグとをリストを示す＜ｌｉ＞タグと＜／ｌｉ＞タグとに変換することにより、＜ｔｒ＞タグと＜／ｔｒ＞タグを排除する。その後、ＣＰＵ１１は変換後の部分を「移動先」の列に記載する。テーブルがリストに変換される事により、パソコンに比べて画面サイズの小さいタブレットを使用するユーザがウェブサイトを快適に閲覧することができる。なお、変換する必要がある場合を識別するための条件は、あらかじめ補助記憶装置１３に記憶されている。
【００４９】
以上のように、図４に白抜き矢印で示したユーザが入力装置１４を操作して行うドラッグアンドドロップ操作が、ＣＰＵ１１により変換テーブルに記録される。なお、ソースコードの複数行にわたるブロックに記載された要素がユーザの入力装置１４の操作によりドラッグアンドドロップされた場合には、ＣＰＵ１１は「連番」の列に移動されたブロック内の順番を示す。
【００５０】
図１２は、変換後のファイルの例を示す説明図である。図示しない保存ボタンがユーザにより選択されると、ＣＰＵ１１により図１０に示すテンプレートおよび図１１に示す変換テーブルから、図１２に示す変換後のファイルが作成される。図１２に示すファイルは、図５に示された画面を、タブレット端末に表示するソースコードである。以下に、図１２のファイルの概略を説明する。
【００５１】
図１２のファイルの１行目には、ＨＴＭＬのバージョンとその仕様の宣言が記載されている。１行目は、図１０に示すテンプレートの１行目の複写である。その下には、文書のタイトル等を示すヘッダ情報が記録されている。ヘッダ情報は、図７に示すパソコン向けのソースコードのヘッダ情報の複写である。なお、ＣＰＵ１１は本プログラムにより生成された事を示す情報等をヘッダ情報に追加しても良い。
【００５２】
＜ｂｏｄｙ＞タグから始まり、＜／ｂｏｄｙ＞タグで終了するＢｏｄｙ部は、図１１の変換テーブルの「移動先」の列に行番号が記載されていない行については、図１０に示すテンプレートの複写である。図１１の「移動先」の列に記載されている行については、図１０に示すテンプレートの記載に引き続いて、図１１の変換テーブルの「変換後」の列の記載がＣＰＵ１１により複写されている。なお、図１１の「連番」の列に２以上の数値が記載されている場合には、「変換後」の列の記載がＣＰＵ１１により昇順に複写される。
【００５３】
図１２の７６行目の場合を例にして具体的に説明する。図１０に示すテンプレートに記載された「入力項目フォーム」の文字に引き続いて、図１１に示す変換テーブルの３８行目の「変換後」の列の内容がＣＰＵ１１により複写されている。
【００５４】
図１３は、変換プログラム４１の処理手順を示すフローチャートである。図１３を使用して、本実施の形態の変換プログラム４１の処理の流れについて説明する。
【００５５】
ＣＰＵ１１は、変換元のファイルを読み込む（ステップＳ５０１）。変換元のファイルには、パソコンにウェブ画面を表示するソースコードが記録されている。変換元のファイルは、予め補助記憶装置１３に保存されていても良いし、通信モジュール１７を介して図示しないネットワークから読み込んでも良い。また、ディスクドライブ１５を介して可搬型記録媒体から読み込んでも良い。
【００５６】
ＣＰＵ１１は、ソースコードをＢｏｄｙ部とＢｏｄｙ部以外の部分に分ける（ステップＳ５０２）。Ｂｏｄｙ部とは、ウェブ画面に表示する内容が記載されている部分である。ＨＴＭＬの文法の定めにより、Ｂｏｄｙ部は、ソースコードのうち＜ｂｏｄｙ＞タグから始まり、＜／ｂｏｄｙ＞タグで終了している部分である。
【００５７】
ＣＰＵ１１は、Ｂｏｄｙ部の階層構造解析のサブルーチンを起動する（ステップＳ５０３）。Ｂｏｄｙ部の階層構造解析のサブルーチンは、図７に示した様にソースコードの階層構造を解析するサブルーチンである。サブルーチン内の処理については後述する。
【００５８】
ＣＰＵ１１は、Ｈｅａｄｅｒ  Ｆｏｏｔｅｒ  Ｃｏｎｔｅｎｔｓ  Ｍｅｎｕに分類のサブルーチンを起動する（ステップＳ５０４）。Ｈｅａｄｅｒ  Ｆｏｏｔｅｒ  Ｃｏｎｔｅｎｔｓ  Ｍｅｎｕに分類のサブルーチンは、Ｂｏｄｙ部をヘッダ部、フッタ部、コンテンツ部およびメニュー部の４種類に分類するサブルーチンである。サブルーチン内の処理については後述する。
【００５９】
ＣＰＵ１１は、階層構造を構成する各ブロックにＩＤを付与する（ステップＳ５０５）。ＩＤは、各ブロックごとに固有のユニークな符号である。なお、既にＩＤが付与されているブロックについては、新たなＩＤは付与しない。
【００６０】
ＣＰＵ１１は、テンプレートを読み込む（ステップＳ５０６）。テンプレートはタブレットの画面の雛形である。ステップＳ５０６で読み込むのは、ＨＴＭＬ等で記載されたテンプレートのソースコードである。テンプレートのソースコードは、予め補助記憶装置１３に保存されていても良いし、通信モジュール１７を介して図示しないネットワークから読み込んでも良い。また、ディスクドライブ１５を介して可搬型記録媒体４２から読み込んでも良い。ＣＰＵ１１は、前述のソースコードと同様にテンプレートの階層構造を解析しても良いし、予め解析構造を解析した結果をテンプレートと同時に読み込んでも良い。
【００６１】
ＣＰＵ１１は、表示装置１６に変換元画面とテンプレートの画面とを表示する（ステップＳ５０７）。たとえば、ＣＰＵ１１は図４に示すように１台の表示装置１６を使用して変換元の画面とテンプレートの画面を左右に並べて表示する。また、２台の表示装置１６をバスに接続するいわゆるダブルディスプレイを使用して、変換元の画面とテンプレートの画面を異なる表示装置１６に表示しても良い。なお、ＣＰＵ１１はソースコードを解析して、パソコン、タブレット各々について代表的な画面サイズの機種または最も小さい画面サイズの機種を使用した場合の変換元の画面とテンプレートの画面を構築して表示する。
【００６２】
ＣＰＵ１１は、変換元画面からテンプレートの画面へのドラッグアンドドロップを受け付ける（ステップＳ５０８）。ドラッグアンドドロップは、入力装置１４を使用して、変換元画面の要素を選択した状態でテンプレートの画面上の要素を選択する操作である。なおユーザが、要素の表示されていない画面上の位置を入力装置１４で選択してドラッグアンドドロップ操作を行う等の本実施形態のプログラムが予定していない操作を行った場合には、ＣＰＵ１１はユーザの操作を無視する。
【００６３】
ＣＰＵ１１は、ドラッグアンドドロップの内容を記録する（ステップＳ５０９）。記録は、図１１に示すように変換テーブルを用いて行う。具体的には、変換元で選択された部分に対応する行の「移動先」の列に、テンプレートのソースコードの行を記録する。なお、ソースコードの複数行にわたるブロックに記載された要素がドラッグアンドドロップされた場合には、「連番」の列に移動されたブロック内の順番を示す。
【００６４】
ＣＰＵ１１は、「変換後」の列に、ドラッグアンドドロップされた部分を示すＨＴＭＬの文章を記載する。ここで、パソコン用のソースコードのＨＴＭＬがタブレットで使用しても問題が無い場合には、ソースコードのＨＴＭＬをそのまま複写する。一方、タブレット用に変換する必要がある場合には、変換後のＨＴＭＬを記載する。タブレット用に変換する必要がある場合とは、タブレット用のＨＴＭＬからは排除する必要があるタグ等が含まれている場合である。この場合には、ＣＰＵ１１によりタブレットに適するように変換された後のＨＴＭＬが「変換後」の列に記載される。
【００６５】
ＣＰＵ１１は、変換を終了するか否かを判定する（ステップＳ５１０）。変換の終了は、図示しない保存ボタンがユーザにより選択される事により判定する。または、変換元の画面のすべての要素がドラッグアンドドロップされた事により判定しても良い。
【００６６】
ＣＰＵ１１は、テンプレートの所定の場所に、ヘッダ部、フッタ部およびメニュー部を埋め込む（ステップＳ５１１）。パソコン用のソースコードのＨＴＭＬがタブレットで使用しても問題が無い場合には、ソースコードのＨＴＭＬがテンプレートの所定の場所にそのまま記録される。一方、タブレット用に変換する必要がある場合には、変換後のＨＴＭＬが記録される。
【００６７】
ＣＰＵ１１は、変換後のファイル構築のサブルーチンを起動する（ステップＳ５１２）。変換後のファイル構築のサブルーチンは、テンプレートおよび変換テーブルから、変換後のファイルを生成するサブルーチンである。サブルーチン内の処理については後述する。その後、ＣＰＵ１１は処理を終了する。
【００６８】
図１４は、Ｂｏｄｙ部の階層構造解析の処理手順を示すフローチャートである。図１４は、ソースコードのＢｏｄｙ部の階層構造を図７に示したように解析するサブルーチンである。以下、図１４を使用して、Ｂｏｄｙ部の階層構造解析のサブルーチンの処理の流れを説明する。
【００６９】
Ｂｏｄｙ部の階層構造解析の処理は、＜ｂｏｄｙ＞タグの次の行から開始する。＜ｂｏｄｙ＞タグの次の行は、第１階層である。ＣＰＵ１１は、ソースコードを１行読み込む（ステップＳ５２１）。ＣＰＵ１１は、読み込んだ行が枠の開始を示すタグを含むか否かを判定する（ステップＳ５２２）。枠の開始を示すタグとは、たとえばブロック要素を示す＜ｄｉｖ＞タグ、表を示す＜ｔａｂｌｅ＞タグ、入力フォームまたは送信フォームを作成する＜ｆｏｒｍ＞タグ、リスト表示する項目を示す＜ｌｉ＞タグ等である。
【００７０】
読み込んだ行が枠の開始を示すタグを含むと判定された場合には（ステップＳ５２２でＹＥＳ）、ＣＰＵ１１はその開始タグに対応する終了タグまでを、現在の階層の枠に分類する（ステップＳ５２３）。次に、ＣＰＵ１１は処理の階層を１段下げる（ステップＳ５２４）。ＣＰＵ１１は、Ｂｏｄｙ部の階層構造解析のサブルーチンを再帰的に呼び出す（ステップＳ５２５）。
【００７１】
読み込んだ行が枠の開始を示すタグを含まないと判定された場合には（ステップＳ５２２でＮＯ）、ＣＰＵ１１は処理中の行を現在の階層に分類する（ステップＳ５２６）。
【００７２】
ステップＳ５２５の終了後およびステップＳ５２６の終了後、ＣＰＵ１１はＢｏｄｙ部または再帰処理中のブロックの処理が終了したか否かを判定する（ステップＳ５２７）。終了したと判定された場合（ステップＳ５２７でＹＥＳ）、ＣＰＵ１１はＢｏｄｙ部の階層構造解析のサブルーチンを終了する。Ｂｏｄｙ部の処理が終了していないと判定された場合（ステップＳ５２７でＮＯ）、ＣＰＵ１１はステップＳ５２１に戻る。
【００７３】
図７を使用して、具体例を説明する。ＣＰＵ１１は２９行目を読み込む（ステップＳ５２１）。２９行目は、＜ｂｏｄｙ＞タグの次の行であるので前述のとおり第１階層である。２９行目は＜ｄｉｖ＞タグで始まっているので、ＣＰＵ１１は枠を示すタグを含むと判定する（ステップＳ５２２でＹＥＳ）。ＣＰＵ１１は、２９行目から対応する＜／ｄｉｖ＞タグを含む５５行目までを第１階層のブロックであると判定する（ステップＳ５２３）。ＣＰＵ１１は、第１階層を示す＜ｄｉｖ＞タグと＜／ｄｉｖ＞タグとの間のソースコードの処理を、１階層下げた第２階層として処理する（ステップＳ５２４）。
【００７４】
ＣＰＵ１１は、Ｂｏｄｙ部の階層構造解析のサブルーチンを再帰的に呼び出す（ステップＳ５２５）。ＣＰＵ１１は、次の行である３０行目を読み込む（ステップＳ５２２）。３０行目は＜ｄｉｖ＞タグで始まっているので、ＣＰＵ１１は枠を示すタグを含むと判定する（ステップＳ５２２でＹＥＳ）。ＣＰＵ１１は、３０行目から対応する＜／ｄｉｖ＞タグを含む３２行目までを第２階層のブロックであると判定する（ステップＳ５２３）。ＣＰＵ１１は、第２階層を示す＜ｄｉｖ＞タグと＜／ｄｉｖ＞タグとの間のソースコードの処理を、１階層下げた第３階層として処理する（ステップＳ５２４）。
【００７５】
ＣＰＵ１１は、Ｂｏｄｙ部の階層構造解析のサブルーチンを再帰的に呼び出す（ステップＳ５２５）。ＣＰＵ１１は、次の行である３１行目を読み込む（ステップＳ５２２）。３１行目は見出しを示す＜ｈ１＞タグで始まっているので、ＣＰＵ１１は枠を示すタグを含まないと判定する（ステップＳ５２２でＮＯ）。ＣＰＵ１１は処理中の３１行目を現在の階層である第３階層に分類する（ステップＳ５２６）。
【００７６】
ＣＰＵ１１は、再帰処理中のブロックが終了したか否かを判定する（ステップＳ５２７）。ここで、処理中の３１行目の次の行である３２行目は第２階層の終了タグであるので３０行目の処理から呼び出した再帰処理は終了していると判定する（ステップＳ５２７でＹＥＳ）。しかし、その次の３２行目は新たな階層の開始行であるので２９行目から呼び出した再帰処理は終了していないと判定する。したがって、ＣＰＵ１１は第２階層を処理中の状態でステップＳ５２１に戻り、３３行目の処理を開始する。以下、同様の操作を続けて、ソースコードのＢｏｄｙ部の階層構造を解析する。
【００７７】
図１５は、Ｈｅａｄｅｒ  Ｆｏｏｔｅｒ  Ｃｏｎｔｅｎｔｓ  Ｍｅｎｕに分類の処理手順を示すフローチャートである。Ｈｅａｄｅｒ  Ｆｏｏｔｅｒ  Ｃｏｎｔｅｎｔｓ  Ｍｅｎｕに分類のサブルーチンは、Ｂｏｄｙ部をさらにヘッダ部、フッタ部、コンテンツ部、メニュー部に分類するサブルーチンである。以下、図１５を使用して、Ｈｅａｄｅｒ  Ｆｏｏｔｅｒ  Ｃｏｎｔｅｎｔｓ  Ｍｅｎｕに分類のサブルーチンの処理の流れを説明する。
【００７８】
ＣＰＵ１１は、Ｈｅａｄｅｒを抽出のサブルーチンを起動する（ステップＳ５３１）。Ｈｅａｄｅｒを抽出のサブルーチンは、ソースコードのＢｏｄｙ部から画面内の上部に表示するヘッダ部を抽出するサブルーチンである。なお、ヘッダ部は先に解析した階層構造のブロック単位で分類する。Ｈｅａｄｅｒを抽出のサブルーチンの処理の流れは後述する。
【００７９】
ＣＰＵ１１は、Ｆｏｏｔｅｒを抽出のサブルーチンを起動する（ステップＳ５３２）。Ｆｏｏｔｅｒを抽出のサブルーチンは、ソースコードのＢｏｄｙ部から画面内の下部に表示するフッタ部を抽出するサブルーチンである。なお、フッタ部は先に解析した階層構造のブロック単位で分類する。Ｆｏｏｔｅｒを抽出のサブルーチンの処理の流れは後述する。
【００８０】
ＣＰＵ１１は、Ｍｅｎｕを抽出のサブルーチンを起動する（ステップＳ５３３）。Ｍｅｎｕを抽出のサブルーチンは、ソースコードのＢｏｄｙ部からメニューリストを表示するメニュー部を抽出するサブルーチンである。メニューリストは、画面内の他の場所へのリンク、他のＨＴＭＬファイルへのリンクまたはウェブ上のサイトへのリンクを複数配列したリストである。なお、メニュー部は先に解析した階層構造のブロック単位で分類する。Ｍｅｎｕを抽出のサブルーチンの処理の流れは後述する。
【００８１】
ＣＰＵ１１は、Ｂｏｄｙ部のうち、ヘッダ部、フッタ部、メニュー部のいずれにも分類されなかったブロックをコンテンツ部に分類する（ステップＳ５３４）。その後、ＣＰＵ１１はＨｅａｄｅｒ  Ｆｏｏｔｅｒ  Ｃｏｎｔｅｎｔｓ  Ｍｅｎｕに分類のサブルーチンを終了する。
【００８２】
図１６は、Ｈｅａｄｅｒを抽出の処理手順を示すフローチャートである。Ｈｅａｄｅｒを抽出のサブルーチンは、Ｂｏｄｙ部のソースコードから画面内の上部に表示するヘッダ部を抽出するサブルーチンである。以下、図１６を使用して、Ｈｅａｄｅｒを抽出のサブルーチンの処理の流れを説明する。
【００８３】
ＣＰＵ１１は、第２階層の１番目のブロックを読み込む（ステップＳ５４０）。ＣＰＵ１１は、読み込んだブロック内に「ｈｅａｄｅｒ」または「ｔｏｐ」のキーワードが含まれているか否かを判定する（ステップＳ５４１）。いずれかのキーワードが含まれていると判定された場合は（ステップＳ５４１でＹＥＳ）、ＣＰＵ１１は読み込んだブロックをヘッダ部に決定する（ステップＳ５４２）。
【００８４】
読み込んだブロックに、「ｈｅａｄｅｒ」または「ｔｏｐ」のキーワードが含まれていないと判定された場合は（ステップＳ５４１でＮＯ）、ＣＰＵ１１は第２階層のすべてのブロックの処理が終了したか否かを判定する（ステップＳ５４３）。第２階層のすべてのブロックの処理が終了していないと判定された場合（ステップＳ５４３でＮＯ）、ＣＰＵ１１は第２階層の次のブロックを読み込む（ステップＳ５４４）。
【００８５】
ＣＰＵ１１は、読み込んだブロック内に「ｈｅａｄｅｒ」または「ｔｏｐ」のキーワードが含まれているか否かを判定する（ステップＳ５４５）。いずれかのキーワードが含まれていると判定された場合は（ステップＳ５４５でＹＥＳ）、ＣＰＵ１１は読み込んだブロックをヘッダ部に決定する（ステップＳ５４２）。
【００８６】
ステップＳ５４２でヘッダ部を決定した後、ＣＰＵ１１はヘッダ部を記録する（ステップＳ５４６）。記録は、たとえば図１１の変換テーブルの３０行から３２行に示すように「分類」列の十の位を１に設定することにより行う。
【００８７】
読み込んだブロックに、「ｈｅａｄｅｒ」または「ｔｏｐ」のキーワードが含まれていないと判定された場合は（ステップＳ５４５でＮＯ）、ＣＰＵ１１は第２階層のすべてのブロックの処理が終了したか否かを判定する（ステップＳ５４７）。第２階層のすべてのブロックの処理が終了していないと判定された場合（ステップＳ５４７でＮＯ）、ＣＰＵ１１はステップＳ５４４に戻る。
【００８８】
第２階層のすべてのブロックの処理が終了していると判定された場合（ステップＳ５４３でＹＥＳまたはステップＳ５４７でＹＥＳ）、ＣＰＵ１１は他にヘッダ部を決定できるか否かを判定する（ステップＳ５４８）。たとえば＜ｂｏｄｙ＞タグより前のヘッダ情報部等に記載されたタイトル部分がヘッダ部として使用できるかどうかを判定する。または、あらかじめ保存してある標準的なヘッダ部を採用するか否かを判定しても良い。
【００８９】
ヘッダ部を決定できると判定された場合（ステップＳ５４８でＹＥＳ）、ＣＰＵ１１はそのヘッダ部を記録する（ステップＳ５４９）。記録は、補助記憶装置１３または主記憶装置１２に記憶することにより行う。
【００９０】
ヘッダ部を決定できないと判定された場合（ステップＳ５４８でＮＯ）、ＣＰＵ１１はそのファイルにはヘッダ部が無いと判定し（ステップＳ５５０）、その旨を記録する。記録は、補助記憶装置１３または主記憶装置１２に記憶することにより行う。
【００９１】
ステップＳ５４６、ステップＳ５４９またはステップＳ５５０が終了したら、ＣＰＵ１１はＨｅａｄｅｒを抽出のサブルーチンを終了する。
【００９２】
図１７は、Ｆｏｏｔｅｒを抽出の処理手順を示すフローチャートである。Ｆｏｏｔｅｒを抽出のサブルーチンは、ソースコードのＢｏｄｙ部から画面内の下部に表示するフッタ部を抽出するサブルーチンである。以下、図１７を使用して、Ｆｏｏｔｅｒを抽出のサブルーチンの処理の流れを説明する。
【００９３】
ＣＰＵ１１は、第２階層の１番最後のブロックを読み込む（ステップＳ５６０）。ＣＰＵ１１は、読み込んだブロック内に「ｆｏｏｔｅｒ」または「ｂｏｔｔｏｍ」のキーワードが含まれているか否かを判定する（ステップＳ５６１）。いずれかのキーワードが含まれていると判定された場合は（ステップＳ５６１でＹＥＳ）、ＣＰＵ１１は読み込んだブロックをフッタ部に決定する（ステップＳ５６２）。
【００９４】
読み込んだブロックに、「ｆｏｏｔｅｒ」または「ｂｏｔｔｏｍ」のキーワードが含まれていないと判定された場合は（ステップＳ５６１でＮＯ）、ＣＰＵ１１は第２階層のすべてのブロックの処理が終了したか否かを判定する（ステップＳ５６３）。第２階層のすべてのブロックの処理が終了していないと判定された場合（ステップＳ５６３でＮＯ）、ＣＰＵ１１は第２階層の一つ前のブロックを読み込む（ステップＳ５６４）。
【００９５】
ＣＰＵ１１は、読み込んだブロック内に「ｆｏｏｔｅｒ」または「ｂｏｔｔｏｍ」のキーワードが含まれているか否かを判定する（ステップＳ５６５）。いずれかのキーワードが含まれていると判例された場合は（ステップＳ５６５でＹＥＳ）、ＣＰＵ１１は読み込んだブロックをフッタ部に決定する（ステップＳ５６２）。
【００９６】
ステップＳ５６２でフッタ部を決定した後、ＣＰＵ１１はフッタ部を記録する（ステップＳ５６６）。記録は、たとえば図１１の「分類」列の十の位を４に設定することにより行う。
【００９７】
読み込んだブロックに、「ｆｏｏｔｅｒ」または「ｂｏｔｔｏｍ」のキーワードが含まれていないと判定された場合は（ステップＳ５６５でＮＯ）、ＣＰＵ１１は第２階層のすべてのブロックの処理が終了したか否かを判定する（ステップＳ５６７）。第２階層のすべてのブロックの処理が終了していないと判定された場合（ステップＳ５６７でＮＯ）、ＣＰＵ１１はステップＳ５６４に戻る。
【００９８】
第２階層のすべてのブロックの処理が終了していると判定された場合（ステップＳ５６３でＹＥＳまたはステップＳ５６７でＹＥＳ）、ＣＰＵ１１は他にフッタ部を決定できるか否かを判定する（ステップＳ５６８）。たとえばＢｏｄｙ部以外の部分に記載された項目がフッタ部として使用できるかどうかを判定する。または、あらかじめ保存してある標準的なフッタ部を採用するか否かを判定しても良い。
【００９９】
フッタ部を決定できると判定された場合（ステップＳ５６８でＹＥＳ）、ＣＰＵ１１はそのヘッダ部を記録する（ステップＳ５６９）。記録は、補助記憶装置１３または主記憶装置１２に記憶することにより行う。
【０１００】
ヘッダ部を決定できないと判定された場合（ステップＳ５６８でＮＯ）、ＣＰＵ１１はそのファイルにはヘッダ部が無いと判定し（ステップＳ５７０）、その旨を記録する。記録は、補助記憶装置１３または主記憶装置１２に記憶することにより行う。
【０１０１】
ステップＳ５６６、ステップＳ５６９またはステップＳ５７０が終了したら、ＣＰＵ１１はＦｏｏｔｅｒを抽出のサブルーチンを終了する。
【０１０２】
図１８は、Ｍｅｎｕを抽出の処理手順を示すフローチャートである。Ｍｅｎｕを抽出のサブルーチンは、ソースコードのＢｏｄｙ部からメニューリストを表示するメニュー部を抽出するサブルーチンである。メニューリストは、画面内の他の場所へのリンク、他のＨＴＭＬファイルへのリンクまたはウェブ上のサイトへのリンクを複数配列したリストである。
【０１０３】
ＣＰＵ１１は、第２階層の１番目のブロックを読み込む（ステップＳ５８０）。ＣＰＵ１１は、読み込んだブロックが既にヘッダ部またはフッタ部に分類されているか否かを判定する（ステップＳ５８１）。いずれにも分類されていないと判定された場合は（ステップＳ５８１でＮＯ）、ＣＰＵ１１は読み込んだブロックが複数のリンクを含むか否かを判定する（ステップＳ５８３）。
【０１０４】
複数のリンクを含むと判定された場合は（ステップＳ５８３でＹＥＳ）、ＣＰＵ１１は複数のリンク同士が類似表現か否かを判定する（ステップＳ５８４）。ここで類似表現とは、リンク同士が同じ階層に分類されていること、リンク先の名称の一部が共通していることまたはリンク先のＵＲＬの一部が共通していること等を意味する。
【０１０５】
複数のリンク同士が類似表現であると判定された場合には（ステップＳ５８４でＹＥＳ）、ＣＰＵ１１は階層構造を参照して類似表現のリンクより成るリンク群を包含する下位階層のブロックの有無を判定する（ステップＳ５８５）。下位階層のブロックが無いと判定された場合には（ステップＳ５８５でＮＯ）、ＣＰＵ１１は読み込んだブロックをメニュー部に決定する（ステップＳ５８６）。下位階層のブロックがあると判定された場合には（ステップＳ５８５でＹＥＳ）。ＣＰＵ１１はリンク群を包含する下位階層のブロックの中で最も低い下位階層のブロックをメニュー部に決定する（ステップＳ５８７）。
【０１０６】
複数のリンク同士が類似表現では無いと判定された場合には（ステップＳ５８４でＮＯ）、ＣＰＵ１１はステップＳ５８０で読み込んだブロックをメニュー部に仮決定する（ステップＳ５８８）。
【０１０７】
ステップＳ５８８の後、およびステップＳ５８０で読み込んだブロックが複数のリンクを含まないと判定された場合（ステップＳ５８３でＮＯ）、ＣＰＵ１１はすべてのブロックの処理が終了したか否かを判定する（ステップＳ５８９）。また、ステップＳ５８０で読み込んだブロックがヘッダ部またはフッタ部だと判定された場合（ステップＳ５８１でＹＥＳ）も、ＣＰＵ１１はすべてのブロックの処理が終了したか否かを判定する（ステップＳ５８９）。
【０１０８】
すべてのブロックの処理が終了していないと判定された場合（ステップＳ５８９でＮＯ）、ＣＰＵ１１はステップＳ５８０に戻り、次のブロックを読み込む（ステップＳ５８０）。ステップＳ５８０における次のブロックとは、先に読み込んだブロックに未検討の下位階層のブロックが含まれる場合にはその未検討の下位階層のブロックを意味する。先に読み込んだブロックに未検討の下位階層のブロックが含まれない場合には、次のブロックとは未検討の同階層のブロックを意味する。また、先に読み込んだブロックに未検討の下位階層のブロックも未検討の同階層のブロックも無い場合には、次のブロックとは未検討の上位階層のブロックを意味する。
【０１０９】
すべてのブロックの処理が終了したと判定された場合（ステップＳ５８９でＹＥＳ）、ＣＰＵ１１はメニュー部に仮決定されたブロックの有無を判定する（ステップＳ５９０）。仮決定されたブロックが無いと判定された場合（ステップＳ５９０でＮＯ）、ＣＰＵ１１はメニュー部無しと判定し（ステップＳ５９１）、その旨を記録する。記録は、補助記憶装置１３または主記憶装置１２に記憶することにより行う。
【０１１０】
仮決定されたブロックがあると判定された場合（ステップＳ５９０でＹＥＳ）、ＣＰＵ１１は仮決定されたブロックが複数あるか否かを判定する（ステップＳ５９２）。仮決定されたブロックが１個だけと判定された場合（ステップＳ５９２でＮＯ）、ＣＰＵ１１は仮決定されたブロックをメニュー部に決定する（ステップＳ５９３）。仮決定されたブロックが複数あると判定された場合（ステップＳ５９２でＹＥＳ）、ＣＰＵ１１は仮決定されたブロックのうち最もリンクが多いブロックをメニュー部に決定する（ステップＳ５９４）。
【０１１１】
ステップＳ５８６、ステップＳ５９３およびステップＳ５９４の終了後、ＣＰＵ１１はメニュー部を記録する（ステップＳ５９５）。記録は、たとえば図１１の「分類」列の十の位を２に設定することにより行う。
【０１１２】
ステップＳ５９１またはステップＳ５９５が終了したら、ＣＰＵ１１はＭｅｎｕを抽出のサブルーチンを終了する。
【０１１３】
図１９は、変換後のファイル構築の処理手順を示すフローチャートである。変換後のファイル構築のサブルーチンは、テンプレートおよび変換テーブルから、変換後のファイルを生成するサブルーチンである。以下、図１９を使用して、変換後のファイル構築のサブルーチンの処理の流れを説明する。
【０１１４】
ＣＰＵ１１は、テンプレートの＜ｂｏｄｙ＞タグ以前の部分を変換後のファイルに出力する（ステップＳ６００）。なお、本プログラムにより生成された事を示す情報等を変換後のファイルに追加しても良い。また元ファイルの＜ｂｏｄｙ＞タグ以前の部分をコメント文として変換後のファイルに追加しても良い。
【０１１５】
ＣＰＵ１１は、テンプレートから１行を読み込む（ステップＳ６０１）。ＣＰＵ１１は、読み込んだ行を変換後のファイルの末尾に追加する（ステップＳ６０２）。ＣＰＵ１１は、読み込んだ行が元ファイルの要素の埋め込み対象になっているか否かを判定する（ステップＳ６０３）。埋め込み対象になっていることは、図１１に示す変換テーブルの「移動先」の列に、読み込んだ行の行番号が記載されていることにより判定する。
【０１１６】
埋め込み対象になっていないと判定された場合（ステップＳ６０３でＮＯ）、ＣＰＵ１１はステップＳ６０１に戻る。埋め込み対象になっていると判定された場合には（ステップＳ６０３でＹＥＳ）、ＣＰＵ１１は埋め込む要素を図１１に示す変換テーブルの「変換後」の列から読み込む（ステップＳ６０４）。ここで、図１１に示す変換テーブルの「移動先」の列の複数の行に読み込んだ行の行番号が記載されている場合には、「連番」の列に記載された番号の順番に埋め込む要素を読み込む。ＣＰＵ１１は、読み込んだ要素を変換後のファイルの末尾に追加する（ステップＳ６０５）。
【０１１７】
なお、ステップＳ５１１にて既に変換元ファイルのヘッダ部、フッタ部、メニュー部はテンプレートに埋め込まれている。したがって変換元ファイルのヘッダ部、フッタ部、メニュー部は、ステップＳ６０２で変換後のファイルに順次出力される。
【０１１８】
ＣＰＵ１１は、テンプレートのすべての行の処理が終了したか否かを判定する（ステップＳ６０６）。終了したと判定された場合（ステップＳ６０６でＹＥＳ）、ＣＰＵ１１は変換後のファイルを保存後、変換後のファイル構築のサブルーチンを終了する。終了していないと判定された場合（ステップＳ６０６でＮＯ）、ＣＰＵ１１はステップＳ６０１に戻る。
【０１１９】
以上の処理により、パソコン向けのウェブ画面からタブレット向けの変換後のファイルが作成される。ＪａｖａＳｃｒｉｐｔまたはＪａｖａ等のコードは適切に変換した上で変換後のファイルに埋め込まれているので、変換後のウェブ画面からも入力フォームやボタン等の操作を行うことができる。
【０１２０】
変換元のファイルにはたとえばｚｉｐ形式等で圧縮されたファイルを使用しても良い。ウェブサイトに表示する画像ファイル、動画ファイル、フラッシュファイル等を１つの書庫として管理する事ができる。またｚｉｐファイル内のＨＴＭＬファイルを順次本プログラムを利用して処理することにより、規模の大きなウェブサイトも容易に他の情報機器向けに変換することができる。
【０１２１】
変換元のウェブ画面が対応する第１の情報機器は、パソコンに限定されない。タブレット、スマートフォン等様々な情報機器を第１の情報機器として採用し得る。また変換先のウェブ画面を表示する第２の情報機器はタブレットに限定されない。パソコン、スマートフォン、ウェアラブル端末等様々な情報機器を第２の情報機器として採用し得る。また、例えば第１の情報機器は大画面のパソコン、第２の情報機器は小画面のモバイル用途向けパソコンのように、第１と第２の情報機器に同じ種類でスペックの異なる情報機器を採用しても良い。なお、第１の情報機器の方が第２の情報機器よりも表示画面の画素数が多くなるように、または多機能で複雑な処理を行えるように、第１の情報機器と第２の情報機器との組み合わせを選択することが望ましい。このようにすると、複雑な処理を行える情報機器向けにその機能を十分に生かすウェブサイトを作成し、複雑な処理を行えない情報機器向けには本プログラムを利用して機能の一部を取り出した簡易的なウェブサイトを作成する事ができる。
【０１２２】
本実施の形態では、Ｓｔｒｕｔｓ２のコードが記載されている変換元ファイルを例にして説明したが、使用されるアプリケーションフレームワークはＳｔｒｕｔｓ２に限定されない。Ｓｔｒｕｔｓ１、ＪＳＦ（Java Server Faces）、Ｍｏｊａｖｉ等の様々なアプリケーションフレームワークを使用したウェブ画面の変換に使用することができる。なお、使用するアプリケーションフレームワークによっては、図１３から図１９のフローチャートに示した各処理に使用するＨＴＭＬタグを変更する場合がある。
【０１２３】
本実施の形態では変換前後のソースコードがＨＴＭＬで記載されている場合を例にして説明したが、ソースコードの言語はＨＴＭＬに限定されない。ＸＦｏｒｍｓ、ＳＶＧ（Scalable Vector Graphics）等で記載されたソースコードの変換に使用することができる。
【０１２４】
［実施の形態２］
本実施の形態は、ウェブ画面を表示する情報機器に合わせたソースコードの変換を、変換後のファイル構築の段階で行う変換プログラム４１に関する。なお、実施の形態１と共通する部分の説明は省略する。
【０１２５】
本実施の形態で使用する変換テーブルは、図８および図１１に示した変換テーブルから「変換後」の列を削除したものである。したがって、ウェブ画面に表示する要素をドラッグアンドドロップした際には、「行」の列および「連番」の列のみが記録される。
【０１２６】
図２０は、実施の形態２の変換後のファイル構築の処理手順を示すフローチャートである。ステップＳ６０３までは、実施の形態１の処理と同一である。ステップＳ６０１で読み込んだ行が埋め込み対象になっていないと判定された場合（ステップＳ６０３でＮＯ）、ＣＰＵ１１はステップＳ６０１に戻る。
【０１２７】
埋め込み対象になっていると判定された場合には（ステップＳ６０３でＹＥＳ）、ＣＰＵ１１は埋め込む要素を図１１に示す変換テーブルの「行内容」の列から読み込む（ステップＳ６１０）。ここで、図１１に示す変換テーブルの「移動先」の列の複数の行に読み込んだ行の行番号が記載されている場合には、「連番」の列に記載された番号の順番に埋め込む要素を読み込む。
【０１２８】
ＣＰＵ１１は、読み込んだ要素を変換する必要があるか否かを判定する（ステップＳ６１１）。変換する必要がある場合とは、タブレット用のＨＴＭＬからは排除する必要があるタグ等が含まれている場合である。タブレット用のＨＴＭＬからは排除する必要があるタグ等が含まれている場合とは、たとえばテーブルを示す＜ｔｒ＞タグと＜／ｔｒ＞タグとが使用されている場合である。なお、変換する必要がある場合を識別するための条件は、あらかじめ補助記憶装置１３に記憶されている。
【０１２９】
変換する必要があると判定された場合（ステップＳ６１１でＹＥＳ）、ＣＰＵ１１はステップＳ６１０で読み込んだ要素を変換する（ステップＳ６１２）。たとえばテーブルを示す＜ｔｒ＞タグと＜／ｔｒ＞タグとは、リストを示す＜ｌｉ＞タグと＜／ｌｉ＞タグとに変換する。
【０１３０】
変換する必要が無いと判定された場合（ステップＳ６１１でＮＯ）およびステップＳ６１２の終了後、ＣＰＵ１１は、読み込んだ要素を変換後のファイルの末尾に追加する（ステップＳ６０５）。
【０１３１】
ＣＰＵ１１は、テンプレートのすべての行の処理が終了したか否かを判定する（ステップＳ６０６）。終了したと判定された場合（ステップＳ６０６でＹＥＳ）、ＣＰＵ１１は変換後のファイルを保存後、変換後のファイル構築のサブルーチンを終了する。終了していないと判定された場合（ステップＳ６０６でＮＯ）、ＣＰＵ１１はステップＳ６０１に戻る。
【０１３２】
本実施の形態によれば、変換テーブルの容量を小さく抑える事ができるので、複雑で大規模なウェブページの変換を、比較的能力の低いコンピュータで行う事ができる。
【０１３３】
さらに、変換テーブルの「行内容」の列の代わりに「ＩＤ」の列を設け、各行のＩＤを記載しても良い。この場合、変換後のファイル構築のサブルーチンではＩＤを基準にして元のファイルの該当する部分を読み出して使用する。このようにすると、たとえば長い文章を含むウェブ画面の場合に変換テーブルの容量を小さく抑える事ができる。
【０１３４】
［実施の形態３］
本実施の形態は、変換元のウェブ画面に階層構造を示す枠を表示する事により、複数の要素を効率良くドラッグアンドドロップすることができる変換プログラム４１に関する。なお、実施の形態１と共通する部分の説明は省略する。
【０１３５】
図２１は、実施の形態３の変換プログラム４１の表示画面の例を示す説明図である。図２１の左側の変換元であるパソコン用のウェブ画面には、Ｂｏｄｙ部の階層構造に対応したブロック枠３０が表示されている。
【０１３６】
マウス等の入力装置１４が操作されて、ブロック枠３０の近傍にマウスポインタ３１が位置する場合、ＣＰＵ１１はブロック枠３０を太く表示するように表示装置１６を制御する。これにより、ユーザは複数の要素をまとめたブロックを選択して、ドラッグアンドドロップの操作を行う事ができる。
【０１３７】
なお、複数のブロック枠３０が重畳している場所の近傍にマウスポインタ３１が位置する場合、ＣＰＵ１１は複数のブロック枠３０を順番に太く表示しても良い。このようにすると、ユーザは目的のブロック枠３０が太く表示されている時にマウスの選択ボタンを押し下げる事で、目的の階層のブロックを選択することができる。
【０１３８】
［実施の形態４］
本実施の形態は、変換にかかる情報を機械学習用トレーニングデータとして記録する事により、変換を自動化することができる変換プログラム４１に関する。なお、実施の形態１と共通する部分の説明は省略する。
【０１３９】
本実施の形態においては、図１１に示す変換テーブル、変換元のウェブ画面、変換後のウェブ画面および使用したテンプレートを関連付けて、補助記憶装置１３に蓄積する。十分な量の情報が蓄積された後、この情報を機械学習用トレーニングデータとして統計的に処理する。統計的に処理したデータを利用することにより、自動変換を実現できる。なお、機械学習の手法は種々の手法を採用することができるので説明を省略する。
【０１４０】
各実施例で記載されている技術的特徴（構成要件）はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものでは無いと考えられるべきである。本発明の範囲は、上記した意味では無く、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１４１】
１１  ＣＰＵ
１２  主記憶装置
１３  補助記憶装置
１４  入力装置
１５  ディスクドライブ
１６  表示装置
１７  通信モジュール
２０  コンピュータ
４１  変換プログラム
４２  可搬型記録媒体
４３  半導体メモリ
【図１】
2016122287.tif 000003
【図２】
2016122287.tif 000004
【図３】
2016122287.tif 000005
【図４】
2016122287.tif 000006
【図５】
2016122287.tif 000007
【図６】
2016122287.tif 000008
【図７】
2016122287.tif 000009
【図８】
2016122287.tif 000010
【図９】
2016122287.tif 000011
【図１０】
2016122287.tif 000012
【図１１】
2016122287.tif 000013
【図１２】
2016122287.tif 000014
【図１３】
2016122287.tif 000015
【図１４】
2016122287.tif 000016
【図１５】
2016122287.tif 000017
【図１６】
2016122287.tif 000018
【図１７】
2016122287.tif 000019
【図１８】
2016122287.tif 000020
【図１９】
2016122287.tif 000021
【図２０】
2016122287.tif 000022
【図２１】
2016122287.tif 000023