(57)【要約】【課題】手書き情報または任意の情報を取得、または手書き情報を文字認識するための、ウェブブラウザの種類に依存しない高機能な方法を提供する。【解決手段】ウェブブラウザ部と、ウェブブラウザ部と同じ端末上で実行されるプログラム部がローカルループバック接続によって通信を確立する。プログラム部が、ウェブブラウザ部に対してメッセージフックを行い、手書き情報または任意の情報を取得し、取得した情報を、プログラム部がウェブブラウザ部に送信することで、ウェブブラウザの種類によらず、手書き情報または任意の情報を、ウェブブラウザ部に提供する。また、得られた手書き情報を、ウェブブラウザ部がプログラム部に送信し、プログラム部が文字認識を行い、文字認識結果をウェブブラウザ部に送信することによって、ウェブブラウザの種類によらず、文字認識を行う。【選択図】図１
2020086679.tif 000002
【特許請求の範囲】
【請求項１】
端末が、CPUと、メモリと、画面と、記憶装置と、ループバックインターフェースと、ウェブブラウザ部を備え、前記画面がタッチ入力を入力手段として受け付け、前記タッチ入力によって、前記ウェブブラウザ部が手書き情報を作成し、前記端末によって実行されるプログラムであって、前記プログラムは前記ウェブブラウザ部と別のプロセスで実行され、前記ループバックインターフェース上の所定のポートでローカルループバック接続を待ち受けする工程と、前記プログラムと同じ前記端末上で実行される前記ウェブブラウザ部と前記ローカルループバック接続によって通信を確立する工程と、前記ウェブブラウザ部が前記ローカルループバック接続を通して送信した前記手書き情報を受信する工程と、受信した前記手書き情報を文字認識し、文字認識結果を作成する工程と、前記ローカルループバック接続を通して前記ウェブブラウザ部に前記文字認識結果を送信する工程を、前記端末に実行させることを特徴とする、プログラム。
【請求項２】
端末が、CPUと、メモリと、画面と、記憶装置と、ループバックインターフェースと、ウェブブラウザ部を備え、前記端末によって実行されるプログラムであって、前記プログラムは前記ウェブブラウザ部と別のプロセスで実行され、前記ループバックインターフェース上の所定のポートでローカルループバック接続を待ち受けする工程と、前記プログラムと同じ前記端末上で実行される前記ウェブブラウザ部と前記ローカルループバック接続によって通信を確立する工程と、前記ウェブブラウザ部にメッセージフックを行い処理を挿入する工程と、前記メッセージフックが前記ウェブブラウザ部に挿入する処理により、前記ウェブブラウザ部が前記プログラムに送信した任意の情報を受信する工程と、前記ローカルループバック接続を通して前記ウェブブラウザ部に任意の情報を送信する工程を、前記端末に実行させることを特徴とする、プログラム。
【請求項３】
前記画面がスタイラスペンを入力手段として受け付け、前記画面と前記スタイラスペンがデジタイザーの機能を備え、前記ウェブブラウザ部が前記プログラムに送信した任意の情報は前記スタイラスペンの情報を含むことを特徴とする、請求項２に記載のプログラム。
【請求項４】
前記スタイラスペンによって、前記ウェブブラウザ部が手書き情報を作成することを特徴とする、請求項２、または請求項３に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はウェブブラウザと、ウェブブラウザと同じ端末上で実行されるプログラムが通信し、ウェブブラウザに任意の情報を送信し、またウェブブラウザ上で入力された手書き情報を文字認識するシステムに関するものである。
【背景技術】
【０００２】
タブレット型端末およびスマートフォンが普及する中で、ウェブブラウザ上で入力された手書き情報を高度に処理する方法が求められている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表４０１６−５１７５７１
【非特許文献】
【０００４】
【非特許文献１】WWWクライアント上で動作する手書き文字認識モジュールの開発と知的教育システムへの実装    https://core.ac.uk/download/pdf/59164141.pdf
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ウェブブラウザ上で、スタイラスペンを用いた手書き情報を取得する方法として、ウェブブラウザが備えるJavaScript（登録商標）のAPIを用いて、ウェブブラウザにペン入力を行った際のイベントから、スタイラスペンの入力情報を取得する方法が知られている。
しかし、従来のJavaScriptのAPIを用いた取得方法は、取得できる情報がウェブブラウザの種類によってばらつきがあり、一貫性のある手書き情報が取得できない。
また非特許文献１によれば、手書き情報を処理する一例として、手書き情報を、ウェブブラウザから、JAVA（登録商標）アプレットなどウェブブラウザ上にホストされたプログラムに送信し、ウェブブラウザ上のプログラムで文字認識を行い、ウェブブラウザに返却することで、文字列を取得する方法が提案されている。
しかし、従来のウェブブラウザ上のプログラムで文字認識を行う方法は、JAVAアプレットやActiveX（登録商標）やAdobeFlash（登録商標）などで作成されたプログラムをウェブブラウザごとにインストールする必要があり、またプログラムをウェブブラウザ上でホストするためのプラグイン技術自体が、ウェブブラウザの種類によって対応していない、または開発が終了しているか、終了予定であるといった問題があり、ユーザーが容易に利用できない状態である。
本発明の目的は、ウェブブラウザから手書き情報または任意の情報を取得し、また手書き情報を文字認識するための、ウェブブラウザの種類に依存しない高機能な方法を提供することである。
【課題を解決するための手段】
【０００６】
ウェブブラウザ部と、ウェブブラウザ部と同じ端末上で実行されるプログラム部がローカルループバック接続によって通信を確立する。
プログラム部が、ウェブブラウザ部に対してメッセージフックを行い、ウェブブラウザ部上で入力された入力手段の情報、またはウェブブラウザ部の任意の情報、またはその他の任意の情報を取得し、取得した情報を、プログラム部がウェブブラウザ部に送信することで、ウェブブラウザの種類によらず、一貫性のある手書き情報、またはウェブブラウザ部の任意の情報、またはその他の任意の情報を、ウェブブラウザ部に提供できる。
また、得られた手書き情報を、ウェブブラウザ部がプログラム部に送信し、プログラム部が備える文字認識部が、手書き情報を元に文字認識を行い、文字認識結果をウェブブラウザ部に送信することによって、ウェブブラウザの種類によらず、文字認識を行い、文字認識結果をウェブブラウザ部に提供できる。
【図面の簡単な説明】
【０００７】
【図１】手書き情報、またはウェブブラウザ部の任意の情報、またはその他の任意の情報を取得し、また手書き情報を文字認識してウェブブラウザ部に送信するためのシステムの実施形態を例示する機能ブロック図
【図２】プログラム部が文字認識処理を実行するためのフローチャート
【図３】プログラム部がメッセージフックを行い、ウェブブラウザ部から任意の情報を取得するためのフローチャート
【図４】入力手段がスタイラスペンの場合に、詳細なペン情報を取得するためのフローチャート
【図５】入力手段がスタイラスペンの場合に、ペン情報取得処理によって取得したペン情報を元に、パームリジェクション機能を実行するためのフローチャート
【図６】入力手段がスタイラスペンの場合に、ペン情報取得処理によって取得したペン情報を元に、消しゴム機能を実行するためのフローチャート
【図７】入力手段がスタイラスペンの場合に、ペン情報取得処理によって取得したペン情報を元に、手書き情報を文字認識する処理を実行するタイミングを制御するためのフローチャート
【図８】手書き情報を文字認識する処理を実行するためのフローチャート
【発明を実施するための形態】
【０００８】
図１は、手書き情報、またはウェブブラウザ部の任意の情報、またはその他の任意の情報を取得し、また手書き情報を文字認識してウェブブラウザ部に送信するためのシステムの実施形態を例示する機能ブロック図である。
【０００９】
端末１０１は、タブレット型端末、またはスマートフォン、またはその他の任意のコンピューターデバイスでありうる。
また、端末１０１は、CPU１０２とメモリ１０３と画面１０４と記憶装置１０５を備え、さらに必要であればネットワークインターフェース１０６を備える。
また、端末１０１は、メモリ１０３上にループバックインターフェース１０７を配置する。
また、端末１０１が備える画面１０４はタッチパネルであり、スタイラスペン、またはタッチ操作、またはその他の任意の手書き入力手段を受け付ける。
また、端末１０１は、メモリ１０３上にウェブブラウザ部１１３とプログラム部１１９を配置する。
【００１０】
ループバックインターフェース１０７は、端末１０１によってメモリ１０３上に配置され、ローカルループバックアドレスを設定した仮想ネットワークインターフェースである。
ループバックインターフェース１０７に設定されるローカルループバックアドレスは、端末自身を表す、127.0.0.0から127.255.255.255の範囲の任意のIPv4のIPアドレス、または0:0:0:0:0:0:0:1のIPv6のIPアドレスでありうる。
【００１１】
入力手段１１１は、指か、またはマウスか、またはスタイラスペンか、または手書き情報の入力が可能な任意の入力手段でありうる。
また、入力手段１１１がスタイラスペンの場合、入力手段１１１および画面１０４はデジタイザーの機能を備えうる。
入力手段１１１および画面１０４が備えるデジタイザーの機能は、画面１０４が、画面１０４と入力手段１１１の入力部位が接触している状態を入力として検知し、さらに画面１０４が、画面１０４と入力手段１１１の入力部位が接触せず、少し離れた状態（以降、この状態を「ホバー」と呼称する）を入力として検知することが出来る。
【００１２】
ウェブブラウザ部１１３は、HTML５準拠の任意のウェブブラウザでありうる。
また、ウェブブラウザ部１１３は、記憶装置１０５またはネットワークインターフェース１０６を使用して、任意のファイルシステムまたはウェブサーバーから、HTMLコンテンツを取得し、ウェブブラウザ部１１３上にHTMLコンテンツ部１１４として構築する。
【００１３】
HTMLコンテンツ部１１４はHTMLコンテンツを含む様々なウェブベースのコンテンツを含むことが出来る。
また、HTMLコンテンツ部１１４はページ要素１１５と組込ウェブサーバー通信部１１７を備える。
【００１４】
ページ要素１１５はHTMLタグ、またはその他の任意のウェブベースのコンテンツでありうる。
また、ページ要素１１５は手書き入力１１２を受信して、手書き情報１１６を生成し、手書き情報１１６を組込ウェブサーバー通信部１１７に送信することが出来る。
また、ページ要素１１５は、要素内に任意の画像情報を描画可能である場合、手書き情報１１６が保持する一連の入力情報を筆跡として描画しても良い。
【００１５】
手書き情報１１６は、手書き入力１１２の一連の入力情報の配列、または手書き入力１１２の筆跡を記録した画像情報でありうる。
また、手書き情報１１６は、手書き入力１１２の位置情報、または手書き入力１１２のその他の任意の情報を含みうる。
【００１６】
組込ウェブサーバー通信部１１７は、JavaScript、またはその他の任意のウェブベースの実行可能コードでありうる。
また、組込ウェブサーバー通信部１１７は、ページ要素１１５から取得した手書き情報１１６、または手書き情報１１６を文字認識する命令、またはその他の任意の情報を、ローカルループバック接続１１８を介して、組込ウェブサーバー部１２１に送信することができる。
また、組込ウェブサーバー通信部１１７は、組込ウェブサーバー部１２１から、文字認識結果の文字列を受信し、ページ要素１１５に文字認識結果１２４として設定することができる。
【００１７】
ローカルループバック接続１１８は、組込ウェブサーバー通信部１１７をクライアント、組込ウェブサーバー部１２１をサーバーとした、HTTP、またはHTTPS、またはWebSocket、またはWebSockets over SSL/TLS、またはその他の任意のRFC準拠のプロトコルの通信チャンネルでありうる。
また、ローカルループバック接続１１８は、組込ウェブサーバー通信部１１７から、組込ウェブサーバー部１２１によって待ち受けしているループバックインターフェース１０７上の所定のポートに接続し、通信を確立する。
また、ローカルループバック接続１１８の行う通信は、組込ウェブサーバー通信部１１７がリクエストを組込ウェブサーバー部１２１に送信し、組込ウェブサーバー部１２１がレスポンスを組込ウェブサーバー通信部１１７に返信する、いわゆるプル型通信か、または確立された通信によって組込ウェブサーバー通信部１１７から組込ウェブサーバー部１２１に送信するのみでなく、組込ウェブサーバー部１２１から組込ウェブサーバー通信部１１７に送信する、いわゆるプッシュ型通信でありうる。
ローカルループバック接続１１８のプロトコルがHTTP、またはHTTPSなどプッシュ型通信をサポートしない場合、Cometなど疑似的にプッシュ型通信を行う実装をしてもよい。
また、ローカルループバック接続１１８がSSL/TLSを使用して暗号化通信を行う場合、暗号化通信に使用される公開鍵証明書は、自己署名証明書、または第三者が署名した証明書でありうる。
公開鍵証明書が第三者が署名した証明書の場合、証明書はSNIまたはSANsのワイルドカードの機能を備える証明書でありうる。
当業者は組込ウェブサーバー部１２１にワイルドカードの機能を備える証明書を設置し、ドメインまたはサブドメインのAレコードにローカルループバックアドレスを設定し、組込ウェブサーバー通信部１１７がローカルループバック接続１１８を行う際に、ローカルループバックアドレスを設定したドメインまたはサブドメインを通して接続するよう構成することで、ウェブブラウザに信頼される証明書を、ウェブブラウザ部１１３に提示できる。
【００１８】
プログラム部１１９は、ウェブブラウザ部１１３と別のプロセスで実行されるアプリケーションである。
また、プログラム部１１９は、ウェブブラウザ部１１３と同じ端末上で実行される。
また、プログラム部１１９は、OSが備えるネイティブAPIを呼び出す機能を備えうる。
プログラム部１１９が呼び出すネイティブAPIは、ウェブブラウザが備えるJavaScriptからアクセスできないOSの任意の機能にアクセスする機能や、端末に接続された任意の機器にアクセスする機能を備える。
また、プログラム部１１９は、ひとつまたは複数の任意のモジュールまたはアプリケーションでありうる。
また、プログラム部１１９は、記憶装置１０５に保存され、端末１０１によって、メモリ１０３に配置される。
また、プログラム部１１９は、インタープリタ型言語、またはコンパイラ型言語、またはその他の任意のプログラミング言語により作成される。
また、プログラム部１１９は、任意のプログラムにホストされる、または任意のランタイムによって解釈される、またはプログラム部１１９自体が含む命令による実行、またはその他の任意の実行方法によって実行される。
また、プログラム部１１９は、OS起動時のスタートアップによる起動、またはユーザーの操作を要因とする起動、またはその他のプログラムの処理を要因とする起動、またはその他の任意の要因によって、起動される。
また、プログラム部１１９は、文字認識部１２０と、組込ウェブサーバー部１２１を備え、さらに入力手段１１１がスタイラスペンである場合はペン認識部１２２を備える。
【００１９】
組込ウェブサーバー部１２１は、ループバックインターフェース１０７上の所定のポートで組込ウェブサーバー通信部１１７のローカルループバック接続１１８を待ち受けすることができる。
また、組込ウェブサーバー部１２１は、ローカルループバック接続１１８がHTTPまたはHTTPSである場合、Cross-Origin Resource Sharingを実装して他ドメインとの通信を許可する。
また、組込ウェブサーバー部１２１は、任意の制御フローに基づき、組込ウェブサーバー通信部１１７、または文字認識部１２０、またはペン認識部１２２のいずれかと通信し、任意の情報を送受信することができる。
また、組込ウェブサーバー部１２１は、組込ウェブサーバー通信部１１７から受信した手書き情報１１６を、蓄積することができる。
【００２０】
文字認識部１２０は、組込ウェブサーバー通信部１１７から組込ウェブサーバー部１２１に送信され、組込ウェブサーバー部１２１から文字認識部１２０に受信した手書き情報１１６について、文字認識を実行し、任意の長さの文字列に変換することができる。
また、手書き情報１１６が手書き入力１１２の一連の入力情報の配列の場合、文字認識部１２０の認識機能はオンライン手書き文字認識でありうる。
また、手書き情報１１６が手書き入力１１２の筆跡を記録した画像情報の場合、文字認識部１２０の認識機能はオフライン手書き文字認識でありうる。
また、文字認識部１２０の認識機能は、文字認識部１２０に備えられた認識機能、またはサードパーティ製のアプリケーションから提供される認識機能、またはOSが備えるAPIから提供される認識機能、またはその他の任意の認識機能でありうる。
また、文字認識部１２０は、文字認識結果を組込ウェブサーバー部１２１に送信し、組込ウェブサーバー部１２１は受信した文字認識結果を、ローカルループバック接続１１８を介して組込ウェブサーバー通信部１１７に送信することができる。
【００２１】
組込ウェブサーバー通信部１１７は、受信した文字認識結果をページ要素１１５に文字認識結果１２４として設定する。
【００２２】
入力手段１１１がスタイラスペンである場合、プログラム部１１９は、さらにペン認識部１２２を備えることができる。
【００２３】
ペン認識部１２２は、ウェブブラウザ部１１３に対してメッセージフック１２３を設定して処理を挿入し、メッセージフック１２３によって挿入された処理によって、手書き入力１１２の情報を、ウェブブラウザ部１１３から取得することができる。取得する情報は、手書き入力１１２の位置情報、または筆圧、または傾き、または手書き入力１１２を行っている入力部位、または入力手段１１１が備えるスイッチの状態、またはその他の任意の手書き入力１１２の情報、またはその他の任意の情報でありうる。
さらに必要な場合、ペン認識部１２２は、メッセージフック１２３によって挿入された処理によって、ウェブブラウザ部１１３が備えるJavaScriptのAPIから取得出来ない任意の情報を、ウェブブラウザ部１１３から取得してもよい。
また、ペン認識部１２２は、入力手段１１１のホバー状態を検知できる。
また、ペン認識部１２２は、取得した情報を組込ウェブサーバー部１２１に送信し、組込ウェブサーバー部１２１は受信した情報を、ローカルループバック接続１１８を介して組込ウェブサーバー通信部１１７に送信することができる。
【００２４】
メッセージフック１２３は、OSからウェブブラウザ部１１３に送信されるメッセージの受信や、システムコールに対して割込みを行うことによって、本来ウェブブラウザ部１１３が受け持つ処理に対して、任意の処理を挿入する機能である。
メッセージフック１２３の機能を備えるOSは、Windows(登録商標)、MacOS(登録商標)、Linux(登録商標)、iOS(登録商標)、Android(登録商標)、その他、グローバルフック、システムフック、動的バインド、イベントのディスパッチなど、メッセージフックと呼べるような機能をサポートしているOSでありうる。
【００２５】
組込ウェブサーバー通信部１１７は組込ウェブサーバー部１２１から受信した入力手段１１１の情報と、さらに必要であれば組込ウェブブラウザ部１１３が備えるJavaScriptのAPIから得られるタッチ情報とを統合し、手書き情報に変換する。
【００２６】
当業者は以上の通り構成することによって、ウェブブラウザの種類によらず、手書き情報を文字認識して取得することができ、さらに入力手段１１１がスタイラスペンである場合は、ウェブブラウザの実装に依存せず一貫したスタイラスペンの情報を取得でき、かつスタイラスペンと、その他のタッチ入力を判別するパームリジェクション機能、またはスタイラスペンの入力部位を判定し、消しゴムの動作を実現する機能、またはスタイラスペンの入力部位が画面に接触している、または入力部位がホバー状態の場合に、文字認識処理の実行を保留し、スタイラスペンの入力部位が画面に接触していない、かつホバー状態でない場合に文字認識処理を実行することで、ユーザーの所望するタイミングで文字認識を実行する機能、またはその他の任意の機能を実装することができる。
【００２７】
図２は、プログラム部１１９が文字認識処理を実行するためのフローチャートである。
【００２８】
工程２０１で、プログラム部１１９が、ループバックインターフェース１０７の所定のポートを開き、ローカルループバック接続１１８を待ち受ける。
【００２９】
工程２０２で、ウェブブラウザ部１１３が、プログラム部１１９が待ち受けているポートに接続し、通信を確立する。
【００３０】
工程２０３で、プログラム部１１９が、ウェブブラウザ部１１３がローカルループバック接続１１８を介してプログラム部１１９に送信した手書き情報１１６を、受信する。
【００３１】
工程２０４で、プログラム部１１９が、受信した手書き情報１１６について、文字認識を実行し、文字認識結果を作成する。
【００３２】
工程２０５で、プログラム部１１９が、作成した文字認識結果を、ローカルループバック接続１１８を介して、ウェブブラウザ部１１３に送信する。
【００３３】
図３は、プログラム部１１９がメッセージフック１２３を行い、メッセージフック１２３によってウェブブラウザ部１１３に挿入された処理によって、ウェブブラウザ部１１３の任意の情報を取得するためのフローチャートである。
【００３４】
工程３０１で、プログラム部１１９が、ループバックインターフェース１０７の所定のポートを開き、ローカルループバック接続１１８を待ち受ける。
【００３５】
工程３０２で、ウェブブラウザ部１１３が、プログラム部１１９が待ち受けているポートに接続し、通信を確立する。
【００３６】
工程３０３で、プログラム部１１９が、メッセージフック１２３を行い、ウェブブラウザ部１１３に処理を挿入する。
【００３７】
工程３０４で、プログラム部１１９が、メッセージフック１２３によってウェブブラウザ部１１３に挿入された処理によって、ウェブブラウザ部１１３から任意の情報を取得する。
【００３８】
工程３０５で、プログラム部１１９が、ウェブブラウザ部１１３から取得した情報を、ローカルループバック接続１１８を介して、ウェブブラウザ部１１３に送信する。
【００３９】
図４は、入力手段１１１がスタイラスペンの場合に、詳細なペン情報を取得するためのフローチャートである。
【００４０】
ペン情報取得４００は、ペン情報を取得する処理を表す。
【００４１】
組込ウェブサーバー部１２１はペン認識部１２２にメッセージフック指示４０１を送信する。
【００４２】
ペン認識部１２２はウェブブラウザ部１１３にメッセージフック１２３を行う。
【００４３】
ウェブブラウザ部１１３は入力手段１１１から手書き入力１１２を受信する。
【００４４】
ウェブブラウザ部１１３は、メッセージフック１２３によって挿入された処理によって、ペン認識部１２２にペン詳細情報４０２を送信する。
【００４５】
ペン詳細情報４０２は、入力手段１１１が画面１０４に接触している、または入力手段１１１がホバー状態の場合に取得される。
また、ペン詳細情報４０２が含む情報は、手書き入力１１２の位置情報、または入力手段１１１の種類、または入力手段１１１の画面接触部位、または入力手段１１１が備えるスイッチの状態、または入力手段１１１の任意の情報、または手書き入力１１２の任意の情報を含む。
また、ペン詳細情報４０２の送信方法は、ソケット、または名前付きパイプ、またはメモリ共有、またはウィンドウメッセージ送信、または任意のプロセス間通信でありうる。
【００４６】
ペン認識部１２２は組込ウェブサーバー部１２１にペン詳細情報４０３を送信する。
【００４７】
組込ウェブサーバー部１２１は組込ウェブサーバー通信部１１７にペン詳細情報４０４を送信する。
【００４８】
さらに必要であれば、ウェブブラウザ部１１３が、JavaScriptペン情報４０５を、組込ウェブサーバー通信部１１７に送信してもよい。
【００４９】
JavaScriptペン情報４０５は、ウェブブラウザ部１１３が備えるJavaScriptのAPIから取得される、タッチ情報である。
また、JavaScriptペン情報４０５に含まれるタッチ情報は、手書き入力１１２の位置情報、または入力手段１１１の種類、または入力手段１１１の画面接触部位、または入力手段１１１が備えるスイッチの状態、または入力手段１１１の任意の情報、または手書き入力１１２の任意の情報を含むことができる。
【００５０】
組込ウェブサーバー通信部１１７は、ウェブブラウザ部１０２からJavaScriptペン情報４０５を直接受信することで、処理を挟まず情報を取得することができ、遅延が少なく精度の高い位置情報を取得する事ができる。そのため、ペン詳細情報４０４のみで処理を行うよりも、遅延が少なく精度の高い処理を行うことができる。
【００５１】
組込ウェブサーバー通信部１１７は、ペン詳細情報４０４および、必要であればJavaScriptペン情報４０５を元に、任意の処理を実行する。
【００５２】
当業者は以上の通り構成することによって、ウェブブラウザの種類によらず、スタイラスペンの詳細で精度の高い情報を、遅延が少なく取得することができ、任意の処理を実装することができる。
【００５３】
図５は、入力手段１１１がスタイラスペンの場合に、ペン情報取得４００によって取得したペン情報を元に、パームリジェクション機能を実行するためのフローチャートである。
【００５４】
ウェブブラウザ部１１３および組込ウェブサーバー通信部１１７および組込ウェブサーバー部１２１はペン情報取得４００を実行する。
【００５５】
組込ウェブサーバー部１２１は、ペン位置情報５０１を、組込ウェブサーバー通信部１１７に送信する。
【００５６】
ウェブブラウザ部１１３は、タッチ位置情報５０２を、組込ウェブサーバー通信部１１７に送信する。
【００５７】
判定条件タッチがペン範囲内の場合５０３は、ホバー状態の時点から先行して取得されているペン位置情報５０１を基準とした任意の範囲内に、タッチ位置情報５０２の位置が重なるかを判定する。
判定条件タッチがペン範囲内の場合５０３が成立する場合、手書き情報作成５０４を行い、タッチ位置情報５０２を元に、手書き情報１１６を作成する。
【００５８】
当業者は以上の通り構成することによって、タッチ位置情報５０２の中からスタイラスペンの情報のみを取得し、その他のタッチ位置情報を除外することができ、パームリジェクションの機能を実装することができる。
【００５９】
図６は、入力手段１１１がスタイラスペンの場合に、ペン情報取得４００によって取得したペン情報を元に、消しゴム機能を実行するためのフローチャートである。
【００６０】
ウェブブラウザ部１１３および組込ウェブサーバー通信部１１７および組込ウェブサーバー部１２１はペン情報取得４００を実行する。
【００６１】
組込ウェブサーバー部１２１は、ペン部位情報６０１を、組込ウェブサーバー通信部１１７に送信する。
【００６２】
ウェブブラウザ部１１３は、タッチ位置情報５０２を、組込ウェブサーバー通信部１１７に送信する。
【００６３】
判定条件ペン部位が消しゴムを表す場合６０３は、ペン部位情報６０１が消しゴムである場合に、タッチ位置情報５０２が与えられたかを判定する。
判定条件ペン部位が消しゴムを表す場合６０３が成立する場合、削除処理６０４を行い、タッチ位置情報５０２の直下に存在する手書き情報１１６を削除する。
【００６４】
さらに削除処理６０４は、タッチ位置情報５０２の直下に存在する文字認識結果１２４を削除してもよい。
【００６５】
当業者は以上の通り構成することによって、タッチ位置情報５０２がスタイラスペンの消しゴムを表す部位によって与えられているかを判定することができ、消しゴムの機能を実装することができる。
【００６６】
図７は、ペン情報取得４００によって取得したペン情報を元に、手書き情報を文字認識する処理を実行するタイミングを制御するためのフローチャートである。
【００６７】
ウェブブラウザ部１１３および組込ウェブサーバー通信部１１７および組込ウェブサーバー部１２１はペン情報取得４００を実行する。
【００６８】
組込ウェブサーバー部１２１は、ペンホバー情報７０１を組込ウェブサーバー通信部１１７に送信する。
【００６９】
判定条件ペンが認識範囲外の場合７０２は、ペンが画面１０４に接触しておらず、かつペンがホバー状態でないかを判定する。
判定条件ペンが認識範囲外の場合７０２が成立する場合、組込ウェブサーバー通信部１１７は、文字認識指示７０３を組込ウェブサーバー部１２１に送信する。
【００７０】
組込ウェブサーバー部１２１は、文字認識トリガー発動７０４を行い、文字認識の実行トリガーを発動させる。
【００７１】
当業者は以上の通り構成することによって、ユーザーが任意のタイミングで手書き情報の文字認識を実行する機能を実装することができる。
【００７２】
図８は、手書き情報を文字認識するためのフローチャートである。
【００７３】
組込ウェブサーバー通信部１１７は、手書き情報取得８０１を実行し、ページ要素１１５から手書き情報１１６を取得する。
【００７４】
組込ウェブサーバー通信部１１７は、手書き情報送信８０２を実行し、受信した手書き情報を組込ウェブサーバー部１２１に送信する。
【００７５】
組込ウェブサーバー部１２１は、手書き情報送信８０３を実行し、受信した手書き情報を文字認識部１２０に送信する。
また、組込ウェブサーバー部１２１は、受信した手書き情報を一時的に蓄積してもよい。
【００７６】
判定条件文字認識トリガーが発動した場合８０４は、任意の条件が満たされることによって、文字認識の実行トリガーが発動したかどうかを判定する。
判定条件文字認識トリガーが発動した場合８０４が成立する場合、組込ウェブサーバー通信部１１７は、文字認識指示８０５を組込ウェブサーバー部１２１に送信する。
【００７７】
組込ウェブサーバー部１２１は、文字認識指示８０６を文字認識部１２０に送信する。
【００７８】
文字認識部１２０は、文字認識処理８０７を実行し、手書き情報送信８０３によって受信した手書き情報を、任意の長さの文字列に変換する。
また、文字認識部１２０が文字認識を実行する際の認識機能は、文字認識部１２０に備えられた認識機能、またはサードパーティ製のアプリケーションから提供される認識機能、またはOSが備えるAPIから提供される認識機能、またはその他の任意の認識機能でありうる。
また、文字認識部１２０は、文字認識結果送信８０８を実行し、変換した文字列を文字認識結果として、組込ウェブサーバー部１２１に送信する。
【００７９】
組込ウェブサーバー部１２１は、文字認識結果送信８０９を実行し、受信した文字認識結果を組込ウェブサーバー通信部１１７に送信する。
【００８０】
組込ウェブサーバー通信部１１７は、文字認識結果設定８１０を実行し、受信した文字認識結果を、ページ要素１１５に文字認識結果１２４として設定する。
【００８１】
さらに文字認識結果設定８１０は、ページ要素１１５に文字認識結果１２４を設定すると共に、ページ要素１１５から文字認識結果１２４と対応する手書き情報１１６を削除し、手書き情報を文字認識結果によって得られた文字列に置き換えても良い。
【００８２】
当業者は以上の通り構成することによって、ウェブブラウザの種類によらず、手書き情報を文字認識する機能を実装することができる。
【符号の説明】
【００８３】
１０１  端末
１０２  CPU
１０３  メモリ
１０４  画面
１０５  記憶装置
１０６  ネットワークインターフェース
１０７  ループバックインターフェース
１１１  入力手段
１１２  手書き入力
１１３  ウェブブラウザ部
１１４  HTMLコンテンツ部
１１５  ページ要素
１１６  手書き情報
１１７  組込ウェブサーバー通信部
１１８  ローカルループバック接続
１１９  プログラム部
１２０  文字認識部
１２１  組込ウェブサーバー部
１２２  ペン認識部
１２３  メッセージフック
１２４  文字認識結果
２０１  工程ローカルループバック接続を待ち受け
２０２  工程ウェブブラウザ部と通信を確立
２０３  工程手書き情報を受信
２０４  工程文字認識
２０５  工程ウェブブラウザ部に文字認識結果を送信
３０１  工程ローカルループバック接続を待ち受け
３０２  工程ウェブブラウザ部と通信を確立
３０３  工程メッセージフックによりウェブブラウザ部に処理挿入
３０４  工程挿入した処理により情報受信
３０５  工程ウェブブラウザ部に情報送信
４００  ペン情報取得
４０１  メッセージフック指示
４０２  ペン詳細情報
４０３  ペン詳細情報
４０４  ペン詳細情報
４０５  JavaScriptペン情報
５０１  ペン位置情報
５０２  タッチ位置情報
５０３  判定条件タッチがペン範囲内の場合
５０４  手書き情報作成
６０１  ペン部位情報
６０３  判定条件ペン部位が消しゴムを表す場合
６０４  削除処理
７０１  ペンホバー情報
７０２  判定条件ペンが認識範囲外の場合
７０３  文字認識指示
７０４  文字認識トリガー発動
８０１  手書き情報取得
８０２  手書き情報送信
８０３  手書き情報送信
８０４  判定条件文字認識トリガーが発動した場合
８０５  文字認識指示
８０６  文字認識指示
８０７  文字認識処理
８０８  文字認識結果送信
８０９  文字認識結果送信
８１０  文字認識結果設定
【図１】
2020086679.tif 000003
【図２】
2020086679.tif 000004
【図３】
2020086679.tif 000005
【図４】
2020086679.tif 000006
【図５】
2020086679.tif 000007
【図６】
2020086679.tif 000008
【図７】
2020086679.tif 000009
【図８】
2020086679.tif 000010