(57)【要約】 【課題】  辞書を用いて圧縮を行いデータの通信を効率良く行うのに好適な通信システム等を提供する。【解決手段】  サーバ装置１１は、データ断片と、符号とを対応付けて登録する辞書を生成して、これを記憶し、記憶された辞書を端末装置に送付し、端末装置１２は、サーバ装置１１から送付された辞書を受け付けて、これを記憶し、他の端末装置１２もしくはサーバ装置１１を宛先として伝送しようとするデータに含まれるデータ断片のうち、記憶された辞書に登録されるものを、これに対応付けて登録される符号に変換して圧縮し、圧縮済みのデータを、当該宛先に送信し、端末装置１２およびサーバ装置１１は、自身を宛先として送信された圧縮済みのデータを受信し、受信された圧縮済みのデータを、記憶された辞書を用いて展開して、伝送されたデータを得る。【選択図】  図１
2005063270.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置と、端末装置と、を備える通信システムであって、
（ａ）前記サーバ装置は、
データ断片と、符号とを対応付けて登録する辞書を生成して、これを記憶し、
前記記憶された辞書を前記端末装置に送付し、
（ｂ）前記端末装置は、
前記サーバ装置から送付された辞書を受け付けて、これを記憶し、
他の端末装置もしくは前記サーバ装置を宛先として伝送しようとするデータに含まれるデータ断片のうち、前記記憶された辞書に登録されるものを、これに対応付けて登録される符号に変換して圧縮し、
前記圧縮済みのデータを、当該宛先に送信し、
（ｃ）前記端末装置および前記サーバ装置は、
自身を宛先として送信された圧縮済みのデータを受信し、
前記受信された圧縮済みのデータを、前記記憶された辞書を用いて展開して、伝送されたデータを得る
ことを特徴とするシステム。
【請求項２】
サーバ装置と、端末装置と、を、備える通信システムであって、
（ａ）前記サーバ装置は、
データ断片と、符号とを対応付けて登録する辞書を生成して、これを他の辞書と重複しないバージョン情報に対応付けて記憶し、
（ｂ）前記端末装置は、あるバージョン情報に対応付けられる辞書を必要とする場合、
前記サーバ装置に、当該バージョン情報を指定して、辞書を送付するように要求し、
（ｃ）前記サーバ装置は、前記端末装置からバージョン情報を指定して辞書の送付を要求された場合、
前記記憶された辞書から、当該バージョン情報に対応付けられるものを選択し、
当該選択された辞書と、これに対応付けられるバージョン情報と、を、前記端末装置に送付し、
（ｄ）前記端末装置は、辞書の送付を要求した場合、
当該要求先から送付された辞書と、バージョン情報と、を受け付け、
前記受け付けられた辞書を、前記受け付けられたバージョン情報に対応付けて記憶し、
（ｅ）前記端末装置は、他の端末装置を宛先としてデータを伝送しようとする場合、
当該データに含まれるデータ断片のうち、前記記憶された辞書に登録されるものを、これに対応付けて登録される符号に変換して圧縮し、
前記圧縮済みのデータを、当該圧縮に用いた辞書に対応付けられたバージョン情報とともに、当該宛先に送信し、
（ｅ）前記端末装置は、
他の端末装置から自身を宛先として送信された圧縮済みのデータと、バージョン情報と、を受信し、
前記受信されたバージョン情報に対応付けられる辞書を記憶していない場合、これを必要とし、
前記受信されたバージョン情報に対応付けられる辞書を記憶している場合、当該辞書を用いて、前記受信された圧縮済みのデータを展開して、これを伝送されたデータとして出力する
ことを特徴とするもの。
【請求項３】
請求項２に記載の通信システムであって、
（ｆ）前記端末装置は、前記記憶された辞書をデータの圧縮に用いる場合、
当該辞書に登録されるデータ断片が当該データ中に出現する頻度と、当該データ中において符号に変換されなかったデータ断片とその頻度と、の、統計情報を収集し、
前記収集された統計情報を、前記サーバ装置に送付し、
（ｇ）前記サーバ装置は、
前記端末装置から送信された統計情報を受け付けて、当該統計情報により、新たな辞書を生成する
ことを特徴とするもの。
【請求項４】
請求項２または３に記載の通信システムであって、
前記端末装置は、当該バージョン情報を指定して辞書を送付するように要求する場合、現在記憶している辞書があれば、これに対応付けられるバージョン情報（以下「既存バージョン情報」という。）もあわせて指定して要求し、
前記サーバ装置は、当該要求に既存バージョン情報が指定されている場合、当該指定されるバージョン情報に対応付けられている辞書と、当該既存バージョン情報に対応付けられている辞書と、の差分を前記端末装置に送付することによって、当該辞書の送付にかえ、
前記端末装置は、前記サーバ装置から辞書の差分が送付された場合、現在記憶している辞書と当該差分とを結合して記憶して、必要なバージョン情報に対応付けられる辞書とする
ことを特徴とするもの。
【請求項５】
請求項２から４のいずれか１項に記載の通信システムであって、
（ｈ）前記端末装置は、あるバージョン情報に対応付けられる辞書を必要とする場合、
前記サーバ装置に要求するのに先立って、
他の端末装置に、当該バージョン情報を指定して辞書を送付するように要求し、
当該他の端末装置から、当該バージョン情報に対応付けられる辞書を送付できない旨の報告があってから、前記サーバ装置に要求し、
（ｉ）前記端末装置は、他の端末装置から、バージョン情報を指定して辞書の送付を要求された場合、
（１）前記指定されたバージョン情報に対応付けられる辞書を記憶している場合、当該辞書を選択し、
前記選択された辞書と、これに対応付けられるバージョン情報と、を当該他の端末装置へ送付し、
（２）前記指定されたバージョン情報に対応付けられる辞書を記憶していない場合、当該バージョン情報に対応付けられる辞書を送付できない旨を当該他の端末装置に報告する
ことを特徴とするもの。
【請求項６】
請求項５に記載の通信システムであって、
前記端末装置は、他の端末装置に当該バージョン情報を指定して辞書を送付するように要求する場合、現在記憶している辞書があれば、これに対応付けられるバージョン情報（以下「既存バージョン情報」という。）もあわせて指定して要求し、当該他の端末装置から辞書の差分が送付された場合、現在記憶している辞書と当該差分とを結合して記憶して、必要なバージョン情報に対応付けられる辞書とし、
前記端末装置は、当該他の端末装置からの要求に既存バージョン情報が指定されている場合、当該指定されるバージョン情報に対応付けられている辞書と、当該既存バージョン情報に対応付けられている辞書と、の差分を前記端末装置に送付することによって、当該辞書の送付にかえる
ことを特徴とするもの。
【請求項７】
請求項１から６のいずれか１項に記載の通信システムであって、
（ｊ）前記サーバ装置は、所定の禁止データ断片を禁止符号に対応付けて、生成する辞書に登録し、
（ｋ）前記端末装置は、
圧縮するデータ中に出現するデータ断片を変換した符号が禁止符号である場合、当該データ断片が使用を禁止されている旨を報告して圧縮を中止する
ことを特徴とするもの。
【請求項８】
端末装置と通信可能なサーバ装置にて実行されるサービス方法であって、
（ａ）データ断片と、符号とを対応付けて登録する辞書を生成して、これを記憶する工程と、
前記記憶された辞書を前記端末装置に送付する工程と、
（ｂ）自身を宛先として送信された圧縮済みのデータを受信する工程と、
前記受信された圧縮済みのデータを、前記記憶された辞書を用いて展開して、伝送されたデータを得る工程と、
を備えることを特徴とする方法。
【請求項９】
端末装置と通信可能なサーバ装置に実行されるサービス方法であって、
（ａ）データ断片と、符号とを対応付けて登録する辞書を生成して、これを他の辞書と重複しないバージョン情報に対応付けて記憶する工程と、
（ｂ）前記端末装置からバージョン情報を指定して辞書の送付を要求された場合、前記記憶された辞書から、当該バージョン情報に対応付けられるものを選択する工程と、
当該選択された辞書と、これに対応付けられるバージョン情報と、を、前記端末装置に送付する工程と、
を備えることを特徴とする方法。
【請求項１０】
サーバ装置と通信可能な端末装置にて実行される端末方法であって、
（ａ）前記サーバ装置から送付された辞書を受け付けて、これを記憶する工程と、
他の端末装置もしくは前記サーバ装置を宛先として伝送しようとするデータに含まれるデータ断片のうち、前記記憶された辞書に登録されるものを、これに対応付けて登録される符号に変換して圧縮する工程と、
前記圧縮済みのデータを、当該宛先に送信する工程と、
（ｂ）自身を宛先として送信された圧縮済みのデータを受信する工程と、
前記受信された圧縮済みのデータを、前記記憶された辞書を用いて展開して、伝送されたデータを得る工程と、
を備えることを特徴とする方法。
【請求項１１】
サーバ装置と通信可能な端末装置にて実行される端末方法であって、
（ａ）あるバージョン情報に対応付けられる辞書を必要とする場合、前記サーバ装置に、当該バージョン情報を指定して、辞書を送付するように要求する工程と、
辞書の送付を要求した場合、当該要求先から送付された辞書と、バージョン情報と、を受け付ける工程と、
前記受け付けられた辞書を、前記受け付けられたバージョン情報に対応付けて記憶する工程と、
（ｂ）他の端末装置を宛先としてデータを伝送しようとする場合、当該データに含まれるデータ断片のうち、前記記憶された辞書に登録されるものを、これに対応付けて登録される符号に変換して圧縮する工程と、
前記圧縮済みのデータを、当該圧縮に用いた辞書に対応付けられたバージョン情報とともに、当該宛先に送信する工程と、
（ｃ）他の端末装置から自身を宛先として送信された圧縮済みのデータと、バージョン情報と、を受信する工程と、
前記受信されたバージョン情報に対応付けられる辞書を記憶していない場合、これを必要とすることによってこれを送付するように要求する工程と、
前記受信されたバージョン情報に対応付けられる辞書を記憶している場合、当該辞書を用いて、前記受信された圧縮済みのデータを展開して、これを伝送されたデータとして出力する工程と、
を備えることを特徴とするもの。
【請求項１２】
端末装置と通信可能なコンピュータに、
（ａ）データ断片と、符号とを対応付けて登録する辞書を生成して、これを記憶する工程と、
前記記憶された辞書を前記端末装置に送付する工程と、
（ｂ）自身を宛先として送信された圧縮済みのデータを受信する工程と、
前記受信された圧縮済みのデータを、前記記憶された辞書を用いて展開して、伝送されたデータを得る工程と、
を実行させることを特徴とするプログラム。
【請求項１３】
端末装置と通信可能なコンピュータに、
（ａ）データ断片と、符号とを対応付けて登録する辞書を生成して、これを他の辞書と重複しないバージョン情報に対応付けて記憶する工程と、
（ｂ）前記端末装置からバージョン情報を指定して辞書の送付を要求された場合、前記記憶された辞書から、当該バージョン情報に対応付けられるものを選択する工程と、
当該選択された辞書と、これに対応付けられるバージョン情報と、を、前記端末装置に送付する工程と、
を実行させることを特徴とするプログラム。
【請求項１４】
サーバ装置と通信可能なコンピュータに、
（ａ）前記サーバ装置から送付された辞書を受け付けて、これを記憶する工程と、
他の端末装置もしくは前記サーバ装置を宛先として伝送しようとするデータに含まれるデータ断片のうち、前記記憶された辞書に登録されるものを、これに対応付けて登録される符号に変換して圧縮する工程と、
前記圧縮済みのデータを、当該宛先に送信する工程と、
（ｂ）自身を宛先として送信された圧縮済みのデータを受信する工程と、
前記受信された圧縮済みのデータを、前記記憶された辞書を用いて展開して、伝送されたデータを得る工程と、
を実行させることを特徴とするプログラム。
【請求項１５】
サーバ装置と通信可能なコンピュータに、
（ａ）あるバージョン情報に対応付けられる辞書を必要とする場合、前記サーバ装置に、当該バージョン情報を指定して、辞書を送付するように要求する工程と、
辞書の送付を要求した場合、当該要求先から送付された辞書と、バージョン情報と、を受け付ける工程と、
前記受け付けられた辞書を、前記受け付けられたバージョン情報に対応付けて記憶する工程と、
（ｂ）他の端末装置を宛先としてデータを伝送しようとする場合、当該データに含まれるデータ断片のうち、前記記憶された辞書に登録されるものを、これに対応付けて登録される符号に変換して圧縮する工程と、
前記圧縮済みのデータを、当該圧縮に用いた辞書に対応付けられたバージョン情報とともに、当該宛先に送信する工程と、
（ｃ）他の端末装置から自身を宛先として送信された圧縮済みのデータと、バージョン情報と、を受信する工程と、
前記受信されたバージョン情報に対応付けられる辞書を記憶していない場合、これを必要とすることによってこれを送付するように要求する工程と、
前記受信されたバージョン情報に対応付けられる辞書を記憶している場合、当該辞書を用いて、前記受信された圧縮済みのデータを展開して、これを伝送されたデータとして出力する工程と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、辞書を用いて圧縮を行いデータの通信を効率良く行うのに好適な通信システム、サービス方法、端末方法、ならびに、これらをコンピュータ上にて実現するためのプログラムに関する。
【背景技術】
【０００２】
従来から、コンピュータ通信の分野やネットワークゲームの分野など、種々の情報通信装置を利用する分野では、各端末装置が相互にデータを送受し合い、これらの通信をサーバ装置が管理する、という形態が広く用いられている。
また、量の大きなデータを伝送したい場合には、送信側では、ユーザがデータをあらかじめ所定のデータ圧縮アルゴリズムに基づいて圧縮してから転送し、受信側では、圧縮済みデータを受信してから、ユーザが、対応するデータ展開アルゴリズムにもとづいて、受信した圧縮済みデータを展開して、伝送されたデータを得る、という手法も用いられている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
したがって、ユーザにとって容易な手法を用いて端末装置間のデータの通信を効率良く行う技術が強く求められている。
本発明は、以上のような問題を鑑みたもので、辞書を用いて圧縮を行いデータの通信を効率良く行うのに好適な通信システム、サービス方法、端末方法、ならびに、これらをコンピュータ上にて実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００４】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
本発明の第１の観点に係る通信システムは、サーバ装置と、端末装置と、を備え、以下のように構成する。
すなわち、サーバ装置は、データ断片と、符号とを対応付けて登録する辞書を生成して、これを記憶し、記憶された辞書を端末装置に送付する。
データ断片は、典型的には文字列であり、端末装置同士や端末装置とサーバ装置との間で伝送されるべきデータに頻繁に出現する文字列には少ないビット数の符号が、稀にしか出現しない文字列には長いビット数の符号が、それぞれ対応付けられる。
【０００５】
一方、端末装置は、サーバ装置から送付された辞書を受け付けて、これを記憶し、他の端末装置もしくはサーバ装置を宛先として伝送しようとするデータに含まれるデータ断片のうち、記憶された辞書に登録されるものを、これに対応付けて登録される符号に変換して圧縮し、圧縮済みのデータを、当該宛先に送信する。
すなわち、サーバ装置で生成された辞書を用いて宛先に伝送したいデータを圧縮する。圧縮の際には、符号が割り当てられているデータ断片は当該符号に変換する。そして、符号に変換できなかったデータ断片は、「『圧縮するための符号がない』という符号」と当該データ断片との組合せに変換する。
【０００６】
一方、端末装置およびサーバ装置は、自身を宛先として送信された圧縮済みのデータを受信し、受信された圧縮済みのデータを、記憶された辞書を用いて展開して、伝送されたデータを得る。
すなわち、自分が圧縮済みデータの宛先となった場合は、すでに記憶した辞書を利用して、圧縮済みデータに含まれる符号を対応するデータ断片に変換する。具体的には、辞書に登録された符号の場合には、対応するデータ断片に変換する。一方、「『圧縮するための符号がない』という符号」とデータ断片との組合せの場合には、当該データ断片に変換する。これによって、圧縮済みデータを展開して、伝送されたデータを得る。
【０００７】
本発明によれば、サーバ装置において生成された辞書を、端末装置において用いて、端末装置間のデータ伝送や端末装置からサーバ装置へのデータ伝送の際にデータを圧縮し、宛先でこれを展開することによって、データの通信を効率良く行うことができる。
なお、本発明においては、上記と同様に、サーバ装置が記憶する辞書を使用して圧縮を行い、圧縮済みデータを受信した端末装置で展開を行うことによって、サーバ装置から端末装置にデータを伝送するようにしても良い。
【０００８】
本発明の他の観点に係る通信システムは、サーバ装置と、端末装置と、を、備え、以下のように構成する。
すなわち、サーバ装置は、データ断片と、符号とを対応付けて登録する辞書を生成して、これを他の辞書と重複しないバージョン情報に対応付けて記憶する。
ここで、サーバ装置は複数の辞書を運用する。そして、辞書の種類を区別するために、それぞれの辞書に他と重複しないバージョン情報を対応付ける。
【０００９】
一方、端末装置は、あるバージョン情報に対応付けられる辞書を必要とする場合、サーバ装置に、当該バージョン情報を指定して、辞書を送付するように要求する。
ここで、「あるバージョン情報に対応付けられる辞書を必要とする場合」とは、後述するように、典型的には、あるバージョン情報に対応付けられる辞書によって圧縮された圧縮済みデータを受信したが、当該辞書が当該端末装置には記憶されていない場合である。
【００１０】
さらに、サーバ装置は、端末装置からバージョン情報を指定して辞書の送付を要求された場合、記憶された辞書から、当該バージョン情報に対応付けられるものを選択し、当該選択された辞書と、これに対応付けられるバージョン情報と、を、端末装置に送付する。
サーバ装置には複数の辞書が用意されているので、端末装置から辞書を送付するように要求された場合には、当該要求に指定されるバージョン番号によって当該サーバ装置が管理する辞書を同定し、同定された辞書を要求元の端末装置に送付する。
【００１１】
そして、端末装置は、辞書の送付を要求した場合、当該要求先から送付された辞書と、バージョン情報と、を受け付け、受け付けられた辞書を、受け付けられたバージョン情報に対応付けて記憶する。
本発明では、端末装置は辞書の送付をサーバ装置に要求するので、サーバ装置から送付された辞書を自身に記憶することとなる。
【００１２】
一方、端末装置は、他の端末装置を宛先としてデータを伝送しようとする場合、当該データに含まれるデータ断片のうち、記憶された辞書に登録されるものを、これに対応付けて登録される符号に変換して圧縮し、圧縮済みのデータを、当該圧縮に用いた辞書に対応付けられたバージョン情報とともに、当該宛先に送信する。
送信側では、データを圧縮する際に利用した辞書のバージョン情報を当該圧縮済みデータに添付して、宛先に送付するのである。
【００１３】
そして、端末装置は、他の端末装置から自身を宛先として送信された圧縮済みのデータと、バージョン情報と、を受信し、受信されたバージョン情報に対応付けられる辞書を記憶していない場合、これを必要とし、受信されたバージョン情報に対応付けられる辞書を記憶している場合、当該辞書を用いて、受信された圧縮済みのデータを展開して、これを伝送されたデータとして出力する。
【００１４】
前述したように、圧縮済みのデータとバージョン情報を受信した場合に、当該バージョン情報に対応付けられる辞書を自身が記憶していない場合には、当該辞書が必要となる。そこで、上記のように、当該辞書をサーバ装置に要求し、サーバ装置から辞書が送付されると、端末装置は当該辞書を記憶する。
このようにして、一旦バージョン情報に対応付けられる辞書を記憶してしまえば、以降は、当該辞書を用いて、圧縮済みのデータを展開して、伝送されたデータを得る。
【００１５】
本発明によれば、サーバ装置において生成された辞書を、端末装置において用いて、端末装置間のデータ伝送の際にデータを圧縮し、宛先でこれを展開することによって、データの通信を効率良く行うことができる。
なお、本発明においても、上記と同様に、サーバ装置が記憶する辞書を使用して圧縮を行い、圧縮済みデータを受信した端末装置で展開を行うことによって、サーバ装置から端末装置にデータを伝送したり、その逆を行うことができる。
【００１６】
また、本発明の通信システムは、さらに、以下のように構成することができる。
すなわち、端末装置は、記憶された辞書をデータの圧縮に用いる場合、当該辞書に登録されるデータ断片が当該データ中に出現する頻度と、当該データ中において符号に変換されなかったデータ断片とその頻度と、の、統計情報を収集し、収集された統計情報を、サーバ装置に送付する。
【００１７】
通信システムにおいて伝送されるデータの種類によって、当該データを効率良く圧縮できる辞書は異なるのが一般的である。たとえば、通信システムが特許文書データの送受を頻繁に行う場合と、ゲームにおける会話データの送受を頻繁に行う場合と、では、出現する用語の分布が大きく異なる。また、流行語などの移り変わりのために、時期によっても用語の分布は変化していく。そこで、端末装置では、実際に圧縮の対象となったデータにおける既登録データ断片や未登録データ断片の出現頻度という統計情報を収集して、これを適当なタイミングでサーバ装置に送信する。
【００１８】
一方、  サーバ装置は、端末装置から送信された統計情報を受け付けて、当該統計情報により、新たな辞書を生成する。
たとえば、ある特定の用途、特定の集団、特定の時期に特有の用語の出現分布から、これに適合した新たな辞書を生成する。
【００１９】
そして、生成した辞書で何らかの小さいデータを圧縮して、当該辞書のバージョン情報とともに端末装置に送付すれば、上記の端末装置とサーバ装置との共働によって、端末装置側でも新しい辞書が利用できるようになる。
本発明によって、実際に伝送されているデータの伝送をもとに、より効率の良い辞書を生成して、これを圧縮に利用することができるようになる。
【００２０】
また、本発明の通信システムは、以下のように構成することができる。
すなわち、端末装置は、当該バージョン情報を指定して辞書を送付するように要求する場合、現在記憶している辞書があれば、これに対応付けられるバージョン情報（以下「既存バージョン情報」という。）もあわせて指定して要求する。
典型的には、既存バージョン情報として、自身が持っている最新の辞書のバージョン情報を指定することになる。
【００２１】
一方、サーバ装置は、当該要求に既存バージョン情報が指定されている場合、当該指定されるバージョン情報に対応付けられている辞書と、当該既存バージョン情報に対応付けられている辞書と、の差分を端末装置に送付することによって、当該辞書の送付にかえる。
すなわち、サーバ装置は、要求されている辞書のバージョン情報と、すでに端末装置に存在する辞書のバージョン情報と、から、これらの辞書の差分を得る。そして、要求されている辞書全体を送付するのではなくて、差分を送付することとする。
【００２２】
さらに、端末装置は、サーバ装置から辞書の差分が送付された場合、現在記憶している辞書と当該差分とを結合して記憶して、必要なバージョン情報に対応付けられる辞書とする。
すなわち、端末装置は、送付された差分と、すでに持っている辞書とを結合して、必要なバージョン情報の辞書を生成する。
本発明によれば、辞書同士の差分を伝送することによって、辞書全体を伝送するよりも、辞書の伝送に要する通信の効率を高めることができる。
【００２３】
また、本発明の通信システムは、さらに、以下のように構成することができる。
すなわち、端末装置は、あるバージョン情報に対応付けられる辞書を必要とする場合、サーバ装置に要求するのに先立って、他の端末装置に、当該バージョン情報を指定して辞書を送付するように要求する。
サーバに辞書を要求する前に、まず、自身と通信可能な他の端末装置に辞書を要求するのである。要求先の端末装置としては、たとえば、現在通信を行っている端末装置、友人の端末装置、当該端末装置との通信の帯域が所定の値よりも広いことがこれまでの通信履歴から判明している他の端末装置などが適切である。また、ユーザがこれを選択できるようにしても良い。
【００２４】
そして、当該他の端末装置から、当該バージョン情報に対応付けられる辞書を送付できない旨の報告があってから、サーバ装置に要求する。
すなわち、要求先の端末装置から辞書とバージョン情報が送付された場合には、これを受け付けて、当該辞書と当該バージョン情報とを対応付けて記憶するのは、サーバ装置に要求した場合と同様である。
【００２５】
一方、端末装置は、他の端末装置から、バージョン情報を指定して辞書の送付を要求された場合、
指定されたバージョン情報に対応付けられる辞書を記憶しているときは、当該辞書を選択して、選択された辞書と、これに対応付けられるバージョン情報と、を当該他の端末装置へ送付し、
指定されたバージョン情報に対応付けられる辞書を記憶していないときは、当該バージョン情報に対応付けられる辞書を送付できない旨を当該他の端末装置に報告する。
【００２６】
これによって、当該端末装置から自身がすでに持っている辞書を他の端末装置へ提供するのである。提供できない場合は、その旨を報告する。
本発明によれば、バージョン情報から辞書が更新された場合であっても、サーバ装置への辞書要求が集中しないようにすることができ、各端末装置が辞書の配布元となって分散して新たな辞書を提供することができる。
【００２７】
また、本発明の通信システムは、端末装置は、他の端末装置に当該バージョン情報を指定して辞書を送付するように要求する場合、現在記憶している辞書があれば、これに対応付けられるバージョン情報（以下「既存バージョン情報」という。）もあわせて指定して要求し、当該他の端末装置から辞書の差分が送付された場合、現在記憶している辞書と当該差分とを結合して記憶して、必要なバージョン情報に対応付けられる辞書とし、端末装置は、当該他の端末装置からの要求に既存バージョン情報が指定されている場合、当該指定されるバージョン情報に対応付けられている辞書と、当該既存バージョン情報に対応付けられている辞書と、の差分を端末装置に送付することによって、当該辞書の送付にかえるように構成することができる。
【００２８】
上記の発明では、サーバ装置から端末装置へ辞書を提供する際に、辞書全体ではなく差分を提供することとしていたが、本発明では、ある端末装置から別の端末装置へ辞書を提供する際に、辞書全体ではなく差分を提供するのである。
本発明によれば、辞書の提供を各端末装置に分散化した場合であっても、辞書同士の差分を伝送することによって、辞書全体を伝送するよりも、辞書の伝送に要する通信の効率を高めることができる。
【００２９】
また、本発明の通信システムは、以下のように構成することができる。
すなわち、サーバ装置は、所定の禁止データ断片を禁止符号に対応付けて、生成する辞書に登録する。
典型的には、禁止データ断片には、卑猥な用語や差別語など、公序良俗に反する文字列が該当する。そこで、これらの文字列には、禁止用語である旨の「符号」を対応付けるのである。
【００３０】
一方、端末装置は、圧縮するデータ中に出現するデータ断片を変換した符号が禁止符号である場合、当該データ断片が使用を禁止されている旨を報告して圧縮を中止する。
禁止用語を伝送しようと思っても、圧縮の過程においてそれが発見されると、データ伝送ができない旨が報告され、圧縮が中止され、データの伝送は行われない。
【００３１】
本発明は、特に、端末装置において圧縮対象となったデータの統計情報を収集する場合に好適である。すなわち、サーバ装置の管理者は、未登録の文字列がある場合、使用を禁止すべき用語があるか否かを精査して、使用を禁止すべき用語があれば、これを「所定の禁止データ断片」として採用するのである。
【００３２】
また、一般に禁止用語は追加されるだけであり、また、禁止用語同士で同じ「符号」を共有できる。したがって、禁止用語が追加された辞書については、当該禁止用語の情報のみが差分として得られるので、禁止用語を適宜効率良く更新追加できると期待される。
本発明によれば、データの伝送の際に、禁止用語が含まれていればその旨をユーザに報告し、伝送を中止させて、データ通信における公序良俗の維持に資することができる。
【００３３】
本発明の他の観点に係るサービス方法は、端末装置と通信可能なサーバ装置にて実行され、以下の工程を備えるように構成する。
すなわち、データ断片と、符号とを対応付けて登録する辞書を生成して、これを記憶する工程と、記憶された辞書を端末装置に送付する工程。
さらに、自身を宛先として送信された圧縮済みのデータを受信する工程と、受信された圧縮済みのデータを、記憶された辞書を用いて展開して、伝送されたデータを得る工程。
【００３４】
本発明の他の観点に係るサービス方法は、端末装置と通信可能なサーバ装置に実行され、以下の工程を備えるように構成する。
すなわち、データ断片と、符号とを対応付けて登録する辞書を生成して、これを他の辞書と重複しないバージョン情報に対応付けて記憶する工程。
また、端末装置からバージョン情報を指定して辞書の送付を要求された場合、記憶された辞書から、当該バージョン情報に対応付けられるものを選択する工程と、当該選択された辞書と、これに対応付けられるバージョン情報と、を、端末装置に送付する工程。
【００３５】
本発明の他の観点に係る端末方法は、サーバ装置と通信可能な端末装置にて実行され、以下の工程を備えるように構成する。
すなわち、サーバ装置から送付された辞書を受け付けて、これを記憶する工程と、他の端末装置もしくはサーバ装置を宛先として伝送しようとするデータに含まれるデータ断片のうち、記憶された辞書に登録されるものを、これに対応付けて登録される符号に変換して圧縮する工程と、圧縮済みのデータを、当該宛先に送信する工程。
また、自身を宛先として送信された圧縮済みのデータを受信する工程と、受信された圧縮済みのデータを、記憶された辞書を用いて展開して、伝送されたデータを得る工程。
【００３６】
本発明の他の観点に係る端末方法は、サーバ装置と通信可能な端末装置にて実行され、以下の工程を備えるように構成する。
すなわち、あるバージョン情報に対応付けられる辞書を必要とする場合、サーバ装置に、当該バージョン情報を指定して、辞書を送付するように要求する工程と、辞書の送付を要求した場合、当該要求先から送付された辞書と、バージョン情報と、を受け付ける工程と、受け付けられた辞書を、受け付けられたバージョン情報に対応付けて記憶する工程。
【００３７】
また、他の端末装置を宛先としてデータを伝送しようとする場合、当該データに含まれるデータ断片のうち、記憶された辞書に登録されるものを、これに対応付けて登録される符号に変換して圧縮する工程と、圧縮済みのデータを、当該圧縮に用いた辞書に対応付けられたバージョン情報とともに、当該宛先に送信する工程。
【００３８】
さらに、他の端末装置から自身を宛先として送信された圧縮済みのデータと、バージョン情報と、を受信する工程と、受信されたバージョン情報に対応付けられる辞書を記憶していない場合、これを必要とすることによってこれを送付するように要求する工程と、受信されたバージョン情報に対応付けられる辞書を記憶している場合、当該辞書を用いて、受信された圧縮済みのデータを展開して、これを伝送されたデータとして出力する工程。
【００３９】
本発明のその他の観点に係るプログラムは、コンピュータを上記通信システムのサーバ装置もしくは端末装置として機能させ、または、コンピュータに上記サービス方法もしくは端末方法を実行させるように構成する。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００４０】
本発明によれば、辞書を用いて圧縮を行いデータの通信を効率良く行うのに好適な通信システム、サービス方法、端末方法、ならびに、これらをコンピュータ上にて実現するためのプログラムを提供することができる。
【発明を実施するための最良の形態】
【００４１】
以下に本発明の実施形態を説明する。
以下では、理解を容易にするため、ネットワークゲームに本発明の通信システムが適用される実施形態を説明するが、各種のコンピュータ、ＰＤＡ（Personal Data Assistants）、携帯電話などの情報処理装置を用いた通信システムにおいても同様に本発明を適用することができる。
【００４２】
すなわち、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００４３】
図１は、本発明の第１の実施の形態に係る通信システムの概要構成を示す模式図である。以下、本図を参照して説明する。
通信システム１０は、サーバ装置１１と、複数の端末１２と、が、インターネット１３を介して通信可能に接続されている。複数の端末１２のそれぞれは、サーバ装置１１から辞書をダウンロードしても良いし、サーバ装置１１からではなく他の辞書をダウンロード済みの端末１２からダウンロードしても良い。
【００４４】
端末１２同士のデータ通信や、端末１２とサーバ装置１１との間のデータ通信の際には、それぞれが有する辞書を用いてデータの圧縮を行う。この際に、複数の辞書を切り替えたり、辞書のバージョンの更新ができるようにするために、圧縮に利用した辞書のバージョン番号を、当該圧縮済みデータに添付して、データの送受を行う。
【００４５】
理解を容易にするため、以下では、端末装置１２としてインターネット１３への接続が可能なゲーム装置を例してあげて、説明する。
【００４６】
図２は、本発明の実施形態の１つに係る通信システム１０の端末１２の一種が実現され、端末装置として機能する典型的なゲーム装置の概要構成を示す模式図である。以下、本図を参照して説明する。
ゲーム装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ（Read Only Memory）１０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェース１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ（Digital Versatile Disk）−ＲＯＭドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、を備える。
【００４７】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、ゲーム装置１００の電源を投入することにより、プログラムが実行され、本実施形態の表示装置が実現される。
ＣＰＵ  １０１は、ゲーム装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
【００４８】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、ゲーム装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００４９】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。
【００５０】
インターフェース１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。また、ソフトウェアキーボードの技術を適用することにより、ユーザは、コントローラ１０５を利用して、各種の文字列を入力することができる。
インターフェース１０４を介して着脱自在に接続された外部メモリ１０６には、ゲームの進行状態を示すデータ、チャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００５１】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００５２】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００５３】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを俯瞰したレンダリング画像を得る演算の高速実行も可能である。特に、点光源や平行光源、円錐光源などの典型的な光源によってポリゴンが照らされる度合を計算する機能が、ライブラリ化もしくはハードウェア化され、高速に計算できるようになっている。
【００５４】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ＲＯＭ  １０２に記録されているが、ＤＶＤ−ＲＯＭに記録された専用のフォント情報を利用することも可能である。
【００５５】
ＮＩＣ  １０９は、ゲーム装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００５６】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００５７】
このほか、ゲーム装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００５８】
一方、サーバ装置１１としては、いわゆるサーバコンピュータを利用することができる。サーバコンピュータの基本構成は、ゲーム装置１００と類似している。たとえば、サーバコンピュータにおいては、特殊な画像処理は必要ないため、ゲーム装置１００に比べて画像処理部１０７の機能は低いものとすることができる。
【００５９】
また、音声処理部１１０やコントローラ１０５などは省略することができる。また、コントローラ１０５にかえてキーボードやマウスを利用してコンピュータに対する指示入力を与えることとするのが一般的である。また、いわゆるリモートデスクトップや遠隔ログインを用いて、他の端末からＮＩＣ  １０９を介してサーバ装置１１に対する指示入力を行う形態をとることも多い。
このほか、外部メモリ１０６としては、ハードディスク等の大容量の不揮発性記憶装置を利用するのが一般的である。
【００６０】
（通信の様子）
図３は、ある局面において、辞書やデータの通信がされる動作例を示す説明図である。以下、本図を参照して説明する。本動作例では、サーバ装置１１と端末装置１２ａと端末装置１２ｂとが登場し、端末装置１２ａから端末装置１２ｂへ、データを伝送するものとする。
また、端末装置１２ａと端末装置１２ｂとは、いずれも、辞書を記憶していないものとして説明を行う。
【００６１】
まず、端末装置１２ａのユーザが、あるデータを端末装置１２ｂへ伝送するように指示をする（３０１）。
すると、端末装置１２ａは、自身が辞書を記憶しているかどうかを調べる。その結果、辞書は記憶していないことが判明するので、端末装置１２ｂに対して、「自分は辞書は持っていない」旨のバージョン情報を指定して、辞書を伝送するように要求する（３０２）。
【００６２】
端末装置１２ｂは、要求を受け付けると、自身が辞書を記憶しているかどうか調べる。その結果、辞書は記憶していないことが判明するので、端末装置１２ａに対して、「辞書を送付できない」旨を報告する（３０３）。
端末装置１２ａは、辞書を端末装置１２ｂから得ることができなかったため、サーバ装置１１に対して、「自分は辞書は持っていない」旨のバージョン情報を指定して、辞書を伝送するように要求する（３０４）。
【００６３】
すると、サーバ装置１１は、当該要求に応じて、最新の辞書をそのバージョン情報とともに、端末装置１２ａに送付する（３０５）。
端末装置１２ａは、送付された辞書を記憶して、当該辞書を用いて伝送すべきデータを圧縮し、圧縮済みのデータと辞書のバージョン情報とを端末装置１２ｂに送信する（３０６）。
【００６４】
端末装置１２ｂは、圧縮済みのデータと辞書のバージョン情報とを、受信すると、当該バージョン情報の辞書を自身が持っているかを調べる。その結果、当該バージョン情報の辞書は記憶していないことが判明するので、端末装置１２ａに対して「自分は現在は辞書を全く持っておらず、当該バージョン情報の辞書を送付せよ」と要求する（３０７）。
【００６５】
端末装置１２ａは、この要求を受け取ると、当該バージョン情報の辞書を記憶しているか調べる。持っているので、当該バージョン情報の辞書を、端末装置１２ｂに送付する（３０８）。
端末装置１２ｂは、当該バージョン情報の辞書を受け付けて、これを記憶する。そして、すでに受信している圧縮済みデータを、当該辞書を用いて展開して、ユーザに提示する（３０９）。
【００６６】
なお、端末装置１２ａがすでに辞書を持っており、持っている辞書が端末装置１２ｂが持っている辞書と異なる場合には、上記の通信３０２、３０３、３０４は行われない。端末装置１２ａにてデータの圧縮は可能だからである。
この場合、端末装置１２ｂは、端末装置１２ａに、自身が既に持っている辞書のバージョン情報と、欲しい辞書のバージョン情報と、を指定して、辞書の要求を行う（３０７に相当）。
【００６７】
端末装置１２ａは、これらの差分情報が得られる場合には、当該差分情報を端末装置１２ｂに送付する（３０８に相当）。
端末装置１２ｂは、差分情報を得て、新しいバージョン情報に対応する辞書を生成し、これを用いて、展開を行う。
【００６８】
また、差分情報が得られない場合は、端末装置１２ａは、辞書全体を送付するか、もしくは、辞書は送付できない旨報告するか、いずれかを適宜選択できる。後者を選択した場合、端末装置１２ｂは、サーバ装置１１に対して辞書を要求する。
サーバ装置１１には、辞書の履歴が保存されているので、差分情報は必ず得ることができる。そこで、当該差分情報を端末装置１２ｂに送付する。以下は、上記の場合と同様である。
【００６９】
（サーバ装置における処理）
図４は、当該実施形態のサーバ装置１１において実行されるサービス方法の処理の流れを示すフローチャートである。以下、本図を参照して説明する。
【００７０】
本発明のサービス方法は、まず、ゲームの管理者に対して、辞書を生成するかどうかを問い合わせ、辞書に入れる用語等の編集を促す（ステップＳ４０１）。本実施形態では、この際に、用語等の出現頻度の統計をとるためのコーパスを管理者に指定させるが、ゲーム管理者が、用語とその出現頻度を直接指定するような形態を採用することができる。また、コーパスに含まれる部分文字列を出現順に管理者に提示して、管理者に部分文字列を選択させても良い。
【００７１】
そして、編集が完了したら、当該編集された用語等と、指定されたコーパスとから、各用語に割り当てる符号を決定して、用語と符号との対応付けを行い、最初の辞書を生成して、これを記憶する（ステップＳ４０２）。本実施形態では、符号の列から元のデータを一意に復元できるような符号を割り当てる。たとえばシャノン・ファノ符号法や、ハフマン符号などの符号が利用可能である。
【００７２】
より簡便な方法として、上記のように、「当該符号群から任意の符号を２つ選択しても一方が他方の接頭辞となることがない」という要件を満たすような符号群を用意しておき、これを符号のビット数の順に整列させる。このようにすれば、先頭からビット列を操作することによって、一意に符号の列を得ることができる。
【００７３】
一方、用語については、出現頻度が高い順に、これを並べる。そして、整列された符号と、整列された用語と、を順に先頭から対応付けていく。そして、この対応付けを登録することによって、辞書を生成する。
【００７４】
また、この際には、卑猥な言葉や差別用語など、使用を禁止したい用語を管理者に選択させることが望ましい。禁止したい用語には、「禁止符号」という特殊な符号を割り当てる。
この手法では、ハフマン符号にいうような最適な符号群は得られないが、容易に辞書が生成できる点と、辞書をバージョンアップしようとする際に、用語と符号との対応付けをできるだけ変更しないように（差分ができるだけ小さくなるように）することができる。
【００７５】
ついで、端末装置１２から種々の要求があるまで、待機する（ステップＳ４０３）。なお、この待機の間には、他の任意の処理に計算リソースをまわして、他の処理を並行に処理させることが可能である。
そして、要求を受け付けると、待機から復帰して、当該要求の種類を調べる（ステップＳ４０４）。
【００７６】
当該要求が、辞書の送付を求める要求である場合（ステップＳ４０４；辞書更新）、当該要求に指定されている以下のバージョン情報を調べる（ステップＳ４０５）。
（ａ）必要な辞書のバージョン情報。必要な辞書のバージョン情報としては、具体的なバージョン番号ではなく、「そのサーバ装置１１で用意されている最新のバージョン」を指定することも可能である。
（ｂ）現在端末装置が記憶している辞書のバージョン情報。辞書を持っていない場合は、その旨の情報。
【００７７】
そして、サーバ装置１１が用意している辞書を調べ、上記２つのバージョン情報の辞書を比較して、その差分を得る（ステップＳ４０６）。辞書と辞書との差分を得る手法は、一般的な情報の差分を得る手法が採用できる。
また、端末装置１２が辞書を持っていない場合は、辞書全体を送付することになる。もっとも、端末装置１２に提供されるソフトウェアを記録したＤＶＤ−ＲＯＭに、あらかじめ、何らかのバージョンの辞書を用意しておくことにより、端末装置１２が「辞書を記憶していない」状況を避けることができる。これによれば、辞書全体を送付しなくて済み、通信効率の向上に資することができる。
【００７８】
そして、得られた差分がどのバージョンからどのバージョンへの差分であるか、を表す情報とともに、当該差分を当該端末装置１２に送付して（ステップＳ４０７）、辞書の提供を完了し、ステップＳ４０３に戻る。
【００７９】
一方、当該要求が、端末装置１２が収集したデータの統計情報の報告である場合（ステップＳ４０４；統計報告）、当該報告の内容を記憶する（ステップＳ４０８）。ここで記憶されている統計情報には、以下のような事項が含まれている。
（ａ）端末装置１２においてデータの圧縮をする際に、辞書に登録済みの符号に変換したデータ断片の出現頻度。
（ｂ）端末装置１２においてデータの圧縮をする際に、辞書に未登録であるため符号に変換できなかったデータ断片と、その出現頻度。
【００８０】
一般には、頻出用語については符号をわりあてておき、端末装置１２においては、頻出用語のリストからユーザにいずれかを選択させて入力を行う。
【００８１】
一方、当該リストにない文字を入力したい場合には、５０音表などを表示してこれから文字を選択させる。いわゆるソフトウェアキーボードの技術である。
このようにして入力された文字列は、辞書に未登録であるとして、
「未登録用語符号  未登録用語の文字数  未登録用語の文字列」
という情報を、他の登録用語から変換された符号と組み合わせて利用することとする。これによって、端末装置１２のユーザは、任意の文字列を入力できるようになる。
そして、このようにして入力された未登録の用語についても、端末装置１２で統計を収集して、サーバ装置１１に報告を行う。
【００８２】
なお、あらかじめサーバ装置１１の管理者が選択した用語のみが入力可能であるように、端末装置１２におけるデータの入力を制限しても良い。この場合は、上記（ｂ）に相当する未登録用語の情報はないことになる。
本発明が適用されるネットワークゲーム等の種類によっては、限られた用語のみを用いてプレイヤー間の会話を行うようなものも考えられる。これは、このようなゲーム等に好適な実施形態である。
【００８３】
ついで、サーバ装置１１は、蓄積された統計情報から、サーバ装置１１の管理者に提示すべき情報を抽出する（ステップＳ４０９）。抽出される情報としては、以下のようなものがある。
（ａ）最新の辞書の登録済みの用語のうち、当該辞書を生成したときと比較して、出現頻度が大幅に（所定の閾値を超えるほどに）変化しているもの。
（ｂ）未登録語のうち、出現頻度が高いもの。これは、新たに辞書に登録するかどうかを管理者に問い合わせるために利用する。
（ｃ）未登録語の一覧。これは、禁止用語とすべき用語が新たに使用されていないかを、管理者が監視するために利用する。
【００８４】
そして、管理者に対して抽出した情報を提示して、辞書を新たに生成するか否かを問い合わせる（ステップＳ４１０）。生成する旨の指示があった場合は、当該抽出された情報と、すでに生成された辞書との内容とを、適宜表示しながら、管理者に辞書の編集を行わせる（ステップＳ４１１）。
【００８５】
ここでは、管理者は主として、出現頻度が大幅に変化している用語について、これに対応付けられる符号を変更するか否かを選択する作業と、未登録の部分文字列で頻出しているものから、新たな用語として登録すべき文字列を選択する作業と、未登録の部分文字列から、公序良俗に反する文字列を選択する作業と、を行う。
【００８６】
そして、これらの指示に基づいて、サーバ装置は、新たな辞書を生成し、これを記憶して（ステップＳ４１２）、ステップＳ４０３に戻る。
ここで、辞書のバージョンごとの差分をできるだけ小さくするためには、以下の用語の間だけで、符号との対応付けを交換するようにすれば良い。
（ａ）符号との対応付けを変更する用語（ステップＳ４１１において指定されたもの）
（ｂ）新たに登録する用語（ステップＳ４１１において指定されたもの）
（ｃ）すでに辞書に登録されている用語のうち、所定の閾値よりも出現頻度が低い用語、もしくは、所定のビット長さよりも長い符号に対応付けられている用語
また、ステップＳ４１１において指定された新たな禁止用語については、単にこれらも禁止符号に対応付ければ十分である。このほかの符号の対応付けの手法については、後述する。
【００８７】
さらに、ほかの種類の要求であった場合（ステップＳ４０４；その他）、これに対応する処理を実行して、ステップＳ４０３に戻る。
【００８８】
（端末装置における送信処理）
図５は、当該実施形態の端末装置１２において実行される処理のうち、他の端末装置１２やサーバ装置１１といった宛先にデータを伝送する送信処理の流れを示すフローチャートである。以下、本図を参照して説明する。
【００８９】
端末装置１２は、まず、伝送すべきデータと、当該データを伝送すべき宛先（サーバ装置１１や他の端末装置１２等。）の入力を受け付ける（ステップＳ５０１）。伝送すべきデータは、典型的にはキーボードやマウス、コントローラ１０５などの入力装置を用いて入力される。また、この際、すでに端末装置１２側に辞書が用意されている場合には、当該辞書内から用語を選択するような技術を用いて、ユーザに入力を促す手法を採用することもできる。
このほか、別途用意された各種のファイルをユーザが指定することにより、当該ファイルの内容を伝送すべきデータとして取り扱っても良い。
【００９０】
次に、端末装置１２は、送信側ダウンロード条件を満たしているか、を確認する（ステップＳ５０２）。送信側ダウンロード条件としては、以下のような条件を採用することができる。
（ａ）当該端末装置１２が、圧縮用の辞書を持っていない。
（ｂ）当該端末装置１２に、最後に圧縮用の辞書がダウンロードされてから、ある程度以上の期間が経過している。
（ｃ）ユーザから、新たな辞書をダウンロードするよう指示された。
（ｄ）上記（ａ）〜（ｃ）の組合せ。
【００９１】
そして、ダウンロード条件が満たされる場合（ステップＳ５０２；Ｙｅｓ）、辞書のダウンロード処理を実行してから（ステップＳ５０３）、ステップＳ５０４に進む。ダウンロード処理の詳細については、後述する。満たされない場合（ステップＳ５０２；Ｎｏ）、ステップＳ５０４にそのまま進む。
【００９２】
その後は、入力を受け付けたデータを、当該辞書を用いて圧縮し（ステップＳ５０４）、圧縮済みのデータを当該辞書のバージョン情報とともに宛先に送信して（ステップＳ５０５）、本処理を終了する。
【００９３】
（端末装置における受信処理）
図６は、当該実施形態の端末装置１２において実行される処理のうち、他の端末装置１２やサーバ装置１１といった他の装置からデータの伝送を受ける受信処理の流れを示すフローチャートである。以下、本図を参照して説明する。
【００９４】
端末装置１２は、まず、他の装置から、圧縮済みのデータと、当該圧縮に用いた辞書のバージョン情報と、を受信する（ステップＳ６０１）。
ついで、受信側ダウンロード条件が満たされているか否かを調べる（ステップＳ６０２）。受信側ダウンロード条件としては、以下のようなものを採用することができる。
（ａ）当該端末装置１２が、圧縮用の辞書を持っていない。
（ｂ）当該端末装置１２に用意されている辞書のバージョン情報と、受信したバージョン情報と、が一致しない。
（ｃ）ユーザから、新たな辞書をダウンロードするよう指示された。
（ｄ）上記（ａ）〜（ｃ）の組合せ。
【００９５】
受信側ダウンロード条件が満たされる場合（ステップＳ６０２；Ｙｅｓ）、後述するダウンロード処理を実行し（ステップＳ６０３）、ステップＳ６０４に進む。一方、受信側ダウンロード条件が満たされない場合（ステップＳ６０２；Ｎｏ）、そのままステップＳ６０４に進む。
【００９６】
そして、用意されている辞書を用いて、受信した圧縮済みのデータを展開して（ステップＳ６０４）、これをユーザに提示したりファイルとして保存する等、出力して（ステップＳ６０５）、本処理を終了する。
【００９７】
（端末装置におけるダウンロード処理）
図７は、当該実施形態の端末装置１２において実行される処理のうち、辞書のダウンロードを行うダウンロード処理の流れを示すフローチャートである。以下、本図を参照して説明する。
【００９８】
まず、端末装置１２は、これと通信可能に接続されている他の端末装置１２に、現在自身が持っている辞書のバージョン情報を指定して、「所望のバージョン」の辞書を要求する（ステップＳ７０１）。
「所望のバージョン」としては、これからデータを圧縮する場合には「最新のバージョン」を、データを展開する場合には「データの圧縮に用いられた辞書のバージョン」を、それぞれ指定すれば良い。
【００９９】
ここで、他の端末装置１２としては、以下のようなものを選択することができる。
（ａ）伝送すべきデータの宛先
（ｂ）圧縮済みデータの送信元
（ｃ）該過去に通信を行った経歴がある他の端末装置１２
（ｄ）あらかじめ定めた辞書配布用の端末装置１２
（ｅ）上記（ａ）〜（ｄ）の組み合わせ。複数ある場合には、過去の通信履歴から通信帯域幅が広いと予想されるもの。
【０１００】
そして、当該他の端末装置１２からの返事を受け取り（ステップＳ７０２）、その返事の内容を調べる（ステップＳ７０３）。
【０１０１】
返事の内容が、「辞書は提供できない」旨のものである場合（ステップＳ７０３；提供不可）、サーバ装置１１に対して、現在自身が持っている辞書のバージョン情報を指定して、「最新のバージョン」の辞書を要求し（ステップＳ７０４）、サーバ装置１１から辞書の差分情報を受け付けて（ステップＳ７０５）、当該差分情報を既存の辞書と結合して圧縮用辞書の更新を行い（ステップＳ７０６）、本処理を終了する。
【０１０２】
一方、返事の内容が、「要求された辞書（最新バージョンの辞書）を提供する」旨のものである場合（ステップＳ７０３；提供可）当該他の端末装置１２から当該辞書の差分情報を受け付けて（ステップＳ７０７）、ステップＳ６０６に進む。
【０１０３】
なお、サーバ装置１１から端末装置１２へデータを送信したり、端末装置１２からサーバ装置１１へデータを送信する場合にも、サーバ装置１１において端末装置１２と同様の処理を行うことによって、データを圧縮して効率良く伝送することができる。
【０１０４】
（辞書の実施形態）
圧縮用の辞書としては、上述したように、あらかじめ用意されたコーパスから抽出された頻度情報に基づいてハフマン符号化により生成されるもの等を適用することができるほか、あらかじめ所定の符号群を用意しておき、当該符号に適宜データ断片（典型的には文字列。）を対応付けたものを採用しても良い。
以下では、後者の実施形態について詳細に説明し、辞書を効率良く表現するための差分の表現手法について説明する。
【０１０５】
上記のように、ハフマン符号化では、ある符号が他の符号の接頭辞とならないような符号群を用いる。しかしながら、ネットワークゲームの分野などでは、このようなビット処理による符号化ではなく、バイト単位での処理で符号化を行う方が、処理速度等の面で有利なことも多い。以下、十六進数を表現するために、接尾辞として「h」を用いる。たとえば、十進数の２５５は、「ＦＦｈ」と表記することとする。
【０１０６】
nバイト長の符号は、これを
a1，a2，…，an-1，an
と表記したときに、ビット積演算を「&」記号で表現するものとして、
a1 & 80h = 80h，
a2 & 80h = 80h，…，
an-1 & 80h = 80h，
an & 80h = 00h
が満たされるようにする。
【０１０７】
すなわち、１バイト長の符号は、00h〜7Fhの128通りである。
２バイト長の符号は、第１バイトが80h〜FFh、第２バイトが00h〜7Fhで、128×128=16384通りである。
３バイト長の符号は、第１バイトと第２バイトが80h〜FFh、第３バイトが00h〜7Fhで128×128×128=2097152通りである。
【０１０８】
これらの符号群を整数値として見て昇順に並べると、符号長も昇順となる。また、この順序に並べた場合に、何番目の符号は何であるか、は、明らかに一意に定まる。
なお、これらの符号群は、ディジタル音楽の分野で広く用いられている標準ＭＩＤＩフォーマット(SMF)で利用される数値表現である。また、UNICODEという文字体系において、ASCII文字を１バイトで表現するために用いられる手法でもある。
【０１０９】
なお、ある統計によれば、新聞１年分に掲載される語彙は１０万種類程度、個人が知っている語彙は５万種類程度、個人がチャットや電子メールで用いる語彙は、８千〜１万程度である。したがって、ネットワークゲームでプレイヤー同士がチャットや電子メールによる会話をする場合には、使用される語彙の種類が限られるのが普通であるので、上記のような符号を採用する場合、１バイト長と２バイト長のもののみを採用すれば十分であると考えられる。
【０１１０】
そして、符号長が最大２バイトとわかっているのであれば、以下のような符号体系を採用することも可能である。
（ａ）１バイト長符号は、00h〜7Fh（上記と同様）。
（ｂ）２バイト長符号の第１バイトは80h〜FFh、第２バイトは00h〜FFh。
【０１１１】
この場合には、128+128×256=32896通りの符号が得られることになる。
【０１１２】
以下では、このような符号体系を採用したものと考えることとする。そして、FFh FFhは、未登録の文字列を表現するための接頭辞符号として特別に扱うこととする。
【０１１３】
たとえば、
FFh FFh 05h
というバイト列は、「この後に５文字分の未登録文字列がある」ことを意味する。
【０１１４】
このような符号に対して、順に用語を割り当てていくのであるが、圧縮の効率を考えた場合、割り当てる順序は、
「出現頻度」×「文字数」
の値が小さいものの順序とすることが望ましい。そこでまず、一番最初のバージョンの辞書を、あらかじめ用意された用語群とその出現頻度から、上記の順に符号に割り当てていく。
【０１１５】
用語の単位は、日本語文法における単語の単位や文節としても良いし、慣用句の単位としても良い。
【０１１６】
このような符号を用いて辞書を作成した場合、ある用語に割り当てられる符号は１バイトもしくは２バイトで、その差は１バイトに過ぎない。したがって、新たな単語が登場した場合であっても、単語と符号の対応付けを入れ替える必要性は極めて低い。すなわち、辞書に新たに用語を登録する場合には、未使用の符号のうちその値が一番小さいものに対応付けるものとする。
【０１１７】
このようにした場合、辞書のバージョン情報は、「当該辞書に登録されている用語の数」で表現される。辞書内のn番目の符号に対応付けて登録される用語をwnと表現するとき、バージョンnの辞書と、バージョンn+mの辞書との差分は、
m個の用語wn+1，…，wn+m
である。
【０１１８】
上記の辞書の構成では、禁止用語は考慮していなかったが、禁止用語についても同様に辞書に割り当てていくことができる。すなわち、禁止用語は、通常の用語とは逆順に、辞書の末尾に符号から順に（FFh FEh，FFh FDh，FFh FCh，FFh FBh，FFh FAh，FFh F9h，FFh F8h，FFh F7h，FFh F6h，…の順に）割り当てていくこととする。この様子を図８に示す。
【０１１９】
この場合、バージョン情報は、使用できる用語数nと、禁止用語数kと、の組(n,k)で表現できる。このとき、バージョン(n,k)の辞書とバージョン(n+m,k+h)の辞書との差分は、
m個の用語wn+1，…，wn+m、および、
k個の禁止用語r32896-k-h，…，r32896-k-1
となる。
そして、バージョン情報(n,k)の禁止符号は、「32896-k番目以降の符号」ということになる。
【０１２０】
また、上記例では、符号を用語を割り当てていく際に、「出現頻度」×「文字数」の値によって割り当て順を決めていたが、これ以外の手法も考えられる。すなわち、「出現頻度」にかえて「当該用語を使用しているユーザ数」を用いる、というものである。
【０１２１】
ある用語をある特定のユーザのみが頻繁に使用している場合であっても、「出現頻度」は大きくなってしまう可能性がある。一方、「用語を利用しているユーザ数」が多い、ということは、それだけ、その用語が一般的なものであり、これが未登録の場合には、流行しつつある／している新語に相当するものと考えられる。そこで、「出現頻度」×「文字数」ではなく、「使用しているユーザ数」×「文字数」を順序付けの際に用いることが望ましい場合もある。
【０１２２】
これらの各種のパラメータから、割当順を決めるための計算手法は、上記のもののほか、種々考えられるが、いずれを採用した場合も、本発明の範囲に含まれる。
このような辞書を用いることによって、ネットワークゲームやチャット通信などで頻繁に用いられる用語を容易に圧縮して通信量を減らすことができるほか、辞書の差分を交換するだけで辞書を更新することができ、辞書のバージョンの管理も容易になる。
【産業上の利用可能性】
【０１２３】
以上説明したように、本発明によれば、辞書を用いて圧縮を行いデータの通信を効率良く行うのに好適な通信システム、サービス方法、端末方法、ならびに、これらをコンピュータ上にて実現するためのプログラムを提供することができ、ネットワークゲームやチャット通信などで頻繁に用いられる用語を容易に圧縮して通信量を減らしたい場合など、各種の通信技術に適用することができる。
【図面の簡単な説明】
【０１２４】
【図１】本発明の実施形態に係る通信システムの概要構成を示す模式図である。
【図２】通信システムの端末装置が実現される典型的なゲーム装置の概要構成を示す模式図である。
【図３】サーバ装置と端末装置との間の通信の一例を示す説明図である。
【図４】サーバ装置にて実行されるサービス方法の制御の流れを示すフローチャートである。
【図５】端末装置にて実行される送信処理の制御の流れを示すフローチャートである。
【図６】端末装置にて実行される受信処理の制御の流れを示すフローチャートである。
【図７】端末装置にて実行されるダウンロード処理の制御の流れを示すフローチャートである。
【図８】異なるバージョンの辞書と、その差分とを示す説明図である。
【符号の説明】
【０１２５】
１１    サーバ装置
１２    端末装置
１３    インターネット
１００  ゲーム装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェース
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
【図１】
2005063270.tif 000003
【図２】
2005063270.tif 000004
【図３】
2005063270.tif 000005
【図４】
2005063270.tif 000006
【図５】
2005063270.tif 000007
【図６】
2005063270.tif 000008
【図７】
2005063270.tif 000009
【図８】
2005063270.tif 000010