JP5655811B2 - データ処理装置、データ処理方法、及びデータ処理プログラム - Google Patents

データ処理装置、データ処理方法、及びデータ処理プログラム Download PDF

Info

Publication number
JP5655811B2
JP5655811B2 JP2012080151A JP2012080151A JP5655811B2 JP 5655811 B2 JP5655811 B2 JP 5655811B2 JP 2012080151 A JP2012080151 A JP 2012080151A JP 2012080151 A JP2012080151 A JP 2012080151A JP 5655811 B2 JP5655811 B2 JP 5655811B2
Authority
JP
Japan
Prior art keywords
data
data table
record
size
actual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012080151A
Other languages
English (en)
Other versions
JP2013210807A (ja
Inventor
大輔 二木
大輔 二木
典久 藤川
典久 藤川
山田 将之
将之 山田
和行 板井
和行 板井
藤井 康弘
康弘 藤井
雅博 高橋
雅博 高橋
裕一朗 箭川
裕一朗 箭川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aisin AW Co Ltd
Original Assignee
Aisin AW Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aisin AW Co Ltd filed Critical Aisin AW Co Ltd
Priority to JP2012080151A priority Critical patent/JP5655811B2/ja
Publication of JP2013210807A publication Critical patent/JP2013210807A/ja
Application granted granted Critical
Publication of JP5655811B2 publication Critical patent/JP5655811B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Instructional Devices (AREA)
  • Navigation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ処理装置、データ処理方法、及びデータ処理プログラムに関する。
従来、利用者の現在位置から目的地に至る経路を案内するナビゲーション装置の如きデータ処理装置においては、地名データや施設データの如き様々な膨大な検索データを、ユーザが検索可能な構造であって、かつ、効率よく更新可能な構造で、構成する必要がある。
このような点に鑑みて、従来のデータは、集合型データ又は分散型データとして構成されていた。集合型データは、比較的大きな単位のファイル(エリアファイル)として集合的に構成された検索データであり、この検索データの内部の参照先データを特定する場合には、検索データに格納された参照先特定用のデータ(先頭データからの相対的な位置を示すオフセット)を利用するデータである(例えば、特許文献1参照)。一方、分散型データは、比較的小さな単位の複数のファイルとして分散的に構成された検索データであり、この検索データの内部の参照先データを特定する場合には、これら複数のファイルとは別途に設定したファイル特定用のファイルを利用するデータである。
特開2004−198841号公報
しかしながら、集合型データと分散型データのいずれの検索データに関しても問題があった。すなわち、集合型データに関しては、エリアファイルの内部の特定のデータを更新する場合、当該データ以降のデータに対応する全てのオフセットを更新する必要があり、膨大な更新時間を有するという問題があった。また、分散型データに関しては、全体としてファイル数が膨大になるために、ナビゲーション装置のデータベースのファイル数の制限を超えてしまい、分散型データの利用自体ができない場合があった。
本発明は、上記に鑑みてなされたものであって、データを構成するファイルの数が少なくても、データの検索や更新を容易に行うことが可能になる、データ処理装置、データ処理方法、及びデータ処理プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、請求項1に記載のデータ処理装置は、同一のファイルの内部に格納されたデータであって、少なくとも一つのデータレコードを含む複数のデータテーブルを階層構造化して構成されたデータを少なくとも格納するデータ格納手段と、前記データ格納手段にて格納された複数のデータテーブルの中から、参照対象のデータテーブルの先頭位置を特定する特定手段とを備え、前記データ格納手段は、前記複数のデータテーブルを、最上位階層のデータテーブルを先頭として、同一系統のデータテーブルを上位階層から下位階層に至る順に前記ファイルに格納し、前記複数のデータテーブルの各々は、当該データテーブルと同一系統に属するデータテーブルであって、当該データテーブルより一つだけ下位階層のデータテーブルを一意に識別するための識別情報と、当該データテーブルより一つだけ下位階層のデータテーブルのデータサイズである次段サイズと、当該データテーブルより下位階層の全てのデータテーブルのデータサイズの合計値である配下サイズとを含み、前記最上位階層のデータテーブルは、当該データテーブルのデータサイズを含み、前記特定手段は、特定対象のデータテーブルの識別情報が所定方法で指定された場合に、前記データ格納手段にて格納された前記データテーブルの前記配下サイズを、前記最上位階層のデータテーブルから、前記識別情報に基づいて識別された前記特定対象のデータテーブルより一つ前の格納位置に格納されたデータテーブルに至るまで、前記データ格納手段における前記データテーブルの格納順に加算することで、前記ファイルにおける前記最上位階層のデータテーブルの先頭位置から前記特定対象のデータテーブルの先頭位置までの相対的な位置を特定する。
請求項2に記載のデータ処理装置は、請求項1に記載のデータ処理装置において、前記データ格納手段は、データ処理の対象になる実データと、データ処理の対象になる実データの位置を特定するためのインデックスデータとを格納し、前記実データは、文字データを含む複数の実データレコードを当該文字データにおける文字位置及び文字語順に基づいた整列順序で整列して構成されると共に、前記データ格納手段において前記ファイルとは異なる実データファイルに格納され、前記インデックスデータは、前記データとして構成されると共に、前記文字データの前記整列順序に応じて階層構造化され、前記インデックスデータの複数のデータテーブルの各々は、自己に対応する前記実データレコードのサイズである実サイズを含み、前記特定手段は、前記最上位階層のデータテーブルの先頭位置から前記特定対象のデータテーブルの先頭位置までの相対的な位置を特定した後、前記データ格納手段にて格納された前記データテーブルの前記実サイズを、前記最上位階層のデータテーブルから、当該特定された相対的な位置に対応する前記データテーブルより一つ前の格納位置に格納されたデータテーブルに至るまで、前記データ格納手段における前記データテーブルの格納順に加算することで、前記実データファイルにおける最初の実データの先頭位置から、前記特定対象の実データの先頭位置までの相対的な位置を特定する。
請求項3に記載のデータ処理装置は、請求項1に記載のデータ処理装置において、前記複数のデータレコードの一部のデータレコードが更新された場合、当該更新されたデータレコードが属するデータテーブルと同一系統に属するデータテーブルであって、当該データテーブルより上位階層の全てのデータテーブルの前記次段サイズと前記配下サイズとを、当該更新されたデータレコードのデータサイズに基づいて更新する更新手段を備えた。
請求項4に記載のデータ処理装置は、請求項2に記載のデータ処理装置において、前記複数の実データレコードの一部の実データレコードが更新された場合、当該更新された実データレコードに対応するインデックステーブルの前記実サイズと、当該インデックステーブルと同一系統に属するインデックステーブルであって、当該インデックステーブルより上位階層の全てのインデックステーブルの前記実サイズとを、当該更新された実データレコードのデータサイズに基づいて更新する更新手段を備えた。
請求項5に記載のデータ処理方法は、同一のファイルの内部に格納されたデータであって、少なくとも一つのデータレコードを含む複数のデータテーブルを階層構造化して構成されたデータを少なくともデータ格納手段に格納するデータ格納ステップと、前記データ格納ステップにて格納された複数のデータテーブルの中から、参照対象のデータテーブルの先頭位置を特定する位置特定ステップとを含み、前記データ格納ステップにおいては、前記複数のデータテーブルを、最上位階層のデータテーブルを先頭として、同一系統のデータテーブルを上位階層から下位階層に至る順に前記ファイルに格納し、前記複数のデータテーブルの各々は、当該データテーブルと同一系統に属するデータテーブルであって、当該データテーブルより一つだけ下位階層のデータテーブルを一意に識別するための識別情報と、当該データテーブルより一つだけ下位階層のデータテーブルのデータサイズである次段サイズと、当該データテーブルより下位階層の全てのデータテーブルのデータサイズの合計値である配下サイズとを含み、前記最上位階層のデータテーブルは、当該データテーブルのデータサイズを含み、前記位置特定ステップにおいては、特定対象のデータテーブルの識別情報が所定方法で指定された場合に、前記データ格納ステップにて格納された前記データテーブルの前記配下サイズを、前記最上位階層のデータテーブルから、前記識別情報に基づいて識別された前記特定対象のデータテーブルより一つ前の格納位置に格納されたデータテーブルに至るまで、前記データ格納手段における前記データテーブルの格納順に加算することで、前記ファイルにおける前記最上位階層のデータテーブルの先頭位置から前記特定対象のデータテーブルの先頭位置までの相対的な位置を特定する。
請求項6に記載のデータ処理プログラムは、請求項5に記載の方法をコンピュータに実行させるプログラムである。
請求項1に記載のデータ処理装置、請求項5に記載のデータ処理方法、及び請求項6に記載のデータ処理プログラムによれば、同一のファイルの内部に格納されたデータであって、少なくとも一つのデータレコードを含む複数のデータテーブルを階層構造化して構成されたデータを用いて、ファイルにおける最上位階層のデータテーブルの先頭位置から特定対象のデータテーブルの先頭位置までの相対的な位置を特定することができるので、データを構成するファイルの数を一つに抑制することができると共に、データの検索を容易に行うことが可能になる。
請求項2に記載のデータ処理装置によれば、データ格納手段は、データ処理の対象になる実データと、データ処理の対象になる実データの位置を特定するためのインデックスデータとを格納し、実データファイルにおける最初の実データの先頭位置から、特定された実データの先頭位置までの相対的な位置を特定することができるので、データを構成するファイルの数を二つに抑制することができると共に、データの検索を容易に行うことが可能になる。
請求項3に記載のデータ処理装置によれば、複数のデータレコードの一部のデータレコードが更新された場合、上位階層の全てのデータテーブルの次段サイズと配下サイズとを更新することで、データの更新が完了するので、データの更新を容易に行うことが可能になる。
請求項4に記載のデータ処理装置によれば、複数の実データレコードの一部の実データレコードが更新された場合、インデックステーブルの実サイズと、上位階層の全てのインデックステーブルの前記実サイズとを更新することで、データの更新が完了するので、データの更新を容易に行うことが可能になる。
本発明の実施の形態1に係るナビゲーションシステムを例示するブロック図である。 検索データの階層構造を示す図である。 検索データファイルにおける検索データの格納順序を示す図である。 特定処理のフローチャートである。 更新処理のフローチャートである。 実施の形態2に係るナビゲーションシステムを例示するブロック図である。 実データの階層構造を示す図である。 実データファイルにおける実データの格納順序を示す図である。 インデックスデータの階層構造を示す図である。 インデックスデータファイルにおけるインデックスデータの格納順序を示す図である。 特定処理のフローチャートである。 図11に続く、特定処理のフローチャートである。 更新処理のフローチャートである。
以下、本発明に係るデータ処理装置、データ処理方法、及びデータ処理プログラムの各実施の形態について図面を参照しつつ詳細に説明する。ただし、各実施の形態によって本発明が限定されるものではない。なお、本発明に係るデータ処理装置、データ処理方法、及びデータ処理プログラムの適用対象は任意であるが、例えば、地図データを処理するナビゲーション装置に適用することが考えられる。以下の各実施の形態では、データ処理装置がナビゲーション装置として構成された場合を例に挙げて説明する。
〔実施の形態1〕
最初に、実施の形態1について説明する。この実施の形態1は、データ処理の対象になるデータ自身のデータサイズに基づいて、データの位置を特定する形態である。
(構成)
まず、実施の形態1に係るデータ処理装置としてのナビゲーション装置を用いたナビゲーションシステムの構成を説明する。図1は、実施の形態1に係るナビゲーションシステムを例示するブロック図である。図1に示すように、ナビゲーションシステム1は、現在位置取得部2、タッチパネル3、ディスプレイ4、スピーカ5、及びデータ処理装置としてのナビゲーション装置6を備えている。
(構成−現在位置取得部)
現在位置取得部2は、ナビゲーション装置6が取り付けられた車両(以下、自車両)の現在地点を検出する現在地点検出手段である。具体的には、現在位置取得部2は、GPS、地磁気センサ、距離センサ、又はジャイロセンサ(いずれも図示省略)の少なくとも一つを有し、現在の自車両の位置(座標)及び方位等を公知の方法にて検出する。
(構成−タッチパネル)
タッチパネル3は、ユーザの指等で押圧されることにより、当該ユーザから各種手動入力を受け付けるものである。このタッチパネル3は、透明又は半透明状に形成され、ディスプレイ4の前面において当該ディスプレイ4の表示面と重畳するように設けられている。このタッチパネル3としては、例えば抵抗膜方式や静電容量方式等による操作位置検出手段を備えた公知のタッチパネルを使用することができる。
(構成−ディスプレイ)
ディスプレイ4は、ナビゲーション装置6によって案内された画像を表示する表示手段である。ディスプレイ4の具体的な構成は任意であり、公知の液晶ディスプレイや有機ELディスプレイの如きフラットパネルディスプレイを使用することができる。
(構成−スピーカ)
スピーカ5は、ナビゲーション装置6の制御に基づいて各種の音声を出力する出力手段である。スピーカ5より出力される音声の具体的な態様は任意であり、必要に応じて生成された合成音声や、予め録音された音声を出力することができる。
(構成−ナビゲーション装置)
ナビゲーション装置6は、車両の走行経路を案内する案内装置であると共に、データ処理を行うデータ処理装置であり、制御部7及びデータ記録部8を備えている。
(構成−データ処理装置−制御部)
制御部7は、ナビゲーション装置6を制御する制御手段であり、具体的には、CPU、当該CPU上で解釈実行される各種のプログラム(OSなどの基本制御プログラムや、OS上で起動され特定機能を実現するアプリケーションプログラムを含む)、及びプログラムや各種のデータを格納するためのRAMの如き内部メモリを備えて構成されるコンピュータである。特に、実施の形態に係るデータ処理プログラムは、任意の記録媒体又はネットワークを介してナビゲーション装置6にインストールされることで、制御部7の各部を実質的に構成する。
この制御部7は、機能概念的に、特定部9と更新部10を備える。特定部9は、後述する検索情報DB12にて格納された複数のデータテーブルの中から、参照対象のデータテーブルの先頭位置を特定する特定手段である。更新部10は、複数のデータレコードの一部のデータレコードが更新された場合、当該更新されたデータレコードが属するデータテーブルと同一系統に属するデータテーブルであって、当該データテーブルより上位階層の全てのデータテーブルの次段サイズと配下サイズとを、当該更新されたデータレコードのデータサイズに基づいて更新する更新手段である。これらの制御部7の各部によって実行される処理の詳細や、データレコード、データテーブル、次段サイズ、及び配下サイズの詳細については、後述する。
(構成−データ処理装置−データ記録部)
データ記録部8は、ナビゲーション装置6の動作に必要なプログラム及び各種のデータを格納するデータ格納手段であり、例えば、外部記録装置としてのハードディスク(図示省略)を用いて構成されている。ただし、ハードディスクに代えてあるいはハードディスクと共に、磁気ディスクの如き磁気的記録媒体、又はDVDやブルーレイディスクの如き光学的記録媒体を含む、その他の任意の記録媒体を用いることができる。
このデータ記録部8は、地図情報データベース(以下、データベースを「DB」と表記する)11と、検索情報DB12を格納する。
地図情報DB11は、地図データを格納するデータ格納手段である。「地図データ」とは、地図をディスプレイ4に表示したり、走行経路の探索や案内を行うために必要なデータであり、例えば、ノードデータ(ノード番号、座標)や、リンクデータ(リンク番号、接続ノード番号、道路座標、道路種別、車線数、走行規制等)、地物データ(信号機、道路標識、ガードレール、建物等)、地形データ、地図をディスプレイ4に表示するための地図表示データ等を含んで構成されている。
検索情報DB12は、検索データを格納するデータ格納手段である。実施の形態1における「検索データ」とは、場所(番地)を検索するためのデータであって、少なくとも一つのデータレコードを含む複数のデータテーブルを階層構造化して構成されており、検索情報DB12の検索データファイル13に格納されている。
図2は、検索データの階層構造を示す図である。この図2に示すように、検索データは、一つの最上位階層(第1階層)のデータテーブルDT1と、このデータテーブルDT1に対して一つだけ下位階層(第2階層)に位置付けられたデータテーブルDT2、DT5と、このデータテーブルDT2、DT5に対してさらに一つだけ下位階層(第3階層)に位置付けられたデータテーブルDT3、DT4、DT6、DT7とを含んでいる。これらデータテーブルDT1〜DT7は、検索データが示す場所の地理的階層に対応した階層で構造化されたものであって、検索データが示す場所の地理的階層に対応したデータを含むものである。すなわち、第1階層のデータテーブルDT1は、日本の都道府県を検索するためのデータを含む。第2階層のデータテーブルDT2、DT5は、市区町村を検索するためのデータを含む。第3階層のデータテーブルDT3、DT4、DT6、DT7は、市区町村より一つ下の下位の地理的階層を検索するためのデータを含む(以下、データテーブルの符号DT1〜DT7を省略する)。
各データテーブルのデータレコードは、具体的には、一つの親のデータレコード(以下、親レコード)と、一つ以上の子のデータレコード(以下、子レコード)とを含んで構成されている。例えば、第1階層のデータテーブルは、親レコード「root」と、子レコード「北海道」及び子レコード「青森県」を含む。また、第2階層のデータテーブル「北海道」は、親レコード「北海道」と、子レコード「札幌市」及び子レコード「旭川市」を含む。また、第3階層のデータテーブル「札幌市」は、親レコード「札幌市」と、子レコード「中央区」及び子レコード「西区」を含む。
各データテーブルの親レコードは、当該親レコードが属するデータテーブルの参照用データを含むレコードである。「参照用データ」とは、各データテーブルや各データレコードを参照するために使用されるデータであり、例えば、当該親レコードと同じデータテーブルに含まれる子レコードのレコード数を含んでおり、この子レコードのレコード数を用いて、後述する各処理において子レコードを取得する際における当該子レコードの読み込み終了位置を管理している。
各データテーブルの子レコードは、検索用テキストデータ、識別コード、次段サイズ、及び配下サイズを含む。「検索用テキストデータ」とは、場所(番地)を検索するためにディスプレイ4等に表示されるテキストデータであり、例えば、データテーブル「root」の子レコード「北海道」は、検索用テキストデータ「北海道」を含む。「識別コード」とは、各データテーブル(具体的には、各子レコード)を一意に識別するための識別情報である。「次段サイズ」とは、当該子レコードと同一系統に属するデータテーブルであって、当該子レコードが属するデータテーブルより一つだけ下位階層のデータテーブルのデータサイズである。「配下サイズ」とは、当該子レコードと同一系統に属するデータテーブルであって、当該データテーブルより下位階層の全てのデータテーブルのデータサイズの合計値である。
ここで、「同一系統」とは、上位階層のデータテーブルの子レコードと、当該データテーブルより一つだけ下位階層のデータテーブルの親レコードとが、直接的な階層関係を有する系統(図2では矢印で直接的に結ばれた系統)である。例えば、データテーブル「root」−データテーブル「北海道」−データテーブル「札幌市」は相互に同一系統に属し、データテーブル「root」−データテーブル「北海道」−データテーブル「旭川市」は相互に同一系統に属するが、データテーブル「札幌市」とデータテーブル「旭川市」は同一系統には属していない。
この次段サイズに関して、例えば、図2の例では、データテーブル「root」の子レコード「北海道」は、データテーブル「北海道」のデータサイズ=8200Byteを次段サイズとして有し、データテーブル「北海道」の子レコード「札幌市」は、データテーブル「札幌市」のデータサイズ=500Byteを次段サイズとして有する。なお、データテーブル「札幌市」の子レコード「中央区」は、それより下位階層のデータテーブルが存在しないことから、データサイズ=0Byteを次段サイズとして有する。
また、この配下サイズに関して、例えば、図2の例では、データテーブル「root」の子レコード「北海道」は、データテーブル「北海道」のデータサイズ=8200Byte、データテーブル「札幌市」のデータサイズ=500Byte、及びデータテーブル「旭川市」のデータサイズ=22000Byte、の合計値=30700Byteを配下サイズとして有する。あるいは、データテーブル「北海道」の子レコード「札幌市」は、データテーブル「札幌市」のデータサイズ=500Byteを配下サイズとして有する。なお、最上位階層のデータテーブル「root」の親レコード「root」は、当該データテーブル「root」のデータサイズ=250Byteを含む。
このように階層構造化された検索データは、一つの検索データファイル13に格納されている。図3は、検索データファイル13における検索データの格納順序を示す図である。この図3に示すように、検索データファイル13には、複数のデータテーブルが、最上位階層のデータテーブルを先頭として、同一系統のデータテーブルを上位階層から下位階層に至る順に格納されている。より具体的には、検索データファイル13の先頭位置には、最上位階層のデータテーブル「root」が格納されている。また、検索データファイル13の次の位置には、同一系統のデータテーブル「北海道」−データテーブル「札幌市」が、当該階層順に格納されている。また、次の位置には、同一系統のデータテーブル「北海道」−データテーブル「旭川市」が、当該階層順に格納されるが、データテーブル「北海道」は既に格納されているためにデータテーブル「旭川市」のみが格納されている。また、次の位置には、同一系統のデータテーブル「青森県」−データテーブル「青森市」が、当該階層順に格納されている。また、次の位置には、同一系統のデータテーブル「青森県」−データテーブル「むつ市」が、当該階層順に格納されるが、データテーブル「青森県」は既に格納されているためにデータテーブル「むつ市」のみが格納される。
なお、図2、3には検索データの一部のみを例示しており、実際の検索データには、例えば、データテーブル「秋田県」等のその他の都道府県に対応するデータテーブルや、これら都道府県の市区町村に対応するデータテーブルのデータテーブルが格納される。また、各データテーブルの子レコードにも、実際にはさらに多くの子レコードが含まれ、例えば、データテーブル「むつ市」には、子レコード「旭町」、子レコード「大曲」、子レコード「大湊」以外にも、「むつ市」に属する地理的階層に対応する子レコードが含まれる。このように構成される検索データは、地図作成業者等によって構成されデータ記録部8に格納される。
(処理)
次に、このように構成されるナビゲーション装置6によって実行されるデータ処理について説明する。この処理は、参照対象となるデータレコードを特定するための特定処理と、データレコードを更新するための更新処理に大別される。以下の処理の説明において、制御主体を特記しない処理については、ナビゲーション装置6の制御部7にて実行されるものとし、情報の取得元や取得経路を特記しない場合については、公知のタイミング及び公知の方法にて、ナビゲーション装置6のデータ記録部8に予め格納されており、あるいは、ナビゲーション装置6のタッチパネル3を介してユーザ等によって入力されるものとする。また、ステップを「S」と略記する。
(処理−特定処理)
最初に、特定処理について説明する。図4は、特定処理のフローチャートである。この特定処理は、ナビゲーションシステム1のユーザによって地名検索の操作が所定方法で行われた場合に起動される。以下の説明では、ユーザが検索したい地名が「青森県むつ市」である場合を、具体例に交えて説明する。
この処理において、特定部9は、現在参照しているデータテーブル(以下、カレントデータテーブル)の親レコードを取得する(SA1)。最初のカレントデータテーブルは、検索データファイル13に格納されている最上位階層のデータテーブルとする。例えば、カレントデータテーブル「root」の親レコード「root」を取得する。
次いで、特定部9は、カレントデータテーブルの全ての子レコードを取得し、当該子レコードに基づいて選択用画面を生成してディスプレイ4に表示する(SA2)。例えば、カレントデータテーブル「root」の子レコード「北海道」と子レコード「青森県」を取得して、これら子レコードから検索用テキストデータである「北海道」と「青森県」をそれぞれ取得し、当該取得した検索用テキストデータ「北海道」と「青森県」をリスト形式で含んだ選択用画面を生成してディスプレイ4に表示する。また、選択用画面には、地名の検索の終了を指示するためのボタンを表示する。このようなボタンとしては、例えば、地名の検索を終了すると共に、その時点で最終的に検索されている地名に対する操作を行うための操作ボタン(例えば、検索された地名に対応する地図データを地図情報DB11から取得してディスプレイ4に表示するための表示ボタン)を表示する。
次いで、特定部9は、ユーザにより検索したい地名が選択されたか否かを判定する(SA3)。そして、検索したい地名が選択された場合には(SA3、Yes)、SA4に移行する。例えば、検索したい地名が「青森県むつ市」である場合、ユーザは、ディスプレイ4に表示された検索用テキストデータ「青森県」を、タッチパネル3を介して選択する。この場合には、検索したい地名が選択されたと判定される。
検索したい地名が選択されたと判定した場合(SA3、Yes)、特定部9は、ユーザによって選択された検索用テキストデータに対応する子レコードから、当該子レコードの識別コードを取得する(SA4)。例えば、検索用テキストデータ「青森県」が選択された場合には、当該検索用テキストデータ「青森県」に対応する子レコード「青森県」から、当該子レコード「青森県」の識別コードを取得する。
次いで、特定部9は、カレントデータテーブルのデータサイズをオフセット値に加算する(SA5)。オフセット値とは、ユーザが検索したい地名に対応するデータテーブルの位置を特定するための情報であり、具体的には、検索データファイル13に格納されている最上位階層のデータテーブルの先頭位置を基準とする、ユーザが検索したい地名に対応するデータテーブルの先頭位置までの、相対的な位置である。なお、オフセット値の初期値は0とする。また、最上位階層のデータテーブルのデータサイズは、最上位階層のデータテーブルの親レコードから取得する。例えば、データテーブル「root」の親レコード「root」に含まれているデータサイズ=250Byteをオフセット値に加算し、オフセット値=0+250=250Byteとする。
次いで、特定部9は、目的の子レコード(つまり、SA3でユーザによって選択された検索用テキストデータに対応する子レコード)に辿り付くまで、SA6〜SA10のループ処理を繰り返す。具体的には、特定部9は、カレントデータテーブルの子レコードの中から、収納順序の上位順に一つの子レコードを取得し、当該取得した子レコードをカレント子レコードに設定する(SA7)。例えば、最初に、カレントデータテーブル「root」の子レコード「北海道」をカレント子レコードに設定する。
そして、当該設定したカレント子レコードが目的の子レコードであるか否かを判定する(SA8)。この判定は、SA4で取得した識別コードが、SA7で設定したカレント子レコードに含まれる識別コードに一致するか否かに基づいて行われる。例えば、SA4で取得した子レコード「青森県」の識別コードが、SA7で設定したカレント子レコード「北海道」の識別コードに一致するか否かを判定する。この例の場合には、一致しないことから、カレント子レコードが目的の子レコードではないと判定する。
カレント子レコードが目的の子レコードではないと判定した場合(SA8、No)、特定部9は、カレント子レコードの配下サイズをオフセット値に加算する(SA9)。例えば、SA4で取得した子レコード「青森県」の識別コードが、SA7で設定したカレント子レコード「北海道」の識別コードに一致しないために、目的の子レコードではないと判定した場合には、カレント子レコード「北海道」の配下サイズ=30700Byteを加算して、オフセット値=250+30700=30950Byteとする。
一方、カレント子レコードが目的の子レコードであると判定した場合(SA8、Yes)、特定部9は、SA6〜SA10のループ処理を抜けて、その時点におけるオフセット値の位置へ、カレントデータテーブルの位置を移動する(SA11)。例えば、上述のように、カレント子レコード「北海道」が目的の子レコードではないと判定した場合、次のループ処理において、SA4で取得した子レコード「青森県」の識別コードが、カレントデータテーブル「root」の子レコードの中で、収納順序が二番目であるカレント子レコード「青森県」の識別コードに一致するために、目的の子レコードであると判定した場合には、検索データファイル13に格納されている最上位階層のデータテーブルの先頭位置から、その時点におけるオフセット値=30950Byteの位置を先頭位置とするデータテーブル「青森県」を、カレントデータテーブルとする。
次いで、SA1に戻り、特定部9は、カレントデータテーブルの親レコードを取得する(SA1)。例えば、カレントデータテーブル「青森県」の親レコード「青森県」を取得する。
また、特定部9は、カレントデータテーブルの全ての子レコードを取得し、当該子レコードに基づいて選択用画面を生成してディスプレイ4に表示する(SA2)。例えば、カレントデータテーブル「青森県」の子レコード「青森市」と子レコード「むつ市」を取得して、これら子レコードから検索用テキストデータである「青森市」と「むつ市」をそれぞれ取得し、当該取得した検索用テキストデータ「青森市」と「むつ市」をリスト形式で含んだ選択用画面を生成してディスプレイ4に表示する。また、選択用画面には、地名の検索の終了を指示するためのボタンを表示する。
次いで、特定部9は、ユーザにより、検索したい地名が選択されたか否かを判定する(SA3)。そして、検索したい地名が選択された場合には(SA3、Yes)、SA4に移行する。例えば、検索したい地名が「青森県むつ市」である場合、ユーザは、ディスプレイ4に表示された検索用テキストデータ「むつ市」を、タッチパネル3を介して選択する。この場合には、検索したい地名が選択されたと判定される。
検索したい地名が選択されたと判定した場合(SA3、Yes)、特定部9は、ユーザによって選択された検索用テキストデータに対応する子レコードから、当該子レコードの識別コードを取得する(SA4)。例えば、検索用テキストデータ「むつ市」が選択された場合には、当該検索用テキストデータ「むつ市」に対応する子レコード「むつ市」から、当該子レコード「むつ市」の識別コードを取得する。
次いで、特定部9は、カレントデータテーブルのデータサイズをオフセット値に加算する(SA5)。2回目及びそれ以降のSA5の処理においては、データサイズは、その時点のカレント子レコードの次段サイズから取得する。例えば、カレントデータテーブル「青森県」のデータサイズ=2000Byteを、その時点のカレント子レコード「青森県」から取得してオフセット値に加算し、オフセット値=30950+2000=32950Byteとする。
その後、特定部9は、目的の子レコード(つまり、SA3でユーザによって選択された検索用テキストデータに対応する子レコード)に辿り付くまで、SA6〜SA10のループ処理を繰り返す。具体的には、特定部9は、カレントデータテーブルの子レコードの中から、収納順序の上位順に一つの子レコードを取得し、当該取得した子レコードをカレント子レコードに設定する(SA7)。例えば、最初に、カレントデータテーブル「青森県」の子レコード「青森市」を取得する。
そして、当該取得したカレント子レコードが目的の子レコードであるか否かを判定する(SA8)。例えば、SA4で取得した子レコード「むつ市」の識別コードが、SA7で設定したカレント子レコード「青森市」の識別コードに一致するか否かを判定する。この例の場合には、一致しないことから、カレント子レコードが目的の子レコードではないと判定する。
カレント子レコードが目的の子レコードではないと判定した場合(SA8、No)、特定部9は、カレント子レコードの配下サイズをオフセット値に加算する(SA9)。例えば、SA4で取得した子レコード「むつ市」の識別コードが、SA7で設定したカレント子レコード「青森市」の識別コードに一致しないために、目的の子レコードではないと判定した場合には、カレント子レコード「青森市」の配下サイズ=1500Byteを加算して、オフセット値=32950+1500=34450Byteとする。
一方、カレント子レコードが目的の子レコードであると判定した場合(SA8、Yes)、特定部9は、SA6〜SA10のループ処理を抜けて、その時点におけるオフセット値の位置へ、カレントデータテーブルの位置を移動する(SA11)。例えば、上述のように、カレント子レコード「青森市」が目的の子レコードではないと判定した場合、次のループ処理において、SA4で取得した子レコード「むつ市」の識別コードが、カレントデータテーブル「root」の子レコードの中で、収納順序が二番目であるカレント子レコード「むつ市」の識別コードに一致するために、目的の子レコードであると判定した場合には、検索データファイル13に格納されている最上位階層のデータテーブルの先頭位置から、その時点におけるオフセット値=34450Byteの位置を先頭位置とするデータテーブル「むつ市」を、カレントデータテーブルとする。
次いで、特定部9は、カレントデータテーブルの親レコードを取得する(SA1)。例えば、カレントデータテーブル「むつ市」の親レコード「むつ市」を取得する。
次いで、特定部9は、カレントデータテーブルの全ての子レコードを取得し、当該子レコードに基づいて選択用画面を生成してディスプレイ4に表示する(SA2)。例えば、カレントデータテーブル「むつ市」の子レコード「旭町」、子レコード「大曲」、及び子レコード「大湊」等を取得して、これら子レコードから検索用テキストデータである「旭町」、「大曲」、及び「大湊」等をそれぞれ取得し、当該取得した検索用テキストデータ「旭町」、「大曲」、及び「大湊」等をリスト形式で含んだ選択用画面を生成してディスプレイ4に表示する。また、選択用画面には、地名の検索の終了を指示するためのボタンを表示する。
次いで、特定部9は、ユーザにより、検索したい地名が選択されたかを判定する(SA3)。例えば、検索したい地名が「青森県むつ市」である場合、ユーザは、ディスプレイ4に、「むつ市」に属する「旭町」、「大曲」、及び「大湊」等が既に表示されていることから、それ以上の検索を行う必要はないと判断し、地名の検索の終了を指示するためのボタンを選択する。この場合には、検索したい地名が選択されなかった(検索の終了が指示された)と判定される。このように選択が行われると、特定処理を終了する。
このように特定処理が終了した時点において設定されているオフセット値により、検索データの最上位階層のデータテーブルの先頭位置から参照対象のデータテーブルの先頭位置までの相対的な位置が特定されるので、制御部7は、この参照対象のデータテーブルの親レコードや子レコードを取得して、所定の処理に利用することが可能になる。例えば、最上位階層のデータテーブル「root」の先頭位置から、オフセット値=34450Byteの位置のデータテーブルを取得することで、データテーブル「むつ市」を取得することができる。このため、検索データの検索を効率よく行うことが可能になる。
(処理−更新処理)
次に、更新処理について説明する。図5は、更新処理のフローチャートである。この更新処理は、更新情報(更新対象となるデータレコードの内容、更新の種類(追加、書き換え、又は削除)、及び更新対象となるデータレコードの位置を含む情報)が指定された場合に起動される。例えば、ナビゲーションシステム1のユーザが公知の通信手段を介して検索データの更新操作をタッチパネル3を介して行った場合、図示しないセンター装置から更新情報が送信され、この更新情報に基づいて更新を行うために更新処理が起動される。以下の説明では、データテーブル「むつ市」における子データレコード「大曲」の次の位置に、子データレコード「大湊」を追加する場合を、具体例に交えて説明する。
最初に、更新部10は、更新情報に基づいてデータレコードを更新する(SB1)。すなわち、更新対象となるデータレコードを、更新対象となるデータレコードの位置において、更新の種類に応じて追加、書き換え、又は削除する。
次いで、更新部10は、追加や書き換えが行われたデータレコードに対して、配下のデータテーブルが存在する場合には、配下のデータテーブルを参照して、次段サイズと配下サイズを算定して当該更新対象となるデータレコードに記録する(SB2)。
次いで、更新部10は、当該更新されたデータレコードが属するデータテーブルのデータサイズを更新する(SB3)。つまり、データレコードが追加された場合には、当該データレコードのサイズを当該データテーブルのデータサイズに加算し、データレコードが書き換えられた場合には、当該データレコードの書き換えによるサイズの増減に応じて、当該データテーブルのデータサイズを増減させ、データレコードが削除された場合には、当該データレコードのサイズを当該データテーブルのサイズから減算する(以下、次段サイズと配下サイズの更新も同様)。例えば、子データレコード「大湊」のサイズ=300Byteであり、データテーブル「むつ市」のデータサイズ=1000Byteである場合、当該データテーブル「むつ市」のデータサイズ=1000+300=1300Byteに更新する。
次いで、更新部10は、当該更新されたデータレコードが属するデータテーブルと同一系統に属するデータテーブルであって、当該データテーブルより上位階層の全てのデータテーブルの子データレコードの次段サイズと配下サイズを更新する(SB4)。例えば、子データレコード「大湊」のサイズ=300Byteであり、データテーブル「青森県」の子データレコード「むつ市」の次段サイズと配下サイズ=1000Byteである場合、子データレコード「むつ市」の次段サイズ=1000+300=1300Byteに更新し、子データレコード「むつ市」の配下サイズ=1000+300=1300Byteに更新する。また、データテーブル「root」の子データレコード「青森県」の次段サイズ=2000Byteで配下サイズ=4500Byteである場合、子データレコード「青森県」の次段サイズ=2000+300=2300Byteに更新し、子データレコード「青森県」の配下サイズ=4500+300=4800Byteに更新する。これにて更新処理を終了する。
この更新処理の終了後、必要に応じて、上述した特定処理を行うことで、更新されたデータテーブルのデータサイズ、次段サイズ、及び配下サイズに基づいて、参照対象のデータテーブルの位置を正しく特定することが可能になる。
(効果)
このように実施の形態1によれば、同一のファイルの内部に格納されたデータであって、少なくとも一つのデータレコードを含む複数のデータテーブルを階層構造化して構成されたデータを用いて、ファイルにおける最上位階層のデータテーブルの先頭位置から特定対象のデータテーブルの先頭位置までの相対的な位置を特定することができるので、データを構成するファイルの数を一つに抑制することができると共に、データの検索を容易に行うことが可能になる。
また、複数のデータレコードの一部のデータレコードが更新された場合、上位階層の全てのデータテーブルの次段サイズと配下サイズとを更新することで、データの更新が完了するので、データの更新を容易に行うことが可能になる。
〔実施の形態2〕
次に、実施の形態2について説明する。この実施の形態2は、データ処理の対象になるデータとは別に、データ処理の対象になるデータの位置を特定するためのインデックスデータを設け、このインデックスデータに基づいて、データ処理の対象になるデータの位置を特定する形態である。ただし、実施の形態2の構成と処理の中で、実施の形態1の構成と処理と同じ部分については、必要に応じて実施の形態1で使用したものと同じ符号を付し、その説明を省略する。
(構成)
まず、実施の形態2に係るデータ処理装置としてのナビゲーション装置を用いたナビゲーションシステムの構成を説明する。図6は、実施の形態2に係るナビゲーションシステムを例示するブロック図である。図6に示すように、ナビゲーションシステム20は、現在位置取得部2、タッチパネル3、ディスプレイ4、スピーカ5、及びデータ処理装置としてのナビゲーション装置21を備えている。ナビゲーション装置21は、制御部22とデータ記録部25を備えている。
(構成−データ処理装置−制御部)
制御部22は、ナビゲーション装置21を制御する制御手段である。この制御部22は、機能概念的に、特定部23と更新部24を備える。特定部23は、後述する検索情報DB26にて格納された複数のデータテーブルの中から、参照対象のデータテーブルの先頭位置を特定する特定手段である。更新部24は、複数の実データレコードの一部の実データレコードが更新された場合、当該更新された実データレコードに対応するインデックステーブルの実サイズと、当該インデックステーブルと同一系統に属するインデックステーブルであって、当該インデックステーブルより上位階層の全てのインデックステーブルの実サイズとを、当該更新された実データレコードのデータサイズに基づいて更新する更新手段である。これらの制御部22の各部によって実行される処理の詳細や、実データレコード、インデックステーブル、実サイズの詳細については、後述する。
(構成−データ処理装置−データ記録部)
データ記録部25は、地図情報DB11と検索情報DB26を格納する。検索情報DB26は、検索データを格納するデータ格納手段である。実施の形態2における「検索データ」とは、施設を検索するためのデータであって、実データとインデックスデータを含んで構成されている。より具体的には、検索情報DB26において、実データは実データファイル27に格納され、インデックスデータはインデックスデータファイル28に格納されている。
「実データ」とは、データ処理の対象になるデータであり、例えば、施設の名称を含んで構成されている。この実データは、文字データを含む複数の実データレコードを当該文字データにおける文字位置及び文字語順に基づいた整列順序で整列して構成されている。図7は、実データの階層構造を示す図である。この図7に示すように、実データは、第1階層の実データテーブルを含んで構成されている。各第1階層の実データテーブルは、実データに含まれる施設の名称であってひらがなで表記された名称における第1文字目に対応する実データテーブルであり、これら複数の第1階層の実データテーブルは五十音順に整列されている。例えば、実データは、第1階層の実データテーブルとして、実データテーブル「あ」、実データテーブル「い」、及び実データテーブル「う」を含んでおり、これらの第1階層の実データテーブルは、「あ」「い」「う」の五十音順に整列されている。
また、各第1階層の実データテーブルは、第2階層の実データテーブルを含んで構成されている。各第2階層の実データテーブルは、実データに含まれる施設の名称であってひらがなで表記された名称における第2文字目に対応する実データテーブルであり、これら複数の第2階層の実データテーブルは、五十音順に整列されている。例えば、実データは、第1階層の実データテーブル「い」の第2階層の実データテーブルとして、実データテーブル「あ」、実データテーブル「い」、実データテーブル「う」、実データテーブル「え」、及び実データテーブル「お」を含んでおり、これらの第2階層の実データテーブルは、「あ」「い」「う」「え」「お」の五十音順に整列されている。
また、各第2階層の実データテーブルは、実データレコードを含んで構成されている。各実データレコードは、実データに含まれる施設の名称であってひらがなで表記された名称に対応する実データテーブルであり、これら複数の実データレコードは、五十音順に整列されている。例えば、実データは、第1階層の実データテーブル「い」の第2階層の実データテーブル「あ」の実データレコードとして、実データレコード「いあ」及び実データレコード「いあつ」を含んでおり、これらの実データレコードは、「いあ」、「いあつ」の五十音順に整列されている。
このように階層構造化された複数の実データテーブルは、インデックスデータファイル28とは異なる一つの実データファイル27に格納されている。図8は、実データファイル27における実データの格納順序を示す図である。この図8に示すように、実データファイル27には、その先頭位置に第1階層の実データテーブル「あ」が格納されている。より具体的には、この第1階層の実データテーブル「あ」の下位の第2階層の実データテーブル「あ」に含まれる実データレコード「あ」と実データレコード「ああ」が順次格納され、次いで、第1階層の実データテーブル「あ」の下位の第2階層の実データテーブル「い」に含まれる実データレコード「あい」と実データレコード「あいかわ」が順次格納され、以下同様に、第1階層の実データテーブル「あ」の下位の第2階層の実データテーブル「う」に含まれる実データレコード等が格納される。そして、第1階層の実データテーブル「あ」の次の位置に、第2階層の実データテーブル「い」と、第1階層の実データテーブル「う」が、第1階層の実データテーブル「あ」の格納と同じ規則により、順次格納される。
また、図6のインデックスデータファイル28は、インデックスデータを格納するファイルである。「インデックスデータ」とは、実データの位置を特定するためのデータである。
特に、実施の形態2におけるインデックスデータは、実施の形態1の検索データと同様の構造で構成されている。すなわち、インデックスデータは、少なくとも一つのデータレコードを含む複数のデータテーブルを階層構造化して構成されている。図9は、インデックスデータの階層構造を示す図である。この図9に示すように、インデックスデータは、一つの最上位階層(第1階層)のデータテーブルDT10と、このデータテーブルDT10に対して一つだけ下位階層(第2階層)に位置付けられたデータテーブルDT11、DT12とを含んでいる。これらデータテーブルDT10〜DT12は、インデックスデータが示す実データの階層に対応した階層で構造化されたものであって、インデックスデータが示す実データの階層に対応したデータを含むものである。すなわち、第1階層のデータテーブルDT10は、施設の名称のひらがな表記の第1文字目に対応した階層のデータであり、第2階層のデータテーブルDT11、DT12は、施設のひらがな表記の第2文字目に対応した階層のデータである(以下、データテーブルの符号DT10〜DT12を省略する)。
各データテーブルのデータレコードは、具体的には、一つの親レコードと、一つ以上の子レコードとを含んで構成されている。例えば、第1階層のデータテーブルは、親レコード「root」と、子レコード「あ」、子レコード「い」、及び子レコード「う」を含む。また、第2階層のデータテーブル「い」は、親レコード「い」と、子レコード「あ」、子レコード「い」、子レコード「う」、子レコード「え」、及び子レコード「お」を含む。なお、実際には、第1階層のデータテーブルは、第2階層のデータテーブル「あ」を含んでいるが、以下の説明では、第2階層のデータテーブル「あ」を省略する。
各データテーブルの親レコードは、当該親レコードが属するデータテーブルの参照用データを含むレコードである。「参照用データ」とは、各データテーブルや各データレコードを参照するために使用されるデータであり、例えば、当該親レコードと同じデータテーブルに含まれる子レコードのレコード数を含んでおり、この子レコードのレコード数を用いて、後述する各処理において子レコードを取得する際における当該子レコードの読み込み終了位置を管理している。
各データテーブルの子レコードは、検索用テキストデータ、識別コード、次段サイズ、配下サイズ、及び実サイズを含む。「検索用テキストデータ」とは、施設を検索するためにディスプレイ4等に表示されるテキストデータであり、例えば、データテーブル「root」の子レコード「あ」は、検索用テキストデータ「あ」を含む。「識別コード」、「次段サイズ」、及び「配下サイズ」は、実施の形態1と同じである。「実サイズ」とは、各子レコードに対応する実データ(各子レコードによって位置が特定される実データ)のサイズである。すなわち、第1階層のデータテーブルの各子レコードは、図7の実データの第1階層の実データテーブルに対応しており、第2階層のデータテーブルの各子レコードは、図7の実データの第2階層の実データテーブルに対応している。具体的には、第1階層のデータテーブル「root」の各子レコード「あ」は、実データの第1階層の実データテーブル「あ」、第1階層のデータテーブル「root」の各子レコード「い」は、実データの第1階層の実データテーブル「い」、第1階層のデータテーブル「root」の各子レコード「う」は、実データの第1階層の実データテーブル「う」に対応している。また、第2階層のデータテーブル「root」の各子レコード「あ」は、実データの第1階層の実データテーブル「あ」、第1階層のデータテーブル「い」の各子レコード「あ」〜「お」は、実データの第1階層の実データテーブル「い」の第2階層の実データテーブル「あ」〜「お」に対応している。そして、例えば、第1階層のデータテーブル「root」の各子レコード「あ」は、実サイズとして、実データの第1階層の実データテーブル「あ」のデータサイズである100KByteを含んでいる。
このように階層構造化されたインデックスデータは、実データの実データファイル27とは異なる一つのインデックスデータファイル28に格納されている。図10は、インデックスデータファイル28におけるインデックスデータの格納順序を示す図である。この図10に示すように、インデックスデータファイル28には、複数のデータテーブルが、最上位階層のデータテーブルを先頭として、同一系統のデータテーブルを上位階層から下位階層に至る順に格納されている。より具体的には、検索データファイルの先頭位置には、最上位階層のデータテーブル「root」が格納されている。また、検索データファイルの次の位置には、同一系統の第2階層のデータテーブル「い」が格納されている。また、次の位置には、同一系統の第2階層のデータテーブル「う」が格納されている。
なお、図9、10には検索データの一部のみを例示しており、実際の検索データには、例えば、第1階層のデータテーブルとして、「え」及びそれ以降の各ひらがなに対応する第1階層のデータテーブルや、これら第1階層のデータテーブルに含まれる第2階層のデータテーブルとして、「か」及びそれ以降の各ひらがなに対応する第2階層のデータテーブルが含まれる。このように構成される検索データは、地図作成業者等によって構成されデータ記録部25に格納される。
(処理)
次に、このように構成されるナビゲーション装置21によって実行されるデータ処理について説明する。この処理は、参照対象となるデータレコードを特定するための特定処理と、データレコードを更新するための更新処理に大別される。
(処理−特定処理)
最初に、特定処理について説明する。図11、12は、特定処理のフローチャートである。以下の説明では、ユーザが検索したい施設の名称のひらがな表記が「いう」で始まる名称である場合を、具体例に交えて説明する。
この処理において、特定部23は、現在参照しているデータテーブル(以下、カレントデータテーブル)の親レコードを取得する(SC1)。最初のカレントデータテーブルは、検索データファイルに格納されている最上位階層のデータテーブルとする。例えば、カレントデータテーブル「root」の親レコード「あ」を取得する。
次いで、特定部23は、カレントデータテーブルの全ての子レコードを取得し、当該子レコードに基づいて選択用画面を生成してディスプレイ4に表示する(SC2)。例えば、カレントデータテーブル「root」の子レコード「あ」と、子レコード「い」、及び子レコード「う」を取得して、これら子レコードから検索用テキストデータである「あ」、「い」、及び「う」をそれぞれ取得し、当該取得した検索用テキストデータ「あ」、「い」、及び「う」をリスト形式で含んだ選択用画面を生成してディスプレイ4に表示する。
次いで、特定部23は、ユーザにより、検索したい施設の名称のひらがな表記のN文字目が選択されたかを判定する(SC3)。ここで、「N」は、SC3が実行された回数に対応する正の整数であり、SC3が最初に実行された場合にはN=1、SC3が2回目に実行された場合にはN=2となる。そして、検索したい施設の名称のひらがな表記のN文字目が選択された場合には(SC3、Yes)、SC4に移行する。例えば、検索したい施設の名称がひらがな表記が「いう」で始まる名称である場合、ユーザは、ディスプレイ4に表示された検索用テキストデータ「い」を、タッチパネル3を介して選択する。この場合には、検索したい施設の名称のひらがな表記のN文字目が選択されたと判定される。
検索したい施設の名称のひらがな表記のN文字目が選択されたと判定した場合(SC3、Yes)、特定部23は、ユーザによって選択された検索用テキストデータに対応する子レコードから、当該子レコードの識別コードを取得する(SC4)。例えば、検索用テキストデータ「い」が選択された場合には、当該検索用テキストデータ「い」に対応する子レコード「い」から、当該子レコード「い」の識別コードを取得する。
次いで、特定部23は、カレントデータテーブルのデータサイズをインデックス用オフセット値に加算する(SC5)。インデックス用オフセット値とは、ユーザが検索したい施設の名称に対応するデータテーブルの位置を特定するための情報であり、具体的には、インデックスデータファイル28に格納されている最上位階層のデータテーブルの先頭位置を基準とする、ユーザが検索したい施設の名称に対応するデータテーブルの先頭位置までの、相対的な位置である。なお、インデックス用オフセット値の初期値は0とする。また、最上位階層のデータテーブルのデータサイズは、最上位階層のデータテーブルの親レコードから取得する。例えば、データテーブル「root」の親レコード「root」に含まれているデータサイズ=600Byteをオフセット値に加算し、オフセット値=0+600=600Byteとする。
次いで、特定部23は、目的の子レコード(つまり、SC3でユーザによって選択された検索用テキストデータに対応する子レコード)に辿り付くまで、SC6〜SC11を繰り返す。具体的には、特定部23は、カレントデータテーブルの子レコードの中から、収納順序の上位順に一つの子レコードを取得し、当該取得した子レコードをカレント子レコードに設定する(SC7)。例えば、最初に、カレントデータテーブル「root」の子レコード「あ」をカレント子レコードに設定する。
そして、当該設定したカレント子レコードが目的の子レコードであるか否かを判定する(SC8)。この判定は、SC4で取得した識別コードが、SC7で取得したカレント子レコードに含まれる識別コードに一致するか否かに基づいて行われる。例えば、SC4で取得した子レコード「い」の識別コードが、SC7で設定したカレント子レコード「あ」の識別コードに一致するか否かを判定する。この例の場合には、一致しないことから、カレント子レコードが目的の子レコードではないと判定する。
カレント子レコードが目的の子レコードではないと判定した場合(SC8、No)、特定部23は、カレント子レコードの配下サイズをインデックス用オフセット値に加算する(SC9)。例えば、SC4で取得した子レコード「い」の識別コードが、SC7で設定したカレント子レコード「あ」の識別コードに一致しないために、目的の子レコードではないと判定した場合には、カレント子レコード「あ」の配下サイズ=0Byteを加算して、オフセット値=600+0=600Byteとする。
また、特定部23は、当該カレント子レコードの実サイズを、実データ取得用オフセット値に加算する(SC10)。ここで「実データ取得用オフセット値」とは、ユーザが検索したい施設の名称のひらがな表記に対応する実データテーブルの位置を特定するための情報であり、具体的には、実データファイル27に格納されている最上位階層の実データテーブルの先頭位置を基準とする、ユーザが検索したい施設の名称のひらがな表記に対応する実データテーブルの先頭位置までの、相対的な位置である。この実データ取得用オフセット値の初期値は0とする。例えば、カレント子レコード「あ」の実サイズ=100KByteを実データ取得用オフセット値に加算し、実データ取得用オフセット値=0+100K=100KByteとする。
一方、カレント子レコードが目的の子レコードであると判定した場合(SC8、Yes)、特定部23は、SC6〜SC11のループを抜けて、その時点におけるオフセット値の位置へ、カレントデータテーブルの位置を移動する(SC12)。例えば、上述のように、カレント子レコード「あ」が目的の子レコードではないと判定した場合、次のループ処理において、SC4で取得した子レコード「い」の識別コードが、カレントデータテーブル「root」の子レコードの中で、収納順序が二番目であるカレント子レコード「い」の識別コードに一致するために、目的の子レコードであると判定した場合には、検索データファイルに格納されている最上位階層のデータテーブルの先頭位置から、その時点におけるインデックス用オフセット値=600Byteの位置を先頭位置とするデータテーブル「い」を、カレントデータテーブルとする。
次いで、SC1に戻り、特定部23は、カレントデータテーブルの親レコードを取得する(SC1)。例えば、カレントデータテーブル「い」の親レコード「い」を取得する。
また、特定部23は、カレントデータテーブルの全ての子レコードを取得し、当該子レコードに基づいて選択用画面を生成してディスプレイ4に表示する(SC2)。例えば、カレントデータテーブル「い」の子レコード「あ」、子レコード「い」、子レコード「う」、子レコード「え」、及び子レコード「お」を取得して、これら子レコードから検索用テキストデータである「あ」、「い」、「う」、「え」、「お」をそれぞれ取得し、当該取得した検索用テキストデータ「あ」、「い」、「う」、「え」、「お」をリスト形式で含んだ選択用画面を生成してディスプレイ4に表示する。
次いで、特定部23は、ユーザにより、検索したい施設の名称のひらがな表記のN文字目が選択されたかを判定する(SC3)。そして、検索したい施設の名称のひらがな表記のN文字目が選択された場合には(SC3、Yes)、SC4に移行する。例えば、検索したい施設の名称がひらがな表記が「いう」で始まる名称である場合、ユーザは、ディスプレイ4に表示された検索用テキストデータ「う」を、タッチパネル3を介して選択する。この場合には、検索したい施設の名称のひらがな表記のN文字目が選択されたと判定される。
検索したい施設の名称のひらがな表記のN文字目が選択されたと判定した場合(SC3、Yes)、特定部23は、ユーザによって選択された検索用テキストデータに対応する子レコードから、当該子レコードの識別コードを取得する(SC4)。例えば、検索用テキストデータ「う」が選択された場合には、当該検索用テキストデータ「う」に対応する子レコード「う」から、当該子レコード「う」の識別コードを取得する。
次いで、特定部23は、カレントデータテーブルのデータサイズをインデックス用オフセット値に加算する(SC5)。2回目及びそれ以降のSC5の処理においては、データサイズは、その時点のカレント子レコードの次段サイズから取得する。例えば、カレントデータテーブル「い」のデータサイズ=650Byteを、その時点のカレント子レコード「い」から取得してインデックス用オフセット値に加算し、インデックス用オフセット値=600+650=1250Byteとする。
その後、特定部23は、目的の子レコード(つまり、SC3でユーザによって選択された検索用テキストデータに対応する子レコード)に辿り付くまで、SC6〜SC11のループ処理を繰り返す。具体的には、特定部23は、カレントデータテーブルの子レコードの中から、収納順序の上位順に一つの子レコードを取得し、当該取得した子レコードをカレント子レコードに設定する(SC7)。例えば、最初に、カレントデータテーブル「い」の子レコード「あ」を取得する。
そして、当該取得したカレント子レコードが目的の子レコードであるか否かを判定する(SC8)。例えば、SC4で取得した子レコード「う」の識別コードが、SC7で設定したカレント子レコード「い」の識別コードに一致するか否かを判定する。この例の場合には、一致しないことから、カレント子レコードが目的の子レコードではないと判定する。
カレント子レコードが目的の子レコードではないと判定した場合(SC8、No)、特定部23は、カレント子レコードの配下サイズをインデックス用オフセット値に加算する(SC9)。例えば、SC4で取得した子レコード「う」の識別コードが、SC7で設定したカレント子レコード「い」の識別コードに一致しないために、目的の子レコードではないと判定した場合には、カレント子レコード「い」の配下サイズ=0Byteを加算して、オフセット値=1250+0=1250Byteとする。
また、特定部23は、当該カレント子レコードの実サイズを、実データ取得用オフセット値に加算する(SC10)。例えば、カレント子レコード「あ」の実サイズ=20KByteを実データ取得用オフセット値に加算し、実データ取得用のオフセット値=100+20K=100KByteとする。
一方、カレント子レコードが目的の子レコードであると判定した場合(SC8、Yes)、特定部23は、SC6〜SC11のループ処理を抜けて、その時点におけるインデックス用オフセット値の位置へ、カレントデータテーブルの位置を移動する(SC12)。例えば、上述のように、カレント子レコード「い」が目的の子レコードではないと判定した場合、次のループ処理において、SC4で取得した子レコード「う」の識別コードが、SC7で設定したカレント子レコード「う」の識別コードに一致するために、目的の子レコードであると判定した場合には、検索データファイルに格納されている最上位階層のデータテーブルの先頭位置から、その時点におけるインデックス用オフセット値=1250Byteの位置を先頭位置とするデータテーブル「う」を、カレントデータテーブルとする。
次いで、特定部23は、カレントデータテーブルの親レコードを取得する(SC1)。例えば、カレントデータテーブル「う」の親レコード「う」を取得する。
次いで、特定部23は、カレントデータテーブルの全ての子レコードを取得し、当該子レコードに基づいて選択用画面を生成してディスプレイ4に表示する(SC2)。例えば、カレントデータテーブル「う」の子レコードを取得して、これら子レコードから検索用テキストデータをそれぞれ取得し、当該取得した検索用テキストデータをリスト形式で含んだ選択用画面を生成してディスプレイ4に表示する。ここで、カレントデータテーブル「う」の子レコードは存在しないために、特定部23は、施設の検索が終了したものと判定する(SC3、No)。
そして、この時点において設定されている実データ取得用オフセット値に基づいて、参照対象のデータテーブルの位置を決定する(SC13)。すなわち、この時点において設定されている実データ取得用オフセット値により、例えば、実データの最初のデータテーブルの先頭位置から参照対象のデータテーブルの先頭位置までの相対的な位置が特定されるので、制御部22は、この参照対象のデータテーブルの親レコードや子レコードを取得して、所定の処理に利用することが可能になる。例えば、実データの最初のデータテーブル「あ」の先頭位置から、実データ取得用オフセット値=150KByteの位置のデータテーブルを取得することで、実データテーブル「いう」を取得することができ、このデータテーブル「いう」の親レコードや子レコードに基づいて「いう」にて始まる名称の施設をディスプレイ4に表示等することができる。これにて特定処理を終了する。
(処理−更新処理)
次に、更新処理について説明する。図13は、更新処理のフローチャートである。以下の説明では、実データテーブル「い」−実データテーブル「い」における子データレコード「いいかわ」の次の位置に子データレコード「いう」を追加する場合を、具体例に交えて説明する。
最初に、更新部24は、更新情報に基づいて実データレコードを更新する(SD1)。すなわち、更新対象となる実データレコードを、更新対象となる実データレコードの位置において、更新の種類に応じて追加、書き換え、又は削除する。
次いで、更新部24は、当該更新された実データレコードに対応するインデックスレコードの実サイズを更新する(SD2)。つまり、実データレコードが追加された場合には、当該実データレコードに対応するインデックスレコードの実サイズに当該更新された実データレコードのデータサイズを加算し、実データレコードが書き換えられた場合には、当該実データレコードの書き換えによるサイズの増減に応じて、当該実データレコードに対応するインデックスレコードの実サイズを増減させ、実データレコードが削除された場合には、当該実データレコードのサイズを当該実データレコードに対応するインデックスレコードの実サイズから減算する。例えば、子データレコード「いう」のサイズ=15KByteであり、インデックスデータテーブル「う」の子レコード「う」の実サイズ=15KByteである場合、当該子レコード「う」の実サイズ=15K+15K=30KByteに更新する。
次いで、更新部24は、当該更新されたインデックスデータレコードが属するデータテーブルと同一系統に属するデータテーブルであって、当該データテーブルより上位階層の全てのデータテーブルの子データレコードの実サイズを更新する(SD3)。例えば、子データレコード「いう」のサイズ=15KByteであり、インデックスデータテーブル「あ」の子レコード「い」の実サイズ=105KByteである場合、当該子レコード「い」の実サイズ=15K+105K=120KByteに更新する。これにて更新処理を終了する。この更新処理の終了後、必要に応じて上記特定処理を行うことで、更新されたデータテーブルの実サイズに基づいて、参照対象のデータテーブルの位置を正しく特定することが可能になる。
(効果)
このように実施の形態2によれば、データ格納手段は、データ処理の対象になる実データと、データ処理の対象になる実データの位置を特定するためのインデックスデータとを格納し、実データファイル27における最初の実データの先頭位置から、参照対象となる実データの先頭位置までの相対的な位置を特定することができるので、データを構成するファイルの数を二つに抑制することができると共に、データの検索を容易に行うことが可能になる。
また、複数の実データレコードの一部の実データレコードが更新された場合、インデックステーブルの実サイズと、上位階層の全てのインデックステーブルの前記実サイズとを更新することで、データの更新が完了するので、データの更新を容易に行うことが可能になる。
〔実施の形態に対する変形例〕
以上、本発明に係る実施の形態について説明したが、本発明の具体的な構成及び手段は、特許請求の範囲に記載した各発明の技術的思想の範囲内において、任意に改変及び改良することができる。以下、このような変形例について説明する。
(解決しようとする課題や発明の効果について)
まず、発明が解決しようとする課題や発明の効果は、上述の内容に限定されるものではなく、発明の実施環境や構成の細部に応じて異なる可能性があり、上述した課題の一部のみを解決したり、上述した効果の一部のみを奏することがある。例えば、データの検索や更新に関する所定の判定を従来より正確にできない場合であっても、データの検索や更新を従来とは異なる技術により達成できている場合には、本願発明の課題が解決されている。
(分散や統合について)
また、上述した各電気的構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散や統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散や統合して構成できる。例えば、データ処理装置の各構成要素を、複数の装置に分散して構成したり、センター装置に組み込んでも良い。
(データの種類や内容について)
上記各実施の形態では、検索データとして、地名や施設名称を検索するデータを例示したが、このデータの種類や内容は任意に変更することができる。また、ナビゲーション装置に関するデータに限定されず、任意の装置における任意の目的のために使用するデータを対象とすることができる。
1、20 ナビゲーションシステム
2 現在位置取得部
3 タッチパネル
4 ディスプレイ
5 スピーカ
6、21 ナビゲーション装置
7、22 制御部
8、25 データ記録部
9、23 特定部
10、24 更新部
11 地図情報DB
12、26 検索情報DB
13 検索データファイル
27 実データファイル
28 インデックスデータファイル
DT1〜DT7、DT10〜DT12 データテーブル

Claims (6)

  1. 同一のファイルの内部に格納されたデータであって、少なくとも一つのデータレコードを含む複数のデータテーブルを階層構造化して構成されたデータを少なくとも格納するデータ格納手段と、
    前記データ格納手段にて格納された複数のデータテーブルの中から、参照対象のデータテーブルの先頭位置を特定する特定手段とを備え、
    前記データ格納手段は、前記複数のデータテーブルを、最上位階層のデータテーブルを先頭として、同一系統のデータテーブルを上位階層から下位階層に至る順に前記ファイルに格納し、
    前記複数のデータテーブルの各々は、当該データテーブルと同一系統に属するデータテーブルであって、当該データテーブルより一つだけ下位階層のデータテーブルを一意に識別するための識別情報と、当該データテーブルより一つだけ下位階層のデータテーブルのデータサイズである次段サイズと、当該データテーブルより下位階層の全てのデータテーブルのデータサイズの合計値である配下サイズとを含み、
    前記最上位階層のデータテーブルは、当該データテーブルのデータサイズを含み、
    前記特定手段は、特定対象のデータテーブルの識別情報が所定方法で指定された場合に、前記データ格納手段にて格納された前記データテーブルの前記配下サイズを、前記最上位階層のデータテーブルから、前記識別情報に基づいて識別された前記特定対象のデータテーブルより一つ前の格納位置に格納されたデータテーブルに至るまで、前記データ格納手段における前記データテーブルの格納順に加算することで、前記ファイルにおける前記最上位階層のデータテーブルの先頭位置から前記特定対象のデータテーブルの先頭位置までの相対的な位置を特定する、
    データ処理装置。
  2. 前記データ格納手段は、データ処理の対象になる実データと、データ処理の対象になる実データの位置を特定するためのインデックスデータとを格納し、
    前記実データは、文字データを含む複数の実データレコードを当該文字データにおける文字位置及び文字語順に基づいた整列順序で整列して構成されると共に、前記データ格納手段において前記ファイルとは異なる実データファイルに格納され、
    前記インデックスデータは、前記データとして構成されると共に、前記文字データの前記整列順序に応じて階層構造化され、
    前記インデックスデータの複数のデータテーブルの各々は、自己に対応する前記実データレコードのサイズである実サイズを含み、
    前記特定手段は、前記最上位階層のデータテーブルの先頭位置から前記特定対象のデータテーブルの先頭位置までの相対的な位置を特定した後、前記データ格納手段にて格納された前記データテーブルの前記実サイズを、前記最上位階層のデータテーブルから、当該特定された相対的な位置に対応する前記データテーブルより一つ前の格納位置に格納されたデータテーブルに至るまで、前記データ格納手段における前記データテーブルの格納順に加算することで、前記実データファイルにおける最初の実データの先頭位置から前記特定対象の実データの先頭位置までの相対的な位置を特定する、
    請求項1に記載のデータ処理装置。
  3. 前記複数のデータレコードの一部のデータレコードが更新された場合、当該更新されたデータレコードが属するデータテーブルと同一系統に属するデータテーブルであって、当該データテーブルより上位階層の全てのデータテーブルの前記次段サイズと前記配下サイズとを、当該更新されたデータレコードのデータサイズに基づいて更新する更新手段を備えた、
    請求項1に記載のデータ処理装置。
  4. 前記複数の実データレコードの一部の実データレコードが更新された場合、当該更新された実データレコードに対応するインデックステーブルの前記実サイズと、当該インデックステーブルと同一系統に属するインデックステーブルであって、当該インデックステーブルより上位階層の全てのインデックステーブルの前記実サイズとを、当該更新された実データレコードのデータサイズに基づいて更新する更新手段を備えた、
    請求項2に記載のデータ処理装置。
  5. 同一のファイルの内部に格納されたデータであって、少なくとも一つのデータレコードを含む複数のデータテーブルを階層構造化して構成されたデータを少なくともデータ格納手段に格納するデータ格納ステップと、
    前記データ格納ステップにて格納された複数のデータテーブルの中から、参照対象のデータテーブルの先頭位置を特定する位置特定ステップとを含み、
    前記データ格納ステップにおいては、前記複数のデータテーブルを、最上位階層のデータテーブルを先頭として、同一系統のデータテーブルを上位階層から下位階層に至る順に前記ファイルに格納し、
    前記複数のデータテーブルの各々は、当該データテーブルと同一系統に属するデータテーブルであって、当該データテーブルより一つだけ下位階層のデータテーブルを一意に識別するための識別情報と、当該データテーブルより一つだけ下位階層のデータテーブルのデータサイズである次段サイズと、当該データテーブルより下位階層の全てのデータテーブルのデータサイズの合計値である配下サイズとを含み、
    前記最上位階層のデータテーブルは、当該データテーブルのデータサイズを含み、
    前記位置特定ステップにおいては、特定対象のデータテーブルの識別情報が所定方法で指定された場合に、前記データ格納ステップにて格納された前記データテーブルの前記配下サイズを、前記最上位階層のデータテーブルから、前記識別情報に基づいて識別された前記特定対象のデータテーブルより一つ前の格納位置に格納されたデータテーブルに至るまで、前記データ格納手段における前記データテーブルの格納順に加算することで、前記ファイルにおける前記最上位階層のデータテーブルの先頭位置から前記特定対象のデータテーブルの先頭位置までの相対的な位置を特定する、
    データ処理方法。
  6. 請求項5に記載の方法をコンピュータに実行させるデータ処理プログラム。
JP2012080151A 2012-03-30 2012-03-30 データ処理装置、データ処理方法、及びデータ処理プログラム Active JP5655811B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012080151A JP5655811B2 (ja) 2012-03-30 2012-03-30 データ処理装置、データ処理方法、及びデータ処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012080151A JP5655811B2 (ja) 2012-03-30 2012-03-30 データ処理装置、データ処理方法、及びデータ処理プログラム

Publications (2)

Publication Number Publication Date
JP2013210807A JP2013210807A (ja) 2013-10-10
JP5655811B2 true JP5655811B2 (ja) 2015-01-21

Family

ID=49528589

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012080151A Active JP5655811B2 (ja) 2012-03-30 2012-03-30 データ処理装置、データ処理方法、及びデータ処理プログラム

Country Status (1)

Country Link
JP (1) JP5655811B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104408188B (zh) * 2014-12-15 2018-07-13 北京国双科技有限公司 数据处理方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3199093B2 (ja) * 1993-12-13 2001-08-13 シャープ株式会社 住所情報検索装置
JPH09138762A (ja) * 1995-11-14 1997-05-27 Nec Software Ltd トリー構造テーブルのメモリ展開方法

Also Published As

Publication number Publication date
JP2013210807A (ja) 2013-10-10

Similar Documents

Publication Publication Date Title
KR100948773B1 (ko) 경로 설정을 위한 주변 검색 방법 및 네비게이션 시스템
CN103562680B (zh) 用于比较和选择备选导航路线的设备与方法
CN100513998C (zh) 地图更新处理用数据生成方法、地图更新方法和装置
US20140244155A1 (en) Information processing apparatus, information processing method, and program
JP4951614B2 (ja) ナビゲーション装置および地図データ更新方法
JP5275349B2 (ja) 情報処理装置、情報作成装置、情報処理方法、情報作成方法、情報処理プログラム、情報作成プログラム、および記録媒体
JP2007279004A (ja) 交差点検索装置および交差点検索方法
CN105556510B (zh) 地图信息处理装置、数据生成方法
JP5655811B2 (ja) データ処理装置、データ処理方法、及びデータ処理プログラム
JP6000136B2 (ja) 文字入力装置および文字入力方法
JP5103550B2 (ja) 地図データ管理装置、ユーザ端末装置、地図データ管理方法、地図データ更新方法、地図データ管理プログラム、地図データ更新プログラム、および記録媒体
Lončar et al. Mobile application for finding ATMs
JP6105340B2 (ja) 表示制御装置及びその方法、並びに表示制御するためのコンピュータプログラム及びコンピュータプログラムを記録した記録媒体
JP6385442B2 (ja) 地図情報処理システム及び地図情報処理方法
JP5765726B2 (ja) 住所入力装置、それを用いたナビゲーション装置、及び前記住所入力装置に用いられるデータベース
JP6275450B2 (ja) ナビゲーション装置
JP5261439B2 (ja) データ更新システム、ナビゲーション装置、及びデータ更新方法
JP5708547B2 (ja) 登録地点関連情報案内装置、登録地点関連情報案内方法、及び登録地点関連情報案内プログラム
JP2007257208A (ja) 施設検索装置、施設検索方法及び施設検索用プログラム
JP2007265226A (ja) 検索装置、検索方法、検索プログラム、ナビゲーション装置、方法及びプログラム
JP7260989B2 (ja) 地図情報提供装置、方法およびプログラム
Maiellaro et al. The Albanian cultural heritage on the Internet
JP5881842B2 (ja) 地図データ記憶装置、地図表示装置
JP2012189780A (ja) 地図表示システム、地図表示装置、地図表示方法及びコンピュータプログラム
JP2007328231A (ja) 対象物内容表示情報のデータ構造、地図情報のデータ構造、地図情報を記録した記録媒体、表示制御装置、その方法、そのプログラム、および、そのプログラムを記録した記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140924

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141028

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141110

R150 Certificate of patent or registration of utility model

Ref document number: 5655811

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150