(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024128578
(43)【公開日】2024-09-24
(54)【発明の名称】テキストコンテンツ提供システム、テキストコンテンツ提供方法、コンピュータプログラム、およびウェブファイル
(51)【国際特許分類】
G06F 40/169 20200101AFI20240913BHJP
【FI】
G06F40/169
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023037609
(22)【出願日】2023-03-10
(11)【特許番号】
(45)【特許公報発行日】2023-09-27
(71)【出願人】
【識別番号】515193527
【氏名又は名称】アルファサード株式会社
(74)【代理人】
【識別番号】100125117
【弁理士】
【氏名又は名称】坂田 泰弘
(74)【代理人】
【識別番号】100086933
【弁理士】
【氏名又は名称】久保 幸雄
(72)【発明者】
【氏名】野田 純生
【テーマコード(参考)】
5B109
【Fターム(参考)】
5B109MJ04
5B109RA18
(57)【要約】
【課題】漢字に振り仮名がルビとして振られたウェブページの、スクリーンリーダなどのテキスト読上機能による読上げを、従来よりも確実に行うことができるようにする。
【解決手段】ウェブサーバ2は、テキストコンテンツと、このテキストコンテンツの中の特定の部分とこの特定の部分に関する関連情報とを対応付ける対応関係情報とを、クライアントへ送信する。クライアント3Aは、特定の部分の近傍に関連情報を配置してテキストコンテンツを表示するための付加表示コードをテキストコンテンツおよび対応関係情報に基づいて生成し、選択的に付加表示コードに基づいて特定の部分の近傍に関連情報を配置した状態でまたは配置しない状態でテキストコンテンツをディスプレイに表示させる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
伝達する内容を表わすテキストであるテキストコンテンツを提供するテキストコンテンツ提供システムであって、
サーバと、クライアントと、を有し、
前記サーバは、
前記テキストコンテンツと、当該テキストコンテンツの中の特定の部分と当該特定の部分に関する関連情報とを対応付ける対応関係情報とを、前記クライアントへ送信する送信手段、
を有し、
前記クライアントは、
前記特定の部分の近傍に前記関連情報を配置して前記テキストコンテンツを表示するための付加表示コードを前記テキストコンテンツおよび前記対応関係情報に基づいて生成する生成手段と、
選択的に前記付加表示コードに基づいて前記特定の部分の近傍に前記関連情報を配置した状態でまたは配置しない状態で前記テキストコンテンツをディスプレイに表示させる表示制御手段と、
を有する、
ことを特徴とするテキストコンテンツ提供システム。
【請求項2】
伝達する内容を表わすテキストであるテキストコンテンツを提供するテキストコンテンツ提供システムであって、
前記テキストコンテンツと、当該テキストコンテンツの中の特定の部分と当該特定の部分に関する関連情報とを対応付ける対応関係情報とを、クライアントへ送信するテキストコンテンツ送信手段と、
前記特定の部分の近傍に前記関連情報を配置して前記テキストコンテンツを表示するための付加表示コードを前記テキストコンテンツおよび前記対応関係情報に基づいて生成する生成用プログラムを前記クライアントへ送信するプログラム送信手段と、
を有することを特徴とするテキストコンテンツ提供システム。
【請求項3】
前記テキストコンテンツ送信手段は、前記テキストコンテンツおよび前記対応関係情報として、当該テキストコンテンツと当該対応関係情報と前記生成用プログラムを外部スクリプトとして指定するコードとが記述されたHTMLファイルを送信する、
請求項2に記載のテキストコンテンツ提供システム。
【請求項4】
前記生成用プログラムは、前記特定の部分のルビとして前記関連情報を配置するコードを前記付加表示コードとして生成するスクリプトである、
請求項3に記載のテキストコンテンツ提供システム。
【請求項5】
前記特定の部分は、漢字であり、
関連情報は、前記漢字の読み仮名である、
請求項2ないし請求項4のいずれかに記載のテキストコンテンツ提供システム。
【請求項6】
伝達する内容を表わすテキストであるテキストコンテンツを提供するテキストコンテンツ提供方法であって、
前記テキストコンテンツと、当該テキストコンテンツの中の特定の部分と当該特定の部分に関する関連情報とを対応付ける対応関係情報とを、クライアントへ送信する処理をサーバに実行させ、
前記特定の部分の近傍に前記関連情報を配置して前記テキストコンテンツを表示するための付加表示コードを前記テキストコンテンツおよび前記対応関係情報に基づいて生成する処理をクライアントに実行させ、
選択的に前記付加表示コードに基づいて前記特定の部分の近傍に前記関連情報を配置した状態でまたは配置しない状態で前記テキストコンテンツをディスプレイに表示させる処理を前記クライアントに実行させる、
ことを特徴とするテキストコンテンツ提供方法。
【請求項7】
伝達する内容を表わすテキストであるテキストコンテンツを提供するコンピュータに用いられるコンピュータプログラムであって、
前記コンピュータに、
前記テキストコンテンツと、当該テキストコンテンツの中の特定の部分と当該特定の部分に関する関連情報とを対応付ける対応関係情報とを、クライアントへ送信する処理を実行させ、
前記特定の部分の近傍に前記関連情報を配置して前記テキストコンテンツを表示するための付加表示コードを前記テキストコンテンツおよび前記対応関係情報に基づいて生成する生成用プログラムを前記クライアントへ送信する処理を実行させる、
ことを特徴とするコンピュータプログラム。
【請求項8】
伝達する内容を表わすテキストであるテキストコンテンツを補足情報とともに表示させるためのウェブファイルであって、
前記テキストコンテンツを表示するためのコンテンツ部と、
前記テキストコンテンツの中の特定の部分と当該特定の部分に関する関連情報とを対応付ける対応関係情報を示す対応関係部と、
前記特定の部分の近傍に前記関連情報を前記補足情報として配置して前記テキストコンテンツを表示するための付加表示コードを前記テキストコンテンツおよび前記対応関係情報に基づいて生成する生成用スクリプトを外部スクリプトとして指定する指定コードを示す呼出部と、
前記生成用スクリプトによって前記付加表示コードを生成する生成処理と、当該生成された付加表示コードを前記テキストコンテンツとともに示しかつ前記特定の部分の近傍に選択的に前記関連情報を配置した状態でまたは配置しない状態で当該テキストコンテンツをディスプレイに表示させるように前記コンテンツ部を更新する更新処理とをコンピュータに実行させる更新用スクリプトを示す更新部と、
を有することを特徴とするウェブファイル。
【請求項9】
前記生成処理は、前記特定の部分に前記関連情報をルビとして配置して前記テキストコンテンツを表示するためのコードを前記付加表示コードとして生成する処理である、
請求項8に記載のウェブファイル。
【請求項10】
前記更新処理は、所定の操作が行われるごとに前記付加表示コードおよび前記テキストコンテンツのいずれか一方にのみ非表示のスタイルが交互に適用されるように前記コンテンツ部を更新する処理を含む、
請求項8または請求項9に記載のウェブファイル。
【請求項11】
前記更新処理は、前記関連情報を配置するか否かを切り換えるためのボタンとともに前記テキストコンテンツを表示させるように前記コンテンツ部を更新する処理を含む、
請求項8または請求項9に記載のウェブファイル。
【請求項12】
前記特定の部分は、漢字であり、
関連情報は、前記漢字の読み仮名である、
請求項8または請求項9に記載のウェブファイル。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ウェブページなどの形態で提供されるテキストコンテンツにルビなどの補足情報を付加する技術に関する。
【背景技術】
【0002】
日本語は、英語およびフランス語などの言語とは文法が大きく異なり、かつ、漢字、平仮名、および片仮名など多数の種類の文字を有する。したがって、日本語を母国語としない人(ノンネイティブ)にとって、日本語の文章を読むのが難しい。特に漢字は、読み方が数通りある場合があり、かつ、字数が膨大なので、覚えるのが大変である。しかし、日本で生活していると、日本語の文章を読まざるを得ないことがある。
【0003】
そこで、電子化された文章に含まれる漢字に読み仮名をルビとして振る技術が提案されている。例えば、引用文献1に記載されるテキスト表示装置は、テキスト表示処理を含むデータ処理を行うアプリケーション部と、前記アプリケーション部より入力されたテキストを解析して、該テキストに含まれる漢字部分に読み仮名(ルビ)を付加する読み仮名付加部と、を備える。前記アプリケーション部は、読み仮名(ルビ)を出力すると設定されている場合に、前記読み仮名付加部に対して表示対象のテキストを送信して読み仮名(ルビ)の付加を要求し、読み仮名(ルビ)付きのテキスト表示処理を行う。
【0004】
また、電子化された文章を人工の音声で読み上げる読上げ技術が提案されている。スクリーンリーダは、ディスプレイに表示された画面を読み上げソフトウェアであって、近年、パーソナルコンピュータ、タブレットコンピュータ、およびスマートフォンなどのオペレーティングシステムに標準的に装備されている。マイクロソフト社のWindows 8以降のオペレーティングシステムおよびアップル社のMac OS X v10.4以降のオペレーティングシステムには、日本語に対応したスクリーンリーダが装備されている。なお、「Windows」は登録商標である。
【0005】
そのほか、ウェブブラウザの機能拡張ソフトウェアとしてスクリーンリーダが提供されている。例えば、非特許文献1に記載されるソフトウェアは、ウェブブラウザの機能拡張ソフトウェアであって、ウェブブラウザによってアクセスしたウェブページの中の文章に漢字が混ざっていても、それを人工の音声で読み上げることができる。
【先行技術文献】
【特許文献】
【0006】
【非特許文献】
【0007】
【非特許文献1】LSD Software社「Read Aloud」,https://readaloud.app/
【発明の概要】
【発明が解決しようとする課題】
【0008】
ウェブページにおいて、漢字に読み仮名をルビとして振る場合は、rubyタグおよびrtタグが用いられる。
【0009】
しかし、読み仮名がルビとして振られたウェブページを従来の読上げ技術によって読み上げさせると、漢字および読み仮名の両方が読み上げられてしまう。例えば、
図14に示すウェブページ51は、「さいきょう さいきょう かんぱ かんぱ これから あさ あさ にかけて ゆき ゆき の よそう よそう は…」と読み上げられてしまう。または、途中で、例えばルビの手間で、読上げが止まることがある。
【0010】
本発明は、このような問題点に鑑み、漢字に振り仮名がルビとして振られたウェブページの、スクリーンリーダなどのテキスト読上機能による読上げを、従来よりも確実に行うことができるようにすることを、目的とする。
【課題を解決するための手段】
【0011】
本発明の一形態に係るテキストコンテンツ提供システムは、伝達する内容を表わすテキストであるテキストコンテンツを提供するテキストコンテンツ提供システムであって、サーバと、クライアントと、を有し、前記サーバは、前記テキストコンテンツと、当該テキストコンテンツの中の特定の部分と当該特定の部分に関する関連情報とを対応付ける対応関係情報とを、前記クライアントへ送信する送信手段、を有し、前記クライアントは、前記特定の部分の近傍に前記関連情報を配置して前記テキストコンテンツを表示するための付加表示コードを前記テキストコンテンツおよび前記対応関係情報に基づいて生成する生成手段と、選択的に前記付加表示コードに基づいて前記特定の部分の近傍に前記関連情報を配置した状態でまたは配置しない状態で前記テキストコンテンツをディスプレイに表示させる表示制御手段と、を有する。
【0012】
本発明の一形態に係るウェブファイルは、伝達する内容を表わすテキストであるテキストコンテンツを補足情報とともに表示させるためのウェブファイルであって、前記テキストコンテンツを表示するためのコンテンツ部と、前記テキストコンテンツの中の特定の部分と当該特定の部分に関する関連情報とを対応付ける対応関係情報を示す対応関係部と、前記特定の部分の近傍に前記関連情報を前記補足情報として配置して前記テキストコンテンツを表示するための付加表示コードを前記テキストコンテンツおよび前記対応関係情報に基づいて生成する生成用スクリプトを外部スクリプトとして指定する指定コードを示す呼出部と、前記生成用スクリプトによって前記付加表示コードを生成する生成処理と、当該生成された付加表示コードを前記テキストコンテンツとともに示しかつ前記特定の部分の近傍に選択的に前記関連情報を配置した状態でまたは配置しない状態で当該テキストコンテンツをディスプレイに表示させるように前記コンテンツ部を更新する更新処理とをコンピュータに実行させる更新用スクリプトを示す更新部と、を有する。
【発明の効果】
【0013】
本発明によると、漢字に振り仮名がルビとして振られたウェブページの、スクリーンリーダなどのテキスト読上機能による読上げを、従来よりも確実に行うことができる。
【図面の簡単な説明】
【0014】
【
図1】ウェブページ提供システムの全体的な構成の例を示す図である。
【
図2】ウェブサーバのハードウェア構成の例を示す図である。
【
図3】クライアントまたはウェブページ編集端末のハードウェア構成の例を示す図である。
【
図4】ウェブサーバの機能的構成の例を示す図である。
【
図11】ウェブページの表示の処理の流れの例を説明するフローチャートである。
【
図13】コンテンツコードの生成方法の例を示す図である。
【
図14】ウェブページにルビが振られた状態の例を示す図である。
【
図15】ウェブサーバの全体的な処理の流れの例を説明するフローチャートである。
【発明を実施するための形態】
【0015】
〔1.全体の構成〕
図1は、ウェブページ提供システム1の全体的な構成の例を示す図である。
図2は、ウェブサーバ2のハードウェア構成の例を示す図である。
図3は、クライアント3Aまたはウェブページ編集端末3Bのハードウェア構成の例を示す図である。
【0016】
ウェブページ提供システム1は、ユーザへウェブページを提供するシステムであって、
図1に示すように、ウェブサーバ2、1台または複数台のクライアント3A、ウェブページ編集端末3B、および通信回線4などによって構成される。
【0017】
ウェブサーバ2は、通信回線4を介してクライアント3Aおよびウェブページ編集端末3Bと通信することができる。通信回線4として、インターネット、LAN(Local Area Network)回線、公衆回線、または専用線などが用いられる。
【0018】
ウェブサーバ2は、
図2に示すようにメインプロセッサ21、RAM(Random Access Memory)22、ROM(Read Only Memory)23、補助記憶装置24、およびネットワークコントローラ25などによって構成され、クライアント3Aからの要求に応じてウェブページのファイルを配信する。
【0019】
ROM23または補助記憶装置24には、オペレーティングシステムおよびウェブページ管理プログラム20(
図4参照)などがインストールされている。補助記憶装置24として、ハードディスクまたはSSD(Solid State Drive)などが用いられる。ウェブページ管理プログラム20については、後述する。
【0020】
RAM22は、ウェブサーバ2のメインメモリである。RAM22には、適宜、ROM23または補助記憶装置24からプログラムがロードされる。メインプロセッサ21は、RAM22にロードされたプログラムを実行する。
【0021】
ネットワークコントローラ25は、TCP/IPなどのプロトコルでクライアント3Aおよびウェブページ編集端末3Bなどの装置と通信する。
【0022】
クライアント3Aは、ウェブページをウェブサーバ2からダウンロードして表示することによってユーザへ提示する。クライアント3Aとして、パーソナルコンピュータ、タブレットコンピュータ、またはスマートフォンなど、ウェブブラウザを有する装置が用いられる。以下、クライアント3Aとしてノート型のパーソナルコンピュータが用いられる場合を例に説明する。
【0023】
クライアント3Aは、
図3に示すように、メインプロセッサ31、RAM32、ROM33、補助記憶装置34、ディスプレイ35、ネットワークコントローラ36、キーボード37、ポインティングデバイス38、および音声ユニット39などによって構成される。
【0024】
ROM33または補助記憶装置34には、オペレーティングシステムおよびウェブブラウザ30(
図4参照)などがインストールされている。なお、オペレーティングシステムおよびウェブブラウザ30の少なくとも一方に、スクリーンリーダが備わっている。
【0025】
RAM32は、クライアント3Aのメインメモリである。RAM32には、適宜、ROM33または補助記憶装置34からプログラムがロードされる。メインプロセッサ31は、RAM32にロードされたプログラムを実行する。
【0026】
ディスプレイ35は、ウェブブラウザ30の画面などを表示する。ネットワークコントローラ36は、TCP/IPなどのプロトコルでウェブサーバ2などの装置と通信する。キーボード37およびポインティングデバイス38は、コマンドまたは情報をユーザが入力するために用いられる。
【0027】
音声ユニット39は、音声ボード、スピーカ、およびマイクなどによって構成される。マイクがオペレータの音声を集音し、音声ボードがその音声を音声データに変換する。または、スクリーンリーダによって生成された音声データに基づいて音声ボードが人工の音声を生成し、スピーカがその音声を出力する。
【0028】
ウェブページ編集端末3Bは、オペレータがウェブページを作成しまたは編集するための装置である。作成されまたは編集されたウェブページのファイルは、ウェブページ編集端末3Bからウェブサーバ2へアップロードされる。ウェブページ編集端末3Bとして、パーソナルコンピュータ、タブレットコンピュータ、またはスマートフォンなどが用いられる。ウェブページ編集端末3Bとしてノート型のパーソナルコンピュータが用いられる場合は、クライアント3Aと同様、
図3に示したようにハードウェアが構成される。
【0029】
ところで、ウェブページ提供システム1によると、ウェブページの中の漢字にその読み仮名をルビとして振ることができる。従来の技術によると、上述の通り、ルビ付きのウェブページは、スクリーンリーダによるコンテンツの読上げおよび検索エンジンによる検索が的確に行わないことがある。しかし、ウェブページ提供システム1によると、スクリーンリーダおよび検索エンジンを従来よりも的確に動作させることができる。以下、その仕組みについて説明する。
【0030】
図4は、ウェブサーバ2の機能的構成の例を示す図である。
図5は、ウェブページ50の例を示す図である。
【0031】
ウェブページ管理プログラム20によると、
図4に示すテキストノード検出部201、単語検出部202、読み仮名決定部203、ルビマップ生成部204、HTMLファイル生成部205、ウェブページファイル記憶部206、ウェブページ送信部207、および変換スクリプト送信部208などの機能がウェブサーバ2に実現される。以下、
図5のような、気象情報を知らせるウェブページ50をユーザへ提供する場合を例に、ウェブサーバ2の各部、クライアント3A、およびウェブページ編集端末3Bそれぞれの処理を、準備のための処理およびウェブページへのアクセス時の処理に大別して説明する。
【0032】
〔2.各部の処理〕
〔2.1 準備のための処理〕
図6は、HTMLファイル60の例を示す図である。
図7は、ルビマップ633の例を示す図である。
図8は、ウェブページ51の例を示す図である。
図9は、HTMLファイル61の例を示す図である。
図10は、定義コード621の例を示す図である。
【0033】
ウェブページ50(
図5参照)のHTMLファイル60は、
図6に示すように、HTML(Hypertext Markup Language)によって記述されており、ヘッダ部601およびボディ部602などを有する。ヘッダ部601には、文字コードの指定およびタイトルなどのコードが示される。ボディ部602には、ウェブページ50のテキストコンテンツ501を表示するためのコードなどが示される。
【0034】
オペレータは、例えば次のようにHTMLファイル60をウェブページ編集端末3Bに用意する。ウェブページ編集端末3Bにインストールされている市販のウェブページ作成ツールによってHTMLファイル60を作成する。または、ウェブサーバ2または他のウェブサイトにある既存のウェブページのHTMLファイルをHTMLファイル60として取得してもよい。そして、HTMLファイル60をウェブサーバ2へ入力する。
【0035】
すると、ウェブサーバ2において、テキストノード検出部201は、HTMLファイル60からテキストノードを検出する。テキストノードは、一般に、ボディの中のタグおよび所定のタグに挟まれたコードを除いたものである。したがって、ボディ部602から下記の(1)~(5)の5つのテキストノードがテキストノード検出部201によって検出される。
【0036】
(1) 「最強寒波」
(2) これから朝にかけて雪の予想は?
(3) この冬一番の非常に強い寒気の影響で西日本や東日本の日本海側を中心に急激に積雪が増え、特に岡山県北部には
(4) 「顕著な大雪に関する気象情報」
(5) が相次いで発表され、深刻な交通障害に厳重に警戒するよう呼びかけられています。
【0037】
単語検出部202は、テキストノード検出部201によって検出された各テキストノードに対して公知の形態素解析を実行することによって各テキストノードに含まれる単語を検出する。
【0038】
読み仮名決定部203は、単語検出部202によって検出された単語のうち漢字を含む単語の読み仮名を公知の方法(例えば、漢字辞書データベースによる検索)によって決定する。
【0039】
ルビマップ生成部204は、
図7に示すようなルビマップ633を生成する。ルビマップ633は、JSON(JavaScript Object Notation)形式で記述され、テキストノードごとの対応関係コードを有する。
【0040】
対応関係コードは、下記のように記述される。
"1st-element":"2nd-element"
「1st-element」および「2nd-element」は、それぞれ、第一の要素および第二の要素である。第一の要素として、テキストノードが元のまま示される。一方、第二の要素として、テキストノードが次のように編集されたものが示される。
【0041】
テキストノードの中の1つのまたは連続する複数の漢字の直後に、読み仮名決定部203によって決定された読み仮名を「rt」タグで括った文字列を配置する。そして、その漢字およびその文字列をで括る。したがって、例えば、(2)のテキストノードの対応関係コードの第二の要素として、次のコードが示される。
これから<ruby>朝<rt>あさ</rt></ruby>にかけて<ruby>雪<rt>ゆき</rt></ruby>の<ruby>予想<rt>よそう</rt></ruby>は?
なお、連続する複数の漢字を分割して上記の通り編集してもよい。例えば、「交通障害」を「交通」と「障害」とに分割し、次のように記述してもよい。
<ruby>交通<rt>こうつう</rt></ruby><ruby>障害<rt>しょうがい</rt></ruby>
これらの対応関係コードは、互いにカンマで区切られて並べられ、window.textnode_ruby_map = {} で括られる。
【0042】
HTMLファイル生成部205は、ウェブページ51を表示するためのHTMLファイル61を生成する。ウェブページ51は、
図8に示すように、テキストコンテンツ511およびルビ付与ボタン512によって構成される。ウェブページ50(
図5参照)と比較して分かるように、テキストコンテンツ511はテキストコンテンツ501と同様である。したがって、ウェブページ51は、ルビ付与ボタン512をウェブページ50に設けたものであると言える。
【0043】
HTMLファイル61は、
図9のように、ヘッダ部611およびボディ部612などによって構成される。
【0044】
ヘッダ部611には、HTMLファイル60(
図6参照)のヘッダ部601と同様に、文字コードの指定およびタイトルなどが示される。ヘッダ部611には、さらに、定義コード621が示される。
【0045】
定義コード621は、表示のスタイルを定義するものであって、本実施形態では特に、
図10のように、2つの要素の表示形式がインライン(横並び)または非表示に設定されるように定義される。定義コード621は、CSS(Cascading Style Sheets)によって記述される。
【0046】
ボディ部612は、コンテンツ部612A、外部スクリプト呼出部612B、ルビマップ部612C、およびボタン制御部612Dなどによって構成される。
【0047】
コンテンツ部612Aには、コンテンツコード631が示される。コンテンツコード631には、HTMLファイル60のボディ部602のコードと同様に、ウェブページ50のテキストコンテンツ501を表示するためのコードが含まれる。さらに、ルビ付与ボタン512を表示するためのコードが含まれる。
【0048】
外部スクリプト呼出部612Bには、JavaScript(登録商標)で記述された変換スクリプト67を呼び出すためのコードが示される。例えば、変換スクリプト67のファイル名が「tsutaeru_rp.js」であれば、下記のコードが示される。
<script src="tsutaeru_rp.js"></script>
ルビマップ部612Cには、ルビマップ生成部204によって生成されたルビマップ633(
図7参照)が示される。ボタン制御部612Dには、テキストコンテンツおよびボタンの表示などを後述のように制御するための制御コード634が示される。
【0049】
HTMLファイル61は、HTMLファイル生成部205によって生成されると、ファイル名と対応付けられてウェブページファイル記憶部206に記憶される。なお、HTMLファイル生成部205には、変換スクリプト67が予め記憶されている。
【0050】
HTMLファイル61のほか、ウェブページファイル記憶部206に記憶されるHTMLファイルは、インターネット上で公開される。
【0051】
HTMLファイル61および変換スクリプト67によると、次に説明するように、クライアント3Aにおいてルビが振られたり除去されたりしながらウェブページ51が表示される。
【0052】
〔2.2 ウェブページへのアクセス時の処理〕
図11は、ウェブページ51の表示の処理の流れの例を説明するフローチャートである。
図12は、テキストペアコード635の例を示す図である。
図13は、コンテンツコード631の生成方法の例を示す図である。
図14は、ウェブページ51にルビが振られた状態の例を示す図である。
【0053】
クライアント3Aにおいて、ウェブブラウザ30(
図4参照)は、ウェブページ51(
図8参照)のURL(Uniform Resource Locator)がユーザによって指定されると、ウェブページ51をウェブサーバ2へ要求する。
【0054】
すると、ウェブサーバ2において、ウェブページ送信部207は、ウェブページ51のHTMLファイル61(
図9参照)をクライアント3Aへ送信する。
【0055】
ウェブブラウザ30は、ウェブサーバ2からHTMLファイル61が送信されてくると、HTMLファイル61のコピーを所定の一時記憶領域にバックアップファイルとして保存される。なお、バックアップファイルは、更新されない。そして、HTMLファイル61に基づいて、
図11に示す手順で処理を実行する。
【0056】
ウェブブラウザ30は、HTMLファイル61のヘッダ部611およびコンテンツ部612Aそれぞれに記述されるコードに従ってウェブページ51をレンダリングし、ディスプレイ35に表示させる(
図11の#701)。
【0057】
さらに、ウェブブラウザ30は、外部スクリプト呼出部612Bに記述されるコードに従って外部スクリプトとして変換スクリプト67を読み込む(#702)。変換スクリプト67に定義されている関数等は、制御コード634において使用される。なお、変換スクリプト67は、変換スクリプト送信部208によってクライアント3Aへ送信され、クライアント3Aにキャッシュされる。
【0058】
HTMLファイル61に基づく処理が初めてである場合は(#703でYes)、ウェブブラウザ30は、コンテンツ部612Aの変換処理を次のように行う(#704)。
【0059】
ウェブブラウザ30は、コンテンツ部612Aのテキストコンテンツからテキストノードを検出する。HTMLファイル61のテキストコンテンツは上述の通りHTMLファイル60のテキストコンテンツ(
図6参照)と同じなので、上記の(1)~(5)のテキストノードが検出される。
【0060】
ウェブブラウザ30は、検出したテキストノードそれぞれのテキストペアコード635を生成する(#722)。テキストペアコード635は、下記のように記述される。
<span class="tsutaeruRuby">
<span class="tsutaeruRuby__phrase" aria-hidden="value1">1st-element</span>
<span class="tsutaeruRuby__translation" aria-hidden="value2">2nd-element</span>
</span>
「value1」および「value2」は、「true」または「false」の二値であって、value1≠value2 である。
【0061】
「1st-element」および「2nd-element」は、それぞれ、ルビマップ部612Cに示されるルビマップ633(
図7参照)の第一の要素および第二の要素である。したがって、上記(1)~(5)それぞれのテキストノードのテキストペアコード635として、
図12に示すようなコードが生成される。以下、(1)、(2)、…、(5)それぞれのテキストノードのテキストペアコード635を「テキストペアコード6351」、「テキストペアコード6352」、…、「テキストペアコード6355」と記載する。
【0062】
そして、ウェブブラウザ30は、コンテンツコード631の中の(1)~(5)それぞれのテキストノードを、
図13に示すように、それぞれに対応するテキストペアコード635に置き換える。
【0063】
変換処理が完了したら、ウェブブラウザ30は、ルビとして振り仮名を付与するための設定を行う(#705)。具体的には、「value1」が「true」になり「value2」が「false」になるように各テキストノードのテキストペアコード635を更新する。さらに、コンテンツ部612Aに示される、ルビ付与ボタン512を表示するためのコードを、ルビ消去ボタン514を表示するためのコードに置き換える。
【0064】
そして、ウェブブラウザ30は、設定が完了したコンテンツ部612Aのコードなどに従ってウェブページ51をレンダリングし直して表示させる(#701)。すると、テキストコンテンツ511に「display:none」のスタイルが適用されて非表示になり、
図14に示すような、各漢字にルビが振られたテキストコンテンツ513が、「display:inline」のスタイルが適用されて表示される。これにより、テキストコンテンツ511がテキストコンテンツ513に置き換わったように見える。
【0065】
ルビ消去ボタン514がクリックされると(#703でNo、#706でYes)、ウェブブラウザ30は、ルビを消去するための設定を制御コード634に基づいて行う(#707)。具体的には、「value1」が「false」になり「value2」が「true」になるように各テキストノードのテキストペアコード635を更新する。さらに、コンテンツ部612Aに示される、ルビ消去ボタン514を表示するためのコードを、ルビ付与ボタン512を表示するためのコードに置き換える。
【0066】
そして、ウェブブラウザ30は、設定が完了したコンテンツ部612Aのコードなどに従ってウェブページ51をレンダリングし直して表示させる(#701)。すると、ウェブページ51が、
図14に示した状態から、
図8に示した状態に更新される。これは、テキストコンテンツ511に「display:inline」のスタイルが適用されテキストコンテンツ513に「display:none」のスタイルが適用されることによる。
【0067】
ルビ付与ボタン512がクリックされると(#703でNo、#706でYes)、ウェブブラウザ30は、ルビを付与するための設定を制御コード634に基づいて行う(#707)。具体的には、「value1」が「true」になり「value2」が「false」になるように各テキストノードのテキストペアコード635を更新する。さらに、コンテンツ部612Aに示される、ルビ付与ボタン512を表示するためのコードを、ルビ消去ボタン514を表示するためのコードに置き換える。これも上述の通り、表示のスタイルの変更に依る。
【0068】
そして、ウェブブラウザ30は、設定が完了したコンテンツ部612Aのコードに従ってウェブページ51をレンダリングし直して表示させる(#701)。すると、ウェブページ51が、
図8に示した状態から、
図14に示した状態に更新される。
【0069】
ステップ#701~#707の処理は、ウェブページ51が表示されている間、ルビ付与ボタン512またはルビ消去ボタン514がクリックされるごとに実行される。
【0070】
なお、ウェブページ51にルビが振られた状態であるか否かは、ウェブブラウザ30のCookieによって監視すればよい。
【0071】
〔2.3 ウェブページの読上げ〕
ウェブページ51が表示されている際にユーザが読上コマンドを入力すると、クライアント3Aのスクリーンリーダによってウェブページ51のコンテンツが読み上げられる。すなわち、ウェブページ51のコンテンツが人工の音声によって出力される。
【0072】
ところで、従来、スクリーンリーダによると、レンダリングされたウェブページ(つまり、表示されているウェブページ)のテキストが読み上げられるケース(以下、「ケース_1」と記載する。)もあれば、ダウンロードされたHTMLファイルに示されるソースが、タグ等をスキップして読み上げられるケース(以下、「ケース_2」と記載する。)もある。どちらのケースが取られるかは、オペレーティングシステムまたはウェブブラウザに備わるスクリーンリーダの仕様による。
【0073】
しかし、どちらのケースにおいても、従来、漢字にルビが付与されたウェブページを読み上げさせると、漢字および読み仮名の両方が読み上げられてしまう。
【0074】
一方、ウェブサーバ2によって提供されるウェブページすなわちウェブページ51は、どちらのケースにおいても、漢字および読み仮名のうちの漢字のみを読み上げさせることができる。その仕組みは、次の通りである。
【0075】
ケース_1の場合は、
図8に示したようにルビが振られていない状態で読上コマンドが入力されると、クライアント3Aは、ウェブページ51に配置されているテキストをスクリーンリーダによって読み上げる。したがって、当然、ルビは、読み上げられない。
【0076】
ケース_2の場合は、読上コマンドが、ルビが振られていない状態で入力されても振られている状態(
図14参照)で入力されても、クライアント3Aは、ダウンロードされたHTMLファイル61(バックアップファイル)に基づいてテキストを読み上げる。これは、ウェブブラウザ30の仕様による。バックアップファイルのコンテンツ部612Aは、ルビを付与する処理が施される前の状態である。また、ルビマップ部612Cは、JSON形式で記述されているので読上げの対象でない。したがって、ルビは、読み上げられない。
【0077】
〔3. 全体的な処理の流れおよび本実施形態の効果〕
図15は、ウェブサーバ2の全体的な処理の流れの例を説明するフローチャートである。
【0078】
次に、ウェブページ提供システム1の全体的な処理の流れを、フローチャートを参照しながら説明する。
【0079】
ウェブサーバ2は、
図15に示す手順でウェブページ管理プログラム20に基づいて処理を実行する。
【0080】
ウェブサーバ2は、配信対象のウェブページのファイルとしてウェブページ50のHTMLファイル60をウェブページ編集端末3Bから受信すると(
図15の#721でYes)、ウェブページ50をルビ付きで提供するための登録処理を次のように実行する。
【0081】
ウェブサーバ2は、ウェブページ50からテキストノードを検出し(#722)、各テキストノードから単語を検出し(#723)、検出した単語のうち漢字を含む単語の読み仮名を決定する(#724)。そして、決定した読み仮名に基づいて、ルビマップ633(
図7参照)を生成する(#725)。
【0082】
ウェブサーバ2は、ルビマップ633のほか、スタイル用のコード、ルビ付与ボタン512の表示用のコード、および変換スクリプト67の呼出用のコードなどをHTMLファイル60へ挿入することによって、HTMLファイル61を生成する(#726)。そして、HTMLファイル61をウェブページファイル記憶部206に記憶させる(#727)。これにより、ウェブページ50に振り仮名のルビを付与したもの、すなわち、ウェブページ51の準備が完了する。
【0083】
または、クライアント3Aからウェブページ51を要求されると(#728でYes)、HTMLファイル61をクライアント3Aへ送信する(#729)。その後、変換スクリプト67がクライアント3Aから要求されるので、変換スクリプト67をクライアント3Aへ送信する。
【0084】
そして、クライアント3Aにおいて、
図11に示した手順でウェブページ51の表示の処理が実行される。
【0085】
なお、本例では、ウェブページ50を取り扱う場合を例に説明したが、他のウェブページを取り扱う場合も同様に、ウェブサーバ2は、ステップ#722~#727の処理およびステップ#729の処理を適宜、実行する。また、クライアント3Aは、
図11に示した手順で表示の処理を実行する。
【0086】
本実施形態によると、ウェブページ51のように漢字に振り仮名がルビとして振られたウェブページの、スクリーンリーダなどによる読上げを、従来よりも確実に行うことができる。その仕組みは、上述の通りである。
【0087】
さらに、このようなウェブページの、検索エンジンによる検索を、従来よりも確実に行うことができる。その仕組みは、次の通りである。
【0088】
例えば、ウェブページ51のHTMLファイル61は、変換処理(
図13参照)が施されていない状態すなわち「ruby」タグおよび「rt」タグが使用されていない状態でウェブサーバ2から提供される。したがって、検索エンジンは、「「最強さいきょう寒波かんぱ」これから朝あさにかけて雪ゆきの予報よほうは?…」のような、ルビがノイズとして含まれるテキストではなく、「「最強寒波」これから朝にかけて雪の予報は?…」のような、ノイズの含まれないテキストを対象に検索を行うことができる。よって、従来よりも確実な検索がなされる。
【0089】
また、本実施形態によると、ルビ付きおよびルビ無しの両方でウェブページをユーザへ提供する際のウェブサーバの負荷を従来よりも軽減することができる。
【0090】
すなわち、ユーザからリクエストがあるごとにウェブサーバが動的にウェブページにルビを振って提供すると、ウェブサーバに負担が掛かる。しかし、本実施形態では、ウェブサーバ2は、ルビを振るためのデータ(ルビマップ633、変換スクリプト67など)を用意しており、ユーザからリクエストがあっても上記の動的な処理を行わない。したがって、ウェブサーバ2の負担が従来よりも軽減される。
【0091】
しかも、上記の動的な処理を伴わないので、ウェブページ提供システム1をCDN(Content Delivery Network)として構築することができる。すなわち、ウェブサーバ2をオリジンサーバとして使用し、地理的に分散された1つまたは複数のキャッシュサーバにウェブページの配信を行わせることができる。これにより、ウェブページの配信のスピードアップを図ることができる。
【0092】
〔4.適用例および変形例〕
ウェブページ提供システム1は、日常の情報を日本語ネイティブだけでなくノンネイティブ向けにも配信するために好適に用いられる。また、上述の通り、ウェブサーバ2の負荷を従来よりも軽減することができるので、緊急の情報を配信するために特に好適に用いられる。
【0093】
本実施形態では、ルビマップ633(
図7参照)はJSON形式で記述されたが、JavaScriptでの読込み可能なオリジナルデータと変換後のデータの対比の配列であれば、他の形式で記述されてもよい。例えば、XML(Extensible Markup Language)で記述されてもよい。
【0094】
本実施形態では、
図4に示したテキストノード検出部201ないし変換スクリプト送信部208の機能をすべてウェブサーバ2に実装したが、複数のコンピュータに分散してもよい。例えば、HTMLファイル60からHTMLファイル61を生成する機能をウェブページ編集端末3Bに実装し、HTMLファイル61および変換スクリプト67を配信する機能をウェブサーバ2に実装してもよい。または、HTMLファイル61を配信する機能をウェブサーバ2に実装し、変換スクリプト67を配信する機能を他のウェブサーバに実装してもよい。
【0095】
または、ウェブページ提供システム1に1つまたは複数のキャッシュサーバを設け、ウェブサーバ2をオリジンサーバとして機能させ、HTMLファイル61および変換スクリプト67を配信する機能をキャッシュサーバに実装してもよい。この場合は、クライアント3Aは、最寄りのキャッシュサーバへアクセスし、HTMLファイル61などを取得すればよい。
【0096】
本実施形態では、漢字に対してその読み仮名をルビとして振る場合を例に説明したが、漢字以外の記号に対してルビを振る場合にも、ウェブページ提供システム1を適用することができる。例えば、「patent」という英単語に対して「特許」または「パテント」というルビを振るように、アルファベットで記述される英単語に対してその意味または読み仮名をルビとして振る場合に適用することができる。
【0097】
または、ウェブサーバ2は、漢字等にルビが振られる代わりに「最強(さいきょう)」、「patent(パテント)」、または「patent(特許)」のように漢字等の直後に括弧書きで読み仮名または意味が付加されるようにルビマップ633を生成してもよい。つまり、例えば上記(1)のテキストペアコード635として下記のようなコードを有するようにルビマップ633を生成してもよい。
"「最強寒波」":"「最強(さいきょう)寒波(かんぱ)」"
本実施形態では、ウェブサーバ2は、HTMLファイル60に示されるテキストノードごとにテキストペアコード635を生成したが、「非常に」、「朝にかけて」、または「遣り甲斐」など漢字を含む単語または短文ごとにテキストペアコード635を生成してもよい。
【0098】
その他、ウェブページ提供システム1、ウェブサーバ2、クライアント3A、ウェブページ編集端末3Bの全体または各部の構成、処理の内容、処理の順序、HTMLファイル61の構成、ウェブページの構成などは、本発明の趣旨に沿って適宜変更することができる。
【符号の説明】
【0099】
1 ウェブページ提供システム(テキストコンテンツ提供システム)
2 ウェブサーバ(サーバ)
30 ウェブブラウザ(生成手段、表示制御手段)
3A クライアント
207 ウェブページ送信部(送信手段、テキストコンテンツ送信手段)
208 変換スクリプト送信部(プログラム送信手段)
511 テキストコンテンツ
61 HTMLファイル(ウェブファイル)
612Aコンテンツ部(表示制御手段)
612B 外部スクリプト呼出部(呼出部)
612C ルビマップ部(対応関係部)
612D ボタン制御部(生成手段、更新部)
633 ルビマップ(対応関係情報)
635 テキストペアコード(付加表示コード)
67 変換スクリプト(生成手段、生成用スクリプト)
【手続補正書】
【提出日】2023-06-13
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
伝達する内容を表わすテキストであるテキストコンテンツを提供するテキストコンテンツ提供システムであって、
サーバと、クライアントと、を有し、
前記サーバは、
前記テキストコンテンツと、当該テキストコンテンツの中の漢字と当該漢字の読み仮名とを対応付ける対応関係情報とを、前記クライアントへ送信する送信手段、
を有し、
前記クライアントは、
前記漢字の近傍に前記読み仮名を配置して前記テキストコンテンツを表示するための付加表示コードを前記テキストコンテンツおよび前記対応関係情報に基づいて生成する生成手段と、
選択的に前記付加表示コードに基づいて前記漢字の近傍に前記読み仮名を配置した状態でまたは配置しない状態で前記テキストコンテンツをディスプレイに表示させる表示制御手段と、
を有する、
ことを特徴とするテキストコンテンツ提供システム。
【請求項2】
伝達する内容を表わすテキストであるテキストコンテンツを提供するテキストコンテンツ提供システムであって、
前記テキストコンテンツと、当該テキストコンテンツの中の漢字と当該漢字の読み仮名とを対応付ける対応関係情報とを、クライアントへ送信するテキストコンテンツ送信手段と、
前記漢字の近傍に前記読み仮名を配置して前記テキストコンテンツを表示するための付加表示コードを前記テキストコンテンツおよび前記対応関係情報に基づいて生成する生成用プログラムを前記クライアントへ送信するプログラム送信手段と、
を有することを特徴とするテキストコンテンツ提供システム。
【請求項3】
前記テキストコンテンツ送信手段は、前記テキストコンテンツおよび前記対応関係情報として、当該テキストコンテンツと当該対応関係情報と前記生成用プログラムを外部スクリプトとして指定するコードとが記述されたHTMLファイルを送信する、
請求項2に記載のテキストコンテンツ提供システム。
【請求項4】
前記生成用プログラムは、前記漢字のルビとして前記読み仮名を配置するコードを前記付加表示コードとして生成するスクリプトである、
請求項3に記載のテキストコンテンツ提供システム。
【請求項5】
伝達する内容を表わすテキストであるテキストコンテンツを提供するテキストコンテンツ提供方法であって、
前記テキストコンテンツと、当該テキストコンテンツの中の漢字と当該漢字の読み仮名とを対応付ける対応関係情報とを、クライアントへ送信する処理をサーバに実行させ、
前記漢字の近傍に前記読み仮名を配置して前記テキストコンテンツを表示するための付加表示コードを前記テキストコンテンツおよび前記対応関係情報に基づいて生成する処理をクライアントに実行させ、
選択的に前記付加表示コードに基づいて前記漢字の近傍に前記読み仮名を配置した状態でまたは配置しない状態で前記テキストコンテンツをディスプレイに表示させる処理を前記クライアントに実行させる、
ことを特徴とするテキストコンテンツ提供方法。
【請求項6】
伝達する内容を表わすテキストであるテキストコンテンツを提供するコンピュータに用いられるコンピュータプログラムであって、
前記コンピュータに、
前記テキストコンテンツと、当該テキストコンテンツの中の漢字と当該漢字の読み仮名とを対応付ける対応関係情報とを、クライアントへ送信する処理を実行させ、
前記漢字の近傍に前記読み仮名を配置して前記テキストコンテンツを表示するための付加表示コードを前記テキストコンテンツおよび前記対応関係情報に基づいて生成する生成用プログラムを前記クライアントへ送信する処理を実行させる、
ことを特徴とするコンピュータプログラム。
【請求項7】
伝達する内容を表わすテキストであるテキストコンテンツを補足情報とともに表示させるためのウェブファイルであって、
前記テキストコンテンツを表示するためのコンテンツ部と、
前記テキストコンテンツの中の漢字と当該漢字の読み仮名とを対応付ける対応関係情報を示す対応関係部と、
前記漢字の近傍に前記読み仮名を前記補足情報として配置して前記テキストコンテンツを表示するための付加表示コードを前記テキストコンテンツおよび前記対応関係情報に基づいて生成する生成用スクリプトを外部スクリプトとして指定する指定コードを示す呼出部と、
前記生成用スクリプトによって前記付加表示コードを生成する生成処理と、当該生成された付加表示コードを前記テキストコンテンツとともに示しかつ前記漢字の近傍に選択的に前記読み仮名を配置した状態でまたは配置しない状態で当該テキストコンテンツをディスプレイに表示させるように前記コンテンツ部を更新する更新処理とをコンピュータに実行させる更新用スクリプトを示す更新部と、
を有することを特徴とするウェブファイル。
【請求項8】
前記生成処理は、前記漢字に前記読み仮名をルビとして配置して前記テキストコンテンツを表示するためのコードを前記付加表示コードとして生成する処理である、
請求項7に記載のウェブファイル。
【請求項9】
前記更新処理は、所定の操作が行われるごとに前記付加表示コードおよび前記テキストコンテンツのいずれか一方にのみ非表示のスタイルが交互に適用されるように前記コンテンツ部を更新する処理を含む、
請求項7または請求項8に記載のウェブファイル。
【請求項10】
前記更新処理は、前記読み仮名を配置するか否かを切り換えるためのボタンとともに前記テキストコンテンツを表示させるように前記コンテンツ部を更新する処理を含む、
請求項7または請求項8に記載のウェブファイル。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0011
【補正方法】変更
【補正の内容】
【0011】
本発明の一形態に係るテキストコンテンツ提供システムは、伝達する内容を表わすテキストであるテキストコンテンツを提供するテキストコンテンツ提供システムであって、サーバと、クライアントと、を有し、前記サーバは、前記テキストコンテンツと、当該テキストコンテンツの中の漢字と当該漢字の読み仮名とを対応付ける対応関係情報とを、前記クライアントへ送信する送信手段、を有し、前記クライアントは、前記漢字の近傍に前記読み仮名を配置して前記テキストコンテンツを表示するための付加表示コードを前記テキストコンテンツおよび前記対応関係情報に基づいて生成する生成手段と、選択的に前記付加表示コードに基づいて前記漢字の近傍に前記読み仮名を配置した状態でまたは配置しない状態で前記テキストコンテンツをディスプレイに表示させる表示制御手段と、を有する。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0012
【補正方法】変更
【補正の内容】
【0012】
本発明の一形態に係るウェブファイルは、伝達する内容を表わすテキストであるテキストコンテンツを補足情報とともに表示させるためのウェブファイルであって、前記テキストコンテンツを表示するためのコンテンツ部と、前記テキストコンテンツの中の漢字と当該漢字の読み仮名とを対応付ける対応関係情報を示す対応関係部と、前記漢字の近傍に前記読み仮名を前記補足情報として配置して前記テキストコンテンツを表示するための付加表示コードを前記テキストコンテンツおよび前記対応関係情報に基づいて生成する生成用スクリプトを外部スクリプトとして指定する指定コードを示す呼出部と、前記生成用スクリプトによって前記付加表示コードを生成する生成処理と、当該生成された付加表示コードを前記テキストコンテンツとともに示しかつ前記漢字の近傍に選択的に前記読み仮名を配置した状態でまたは配置しない状態で当該テキストコンテンツをディスプレイに表示させるように前記コンテンツ部を更新する更新処理とをコンピュータに実行させる更新用スクリプトを示す更新部と、を有する。