説明

案内構造情報修整装置および案内構造情報修整方法

【課題】 経路などの案内情報を提示する装置に関し,出張,保守,観光,旅行などのスケジュールをより正確に記述できるとともに,実際の状況に対応した案内をすることができるようにする。
【解決手段】 操作入力部11は案内用スクリプトを選択し,スクリプト変換部14は当該案内用スクリプトを案内用の構造化データに変換する。インストラクション実行部15は案内用の構造化データに基づいてデータベース部20を参照して経路概要を表示後,状況獲得部16から利用者の現在地点・時刻を取得し,インストラクション処理をする。制約調整部18は,案内用の構造化データの指定到着時刻と指定出発時刻の差分を求め,差分が指定滞在時間と一致するか否かを判定し,不一致と認めた場合は案内用の構造化データの制約情報の内容に応じて指定到達時刻,指定滞在時間,指定出発時刻のいずれかを調整する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,マークアップ言語の記述を用いて道案内サービス,乗り換え案内サービスなどの案内に関する情報を提供する案内構造情報修整装置およびその方法に関し,特に,カーナビゲーションシステム,パーソナルコンピュータ(PC),PDA(Personal Digital Assistant)やPDC(Personal Digital Cellular;携帯電話,PHSなど)等に適用するものである。
【背景技術】
【0002】
従来,道案内サービス,乗り換え案内サービスなどでは,案内してほしい場所を指定すると,その場所に関するデータを羅列して提示するものが多く,その内容は,その場所に関する情報(地点,経路,施設等)だけであった。また,ある特定の時間に情報を送信する技術があるが,情報そのものに,その情報の提示等の条件を付けて,その条件に応じて処理するシステムはなかった。
【発明の概要】
【発明が解決しようとする課題】
【0003】
そこで,本発明者等は,特願平11−113191号「案内情報提示装置,案内情報提示処理方法,案内情報提示プログラムを記録した記録媒体,案内用スクリプトの記録媒体,案内用スクリプト生成装置,案内用スクリプトを用いた運行管理装置,方法およびそのプログラム記録媒体,案内用スクリプトを用いた移動時の時間調整装置,方法およびそのプログラム記録媒体,案内プラン作成装置,方法およびそのプログラム記録媒体,案内情報提供装置,方法およびそのプログラム記録媒体」において,時間情報または/および場所情報と,提示すべき時間または/および場所に応じて出力すべき案内情報とを含むインストラクションの系列を記述することができる案内用スクリプトと,それを解釈し実行するシステムを提案した。
【0004】
これにより,地点,経路,施設等の情報だけなく,ある場所までの経路に沿った実際的な案内あるいは仮想的な案内を行え,さらには場所の移動だけではなく,時間の経過に伴った案内を行うことができ,かつ,さまざまなシステムや装置等で利用できる形式で案内を提供することが可能になった。例えば,行き先のみを指定するだけで,経路に沿った経由地点で「この施設は○○で有名です。」のような案内や,目的地への到着3分前に「あと3分で△△に到着です。」というような案内を,提示すべき時間/場所に従って提示し,またそのための案内データを作成し,またそれを容易に配布することができる。
【0005】
本発明は,先に提供した案内情報を提示する技術をさらに発展,改良させ,有用性をより一層増大させることを目的としており,時間情報に記述された出発時刻,滞在時間,到着時刻などの時刻や時間がどの程度重要で厳守しなければならないかというような時間に関する制約や,場所情報に記述された場所がどの程度重要で必ず経由しなければならないか,または時間によっては経由しなくてもよいかというような場所に関する制約を記述することができ,それに基づいて調整した結果に従って案内情報を出力することにより,提示すべき時間および場所に関して柔軟性のある案内情報の提示手段を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記のような課題を解決するため,本発明は,記憶装置あるいは記憶媒体から取得した所定の場所に関する説明情報を含む案内構造情報,または,操作入力部から入力された該案内構造情報を修整する案内構造情報修整装置であって,前記所定場所へ到達する時刻を指定する指定到達時刻情報,該所定場所に滞在する時間を指定する指定滞在時間情報,該所定場所を出発する時刻を指定する指定出発時刻情報,これら該指定到達時刻情報,該指定滞在時間情報あるいは該指定出発時刻情報を守るべきか否かを指定する重要度情報が定義された案内構造情報の記憶手段と,前記案内構造情報に含まれる前記指定到達時刻情報と前記指定出発時刻情報の差分を算出し,該差分が前記指定滞在時間情報と一致するか否かを判定する判定手段と,前記判定手段によって不一致が認められた場合は,前記案内構造情報の前記重要度情報に指定された内容に応じて,該指定到達時刻情報,該指定滞在時間情報,該指定出発時刻情報のいずれかを調整する調整手段とを備える。
【0007】
また,上記発明に関連する発明は,記憶装置あるいは記憶媒体から取得した所定の場所に関する説明情報を含む案内情報,または,操作入力部から入力された該案内情報を修整する案内情報修整装置であって,前記所定場所を説明する説明情報に対応づけて,該所定場所の位置を指定する指定位置情報,該所定場所へ到達する時刻を指定する指定到達時刻情報,該所定場所に滞在する時間を指定する指定滞在時間情報,該所定場所を出発する時刻を指定する指定出発時刻情報,該指定滞在時間情報あるいは該指定出発時刻情報を守るべきか否かを指定する重要度情報が定義された案内情報の記憶手段と,現在地点の位置情報を獲得し,該獲得した位置情報と前記案内情報の前記指定位置情報を比較し,該2つの位置情報が一致する場合は,さらに,現在時刻と前記案内情報の前記指定到達時刻情報の差異を判定する判定手段と,前記判定手段によって前記差異が認められた場合は,現在時刻と前記指定到達時刻情報の前後関係,および,前記案内情報に含まれる前記指定滞在時間情報あるいは前記指定出発時刻情報の重要度情報に基づいて,該指定滞在時間情報または該指定出発時刻情報を調整する調整手段とを備える。
【0008】
前述した特願平11−113191号に係る発明との主な相違点は,以下のとおりである。
・本発明及び関連する発明では,案内用スクリプトに,時間情報または/および場所情報に関する制約情報を記述することができる。
・本発明及び関連する発明は,状況獲得または状況生成によって得られた現在時刻または/および現在地点と,案内情報を提示するための時間情報または/および場所情報と,前記の時間情報または/および場所情報に関する制約情報とを用いて,前記の時間情報または/および場所情報に記述された時間または/および場所を調整する手段を持つ。
・本発明及び関連する発明は,入力され調整された案内用スクリプトを解釈し実行する手段を持つ。
【0009】
上記のような課題を解決するための手段により,例えば出張,保守,観光,旅行などの目的で,ある時刻や時間は必ず厳守しなければならないが,ある時刻や時間は必ずしも厳守しなくともよい,といった時間に関する制約や,ある場所は必ず経由しなければならないが,ある場所は必ずしも経由しなくともよい,といった場所に関する制約が存在する場合に,このような時間や場所に関する制約情報をこれらの案内用スクリプトに記述し,状況獲得または状況生成によって得られた現在時刻または/および現在地点と,前記の制約情報とを用いて,前記の時間情報または/および場所情報に記述された時間または/および場所を調整して,案内用スクリプトによる指示を実行することにより,状況に応じた適切な案内をすることが可能になる。
【発明の効果】
【0010】
以上説明したように,本発明及び関連する発明によれば,出張,保守,観光,旅行などのスケジュールをより正確に記述できるとともに,実際の状況に対応した案内を提示することが可能になるという効果がある。
【図面の簡単な説明】
【0011】
【図1】本発明のシステム構成例を示す図である。
【図2】解釈時の制約調整処理の処理フローを示す図である。
【図3】timeのimportanceの設定による修正の例を示す図である。
【図4】実行時の制約調整処理の処理フロー(1)を示す図である。
【図5】実行時の制約調整処理の処理フロー(2)を示す図である。
【図6】端末の表示画面の例を示す図である。
【発明を実施するための形態】
【0012】
〔案内用スクリプトの概要〕
本発明では,種々の形式で記録される時間,場所,案内情報のデータ(テキストデータ,画像データ,音声データ等)のインストラクションの系列をマークアップ言語の記述形式を用いて記述しておく。
【0013】
インストラクションとは,時間(例えば,出発時刻,経由時刻,到着時刻,開始時刻,終了時刻等),場所(例えば,出発地点,経由地点,到着地点,交差点,乗換地点,施設の所在地等),各種メディアデータ(地図,文字,音声,音楽,画像,映像等)の1ショットや部分データなどを含む案内情報を,構成要素とするスクリプトの単位である。例えば,ある経路上の地点Aにおいて,「地点Aにいるときには,その地点Aを説明する音声データ(aaa.wav )および画像データ(xxx.jpg )を出力する」ということを指示する情報をいう。
【0014】
このようなインストラクションの系列を,例えばXML(eXtensible Markup Language) などのマークアップ言語の記述様式を用いて記述したものを,本発明では,案内用スクリプト(またはナビスクリプト)という。
【0015】
以下の例で説明する案内用スクリプトは,W3C(World Wide Web Consortium) において制定された拡張可能なマークアップ言語XML(eXtensible Markup Language)のサブセットとして定義される。以下,この案内用スクリプト言語の概要について説明する。
【0016】
案内用スクリプトは,タグ,属性,および内容を用いて構成され,例えば,後述する案内用スクリプトの具体例(example-04_06.nav)に示すように記述される。ここで,例えば,<naviscript version = "0.3">や </naviscript>あるいは <title> や </title> のように,< と >で括られたものをタグという。タグのうち,</で始まらないものを開始タグといい,</で始まるものを終了タグという。開始タグと終了タグは <naviscript version = "0.3"> と </naviscript>あるいは <title>と</title>のように,対として使用される。この対をタグセットと呼ぶことにする。
【0017】
また,<naviscript version = "0.3">における versionのようなものを,そのタグの属性といい,0.3 のようなものを,その属性の値という。
【0018】
案内用スクリプトは,対であるタグセットの階層構造によって記述される。タグセットの間に挟まれた部分に,タグセットがない場合,その部分を,そのタグの内容という。
【0019】
例えば,以下のような案内用スクリプトがあったとする。
【0020】
<inst>
<time> ○ </time>
<info> □ </info>
</inst>
この案内用スクリプトで,<inst>と</inst> の間の<time>と</time> で囲まれた部分(○)と,<info></info> で囲まれた部分(□)は,「○の時刻に,□の案内情報を出力する」ということを意味する。
【0021】
また,
<inst>
<point> ○ </point>
<info> □ </info>
</inst>
というような案内用スクリプトにおいて,<inst>と</inst> の間の<point> と</point>で囲まれた部分(○)と,<info></info> で囲まれた部分(□)は,「○の場所で,□の案内情報を出力する」ということを意味する。
【0022】
本発明では,詳しくは後述するが,以上のような<time>,<point> の記述において,importance = "high" とか importance = "low" といった属性による制約情報の記述を可能とし,これによって時間,場所の自動調整が行われるようにしている。
【0023】
〔装置の構成例〕
図1は,本発明の構成例を示すブロック図である。
【0024】
案内用スクリプトは,外部のサーバ装置等に記憶され,ネットワーク31を介して端末10に読み込まれる。また,磁気ディスクやCD−ROM等の各種メディア32に記憶され,端末10に読み込まれることもある。また,端末10の利用者が直接入力することもある。
【0025】
端末10の操作入力部11は,利用者の操作入力に対し,ネットワークアクセス部12を介して,外部のサーバ装置が管理している案内用スクリプトから,利用者の所望するものを選択して,またはメディアアクセス部13を介して各種メディア32に記憶されている案内用スクリプトから,利用者の所望するものを選択して,選択した案内用スクリプトを入力し,スクリプト変換部14へ渡す。あるいは,操作入力部11を介して利用者から直接入力してスクリプト変換部14へ渡してもよい。
【0026】
スクリプト変換部14は,その案内用スクリプトを構文解析して,案内用の構造化データに変換する。なお,この案内用の構造化データは,実質的には案内用スクリプトと同等のものであるので,スクリプト変換部14による変換は必須ではない。
【0027】
インストラクション実行部15は,利用者が案内用スクリプトを実際に移動中に利用している状況の場合(ナビゲーションモードの場合)には,状況獲得部16から利用者の現在の状況(現在時刻や現在地点等)を得て案内用の構造化データの経路情報を補完し,その状況に合わせて案内用の構造化データをもとに案内情報を案内出力部19から出力する。状況獲得部16による現在地点の獲得などは,例えばGPS(Global Positionig System)等を用いることができる。また,ある2つの地点が案内用スクリプトによって与えられたときに,その間の経路は,例えばデータベース部20に格納された地図情報を用いることにより,カーナビゲーションシステム等で用いられている既知の経路探索技術を利用して求めることができる。
【0028】
利用者が案内用スクリプトを仮想的な状況で利用する場合(シミュレーションモードの場合)には,インストラクション実行部15は,状況生成部17から仮想の現在時刻または仮想の現在地点を得て案内用の構造化データの経路情報を補完し,案内出力部19から案内を出力する。仮想の現在時刻は,例えば開始時刻と時間を進める単位である時間ステップ幅とを利用者に指定させるか,あらかじめシステム内で設定された時間ステップ幅や条件等によって生成することができる。また,仮想的な現在場所(現在どこにいるかの場所情報)は,例えば案内用スクリプトに記述された乗り物の速度や利用者が指定した移動速度などと,仮想的な現在時刻の進み具合から自動的に生成することができる。
【0029】
ナビゲーションモードまたはシミュレーションモードのいずれの動作モードを選択するかは,操作入力部11からの入力によって決める。
【0030】
制約調整部18では,状況獲得部16または状況生成部17から得た現在時刻・現在地点と,案内用の構造化データの時間情報・場所情報と,それらに関する制約情報とを用いて,所定の調整条件に従って,時間情報・場所情報を修正して,時間・場所を調整する。
【0031】
例えば,東京駅から京橋インターチェンジ(IC)を経由してレインボーブリッジへ向かう○○ツアーというような経路案内を行う案内用スクリプトがあり,この案内用スクリプトには,
(1) 東京駅で音声データ「東京駅です」の出力,
(2) その2分後に音声データ「○○ツアーへようこそ」の出力,およびツアー概要の画像データの表示,
(3) 京橋ICで音声データ「京橋ICです」の出力,
(4) レインボーブリッジの3km前で音声データ「まもなくレインボーブリッジです」の出力,
(5) レインボーブリッジで音声データ「レインボーブリッジです」の出力,
……,を指示するインストラクションが記述されていたとする。
【0032】
操作入力部11が,利用者の指示により,この案内用スクリプトをネットワーク31等を介して案内用スクリプト管理センタから読み出し,スクリプトの実行を開始すると,スクリプト変換部14は案内用スクリプトを変換して案内用の構造化データを生成する。インストラクション実行部15は,この案内用の構造化データにもとづいて,まずインストラクション中の地点や経路に関する記述を抽出し,地図情報等が格納されたデータベース部20を参照して経路概要を表示する。その後,GPS(Global Positionig System)等による状況獲得部16から利用者の現在地点や現在時刻を取得し,それに伴ってインストラクションを処理する。これにより,利用者がいる地点が東京駅では「東京駅です」と,それから2分経過したときには「○○ツアーへようこそ」と,案内出力部19によって音声で案内し,ツアー概要の画像データを表示する。さらに,京橋ICでは「京橋ICです」と,レインボーブリッジの3km前では「まもなくレインボーブリッジです」と,レインボーブリッジに到着したときには「レインボーブリッジです」と音声で案内する。したがって,利用者は,○○ツアーの経路に沿って移動している際に適切なときに適切なところで,適切な案内を受けることができる。
【0033】
この案内用スクリプトは,既存のマークアップ言語と同様に読み書きがしやすく,検索や処理が容易である。したがって,作成者にとっては, 案内用スクリプトのデータが何を意味するのか,またそこに記述されたインストラクションの系列が案内すべき順序に従って記載されているものであることが明白となる。
【0034】
また,インストラクションの並び替え,直列化,並列化,最適化等や,データの構造化(階層化,集団化)等を行うことができ,さまざまな時間と場所に関する案内を提示することができ,案内情報の作成,修正等を容易に行うことができる。
【0035】
また,多数の案内用スクリプトを用意し提供するセンタ等から取得した案内用スクリプトを自端末に対応した案内用の構造化データに変換するため,1つの案内用スクリプトをさまざまな装置,システムで利用することができる。
【0036】
一方,利用者にとっても,インストラクションの系列(時間系列または/および場所系列)にそって案内が提示されることが明白となり,より状況に合った案内を適切なタイミングで得られるようになる。さらに,ナビゲーションモードで実際の位置に沿って案内情報を得るだけでなく,シミュレーションモードによりある経路の案内を仮想的に体験することができる。
【0037】
この案内用スクリプトは,既存のテキストエディタを用いて容易に作成・編集することができ,また生成した案内用スクリプトをセンタ等に登録しておくことにより,この案内用スクリプトをネットワーク等を介して,誰でもどこでも案内情報を利用することができるようになる。
【0038】
〔制約調整部の処理の概要〕
以下,図1に示すシステムの構成におけるもっとも主要な部分である制約調整部18の処理および動作アルゴリズムを,図2〜図5を用いて説明する。制約調整部18による処理の重要な点は,案内用スクリプト(案内用の構造化データ)の解釈時に,案内用スクリプトの時間情報または/および場所情報に記述された時間または/および場所に矛盾があった場合に,ここでは importance と呼ぶ制約情報の記述に従って,矛盾が解消されるように調整することである。また,案内用スクリプトによる案内の実行時に,実際の状況に応じて,案内用スクリプトに記述されたスケジュール通りに案内を進行させることが困難または不可能になった場合に,例えばある地点を出発させる時刻を遅らせるとか,ある地点への立ち寄りを省略した案内に変更するとかして,スケジュールを自動調整する機能を持つことである。
【0039】
(a)解釈時の制約調整処理
図2に,案内用スクリプトの解釈時の制約調整処理の処理フローを示す。制約調整部18では,案内用スクリプト(案内用の構造化データ)の解釈時に,各々の time の到着時刻,滞在時間,出発時刻に矛盾があれば(ステップS1),すなわち,ある地点において到着時刻,滞在時間,出発時刻が3つとも指定され,かつ,出発時刻−到着時刻≠滞在時間の場合には,timeの importance の設定に応じて,到着時刻,滞在時間,出発時刻のいずれかを修正する(ステップS2)。図3に,timeの importance の設定にもとづいた修正の例を示す。
【0040】
(1) 例えば,案内用の構造化データの設定が,
arrive-time = "11:00"
period-of-stay = "2hour"
departure-time = "14:00"
である場合には,出発時刻d−到着時刻a=滞在時間pではないので矛盾が生じている。このとき,到着時刻a(arrive-time ),滞在時間p(period-of-stay),出発時刻d(departure-time)のいずれにもtime.importance = "high"が設定されていないので,到着時刻a,出発時刻dは修正せずに,p=d−aとして,滞在時間pについて,
period-of-stay := "3hous"
に修正する。
【0041】
(2) また,例えば,案内用の構造化データの設定が,
arrive-time = "11:00"
period-of-stay = "2hour"
departure-time = "14:00"
departure-time.importance = "high"
である場合には,出発時刻dにtime.importance = "high"が設定されているので,到着時刻a,出発時刻dは修正せずに,p=d−aとして,滞在時間pについて,
period-of-stay := "3hous"
に修正する。
【0042】
(3) 例えば,案内用の構造化データの設定が,
arrive-time = "11:00"
period-of-stay = "2hour"
departure-time = "14:00"
period-of-stay.importance = "high"
である場合には,滞在時間pにtime.importance = "high"が設定されているので,到着時刻a,滞在時間pは修正せずに,d=a+pとして,出発時刻dについて,
departure-time := "13:00"
に修正する。
【0043】
(4) 例えば,案内用の構造化データの設定が,
arrive-time = "11:00"
period-of-stay = "2hour"
departure-time = "14:00"
arrive-time.importance = "high"
である場合には,到着時刻aにtime.importance = "high"が設定されているので,到着時刻a,出発時刻dは修正せずに,p=d−aとして,滞在時間pについて,
period-of-stay := "3hous"
に修正する。
【0044】
(5) 例えば,案内用の構造化データの設定が,
arrive-time = "11:00"
period-of-stay = "2hour"
departure-time = "14:00"
period-of-stay.importance = "high"
departure-time.importance = "high"
である場合には,滞在時間p,出発時刻dにtime.importance = "high"が設定されているので,滞在時間p,出発時刻dは修正せずに,a=d−pとして,到着時刻aについて,
arrive-time := "12:00"
に修正する。
【0045】
(6) 例えば,案内用の構造化データの設定が,
arrive-time = "11:00"
period-of-stay = "2hour"
departure-time = "14:00"
arrive-time.importance = "high"
departure-time.importance = "high"
である場合には,到着時刻a,出発時刻dにtime.importance = "high"が設定されているので,到着時刻a,出発時刻dは修正せずに,p=d−aとして,滞在時間pについて,
period-of-stay := "3hous"
に修正する。
【0046】
(7) 例えば,案内用の構造化データの設定が,
arrive-time = "11:00"
period-of-stay = "2hour"
departure-time = "14:00"
arrive-time.importance = "high"
period-of-stay.importance = "high"
である場合には,到着時刻a,滞在時間pにtime.importance = "high"が設定されているので,到着時刻a,滞在時間pは修正せずに,d=a+pとして,出発時刻滞dについて,
departure-time:= "13:00"
に修正する。
【0047】
(8) 例えば,案内用の構造化データの設定が,
arrive-time = "11:00"
period-of-stay = "2hour"
departure-time = "14:00"
arrive-time.importance = "high"
period-of-stay.importance = "high"
departure-time.importance = "high"
である場合には,到着時刻a,滞在時間p,出発時刻dのいずれにもtime.importance = "high"が設定されているで,到着時刻a,出発時刻dは修正せずに,p=d−aとして,滞在時間pについて,
period-of-stay := "3hous"
に修正する。
【0048】
(b)実行時の制約調整処理
図4および図5に,実行時の制約調整処理の処理フローを示す。
【0049】
制約調整部18では,実行時に,状況獲得部16または状況生成部17から得た現在時刻・現在地点と,案内用の構造化データの時間情報・場所情報とを比較して,この地点(point )の到着時刻(arrive-time )に対して余裕ができた場合には,以下の処理を行う。
【0050】
(1) 案内用の構造化データの設定が,departure-time: importance = low かつ period-of-stay: importance = low/high であれば(ステップS11),departure-timeから余裕分を減算するか,またはperiod-of-stayに余裕分を加算するか,のいずれかの処理を行う(ステップS12)。例えば,
arrive-time = "11:00"
period-of-stay = "3hour"
departure-time = "14:00"
と設定されていたが,10:00 に到着したため 1hourの余裕ができた場合には,
departure-time := 14:00 - 1hour = 13:00
に修正するか,または
period-of-stay := 3hour + 1hour = 4hour
に修正するか,のいずれかの処理を行う。出発時刻を修正するか,滞在時間を修正するかは,あらかじめ設定された指定に従ってもよいし,その都度,利用者に問い合わせてもよい。
【0051】
(2) また,案内用の構造化データの設定が,departure-time: importance = high かつ period-of-stay: importance = low/high であれば(ステップS13),period-of-stayに余裕分を加算する(ステップS14)。例えば,
arrive-time = "11:00"
period-of-stay = "3hour"
departure-time = "14:00"
と設定されていたが,10:00 に到着したため 1hourの余裕ができた場合には,
period-of-stay := 3hour + 1hour = 4hour
に修正する。
【0052】
実行時に,状況獲得部16または状況生成部17から得た現在時刻・現在地点と,案内用の構造化データの時間情報・場所情報を比較して,この pointのarrive-time に対して間に合わない場合には,以下の処理を行う。
【0053】
(1) 案内用の構造化データの設定が,departure-time: importance = low かつ period-of-stay: importance = lowであれば(ステップS21),departure-timeに遅延分を加算するか,period-of-stayから遅延分を可能な限り減算し,かつdeparture-timeを減算できなかった分だけ加算するか,のいずれかの処理を行う(ステップS22)。例えば,
arrive-time = "11:00"
period-of-stay = "3hour"
departure-time = "14:00"
と設定されていたが,12:00 に到着したため,1hour の遅れがでた場合には,
departure-time := 14:00 + 1hour = 15:00
に修正するか,または,
period-of-stay := 3hour - 1hour = 2hour
に修正するか,のいずれかの処理を行う。
【0054】
また,15:00 に到着したため,4hour の遅れがでた場合には,
departure-time := 14:00 + 4hour = 18:00
に修正するか,または,
period-of-stay := 3hour - 3hour = 0hour ,
departure-time := 14:00 + 1hour = 15:00
に修正するか,のいずれかの処理を行う。
【0055】
(2) 案内用の構造化データの設定が,departure-time: importance = low かつ period-of-stay: importance = high であれば(ステップS23),departure-timeに遅延分を加算する(ステップS24)。例えば,
arrive-time = "11:00"
period-of-stay = "3hour"
departure-time = "14:00"
と設定されていたが,12:00 に到着したため,1hour の遅れがでた場合には,
departure-time := 14:00 + 1hour = 15:00
に修正する。
【0056】
(3) 案内用の構造化データの設定が,departure-time: importance = high
かつ point: importance = low であれば(ステップS25),period-of-stayから遅延分を可能な限り減算し,かつdeparture-timeを減算できなかった分だけ加算するか,そのpoint への経由を省略か,のいずれかの処理を行う(ステップS26)。例えば,
arrive-time = "11:00"
period-of-stay = "3hour"
departure-time = "14:00"
と設定されていたが,12:00 に到着したため,1hour の遅れがでた場合には,
period-of-stay := 3hour - 1hour = 2hour
に修正,または,そのpoint への経由を省略,のいずれかの処理を行う。
【0057】
また,15:00 に到着したため,4hour の遅れがでた場合には,
period-of-stay := 3hour - 3hour = 0hour ,
departure-time := 14:00 + 1hour = 15:00
に修正,または,そのpoint への経由を省略,のいずれかの処理を行う。
【0058】
(4) 案内用の構造化データの設定が,departure-time: importance = high かつ point: importance = highであれば(ステップS27),period-of-stayから遅延分を可能な限り減算し,かつdeparture-timeを減算できなかった分だけ加算する(ステップS28)。例えば,
arrive-time = "11:00"
period-of-stay = "3hour"
departure-time = "14:00"
と設定されていたが,12:00 に到着したため,1hour の遅れがでた場合には,
period-of-stay := 3hour - 1hour = 2hour
に修正する。また,15:00 に到着したため,4hour の遅れがでた場合には,
period-of-stay := 3hour - 3hour = 0hour ,
departure-time := 14:00 + 1hour = 15:00
に修正する。
【0059】
図6に,端末10の表示画面の例を示す。表示画面には,スケジュールに従い,移動予定場所およびその場所への到着予定時刻,移動手段,地図などを表示するとともに,利用者が現在移動中の地点を示す。図6に示すような海浜幕張から出発するレインボータウンツアーの移動スケジュールで,現在利用者が,東京駅から八重洲に向けて徒歩で移動中であり,そのときの現在時刻が表示されている。この場合,10:30には八重洲から車で出発する予定であるにもかかわらず,現時点(10:45)で,間に合わないことが明らかであるので,表示画面には,「次の場所に間に合いません。重要度に応じて再スケジュールをしますか?」というメッセージを表示する。これに対して,利用者が「Yes」を答えると,あらかじめ案内用スクリプトに記述された制約情報にもとづき上述したような時間調整を行う。
【0060】
〔案内用スクリプトの具体例〕
以下に,案内用スクリプトの具体例を示す。この案内用スクリプトの記述に用いるタグの詳細な仕様については,本明細書の後半の部分で列挙するので参照されたい。
<naviscript version = "0.3">
<title> レインボータウンツアー </title>
<version> example-04_06 </version>
<copyright> All Rights Reserved,Copyright (C) Fujitsu Laboratories Ltd. 1999. </copyright>
<navi>
<title> レインボータウン </title>
<author> 富士通観光 </author>
<date> 99/10/10 </date>
<duration> 3hour40min </duration>
<distance> 95.0km </distance>
<cost> 1940yen </cost>
<par>
<seq>
<inst ref = "inst-info- はじめに"> </inst>
<inst ref = "inst-point-海浜幕張駅"> </inst>
<inst ref = "inst-point-東京駅"> </inst>
<inst ref = "inst-point-東京駅八重州中央口"> </inst>
<inst ref = "inst-point-京橋IC"> </inst>
<inst ref = "inst-info- レインボーブリッジ- 案内1"> </inst>
<inst ref = "inst-info- レインボーブリッジ- 案内2"> </inst>
<inst ref = "inst-point-江戸橋JC"> </inst>
<inst ref = "inst-point-台場IC"> </inst>
<inst ref = "inst-object-restaurant"> </inst>
<inst ref = "inst-object-cafe"> </inst>
<inst ref = "inst-point-突堤"> </inst>
<inst ref = "inst-object- フジサンテレビ"> </inst>
<inst ref = "inst-point-東京駅八重州中央口"> </inst>
<inst ref = "inst-info- おわりに"> </inst>
</seq>
<seq>
<inst ref = "inst-info- 正午"> </inst>
</seq>
</par>
</navi>
<inst id = "inst-info-はじめに">
<time> +5sec </time>
<info>
<text>レインボータウンツアーへようこそ! </text>
</info>
</inst>
<inst id = "inst-point- 海浜幕張駅">
<time> 9:00 </time>
<point>
<category> station </category>
<name> 海浜幕張 </name>
</point>
<route>
<means> train </means>
<category> JR </category>
<category>京葉線 </category>
<duration> 41min </duration>
<distance> 31.7km </distance>
<cost> 540yen </cost>
</route>
</inst>
<inst id = "inst-point- 東京駅">
<time importance="high"> 10:00 </time>
<point importance="high">
<category> station </category>
<name> 東京 </name>
</point>
<route>
<means> walk </means>
</route>
</inst>
<inst id = "inst-point- 東京駅八重州中央口">
<point>
<name> 東京駅八重洲中央口 </name>
<longitude> 133.33.36 </longitude>
<latitude> 36.2.5 </latitude>
</point>
<route>
<means> car </means>
<category>首都高速 </category>
<cost> 700yen </cost>
</route>
</inst>
<inst id = "inst-point- 京橋IC">
<point>
<name> 京橋IC </name>
<longitude> 133.33.36 </longitude>
<latitude> 36.2.5 </latitude>
</point>
<route>
thesame
</route>
</inst>
<inst id = "inst-info-レインボーブリッジ- 案内1">
<time> -10min </time>
<info>
<text>あと10分でレインボーブリッジです. </text>
</info>
</inst>
<inst id = "inst-info-レインボーブリッジ- 案内2">
<location> -1.0km </location>
<info ref = "object-レインボーブリッジ#info">
</info>
</inst>
<inst id = "inst-point- 江戸橋JC">
<point>
<name>江戸橋JC </name>
</point>
<route>
<title> レインボーブリッジ </title>
<means> car </means>
<category>首都高速 </category>
</route>
</inst>
<inst id = "inst-point- 台場IC">
<point ref = "point- 台場IC"> </point>
<route> thesame </route>
</inst>
<inst id = "inst-object-restaurant"
if = "(ref(inst-point-台場IC#time) &ge 11:30) &&
(ref(inst-point-台場IC#time) &le 13:30)">
<time importance="low" > 1hour30min </time>
<point ref = "object-restaurant"> </point>
<info>
<text ref = "object-restaurant#text"> </text>
<image ref = "object-restaurant#image"> </image>
</info>
</inst>
<inst id = "inst-object-cafe"
if = "(ref(inst-point-台場IC#time) &lt 11:30) ||
(ref(inst-point-台場IC#time) &gt 13:30)">
<time importance="low" > 45min </time>
<object ref = "object-cafe"> </object>
</inst>
<inst id = "inst-point- 突堤">
<point ref = "http://www.naviscript.com/japan/tokyo/odaiba.nav#point-breakwater">
</point>
</inst>
<inst id = "inst-object-フジサンテレビ">
<object>
<name> フジサンテレビ </name>
<address> 東京都港区台場9-9-9 </address>
</object>
</inst>
<inst id = "inst-point- 東京駅八重州中央口">
<point importance="high">
<name> 東京駅八重洲中央口 </name>
<longitude> 133.33.36 </longitude>
<latitude> 36.2.5 </latitude>
</point>
</inst>
<inst id = "inst-info-おわりに">
<time> +0sec </time>
<info>
<par>
<voice times = "1"> お疲れ様でした! </voice>
<sound src = "sound-bye.wav" duration = "2min30sec"> </sound>
</par>
</info>
</inst>
<inst id = "inst-info-正午">
<time> 12:00 </time>
<info>
<voice> 正午です.</voice>
</info>
</inst>
<point id = "point- 台場IC">
<name> 台場IC </name>
<longitude> 133.37.46 </longitude>
<latitude> 36.3.5 </latitude>
</point>
<object id = "object- レインボーブリッジ">
<name> レインボーブリッジ </name>
<category> bridge </category>
<info>
<text>レインボーブリッジは海抜125m, 長さ826m,… </text>
</info>
</object>
<object id = "object-restaurant">
<name> Restaulant Fujitsu </name>
<category> restaulant </category>
<category> Italian </category>
<phone> 987-654-3210 </phone>
<text> 名物はイタリア人シェフの手による… </text>
<image src = "image-restaulant.jpg"> </image>
</object>
<object id = "object-cafe">
<name> Cafe Fujitsu </name>
<category> cafe </category>
<phone> 999-999-9999 </phone>
</object>
</naviscript>
以上のような案内用スクリプトは,スクリプト変換部14により,案内用の構造化データへ変換される。以下に構造化データへの変換の具体例を示す。
[example-04 _06.h]
naviscript.title
= " レインボータウンツアー";
naviscript.version
= "example-04 _06";
naviscript.copyright
= "All Rights Reserved, Copyright(C)Fujitsu Laboratories Ltd. 1999.";
naviscript.navi.title
= " レインボータウン";
naviscript.navi.author
= " 富士通観光";
naviscript.navi.date
= "99/10/10";
naviscript.navi.duration
= "3hour40min";
naviscript.navi.distance
= "95.0km";
naviscript.navi.cost
= "1940yen";

naviscript.navi.instlist
= "par(seq(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15),seq(16))";

naviscript.navi.inst[1].id
= "inst-info- はじめに";
naviscript.navi.inst[1].time
= "+5sec";
naviscript.navi.inst[1].info.text
= " レインボータウンツアーへようこそ!";

naviscript.navi.inst[2].id
= "inst-point-海浜幕張駅";
naviscript.navi.inst[2].time.arrive-time
= "9:00";
naviscript.navi.inst[2].time.departure-time
= "9:00";
naviscript.navi.inst[2].point.category
= "station";
naviscript.navi.inst[2].point.name
= " 海浜幕張";
naviscript.navi.inst[2].route.means
= "train";
naviscript.navi.inst[2].route.category
= "JR";
naviscript.navi.inst[2].route.category
= " 京葉線";
naviscript.navi.inst[2].route.duration
= "41min";
naviscript.navi.inst[2].route.distance
= "31.7km";
naviscript.navi.inst[2].route.cost
= "540yen";

naviscript.navi.inst[3].id
= "inst-point-東京駅";
naviscript.navi.inst[3].time.arrive-time
= "10:00";
naviscript.navi.inst[3].time.arrive-time.importance
= "high";
naviscript.navi.inst[3].time.departure-time
= "10:00";
naviscript.navi.inst[3].time.departure-time.importance
= "high";
naviscript.navi.inst[3].point.category
= "station";
naviscript.navi.inst[3].point.name
= " 東京";
naviscript.navi.inst[3].route.thesame
= "yes";

naviscript.navi.inst[4].id
= "inst-point-東京駅八重州中央口";
naviscript.navi.inst[4].point.name
= " 東京駅八重洲中央口";
naviscript.navi.inst[4].point.longitude
= "133.33.36";
naviscript.navi.inst[4].point.latitude
= "36.2.5";
naviscript.navi.inst[4].route.means
= "car";
naviscript.navi.inst[4].route.category
= " 首都高速";
naviscript.navi.inst[4].route.cost
= "700yen";

naviscript.navi.inst[5].id
= "inst-point-京橋IC";
naviscript.navi.inst[5].point.name
= " 京橋IC";
naviscript.navi.inst[5].point.longitude
= "133.33.36";
naviscript.navi.inst[5].point.latitude
= "36.2.5";
naviscript.navi.inst[5].route.thesame
= "yes";

naviscript.navi.inst[6].id
= "inst-info- レインボーブリッジ- 案内1";
naviscript.navi.inst[6].time
= "-10min";
naviscript.navi.inst[6].info.text
= " あと10分でレインボーブリッジです.";

naviscript.navi.inst[7].id
= "inst-info- レインボーブリッジ- 案内2";
naviscript.navi.inst[7].location
= "-1.0km";
naviscript.navi.inst[7].info.text
= " レインボーブリッジは海抜125m, 長さ826m,…";

naviscript.navi.inst[8].id
= "inst-point-江戸橋JC";
naviscript.navi.inst[8].point.name
= " 江戸橋JC";
naviscript.navi.inst[8].route.title
= " レインボーブリッジ";
naviscript.navi.inst[8].route.means
= "car";
naviscript.navi.inst[8].route.category
= " 首都高速";

naviscript.navi.inst[9].id
= "inst-point-台場IC";
naviscript.navi.inst[9].name
= " 台場IC";
naviscript.navi.inst[9].longitude
= "133.37.46";
naviscript.navi.inst[9].latitude
= "36.3.5";
naviscript.navi.inst[9].route.thesame
= "yes";

naviscript.navi.inst[10].id
= "inst-object-restaurant";
naviscript.navi.inst[10].if
= "(ref(inst-point- 台場IC#time) &ge 11:30) &&
(ref(inst-point- 台場IC#time) &le 13:30)";
naviscript.navi.inst[10].time.period-of-stay
= "1hour30min";
naviscript.navi.inst[10].time.period-of-stay.importance
= "low";
naviscript.navi.inst[10].point.id
= "object-restaurant";
naviscript.navi.inst[10].point.name
= "Restaulant Fujitsu";
naviscript.navi.inst[10].point.category
= "restaulant";
naviscript.navi.inst[10].point.category
= "Italian";
naviscript.navi.inst[10].point.phone
= "987-654-3210";
naviscript.navi.inst[10].point.info.text
= " 名物はイタリア人シェフの手による…";
naviscript.navi.inst[10].point.info.image.src
= "image-restaulant.jpg";

naviscript.navi.inst[11].id
= "inst-object-cafe";
naviscript.navi.inst[11].if
= "(ref(inst-point- 台場IC#time) &lt 11:30) ||
(ref(inst-point- 台場IC#time) &gt 13:30)";
naviscript.navi.inst[11].object.id
= "object-cafe";
naviscript.navi.inst[11].time.period-of-stay
= "45min";
naviscript.navi.inst[11].time.period-of-stay.importance
= "low";
naviscript.navi.inst[11].object.name
= "Cafe Fujitsu";
naviscript.navi.inst[11].object.category
= "cafe";
naviscript.navi.inst[11].object.phone
= "999-999-9999";

naviscript.navi.inst[12].id
= "inst-point-突堤";
naviscript.navi.inst[12].point.ref
= "http://www.naviscript.com/japan/tokyo/odaiba.nav#point-breakwater";

naviscript.navi.inst[13].id
= "inst-object- フジサンテレビ";
naviscript.navi.inst[13].object.name
= " フジサンテレビ";
naviscript.navi.inst[13].object.address
= " 東京都港区台場9-9-9";

naviscript.navi.inst[14].id
= "inst-point-東京駅八重州中央口";
naviscript.navi.inst[14].point.importance
= "high";
naviscript.navi.inst[14].point.name
= " 東京駅八重洲中央口";
naviscript.navi.inst[14].point.longitude
= "133.33.36";
naviscript.navi.inst[14].point.latitude
= "36.2.5";

naviscript.navi.inst[15].id
= "inst-info- おわりに";
naviscript.navi.inst[15].time
= "+0sec";
naviscript.navi.inst[15].infolist
= "par(1,2)";
naviscript.navi.inst[15].info[1].voice.times
= "1";
naviscript.navi.inst[15].info[1].voice.value
= " お疲れ様でした!";
naviscript.navi.inst[15].info[1].sound.src
= "sound-bye.wav";
naviscript.navi.inst[15].info[1].sound.duration
= "2min30sec";

naviscript.navi.inst[16].id
= "inst-info- 正午";
naviscript.navi.inst[16].time
= "12:00";
naviscript.navi.inst[16].info.voice
= " 正午です.";
まず,案内用スクリプトの前半の<navi>から</navi> までの部分では,案内用スクリプトのタイトル,バージョン等の時を定義し,この案内用スクリプトで定義されるインストラクションを定義している。
【0061】
次に,案内用スクリプトの</navi> 以降では,各インストラクションの内容を定義している。例えば,先頭のインストラクションである"inst-info- はじめに" では,出発時刻から5秒経過したら,「レインボータウンツアーへようこそ!」という案内文を出力することを示している。
【0062】
次のインストラクション"inst-point-海浜幕張駅" は,9時に海浜幕張駅にいて,京葉線で移動することを示す。
【0063】
次のインストラクション"inst-point-東京駅" は,
<time importane="high"> 10:00 </time>
<point importance="high">
と指定され,10:00 に必ず東京駅に到着していることが重要であることを示している。
【0064】
10番目のインストラクション"inst-objet-restaurant" は,
if = "(ref(inst-point-台場IC#time) &ge 11:30) &&
(ref(inst-point-台場IC#time) &le 13:30)">
<time importance="low" > 1hour30min </time>
と指定され,11番目のインストラクション"inst-objet-cafe" は
if = "(ref(inst-point-台場IC#time) &lt 11:30) ||
(ref(inst-point-台場IC#time) &gt 13:30)">
<time importance="low" > 45min </time>
と指定されている。これは,台場ICの到着時刻が11:30 から13:30 の間ならばレストランの案内情報を出力し,台場ICの到着時刻が11:30 前または13:30 以降ならばカフェの案内情報を出力する,ことを意味する。
【0065】
これらのインストラクションにおいて,案内すべき時刻を意味する<time>に,その重要性を指定する属性importanceが指定されている。
【0066】
importanceは,その時刻の重要性を指定する属性であり,high,lowの値をとり, デフォールト値はhighとする。
【0067】
以下の指定は,11:00 に到着することも,13:30 に出発することも,両方とも重要であることを意味する。
【0068】
<time importance="high"> 11:00-13:30 </time>
また,以下の指定は,11:00 に到着することは重要であるが,13:30 に出発することは重要でないことを意味する。
【0069】
<time importance="high"> 11:00- </time>
<time importance="low"> -13:30 </time>
また,以下の指定は,1時間30分の滞在が重要でないことを意味する。
【0070】
<time importance="low"> 1hour30min </time>
上記の案内用スクリプトを解釈する場合に,スクリプトの指定に矛盾がないので,10番目および11番目のインストラクションの部分は,以下のような案内用の構造化データに変換する。
【0071】
naviscript.navi.inst[10].id
= "inst-object-restaurant";
naviscript.navi.inst[10].if
= "(ref(inst-point- 台場IC#time) &ge 11:30) &&
(ref(inst-point- 台場IC#time) &le 13:30)";
naviscript.navi.inst[10].time.period-of-stay
= "1hour30min";
naviscript.navi.inst[10].time.period-of-stay.importance
= "low";
naviscript.navi.inst[10].point.id
= "object-restaurant";
・・・

naviscript.navi.inst[11].id
= "inst-object-cafe";
naviscript.navi.inst[11].if
= "(ref(inst-point- 台場IC#time) &lt 11:30) ||
(ref(inst-point- 台場IC#time) &gt 13:30)";
naviscript.navi.inst[11].object.id
= "object-cafe";
naviscript.navi.inst[11].time.period-of-stay
= "45min";
naviscript.navi.inst[11].time.period-of-stay.importance
= "low";
・・・
案内用scriptの実行時において,制約調整部18は,図3に示す修正例にもとづいて以下のように処理する。
【0072】
(a) 台場ICの到着時刻が11:45 の場合には,出発時刻13:30 から余裕分(15 min)を減算して出発時刻を13:15 に設定するか,もしくは,滞在時間に余裕分を加算して滞在時間を1hour45minに設定する。
【0073】
(b) 台場ICの到着時刻が12:15 の場合には,出発時刻13:30 に遅延分(15 min)を加算して出発時刻を13:45 に設定するか,もしくは,滞在時間から遅延分を減算して滞在時間を1hour15minに設定する。
【0074】
〔案内用スクリプトの言語仕様〕
以下の順で,タグ,属性,内容について説明する。
【0075】
01. <naviscript>
02. <title>
03. <version>
04. <author>
05. <affiliation>
06. <date>
07. <copyright>
08. <comment>
09. <navi>
10. <title>
11. <author>
12. <date>
13. <country>
14. <area>
15. <genre>
16. <duration>
17. <distance>
18. <cost>
19. <course>
20. <comment>
21. <seq>
22. <par>
23. <inst>
24. <time>
25. <point>
26. <name>
27. <category>
28. <latitude>
29. <longitude>
30. <altitude>
31. <cost>
32. <comment>
33. <location>
34. <object>
35. <name>
36. <category>
37. <address>
38. <zip-code>
39. <country>
40. <phone>
41. <fax>
42. <url>
43. <e-mail>
44. <latitude>
45. <longitude>
46. <altitude>
47. <open>
48. <close>
49. <reservation>
50. <comment>
51. <text>
52. <voice>
53. <audio>
54. <image>
55. <video>
56. <route>
57. <means>
58. <name>
59. <category>
60. <cost>
61. <comment>
62. <info>
63. <seq>
64. <par>
65. <text>
66. <voice>
67. <audio>
68. <image>
69. <video>
01. <naviscript>
タグ: <naviscript>
本記述がナビスクリプトであることを表す。
【0076】
属性: version
ナビスクリプトのバージョンを表す。
【0077】
内部: 以下のタグセットを内部に包含することができる。
【0078】
<title>
<version>
<author>
<affiliation>
<date>
<copyright>
<comment>
<navi>
02. <naviscript>下の <title>
タグ: <title>
属性: なし
内部: 内容として,本ナビスクリプトに記述される案内のタイトルを記述する。
【0079】
例: レインボータウンツアー
03. <naviscript>下の <version>
タグ: <version>
属性: なし
内部: 内容として,本ナビスクリプトに記述される案内のバージョンを記述する。
【0080】
例: example-04_06
04. <naviscript>下の <author>
タグ: <author>
属性: なし
内部: 内容として,本ナビスクリプトに記述される案内の著者を記述する。
【0081】
例: 亜井うえ男,可木くけ子
05. <naviscript>下の <affiliation>
タグ: <affiliation>
属性: なし
内部: 内容として,本ナビスクリプトに記述される案内の帰属を記述する。
【0082】
例: 富士通観光
06. <naviscript>下の <date>
タグ: <date>
属性: なし
内部: 内容として,本ナビスクリプトに記述される案内の記述日時を記述する。
【0083】
例: 99/10/10
07. <naviscript>下の <copyright>
タグ: <copyright>
属性: なし
内部: 内容として,本ナビスクリプトに記述される案内のコピーライトを記述する。
【0084】
例: All Rights Reserved, Copyright (C) Fujitsu Laboratories Ltd. 1999.
08. <naviscript>下の <comment>
タグ: <comment>
属性: なし
内部: 内容として,本ナビスクリプトに記述される案内についてのコメントを記述する。
【0085】
09. <naviscript>下の <navi>
タグ: <navi>
属性: なし
内部: 以下のタグセットを内部に包含することができる。
【0086】
<title>
<author>
<date>
<country>
<area>
<genre>
<duration>
<distance>
<cost>
<course>
<comment>
<seq> あるいは <par>
10. <navi>下の <title>
タグ: <title>
属性: なし
内部: 内容として,案内される内容のタイトルを記述する。
【0087】
例: レインボータウン
11. <navi>下の <author>
タグ: <author>
属性: なし
内部: 内容として,案内される内容の著者を記述する。
【0088】
例: 富士通観光
12. <navi>下の <date>
タグ: <date>
属性: なし
内部: 内容として,案内される内容の日時を記述する。
【0089】
例: 99/10/10
13. <navi>下の <country>
タグ: <country>
属性: なし
内部: 内容として,案内される地点や経路や施設が属する国名を記述する。
【0090】
例: 日本
14. <navi>下の <area>
タグ: <area>
属性: なし
内部: 内容として,案内される地点や経路や施設が属する領域を記述する。
【0091】
例: 東京,お台場
15. <navi>下の <genre>
タグ: <genre>
属性: なし
内部: 内容として,案内される内容が属すジャンルを記述する。
【0092】
例: ドライブ,見る
16. <navi>下の <duration>
タグ: <duration>
属性: なし
内部: 内容として,案内されるコースの所要時間を記述する。
【0093】
例: 3hour40min
17. <navi>下の <distance>
タグ: <distance>
属性: なし
内部: 内容として,案内されるコースの移動距離を記述する。
【0094】
例: 95.0km
18. <navi>下の <cost>
タグ: <cost>
属性: なし
内部: 内容として,案内されるコースの所要費用を記述する。
【0095】
例: 1940yen
19. <navi>下の <course>
タグ: <course>
属性: なし
内部: 内容として,案内されるコースを記述する。
【0096】
例: 海浜幕張−東京−レインボーブリッジ−フジサンテレビ−東京
20. <navi>下の <comment>
タグ: <comment>
属性: なし
内部: 内容として,案内される内容についてのコメントを記述する。
【0097】
21. <navi>下の <seq>
タグ: <seq>
seq は sequential を意味する。<seq> は内部に含まれる項目が直列的 (sequential) に実行されることを表す。
【0098】
属性: なし
内部: 以下のタグセットあるいはそれらの任意個の任意の組み合わせを内部に包含することができる。
【0099】
<inst>
<seq>
<par>
22. <navi>下の<par>
タグ: <par>
par は parallel を意味する。
【0100】
<par> は内部に含まれる項目が並列的 (parallel) に実行されることを表す。
【0101】
属性: なし
内部: 以下のタグセットあるいはそれらの任意個の任意の組み合わせを内部に包含することができる。
【0102】
<inst>
<seq>
<par>
23. <seq> あるいは <par>下の <inst>
タグ: <inst>
instは instructionを意味する。
【0103】
属性:
id
内部あるいは外部から参照するための ID を付与する。
【0104】
例: id = "inst-info-はじめに"
ref :内部あるいは外部の <inst> に付与された ID を記述することによって,その<inst>を参照する。
【0105】
例: ref = "inst-info- はじめに"
if
そのインストラクションを実行するか否かの条件を記述する。もし条件が成立すればそのインストラクションを実行し,そうでなければ実行しない。
【0106】
例: if = "(ref(inst-point-台場IC#time) &ge 11:30) &&
(ref(inst-point-台場IC#time) &le 13:30)">
この条件は,inst-point- 台場ICの ID が付与されたタグセットの内部の<time>のタグセットの内容が 11:30以上で,かつ,13:30 以下であれば,ということを意味する。
【0107】
if属性の中で使用される記号とその意味は以下のとおりである。
【0108】
比較演算子
&eq あるいは == (= : equal)
左辺が右辺と等しい
&ne あるいは != (!=: not equal)
左辺が右辺と等しくない
&le
左辺が右辺以下 (<=: less or equal)
&ge
左辺が右辺以上 (>=: greater or equal)
&lt
左辺が右辺より小さい (< : less than)
&gt
左辺が右辺より大きい (< : greater than)
論理演算子
&notあるいは !
否定 (NOT)
&and
かつ (AND)
&or
または (OR)
内部: 以下のタグセットあるいはそれらの任意個の任意の組み合わせを内部に包含することができる。
【0109】
<time>
あるいは
<point> あるいは <location> あるいは <object> ,および,<route>
<info>
24. <inst>下の <time>
タグ: <time>
timeは案内すべき時刻を意味する。
【0110】
point と併用された場合には,その地点からの出発時刻,その地点での滞在時間,その地点への到着時刻をも合わせて意味する。
【0111】
属性:
id
内部あるいは外部から参照するための ID を付与する。
【0112】
ref
内部あるいは外部の <inst> に付与された ID を記述することによって,その<inst>を参照する。
【0113】
importance
その時刻や時間の重要性を指定する.
内容として,以下の値を取りうる。
【0114】
例: high, low
importanceの指定がない場合のデフォールト値は high とする。
【0115】
使い方:
<time importance="high"> 11:00-13:00 </time>
11:00 に到着することも,13:00 に出発することも,が両方とも重要である。
【0116】
<time importance="high"> 11:00- </time>
<time importance="low"> -13:00 </time>
11:00 に到着することは重要であるが,
13:00 に出発することは重要ではない。
【0117】
内部:
内容として,その <inst> 下の <info> を案内する時刻を記述する。
【0118】
時刻の指定は,以下のように,絶対的な指定と相対的な指定の両方を可能とする。
【0119】
<time> 12:00 </time>
12:00 に,という絶対的な時刻の指定
<time> +5sec </time>
1つ前のインストラクションの 5秒後に,という相対的な時刻の指定
<time> -10min </time>
1つ後のインストラクションの10分前に,という相対的な時刻の指定
point と併用された場合には,その地点から出発時刻,その地点での滞在時間,その地点への到着時刻をも合わせて意味する。
【0120】
<time> 11:00 </time>
11:00 に到着し,直ちに出発
<time> 11:00- </time>
11:00 から滞在,すなわち,11:00 に到着
<time> -13:00 </time>
13:00 まで滞在,すなわち,13:00 に出発
<time> 11:00-13:00 </time>
11:00 から13:00 まで滞在
<time> 1day2hour </time>
1日と2時間滞在
25. <inst>下の <point>
タグ: <point>
point は案内すべき地点を意味する。
【0121】
point は地点を絶対的に規定する。
【0122】
属性:
id
内部あるいは外部から参照するための ID を付与する。
【0123】
id = "point-台場IC"
ref
内部あるいは外部の <inst> に付与された ID を記述することによって,その<inst>を参照する。
【0124】
例:
ref = "point- 台場IC"
ref = "http://www.naviscript.com/japan/tokyo/odaiba.nav#point-breakwater"
importance
その地点を経由することの重要性を指定する。内容として,以下の値を取りうる。
【0125】
例: high, low
importanceの指定がない場合のデフォールト値は high とする。
【0126】
使い方:
<point importance="high"> … </point>
…で指定された地点を経由することが重要。
【0127】
内部: 以下のタグセットを内部に包含することができる。
【0128】
<name>
<category>
<latitude>
<longitude>
<altitude>
<cost>
<comment>
これらのタグセットは案内すべき地点を規定する要素として捉えることができる。
【0129】
26. <point> 下の <name>
タグ: <name>
属性: なし
内部: 内容として,その地点の名称を記述する。
【0130】
27. <point> 下の <category>
タグ: <category>
属性: なし
内部: 内容として,その地点のカテゴリを記述する。
【0131】
例: station
28. <point> 下の <latitude>
タグ: <latitude>
属性: なし
内部: 内容として,その地点の緯度を記述する。
【0132】
例: 36.2.5
29. <point> 下の <longitude>
タグ: <longitude>
属性: なし
内部: 内容として,その地点の経度を記述する。
【0133】
例: 133.33.36
30. <point> 下の <altitude>
タグ: <altitude>
属性: なし
内部: 内容として,その地点の高度を記述する。
【0134】
例: 100m
31. <point> 下の <cost>
タグ: <cost>
属性: なし
内部: 内容として,例えば,入場料のような,その地点において必要とされる費用を記述する。
【0135】
例: 540yen
32. <point> 下の <comment>
タグ: <comment>
属性: なし
内部: 内容として,その地点についてのコメントを記述する。
【0136】
33. <inst>下の <location>
タグ: <location>
locationは案内すべき位置を意味する。
【0137】
locationは地点を相対的に規定する。
【0138】
属性:
id
内部あるいは外部から参照するための ID を付与する。
【0139】
ref
内部あるいは外部の <inst> に付与された ID を記述することによって,その<inst>を参照する。
【0140】
importance
その地点を経由することの重要性を指定する。
【0141】
内容として,以下の値を取りうる。
【0142】
例: high, low
importanceの指定がない場合のデフォールト値は high とする。
【0143】
使い方:
<location importance="high">… </location>
…で指定された地点を経由することが重要。
【0144】
内部: 内容として,その <inst> 下の <info> を案内する位置を記述する。
【0145】
位置の指定は,以下のように,相対的な指定を可能とする。
【0146】
<location> +1.0km </location>
前の地点の 1km過ぎで,という相対的な場所の指定
<location> -1.0km </location>
次の地点の 1km手前で,という相対的な場所の指定
34. <inst>下の <object>
タグ: <object>
objectは案内すべき施設などの事物を意味する。
【0147】
属性:
id
内部あるいは外部から参照するための ID を付与する。
【0148】
id = "object- レインボーブリッジ"
ref
内部あるいは外部の <inst> に付与された ID を記述することによって,その<inst>を参照する。
【0149】
例:
ref = "object-cafe"
内部: 以下のタグセットを内部に包含することができる。
【0150】
<name>
<category>
<address>
<zip-code>
<country>
<phone>
<fax>
<url>
<e-mail>
<latitude>
<longitude>
<altitude>
<open>
<close>
<reservation>
<comment>
これらのタグセットは案内すべき施設などの事物を規定する要素として捉えることができる。
【0151】
35. <object>下の <name>
タグ: <name>
属性: なし
内部: 内容として,その事物の名称を記述する。
【0152】
例: Restaulant Fujitsu
36. <object>下の <category>
タグ: <category>
属性: なし
内部: 内容として,その事物のカテゴリを記述する。
【0153】
例: restaulant, Italian,…
37. <object>下の <address>
タグ: <address>
属性: なし
内部: 内容として,その事物の住所を記述する。
【0154】
例: 東京都港区台場9-9-9
38. <object>下の <zip-code>
タグ: <zip-code>
属性: なし
内部: 内容として,その事物の郵便番号を記述する。
【0155】
例: 012-3456
39. <object>下の <country>
タグ: <country>
属性: なし
内部: 内容として,その事物が属す国名を記述する。
【0156】
例: 日本
40. <object>下の <phone>
タグ: <phone>
属性: なし
内部: 内容として,その事物の電話番号を記述する。
【0157】
例: 987-654-3210
41. <object>下の <fax>
タグ: <fax>
属性: なし
内部: 内容として,その事物のファックス番号を記述する。
【0158】
例: 999-999-9999
42. <object>下の <url>
タグ: <url>
属性: なし
内部: 内容として,その事物に関するウェブページアドレス (URL: Uniform Resource Locator)を記述する。
【0159】
例: http://www.fujisan-tv.com/
43. <object>下の <e-mail>
タグ: <e-mail>
属性: なし
内部: 内容として,その事物に関する電子メールアドレスを記述する。
【0160】
例: www@fujisan-tv.com
44. <object>下の <latitude>
タグ: <latitude>
属性: なし
内部: 内容として,その事物の緯度を記述する。
【0161】
例: 36.3.5
45. <object>下の <longitude>
タグ: <longitude>
属性: なし
内部: 内容として,その事物の経度を記述する。
【0162】
例: 133.37.46
46. <object>下の <altitude>
タグ: <altitude>
属性: なし
内部: 内容として,その事物の高度を記述する。
【0163】
例: 999m
47. <object>下の <open>
タグ: <open>
属性: なし
内部: 内容として,その事物の開店曜日や開店時間を記述する。
【0164】
例: 月曜日−金曜日, 10:00-17:00
48. <object>下の <close>
タグ: <close>
属性: なし
内部: 内容として,その事物の閉店曜日や閉店時間を記述する。
【0165】
例: 土曜日,日曜日,祝日
49. <object>下の <reservation>
タグ: <reservation>
属性: なし
内部: 内容として,その事物の予約の要否を記述する。
【0166】
例: 要予約
50. <object>下の <comment>
タグ: <comment>
属性: なし
内部: 内容として,その事物についてのコメントを記述する。
【0167】
51. <object>下の <text>
タグ: <text>
属性: duration
表示する持続時間
内部: 内容として,事物の案内の1形態として表示する text を text で記述する。
【0168】
例: 名物はイタリア人シェフの手による…
52. <object>下の <voice>
タグ: <voice>
属性: duration
発話する持続時間
内部: 内容として,事物の案内の1形態として発話する voiceを text で記述する。
【0169】
例: 名物はイタリア人シェフの手による…
53. <object>下の <audio>
タグ: <audio>
属性:
src
事物の案内の1形態として発する audioファイルを指定する。
【0170】
duration
発する持続時間
内部: なし
54. <object>下の <image>
タグ: <image>
属性:
src
事物の案内の1形態として表示する imageファイルを指定する。
【0171】
duration
表示する持続時間
内部: なし
55. <object>下の <video>
タグ: <video>
属性:
src
事物の案内の1形態として再生する videoファイルを指定する。
【0172】
duration
再生する持続時間
内部: なし
56. <inst>下の <route>
タグ: <route>
route は案内すべき経路を意味する。
【0173】
属性:
id
内部あるいは外部から参照するための ID を付与する。
【0174】
ref
内部あるいは外部の <inst> に付与された ID を記述することによって,その<inst>を参照する。
【0175】
内部: 以下のタグセットを内部に包含することができる。
【0176】
<means>
<name>
<category>
<cost>
<comment>
これらのタグセットは案内すべき経路を規定する要素として捉えることができる。あるいは,内容として,以下を記述することができる。
【0177】
thesame
これは,現地点から次の地点への経路の情報が,1つ前の地点から現地点への経路の情報と同じであることを意味する。
【0178】
57. <route> 下の <means>
タグ: <means>
属性: なし
内部: 内容として,その経路の移動手段を記述する。
【0179】
例: walk, bicycle, car, bus, train, ship, plane,…
58. <route> 下の <name>
タグ: <name>
属性: なし
内部: 内容として,その経路の名称を記述する。
【0180】
例: 国道1 号線
59. <route> 下の <category>
タグ: <category>
属性: なし
内部: 内容として,その経路のカテゴリを記述する。
【0181】
例: 一般道路,有料道路,高速道路,遊歩道,…
60. <route> 下の <cost>
タグ: <cost>
属性: なし
内部: 内容として,その経路において必要とされる費用を記述する。
【0182】
例: 540yen
61. <route> 下の <comment>
タグ: <comment>
属性: なし
内部: 内容として,その経路についてのコメントを記述する。
【0183】
62. <inst>下の <info>
タグ: <info>
infoは案内すべき情報を意味する。
【0184】
属性:
ref
内部あるいは外部の <inst> に付与された ID を記述することによって,その<inst>を参照する。
【0185】
例:
ref = "object-レインボーブリッジ#info
内部: 以下のタグセットを内部に包含することができる。
【0186】
<seq> あるいは <par>
63. <info>下の <seq>
タグ: <seq>
seq は sequential を意味する。
【0187】
<seq> は内部に含まれる項目が直列的 (sequential) に実行されることを表す。
【0188】
属性: なし
内部: 以下のタグセットあるいはそれらの任意個の任意の組み合わせを内部に包含することができる。
【0189】
<text>
<voice>
<audio>
<image>
<video>
64. <info>下の <par>
タグ: <par>
par は parallel を意味する。
【0190】
<par> は内部に含まれる項目が並列的 (parallel) に実行されることを表す。なお,<info>下においては,デフォールトを <par>とし,これによって,<par> を省略することができる,とする。
【0191】
属性: なし
内部: 以下のタグセットあるいはそれらの任意個の任意の組み合わせを内部に包含することができる。
【0192】
<text>
<voice>
<audio>
<image>
<video>
65. <seq> あるいは <par>下の <text>
タグ: <text>
属性:
ref
内部あるいは外部の <inst> に付与された ID を記述することによって,その<inst>を参照する。
【0193】
例: ref = "object-restaurant#text"
duration
表示する持続時間
内部: 内容として,案内の1形態として表示する text を text で記述する。
【0194】
例: レインボータウンツアーへようこそ!
66. <seq> あるいは <par>下の <voice>
タグ: <voice>
属性:
ref
内部あるいは外部の <inst> に付与された ID を記述することによって,その<inst>を参照する。
【0195】
例:
ref = "object-restaurant#voice"
duration
発話する持続時間
内部: 内容として,案内の1形態として発話する voiceを text で記述する。
【0196】
例: お疲れ様でした!
67. <seq> あるいは <par>下の <audio>
タグ: <audio>
属性:
ref
内部あるいは外部の <inst> に付与された ID を記述することによって,その<inst>を参照する。
【0197】
例: ref = "object-restaurant#audio"
src
案内の1形態として発する audioファイルを指定する。
【0198】
duration
発する持続時間
内部: なし
68. <seq> あるいは <par>下の <image>
タグ: <image>
属性:
ref
内部あるいは外部の <inst> に付与された ID を記述することによって,その<inst>を参照する。
【0199】
例:
ref = "object-restaurant#image"
src
案内の1形態として表示する imageファイルを指定する。
【0200】
duration
表示する持続時間
内部: なし
69. <seq> あるいは <par>下の <video>
タグ: <video>
属性:
ref
内部あるいは外部の <inst> に付与された ID を記述することによって,その<inst>を参照する。
【0201】
例:
ref = "object-restaurant#video"
src
案内の1形態として再生する videoファイルを指定する。
【0202】
duration
再生する持続時間
内部: なし
以上,本発明の実施の形態で用いる案内用スクリプトの言語仕様について詳細に説明したので,この言語仕様に基づいて記述された案内用スクリプトを解釈し実行するシステムについては,当業者であれば上記説明から容易に構築できることはあきらかである。
【符号の説明】
【0203】
10 端末
11 操作入力部
12 ネットワークアクセス部
13 メディアアクセス部
14 スクリプト変換部
15 インストラクション実行部
16 状況獲得部
17 状況生成部
18 制約調整部
19 案内出力部
20 データベース部
31 ネットワーク
32 メディア

【特許請求の範囲】
【請求項1】
記憶装置あるいは記憶媒体から取得した所定の場所に関する説明情報を含む案内構造情報,または,操作入力部から入力された該案内構造情報を修整する案内構造情報修整装置であって,
前記所定場所へ到達する時刻を指定する指定到達時刻情報,該所定場所に滞在する時間を指定する指定滞在時間情報,該所定場所を出発する時刻を指定する指定出発時刻情報,これら該指定到達時刻情報,該指定滞在時間情報あるいは該指定出発時刻情報を守るべきか否かを指定する重要度情報が定義された案内構造情報の記憶手段と,
前記案内構造情報に含まれる前記指定到達時刻情報と前記指定出発時刻情報の差分を算出し,該差分が前記指定滞在時間情報と一致するか否かを判定する判定手段と,
前記判定手段によって不一致が認められた場合は,前記案内構造情報の前記重要度情報に指定された内容に応じて,該指定到達時刻情報,該指定滞在時間情報,該指定出発時刻情報のいずれかを調整する調整手段と
を備えることを特徴とする案内構造情報修整装置。
【請求項2】
請求項1記載の案内構造情報修整装置であって,
前記調整手段は,前記案内構造情報の前記重要度情報を判定し,前記指定滞在時間情報を守るべき旨を示していない場合は,該指定滞在時間情報を修整し,他方,守るべき旨を示している場合は,前記指定到達時刻情報あるいは前記指定出発時刻情報を修整する
ことを特徴とする案内構造情報修整装置。
【請求項3】
請求項1記載の案内情報修整装置であって,
前記調整手段は,前記案内構造情報の前記重要度情報を判定し,前記指定滞在時間情報と前記指定出発時刻情報を守るべき旨が示され,かつ,前記指定到達時刻情報は守るべき旨が示されていない場合は,該指定到達時刻情報を修整する
ことを特徴とする案内構造情報修整装置。
【請求項4】
請求項1記載の案内構造情報修整装置であって,
前記調整手段は,前記案内構造情報の前記重要度情報を識別し,前記指定滞在時間情報を守るべき旨が示され,かつ,前記指定出発時刻情報を守るべき旨が示されていない場合は,該指定出発時刻情報を修整する
ことを特徴とする案内構造情報修整装置。
【請求項5】
所定の場所へ到達する時刻を指定する指定到達時刻情報,該所定場所に滞在する時間を指定する指定滞在時間情報,該所定場所を出発する時刻を指定する指定出発時刻情報,これら該指定到達時刻情報,該指定滞在時間情報あるいは該指定出発時刻情報を守るべきか否かを指定する重要度情報が定義された案内構造情報を,記憶装置や記憶媒体から取得し,あるいは,操作入力部の入力から取得して,該案内構造情報を修整する案内構造情報修整方法であって,
コンピュータが,
前記案内構造情報に含まれる前記指定到達時刻情報と前記指定出発時刻情報の差分を算出し,該差分が前記指定滞在時間情報と一致するか否かを判定する判定ステップと,
前記判定ステップにて不一致が認められた場合は,前記案内構造情報の前記重要度情報に指定された内容に応じて,該指定到達時刻情報,該指定滞在時間情報,該指定出発時刻情報のいずれかを調整する調整ステップと
を実行することを特徴とする案内構造情報修整方法。
【請求項6】
請求項5記載の案内構造情報修整方法であって,
前記コンピュータは,
前記調整ステップにて,前記案内構造情報の前記重要度情報を判定し,前記指定滞在時間情報を守るべき旨を示していない場合は,該指定滞在時間情報を修整し,他方,守るべき旨を示している場合は,前記指定到達時刻情報あるいは前記指定出発時刻情報を修整する
ことを特徴とする案内構造情報修整方法。
【請求項7】
請求項5記載の案内構造情報修整方法であって,
前記コンピュータは,
前記調整ステップにて,前記案内構造情報の前記重要度情報を判定し,前記指定滞在時間情報と前記指定出発時刻情報を守るべき旨が示され,かつ,前記指定到達時刻情報は守るべき旨が示されていない場合は,該指定到達時刻情報を修整する
ことを特徴とする案内構造情報修整方法。
【請求項8】
請求項5記載の案内構造情報修整方法であって,
前記コンピュータは,
前記調整ステップにて,前記案内構造情報の前記重要度情報を判定し,前記指定滞在時間情報を守るべき旨が示され,かつ,前記指定出発時刻情報は守るべき旨が示されていない場合は,該指定出発時刻情報を修整する
ことを特徴とする案内構造情報修整方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−44089(P2010−44089A)
【公開日】平成22年2月25日(2010.2.25)
【国際特許分類】
【出願番号】特願2009−254827(P2009−254827)
【出願日】平成21年11月6日(2009.11.6)
【分割の表示】特願2001−33315(P2001−33315)の分割
【原出願日】平成13年2月9日(2001.2.9)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】