(57)【要約】【課題】  経路などの案内情報を提示する装置に関し，出張，保守，観光，旅行などのスケジュールをより正確に記述できるとともに，実際の状況に対応した案内をすることができるようにする。【解決手段】  操作入力部11は案内用スクリプトを選択し，スクリプト変換部14は当該案内用スクリプトを案内用の構造化データに変換する。インストラクション実行部15は案内用の構造化データに基づいてデータベース部20を参照して経路概要を表示後，状況獲得部16から利用者の現在地点・時刻を取得し，インストラクション処理をする。制約調整部18は，案内用の構造化データの指定到着時刻と指定出発時刻の差分を求め，差分が指定滞在時間と一致するか否かを判定し，不一致と認めた場合は案内用の構造化データの制約情報の内容に応じて指定到達時刻，指定滞在時間，指定出発時刻のいずれかを調整する。【選択図】  図１
2010044089.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置あるいは記憶媒体から取得した所定の場所に関する説明情報を含む案内構造情報，または，操作入力部から入力された該案内構造情報を修整する案内構造情報修整装置であって，
前記所定場所へ到達する時刻を指定する指定到達時刻情報，該所定場所に滞在する時間を指定する指定滞在時間情報，該所定場所を出発する時刻を指定する指定出発時刻情報，これら該指定到達時刻情報，該指定滞在時間情報あるいは該指定出発時刻情報を守るべきか否かを指定する重要度情報が定義された案内構造情報の記憶手段と，
前記案内構造情報に含まれる前記指定到達時刻情報と前記指定出発時刻情報の差分を算出し，該差分が前記指定滞在時間情報と一致するか否かを判定する判定手段と，
前記判定手段によって不一致が認められた場合は，前記案内構造情報の前記重要度情報に指定された内容に応じて，該指定到達時刻情報，該指定滞在時間情報，該指定出発時刻情報のいずれかを調整する調整手段と
を備えることを特徴とする案内構造情報修整装置。
【請求項２】
請求項１記載の案内構造情報修整装置であって，
前記調整手段は，前記案内構造情報の前記重要度情報を判定し，前記指定滞在時間情報を守るべき旨を示していない場合は，該指定滞在時間情報を修整し，他方，守るべき旨を示している場合は，前記指定到達時刻情報あるいは前記指定出発時刻情報を修整する
ことを特徴とする案内構造情報修整装置。
【請求項３】
請求項１記載の案内情報修整装置であって，
前記調整手段は，前記案内構造情報の前記重要度情報を判定し，前記指定滞在時間情報と前記指定出発時刻情報を守るべき旨が示され，かつ，前記指定到達時刻情報は守るべき旨が示されていない場合は，該指定到達時刻情報を修整する
ことを特徴とする案内構造情報修整装置。
【請求項４】
請求項１記載の案内構造情報修整装置であって，
前記調整手段は，前記案内構造情報の前記重要度情報を識別し，前記指定滞在時間情報を守るべき旨が示され，かつ，前記指定出発時刻情報を守るべき旨が示されていない場合は，該指定出発時刻情報を修整する
ことを特徴とする案内構造情報修整装置。
【請求項５】
所定の場所へ到達する時刻を指定する指定到達時刻情報，該所定場所に滞在する時間を指定する指定滞在時間情報，該所定場所を出発する時刻を指定する指定出発時刻情報，これら該指定到達時刻情報，該指定滞在時間情報あるいは該指定出発時刻情報を守るべきか否かを指定する重要度情報が定義された案内構造情報を，記憶装置や記憶媒体から取得し，あるいは，操作入力部の入力から取得して，該案内構造情報を修整する案内構造情報修整方法であって，
コンピュータが，
前記案内構造情報に含まれる前記指定到達時刻情報と前記指定出発時刻情報の差分を算出し，該差分が前記指定滞在時間情報と一致するか否かを判定する判定ステップと，
前記判定ステップにて不一致が認められた場合は，前記案内構造情報の前記重要度情報に指定された内容に応じて，該指定到達時刻情報，該指定滞在時間情報，該指定出発時刻情報のいずれかを調整する調整ステップと
を実行することを特徴とする案内構造情報修整方法。
【請求項６】
請求項５記載の案内構造情報修整方法であって，
前記コンピュータは，
前記調整ステップにて，前記案内構造情報の前記重要度情報を判定し，前記指定滞在時間情報を守るべき旨を示していない場合は，該指定滞在時間情報を修整し，他方，守るべき旨を示している場合は，前記指定到達時刻情報あるいは前記指定出発時刻情報を修整する
ことを特徴とする案内構造情報修整方法。
【請求項７】
請求項５記載の案内構造情報修整方法であって，
前記コンピュータは，
前記調整ステップにて，前記案内構造情報の前記重要度情報を判定し，前記指定滞在時間情報と前記指定出発時刻情報を守るべき旨が示され，かつ，前記指定到達時刻情報は守るべき旨が示されていない場合は，該指定到達時刻情報を修整する
ことを特徴とする案内構造情報修整方法。
【請求項８】
請求項５記載の案内構造情報修整方法であって，
前記コンピュータは，
前記調整ステップにて，前記案内構造情報の前記重要度情報を判定し，前記指定滞在時間情報を守るべき旨が示され，かつ，前記指定出発時刻情報は守るべき旨が示されていない場合は，該指定出発時刻情報を修整する
ことを特徴とする案内構造情報修整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，マークアップ言語の記述を用いて道案内サービス，乗り換え案内サービスなどの案内に関する情報を提供する案内構造情報修整装置およびその方法に関し，特に，カーナビゲーションシステム，パーソナルコンピュータ（ＰＣ），ＰＤＡ（Personal Digital Assistant）やＰＤＣ(Personal Digital Cellular；携帯電話，ＰＨＳなど）等に適用するものである。
【背景技術】
【０００２】
従来，道案内サービス，乗り換え案内サービスなどでは，案内してほしい場所を指定すると，その場所に関するデータを羅列して提示するものが多く，その内容は，その場所に関する情報（地点，経路，施設等）だけであった。また，ある特定の時間に情報を送信する技術があるが，情報そのものに，その情報の提示等の条件を付けて，その条件に応じて処理するシステムはなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
そこで，本発明者等は，特願平１１−１１３１９１号「案内情報提示装置，案内情報提示処理方法，案内情報提示プログラムを記録した記録媒体，案内用スクリプトの記録媒体，案内用スクリプト生成装置，案内用スクリプトを用いた運行管理装置，方法およびそのプログラム記録媒体，案内用スクリプトを用いた移動時の時間調整装置，方法およびそのプログラム記録媒体，案内プラン作成装置，方法およびそのプログラム記録媒体，案内情報提供装置，方法およびそのプログラム記録媒体」において，時間情報または／および場所情報と，提示すべき時間または／および場所に応じて出力すべき案内情報とを含むインストラクションの系列を記述することができる案内用スクリプトと，それを解釈し実行するシステムを提案した。
【０００４】
これにより，地点，経路，施設等の情報だけなく，ある場所までの経路に沿った実際的な案内あるいは仮想的な案内を行え，さらには場所の移動だけではなく，時間の経過に伴った案内を行うことができ，かつ，さまざまなシステムや装置等で利用できる形式で案内を提供することが可能になった。例えば，行き先のみを指定するだけで，経路に沿った経由地点で「この施設は○○で有名です。」のような案内や，目的地への到着３分前に「あと３分で△△に到着です。」というような案内を，提示すべき時間／場所に従って提示し，またそのための案内データを作成し，またそれを容易に配布することができる。
【０００５】
本発明は，先に提供した案内情報を提示する技術をさらに発展，改良させ，有用性をより一層増大させることを目的としており，時間情報に記述された出発時刻，滞在時間，到着時刻などの時刻や時間がどの程度重要で厳守しなければならないかというような時間に関する制約や，場所情報に記述された場所がどの程度重要で必ず経由しなければならないか，または時間によっては経由しなくてもよいかというような場所に関する制約を記述することができ，それに基づいて調整した結果に従って案内情報を出力することにより，提示すべき時間および場所に関して柔軟性のある案内情報の提示手段を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記のような課題を解決するため，本発明は，記憶装置あるいは記憶媒体から取得した所定の場所に関する説明情報を含む案内構造情報，または，操作入力部から入力された該案内構造情報を修整する案内構造情報修整装置であって，前記所定場所へ到達する時刻を指定する指定到達時刻情報，該所定場所に滞在する時間を指定する指定滞在時間情報，該所定場所を出発する時刻を指定する指定出発時刻情報，これら該指定到達時刻情報，該指定滞在時間情報あるいは該指定出発時刻情報を守るべきか否かを指定する重要度情報が定義された案内構造情報の記憶手段と，前記案内構造情報に含まれる前記指定到達時刻情報と前記指定出発時刻情報の差分を算出し，該差分が前記指定滞在時間情報と一致するか否かを判定する判定手段と，前記判定手段によって不一致が認められた場合は，前記案内構造情報の前記重要度情報に指定された内容に応じて，該指定到達時刻情報，該指定滞在時間情報，該指定出発時刻情報のいずれかを調整する調整手段とを備える。
【０００７】
また，上記発明に関連する発明は，記憶装置あるいは記憶媒体から取得した所定の場所に関する説明情報を含む案内情報，または，操作入力部から入力された該案内情報を修整する案内情報修整装置であって，前記所定場所を説明する説明情報に対応づけて，該所定場所の位置を指定する指定位置情報，該所定場所へ到達する時刻を指定する指定到達時刻情報，該所定場所に滞在する時間を指定する指定滞在時間情報，該所定場所を出発する時刻を指定する指定出発時刻情報，該指定滞在時間情報あるいは該指定出発時刻情報を守るべきか否かを指定する重要度情報が定義された案内情報の記憶手段と，現在地点の位置情報を獲得し，該獲得した位置情報と前記案内情報の前記指定位置情報を比較し，該２つの位置情報が一致する場合は，さらに，現在時刻と前記案内情報の前記指定到達時刻情報の差異を判定する判定手段と，前記判定手段によって前記差異が認められた場合は，現在時刻と前記指定到達時刻情報の前後関係，および，前記案内情報に含まれる前記指定滞在時間情報あるいは前記指定出発時刻情報の重要度情報に基づいて，該指定滞在時間情報または該指定出発時刻情報を調整する調整手段とを備える。
【０００８】
前述した特願平１１−１１３１９１号に係る発明との主な相違点は，以下のとおりである。
・本発明及び関連する発明では，案内用スクリプトに，時間情報または／および場所情報に関する制約情報を記述することができる。
・本発明及び関連する発明は，状況獲得または状況生成によって得られた現在時刻または／および現在地点と，案内情報を提示するための時間情報または／および場所情報と，前記の時間情報または／および場所情報に関する制約情報とを用いて，前記の時間情報または／および場所情報に記述された時間または／および場所を調整する手段を持つ。
・本発明及び関連する発明は，入力され調整された案内用スクリプトを解釈し実行する手段を持つ。
【０００９】
上記のような課題を解決するための手段により，例えば出張，保守，観光，旅行などの目的で，ある時刻や時間は必ず厳守しなければならないが，ある時刻や時間は必ずしも厳守しなくともよい，といった時間に関する制約や，ある場所は必ず経由しなければならないが，ある場所は必ずしも経由しなくともよい，といった場所に関する制約が存在する場合に，このような時間や場所に関する制約情報をこれらの案内用スクリプトに記述し，状況獲得または状況生成によって得られた現在時刻または／および現在地点と，前記の制約情報とを用いて，前記の時間情報または／および場所情報に記述された時間または／および場所を調整して，案内用スクリプトによる指示を実行することにより，状況に応じた適切な案内をすることが可能になる。
【発明の効果】
【００１０】
以上説明したように，本発明及び関連する発明によれば，出張，保守，観光，旅行などのスケジュールをより正確に記述できるとともに，実際の状況に対応した案内を提示することが可能になるという効果がある。
【図面の簡単な説明】
【００１１】
【図１】本発明のシステム構成例を示す図である。
【図２】解釈時の制約調整処理の処理フローを示す図である。
【図３】timeのimportanceの設定による修正の例を示す図である。
【図４】実行時の制約調整処理の処理フロー（１）を示す図である。
【図５】実行時の制約調整処理の処理フロー（２）を示す図である。
【図６】端末の表示画面の例を示す図である。
【発明を実施するための形態】
【００１２】
〔案内用スクリプトの概要〕
本発明では，種々の形式で記録される時間，場所，案内情報のデータ（テキストデータ，画像データ，音声データ等）のインストラクションの系列をマークアップ言語の記述形式を用いて記述しておく。
【００１３】
インストラクションとは，時間（例えば，出発時刻，経由時刻，到着時刻，開始時刻，終了時刻等），場所（例えば，出発地点，経由地点，到着地点，交差点，乗換地点，施設の所在地等），各種メディアデータ（地図，文字，音声，音楽，画像，映像等）の１ショットや部分データなどを含む案内情報を，構成要素とするスクリプトの単位である。例えば，ある経路上の地点Ａにおいて，「地点Ａにいるときには，その地点Ａを説明する音声データ（aaa.wav ）および画像データ（xxx.jpg ）を出力する」ということを指示する情報をいう。
【００１４】
このようなインストラクションの系列を，例えばＸＭＬ（eXtensible Markup Language) などのマークアップ言語の記述様式を用いて記述したものを，本発明では，案内用スクリプト（またはナビスクリプト）という。
【００１５】
以下の例で説明する案内用スクリプトは，Ｗ３Ｃ(World Wide Web Consortium) において制定された拡張可能なマークアップ言語ＸＭＬ(eXtensible Markup Language)のサブセットとして定義される。以下，この案内用スクリプト言語の概要について説明する。
【００１６】
案内用スクリプトは，タグ，属性，および内容を用いて構成され，例えば，後述する案内用スクリプトの具体例（example-04＿06.nav）に示すように記述される。ここで，例えば，<naviscript version = "0.3">や </naviscript>あるいは <title>  や </title> のように，< と >で括られたものをタグという。タグのうち，</で始まらないものを開始タグといい，</で始まるものを終了タグという。開始タグと終了タグは <naviscript version = "0.3"> と </naviscript>あるいは <title>と</title>のように，対として使用される。この対をタグセットと呼ぶことにする。
【００１７】
また，<naviscript version = "0.3">における versionのようなものを，そのタグの属性といい，0.3 のようなものを，その属性の値という。
【００１８】
案内用スクリプトは，対であるタグセットの階層構造によって記述される。タグセットの間に挟まれた部分に，タグセットがない場合，その部分を，そのタグの内容という。
【００１９】
例えば，以下のような案内用スクリプトがあったとする。
【００２０】
<inst>
<time>  ○  </time>
<info>  □  </info>
</inst>
この案内用スクリプトで，<inst>と</inst> の間の<time>と</time> で囲まれた部分（○）と，<info></info> で囲まれた部分（□）は，「○の時刻に，□の案内情報を出力する」ということを意味する。
【００２１】
また，
<inst>
<point> ○  </point>
<info>  □  </info>
</inst>
というような案内用スクリプトにおいて，<inst>と</inst> の間の<point> と</point>で囲まれた部分（○）と，<info></info> で囲まれた部分（□）は，「○の場所で，□の案内情報を出力する」ということを意味する。
【００２２】
本発明では，詳しくは後述するが，以上のような<time>，<point> の記述において，importance = "high" とか importance = "low" といった属性による制約情報の記述を可能とし，これによって時間，場所の自動調整が行われるようにしている。
【００２３】
〔装置の構成例〕
図１は，本発明の構成例を示すブロック図である。
【００２４】
案内用スクリプトは，外部のサーバ装置等に記憶され，ネットワーク３１を介して端末１０に読み込まれる。また，磁気ディスクやＣＤ−ＲＯＭ等の各種メディア３２に記憶され，端末１０に読み込まれることもある。また，端末１０の利用者が直接入力することもある。
【００２５】
端末１０の操作入力部１１は，利用者の操作入力に対し，ネットワークアクセス部１２を介して，外部のサーバ装置が管理している案内用スクリプトから，利用者の所望するものを選択して，またはメディアアクセス部１３を介して各種メディア３２に記憶されている案内用スクリプトから，利用者の所望するものを選択して，選択した案内用スクリプトを入力し，スクリプト変換部１４へ渡す。あるいは，操作入力部１１を介して利用者から直接入力してスクリプト変換部１４へ渡してもよい。
【００２６】
スクリプト変換部１４は，その案内用スクリプトを構文解析して，案内用の構造化データに変換する。なお，この案内用の構造化データは，実質的には案内用スクリプトと同等のものであるので，スクリプト変換部１４による変換は必須ではない。
【００２７】
インストラクション実行部１５は，利用者が案内用スクリプトを実際に移動中に利用している状況の場合（ナビゲーションモードの場合）には，状況獲得部１６から利用者の現在の状況（現在時刻や現在地点等）を得て案内用の構造化データの経路情報を補完し，その状況に合わせて案内用の構造化データをもとに案内情報を案内出力部１９から出力する。状況獲得部１６による現在地点の獲得などは，例えばＧＰＳ（Global Positionig System）等を用いることができる。また，ある２つの地点が案内用スクリプトによって与えられたときに，その間の経路は，例えばデータベース部２０に格納された地図情報を用いることにより，カーナビゲーションシステム等で用いられている既知の経路探索技術を利用して求めることができる。
【００２８】
利用者が案内用スクリプトを仮想的な状況で利用する場合（シミュレーションモードの場合）には，インストラクション実行部１５は，状況生成部１７から仮想の現在時刻または仮想の現在地点を得て案内用の構造化データの経路情報を補完し，案内出力部１９から案内を出力する。仮想の現在時刻は，例えば開始時刻と時間を進める単位である時間ステップ幅とを利用者に指定させるか，あらかじめシステム内で設定された時間ステップ幅や条件等によって生成することができる。また，仮想的な現在場所（現在どこにいるかの場所情報）は，例えば案内用スクリプトに記述された乗り物の速度や利用者が指定した移動速度などと，仮想的な現在時刻の進み具合から自動的に生成することができる。
【００２９】
ナビゲーションモードまたはシミュレーションモードのいずれの動作モードを選択するかは，操作入力部１１からの入力によって決める。
【００３０】
制約調整部１８では，状況獲得部１６または状況生成部１７から得た現在時刻・現在地点と，案内用の構造化データの時間情報・場所情報と，それらに関する制約情報とを用いて，所定の調整条件に従って，時間情報・場所情報を修正して，時間・場所を調整する。
【００３１】
例えば，東京駅から京橋インターチェンジ（ＩＣ）を経由してレインボーブリッジへ向かう○○ツアーというような経路案内を行う案内用スクリプトがあり，この案内用スクリプトには，
(1) 東京駅で音声データ「東京駅です」の出力，
(2) その２分後に音声データ「○○ツアーへようこそ」の出力，およびツアー概要の画像データの表示，
(3) 京橋ＩＣで音声データ「京橋ＩＣです」の出力，
(4) レインボーブリッジの３ｋｍ前で音声データ「まもなくレインボーブリッジです」の出力，
(5) レインボーブリッジで音声データ「レインボーブリッジです」の出力，
……，を指示するインストラクションが記述されていたとする。
【００３２】
操作入力部１１が，利用者の指示により，この案内用スクリプトをネットワーク３１等を介して案内用スクリプト管理センタから読み出し，スクリプトの実行を開始すると，スクリプト変換部１４は案内用スクリプトを変換して案内用の構造化データを生成する。インストラクション実行部１５は，この案内用の構造化データにもとづいて，まずインストラクション中の地点や経路に関する記述を抽出し，地図情報等が格納されたデータベース部２０を参照して経路概要を表示する。その後，ＧＰＳ（Global Positionig System）等による状況獲得部１６から利用者の現在地点や現在時刻を取得し，それに伴ってインストラクションを処理する。これにより，利用者がいる地点が東京駅では「東京駅です」と，それから２分経過したときには「○○ツアーへようこそ」と，案内出力部１９によって音声で案内し，ツアー概要の画像データを表示する。さらに，京橋ＩＣでは「京橋ＩＣです」と，レインボーブリッジの３ｋｍ前では「まもなくレインボーブリッジです」と，レインボーブリッジに到着したときには「レインボーブリッジです」と音声で案内する。したがって，利用者は，○○ツアーの経路に沿って移動している際に適切なときに適切なところで，適切な案内を受けることができる。
【００３３】
この案内用スクリプトは，既存のマークアップ言語と同様に読み書きがしやすく，検索や処理が容易である。したがって，作成者にとっては, 案内用スクリプトのデータが何を意味するのか，またそこに記述されたインストラクションの系列が案内すべき順序に従って記載されているものであることが明白となる。
【００３４】
また，インストラクションの並び替え，直列化，並列化，最適化等や，データの構造化（階層化，集団化）等を行うことができ，さまざまな時間と場所に関する案内を提示することができ，案内情報の作成，修正等を容易に行うことができる。
【００３５】
また，多数の案内用スクリプトを用意し提供するセンタ等から取得した案内用スクリプトを自端末に対応した案内用の構造化データに変換するため，１つの案内用スクリプトをさまざまな装置，システムで利用することができる。
【００３６】
一方，利用者にとっても，インストラクションの系列（時間系列または／および場所系列）にそって案内が提示されることが明白となり，より状況に合った案内を適切なタイミングで得られるようになる。さらに，ナビゲーションモードで実際の位置に沿って案内情報を得るだけでなく，シミュレーションモードによりある経路の案内を仮想的に体験することができる。
【００３７】
この案内用スクリプトは，既存のテキストエディタを用いて容易に作成・編集することができ，また生成した案内用スクリプトをセンタ等に登録しておくことにより，この案内用スクリプトをネットワーク等を介して，誰でもどこでも案内情報を利用することができるようになる。
【００３８】
〔制約調整部の処理の概要〕
以下，図１に示すシステムの構成におけるもっとも主要な部分である制約調整部１８の処理および動作アルゴリズムを，図２〜図５を用いて説明する。制約調整部１８による処理の重要な点は，案内用スクリプト（案内用の構造化データ）の解釈時に，案内用スクリプトの時間情報または／および場所情報に記述された時間または／および場所に矛盾があった場合に，ここでは importance と呼ぶ制約情報の記述に従って，矛盾が解消されるように調整することである。また，案内用スクリプトによる案内の実行時に，実際の状況に応じて，案内用スクリプトに記述されたスケジュール通りに案内を進行させることが困難または不可能になった場合に，例えばある地点を出発させる時刻を遅らせるとか，ある地点への立ち寄りを省略した案内に変更するとかして，スケジュールを自動調整する機能を持つことである。
【００３９】
（ａ）解釈時の制約調整処理
図２に，案内用スクリプトの解釈時の制約調整処理の処理フローを示す。制約調整部１８では，案内用スクリプト（案内用の構造化データ）の解釈時に，各々の time の到着時刻，滞在時間，出発時刻に矛盾があれば（ステップＳ１），すなわち，ある地点において到着時刻，滞在時間，出発時刻が３つとも指定され，かつ，出発時刻−到着時刻≠滞在時間の場合には，timeの importance の設定に応じて，到着時刻，滞在時間，出発時刻のいずれかを修正する（ステップＳ２）。図３に，timeの importance の設定にもとづいた修正の例を示す。
【００４０】
(1) 例えば，案内用の構造化データの設定が，
arrive-time               = "11:00"
period-of-stay            = "2hour"
departure-time            = "14:00"
である場合には，出発時刻ｄ−到着時刻ａ＝滞在時間ｐではないので矛盾が生じている。このとき，到着時刻ａ（arrive-time ），滞在時間ｐ（period-of-stay），出発時刻ｄ（departure-time）のいずれにもtime.importance = "high"が設定されていないので，到着時刻ａ，出発時刻ｄは修正せずに，ｐ＝ｄ−ａとして，滞在時間ｐについて，
period-of-stay := "3hous"
に修正する。
【００４１】
(2) また，例えば，案内用の構造化データの設定が，
arrive-time               = "11:00"
period-of-stay            = "2hour"
departure-time            = "14:00"
departure-time.importance = "high"
である場合には，出発時刻ｄにtime.importance = "high"が設定されているので，到着時刻ａ，出発時刻ｄは修正せずに，ｐ＝ｄ−ａとして，滞在時間ｐについて，
period-of-stay := "3hous"
に修正する。
【００４２】
(3) 例えば，案内用の構造化データの設定が，
arrive-time               = "11:00"
period-of-stay            = "2hour"
departure-time            = "14:00"
period-of-stay.importance = "high"
である場合には，滞在時間ｐにtime.importance = "high"が設定されているので，到着時刻ａ，滞在時間ｐは修正せずに，ｄ＝ａ＋ｐとして，出発時刻ｄについて，
departure-time := "13:00"
に修正する。
【００４３】
(4) 例えば，案内用の構造化データの設定が，
arrive-time               = "11:00"
period-of-stay            = "2hour"
departure-time            = "14:00"
arrive-time.importance    = "high"
である場合には，到着時刻ａにtime.importance = "high"が設定されているので，到着時刻ａ，出発時刻ｄは修正せずに，ｐ＝ｄ−ａとして，滞在時間ｐについて，
period-of-stay := "3hous"
に修正する。
【００４４】
(5) 例えば，案内用の構造化データの設定が，
arrive-time               = "11:00"
period-of-stay            = "2hour"
departure-time            = "14:00"
period-of-stay.importance = "high"
departure-time.importance = "high"
である場合には，滞在時間ｐ，出発時刻ｄにtime.importance = "high"が設定されているので，滞在時間ｐ，出発時刻ｄは修正せずに，ａ＝ｄ−ｐとして，到着時刻ａについて，
arrive-time    := "12:00"
に修正する。
【００４５】
(6) 例えば，案内用の構造化データの設定が，
arrive-time               = "11:00"
period-of-stay            = "2hour"
departure-time            = "14:00"
arrive-time.importance    = "high"
departure-time.importance = "high"
である場合には，到着時刻ａ，出発時刻ｄにtime.importance = "high"が設定されているので，到着時刻ａ，出発時刻ｄは修正せずに，ｐ＝ｄ−ａとして，滞在時間ｐについて，
period-of-stay := "3hous"
に修正する。
【００４６】
(7) 例えば，案内用の構造化データの設定が，
arrive-time               = "11:00"
period-of-stay            = "2hour"
departure-time            = "14:00"
arrive-time.importance    = "high"
period-of-stay.importance = "high"
である場合には，到着時刻ａ，滞在時間ｐにtime.importance = "high"が設定されているので，到着時刻ａ，滞在時間ｐは修正せずに，ｄ＝ａ＋ｐとして，出発時刻滞ｄについて，
departure-time:= "13:00"
に修正する。
【００４７】
(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"
である場合には，到着時刻ａ，滞在時間ｐ，出発時刻ｄのいずれにもtime.importance = "high"が設定されているで，到着時刻ａ，出発時刻ｄは修正せずに，ｐ＝ｄ−ａとして，滞在時間ｐについて，
period-of-stay := "3hous"
に修正する。
【００４８】
（ｂ）実行時の制約調整処理
図４および図５に，実行時の制約調整処理の処理フローを示す。
【００４９】
制約調整部１８では，実行時に，状況獲得部１６または状況生成部１７から得た現在時刻・現在地点と，案内用の構造化データの時間情報・場所情報とを比較して，この地点（point ）の到着時刻（arrive-time ）に対して余裕ができた場合には，以下の処理を行う。
【００５０】
(1) 案内用の構造化データの設定が，departure-time: importance = low  かつ  period-of-stay: importance = low/high であれば（ステップＳ１１），departure-timeから余裕分を減算するか，またはperiod-of-stayに余裕分を加算するか，のいずれかの処理を行う（ステップＳ１２）。例えば，
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
に修正するか，のいずれかの処理を行う。出発時刻を修正するか，滞在時間を修正するかは，あらかじめ設定された指定に従ってもよいし，その都度，利用者に問い合わせてもよい。
【００５１】
(2) また，案内用の構造化データの設定が，departure-time: importance = high かつ  period-of-stay: importance = low/high であれば（ステップＳ１３），period-of-stayに余裕分を加算する（ステップＳ１４）。例えば，
arrive-time               = "11:00"
period-of-stay            = "3hour"
departure-time            = "14:00"
と設定されていたが，10:00 に到着したため 1hourの余裕ができた場合には，
period-of-stay := 3hour + 1hour = 4hour
に修正する。
【００５２】
実行時に，状況獲得部１６または状況生成部１７から得た現在時刻・現在地点と，案内用の構造化データの時間情報・場所情報を比較して，この pointのarrive-time に対して間に合わない場合には，以下の処理を行う。
【００５３】
(1) 案内用の構造化データの設定が，departure-time: importance = low  かつ  period-of-stay: importance = lowであれば（ステップＳ２１），departure-timeに遅延分を加算するか，period-of-stayから遅延分を可能な限り減算し，かつdeparture-timeを減算できなかった分だけ加算するか，のいずれかの処理を行う（ステップＳ２２）。例えば，
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
に修正するか，のいずれかの処理を行う。
【００５４】
また，15:00 に到着したため，4hour の遅れがでた場合には，
departure-time := 14:00 + 4hour = 18:00
に修正するか，または，
period-of-stay := 3hour - 3hour = 0hour ，
departure-time := 14:00 + 1hour = 15:00
に修正するか，のいずれかの処理を行う。
【００５５】
(2) 案内用の構造化データの設定が，departure-time: importance = low  かつ  period-of-stay: importance = high であれば（ステップＳ２３），departure-timeに遅延分を加算する（ステップＳ２４）。例えば，
arrive-time               = "11:00"
period-of-stay            = "3hour"
departure-time            = "14:00"
と設定されていたが，12:00 に到着したため，1hour の遅れがでた場合には，
departure-time := 14:00 + 1hour = 15:00
に修正する。
【００５６】
(3) 案内用の構造化データの設定が，departure-time: importance = high
かつ  point: importance = low であれば（ステップＳ２５），period-of-stayから遅延分を可能な限り減算し，かつdeparture-timeを減算できなかった分だけ加算するか，そのpoint への経由を省略か，のいずれかの処理を行う（ステップＳ２６）。例えば，
arrive-time               = "11:00"
period-of-stay            = "3hour"
departure-time            = "14:00"
と設定されていたが，12:00 に到着したため，1hour の遅れがでた場合には，
period-of-stay := 3hour - 1hour = 2hour
に修正，または，そのpoint への経由を省略，のいずれかの処理を行う。
【００５７】
また，15:00 に到着したため，4hour の遅れがでた場合には，
period-of-stay := 3hour - 3hour = 0hour ，
departure-time := 14:00 + 1hour = 15:00
に修正，または，そのpoint への経由を省略，のいずれかの処理を行う。
【００５８】
(4) 案内用の構造化データの設定が，departure-time: importance = high かつ  point: importance = highであれば（ステップＳ２７），period-of-stayから遅延分を可能な限り減算し，かつdeparture-timeを減算できなかった分だけ加算する（ステップＳ２８）。例えば，
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
に修正する。
【００５９】
図６に，端末１０の表示画面の例を示す。表示画面には，スケジュールに従い，移動予定場所およびその場所への到着予定時刻，移動手段，地図などを表示するとともに，利用者が現在移動中の地点を示す。図６に示すような海浜幕張から出発するレインボータウンツアーの移動スケジュールで，現在利用者が，東京駅から八重洲に向けて徒歩で移動中であり，そのときの現在時刻が表示されている。この場合，１０：３０には八重洲から車で出発する予定であるにもかかわらず，現時点（１０：４５）で，間に合わないことが明らかであるので，表示画面には，「次の場所に間に合いません。重要度に応じて再スケジュールをしますか？」というメッセージを表示する。これに対して，利用者が「Ｙｅｓ」を答えると，あらかじめ案内用スクリプトに記述された制約情報にもとづき上述したような時間調整を行う。
【００６０】
〔案内用スクリプトの具体例〕
以下に，案内用スクリプトの具体例を示す。この案内用スクリプトの記述に用いるタグの詳細な仕様については，本明細書の後半の部分で列挙するので参照されたい。
<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>
以上のような案内用スクリプトは，スクリプト変換部１４により，案内用の構造化データへ変換される。以下に構造化データへの変換の具体例を示す。
[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> までの部分では，案内用スクリプトのタイトル，バージョン等の時を定義し，この案内用スクリプトで定義されるインストラクションを定義している。
【００６１】
次に，案内用スクリプトの</navi> 以降では，各インストラクションの内容を定義している。例えば，先頭のインストラクションである"inst-info- はじめに" では，出発時刻から５秒経過したら，「レインボータウンツアーへようこそ！」という案内文を出力することを示している。
【００６２】
次のインストラクション"inst-point-海浜幕張駅" は，９時に海浜幕張駅にいて，京葉線で移動することを示す。
【００６３】
次のインストラクション"inst-point-東京駅" は，
<time importane="high"> 10:00 </time>
<point importance="high">
と指定され，10:00 に必ず東京駅に到着していることが重要であることを示している。
【００６４】
１０番目のインストラクション"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>
と指定され，１１番目のインストラクション"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>
と指定されている。これは，台場ＩＣの到着時刻が11:30 から13:30 の間ならばレストランの案内情報を出力し，台場ＩＣの到着時刻が11:30 前または13:30 以降ならばカフェの案内情報を出力する，ことを意味する。
【００６５】
これらのインストラクションにおいて，案内すべき時刻を意味する<time>に，その重要性を指定する属性importanceが指定されている。
【００６６】
importanceは，その時刻の重要性を指定する属性であり，high,lowの値をとり, デフォールト値はhighとする。
【００６７】
以下の指定は，11:00 に到着することも，13:30 に出発することも，両方とも重要であることを意味する。
【００６８】
<time importance="high"> 11:00-13:30 </time>
また，以下の指定は，11:00 に到着することは重要であるが，13:30 に出発することは重要でないことを意味する。
【００６９】
<time importance="high"> 11:00-      </time>
<time importance="low">       -13:30 </time>
また，以下の指定は，１時間３０分の滞在が重要でないことを意味する。
【００７０】
<time importance="low"> 1hour30min </time>
上記の案内用スクリプトを解釈する場合に，スクリプトの指定に矛盾がないので，１０番目および１１番目のインストラクションの部分は，以下のような案内用の構造化データに変換する。
【００７１】
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の実行時において，制約調整部１８は，図３に示す修正例にもとづいて以下のように処理する。
【００７２】
(a) 台場ＩＣの到着時刻が11:45 の場合には，出発時刻13:30 から余裕分(15 min)を減算して出発時刻を13:15 に設定するか，もしくは，滞在時間に余裕分を加算して滞在時間を1hour45minに設定する。
【００７３】
(b) 台場ＩＣの到着時刻が12:15 の場合には，出発時刻13:30 に遅延分(15 min)を加算して出発時刻を13:45 に設定するか，もしくは，滞在時間から遅延分を減算して滞在時間を1hour15minに設定する。
【００７４】
〔案内用スクリプトの言語仕様〕
以下の順で，タグ，属性，内容について説明する。
【００７５】
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>
本記述がナビスクリプトであることを表す。
【００７６】
属性: version
ナビスクリプトのバージョンを表す。
【００７７】
内部: 以下のタグセットを内部に包含することができる。
【００７８】
<title>
<version>
<author>
<affiliation>
<date>
<copyright>
<comment>
<navi>
02. <naviscript>下の <title>
タグ: <title>
属性: なし
内部: 内容として，本ナビスクリプトに記述される案内のタイトルを記述する。
【００７９】
例: レインボータウンツアー
03. <naviscript>下の <version>
タグ: <version>
属性: なし
内部: 内容として，本ナビスクリプトに記述される案内のバージョンを記述する。
【００８０】
例: example-04＿06
04. <naviscript>下の <author>
タグ: <author>
属性: なし
内部: 内容として，本ナビスクリプトに記述される案内の著者を記述する。
【００８１】
例: 亜井うえ男，可木くけ子
05. <naviscript>下の <affiliation>
タグ: <affiliation>
属性: なし
内部: 内容として，本ナビスクリプトに記述される案内の帰属を記述する。
【００８２】
例: 富士通観光
06. <naviscript>下の <date>
タグ: <date>
属性: なし
内部: 内容として，本ナビスクリプトに記述される案内の記述日時を記述する。
【００８３】
例: 99/10/10
07. <naviscript>下の <copyright>
タグ: <copyright>
属性: なし
内部: 内容として，本ナビスクリプトに記述される案内のコピーライトを記述する。
【００８４】
例: All Rights Reserved, Copyright (C) Fujitsu Laboratories Ltd. 1999.
08. <naviscript>下の <comment>
タグ: <comment>
属性: なし
内部: 内容として，本ナビスクリプトに記述される案内についてのコメントを記述する。
【００８５】
09. <naviscript>下の <navi>
タグ: <navi>
属性: なし
内部: 以下のタグセットを内部に包含することができる。
【００８６】
<title>
<author>
<date>
<country>
<area>
<genre>
<duration>
<distance>
<cost>
<course>
<comment>
<seq> あるいは <par>
10. <navi>下の <title>
タグ: <title>
属性: なし
内部: 内容として，案内される内容のタイトルを記述する。
【００８７】
例: レインボータウン
11. <navi>下の <author>
タグ: <author>
属性: なし
内部: 内容として，案内される内容の著者を記述する。
【００８８】
例: 富士通観光
12. <navi>下の <date>
タグ: <date>
属性: なし
内部: 内容として，案内される内容の日時を記述する。
【００８９】
例: 99/10/10
13. <navi>下の <country>
タグ: <country>
属性: なし
内部: 内容として，案内される地点や経路や施設が属する国名を記述する。
【００９０】
例: 日本
14. <navi>下の <area>
タグ: <area>
属性: なし
内部: 内容として，案内される地点や経路や施設が属する領域を記述する。
【００９１】
例: 東京，お台場
15. <navi>下の <genre>
タグ: <genre>
属性: なし
内部: 内容として，案内される内容が属すジャンルを記述する。
【００９２】
例: ドライブ，見る
16. <navi>下の <duration>
タグ: <duration>
属性: なし
内部: 内容として，案内されるコースの所要時間を記述する。
【００９３】
例: 3hour40min
17. <navi>下の <distance>
タグ: <distance>
属性: なし
内部: 内容として，案内されるコースの移動距離を記述する。
【００９４】
例: 95.0km
18. <navi>下の <cost>
タグ: <cost>
属性: なし
内部: 内容として，案内されるコースの所要費用を記述する。
【００９５】
例: 1940yen
19. <navi>下の <course>
タグ: <course>
属性: なし
内部: 内容として，案内されるコースを記述する。
【００９６】
例: 海浜幕張−東京−レインボーブリッジ−フジサンテレビ−東京
20. <navi>下の <comment>
タグ: <comment>
属性: なし
内部: 内容として，案内される内容についてのコメントを記述する。
【００９７】
21. <navi>下の <seq>
タグ: <seq>
seq は sequential を意味する。<seq> は内部に含まれる項目が直列的 (sequential) に実行されることを表す。
【００９８】
属性: なし
内部: 以下のタグセットあるいはそれらの任意個の任意の組み合わせを内部に包含することができる。
【００９９】
<inst>
<seq>
<par>
22. <navi>下の<par>
タグ: <par>
par は parallel を意味する。
【０１００】
<par> は内部に含まれる項目が並列的 (parallel) に実行されることを表す。
【０１０１】
属性: なし
内部: 以下のタグセットあるいはそれらの任意個の任意の組み合わせを内部に包含することができる。
【０１０２】
<inst>
<seq>
<par>
23. <seq> あるいは <par>下の <inst>
タグ: <inst>
instは instructionを意味する。
【０１０３】
属性:
id
内部あるいは外部から参照するための ID を付与する。
【０１０４】
例: id = "inst-info-はじめに"
ref ：内部あるいは外部の <inst> に付与された ID を記述することによって，その<inst>を参照する。
【０１０５】
例: ref = "inst-info- はじめに"
if
そのインストラクションを実行するか否かの条件を記述する。もし条件が成立すればそのインストラクションを実行し，そうでなければ実行しない。
【０１０６】
例: 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 以下であれば，ということを意味する。
【０１０７】
if属性の中で使用される記号とその意味は以下のとおりである。
【０１０８】
比較演算子
&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)
内部: 以下のタグセットあるいはそれらの任意個の任意の組み合わせを内部に包含することができる。
【０１０９】
<time>
あるいは
<point> あるいは <location> あるいは <object> ，および，<route>
<info>
24. <inst>下の <time>
タグ: <time>
timeは案内すべき時刻を意味する。
【０１１０】
point と併用された場合には，その地点からの出発時刻，その地点での滞在時間，その地点への到着時刻をも合わせて意味する。
【０１１１】
属性:
id
内部あるいは外部から参照するための ID を付与する。
【０１１２】
ref
内部あるいは外部の <inst> に付与された ID を記述することによって，その<inst>を参照する。
【０１１３】
importance
その時刻や時間の重要性を指定する．
内容として，以下の値を取りうる。
【０１１４】
例: high, low
importanceの指定がない場合のデフォールト値は high とする。
【０１１５】
使い方:
<time importance="high">  11:00-13:00 </time>
11:00 に到着することも，13:00 に出発することも，が両方とも重要である。
【０１１６】
<time importance="high">  11:00-      </time>
<time importance="low">        -13:00 </time>
11:00 に到着することは重要であるが，
13:00 に出発することは重要ではない。
【０１１７】
内部:
内容として，その <inst> 下の <info> を案内する時刻を記述する。
【０１１８】
時刻の指定は，以下のように，絶対的な指定と相対的な指定の両方を可能とする。
【０１１９】
<time>  12:00 </time>
12:00 に，という絶対的な時刻の指定
<time>  +5sec </time>
１つ前のインストラクションの 5秒後に，という相対的な時刻の指定
<time> -10min </time>
１つ後のインストラクションの10分前に，という相対的な時刻の指定
point と併用された場合には，その地点から出発時刻，その地点での滞在時間，その地点への到着時刻をも合わせて意味する。
【０１２０】
<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>
１日と２時間滞在
25. <inst>下の <point>
タグ: <point>
point は案内すべき地点を意味する。
【０１２１】
point は地点を絶対的に規定する。
【０１２２】
属性:
id
内部あるいは外部から参照するための ID を付与する。
【０１２３】
id = "point-台場IC"
ref
内部あるいは外部の <inst> に付与された ID を記述することによって，その<inst>を参照する。
【０１２４】
例:
ref = "point- 台場IC"
ref = "http://www.naviscript.com/japan/tokyo/odaiba.nav#point-breakwater"
importance
その地点を経由することの重要性を指定する。内容として，以下の値を取りうる。
【０１２５】
例: high, low
importanceの指定がない場合のデフォールト値は high とする。
【０１２６】
使い方:
<point importance="high"> … </point>
…で指定された地点を経由することが重要。
【０１２７】
内部: 以下のタグセットを内部に包含することができる。
【０１２８】
<name>
<category>
<latitude>
<longitude>
<altitude>
<cost>
<comment>
これらのタグセットは案内すべき地点を規定する要素として捉えることができる。
【０１２９】
26. <point> 下の <name>
タグ: <name>
属性: なし
内部: 内容として，その地点の名称を記述する。
【０１３０】
27. <point> 下の <category>
タグ: <category>
属性: なし
内部: 内容として，その地点のカテゴリを記述する。
【０１３１】
例: station
28. <point> 下の <latitude>
タグ: <latitude>
属性: なし
内部: 内容として，その地点の緯度を記述する。
【０１３２】
例: 36.2.5
29. <point> 下の <longitude>
タグ: <longitude>
属性: なし
内部: 内容として，その地点の経度を記述する。
【０１３３】
例: 133.33.36
30. <point> 下の <altitude>
タグ: <altitude>
属性: なし
内部: 内容として，その地点の高度を記述する。
【０１３４】
例: 100m
31. <point> 下の <cost>
タグ: <cost>
属性: なし
内部: 内容として，例えば，入場料のような，その地点において必要とされる費用を記述する。
【０１３５】
例: 540yen
32. <point> 下の <comment>
タグ: <comment>
属性: なし
内部: 内容として，その地点についてのコメントを記述する。
【０１３６】
33. <inst>下の <location>
タグ: <location>
locationは案内すべき位置を意味する。
【０１３７】
locationは地点を相対的に規定する。
【０１３８】
属性:
id
内部あるいは外部から参照するための ID を付与する。
【０１３９】
ref
内部あるいは外部の <inst> に付与された ID を記述することによって，その<inst>を参照する。
【０１４０】
importance
その地点を経由することの重要性を指定する。
【０１４１】
内容として，以下の値を取りうる。
【０１４２】
例: high, low
importanceの指定がない場合のデフォールト値は high とする。
【０１４３】
使い方:
<location importance="high">… </location>
…で指定された地点を経由することが重要。
【０１４４】
内部: 内容として，その <inst> 下の <info> を案内する位置を記述する。
【０１４５】
位置の指定は，以下のように，相対的な指定を可能とする。
【０１４６】
<location> +1.0km </location>
前の地点の 1km過ぎで，という相対的な場所の指定
<location> -1.0km </location>
次の地点の 1km手前で，という相対的な場所の指定
34. <inst>下の <object>
タグ: <object>
objectは案内すべき施設などの事物を意味する。
【０１４７】
属性:
id
内部あるいは外部から参照するための ID を付与する。
【０１４８】
id = "object- レインボーブリッジ"
ref
内部あるいは外部の <inst> に付与された ID を記述することによって，その<inst>を参照する。
【０１４９】
例:
ref = "object-cafe"
内部: 以下のタグセットを内部に包含することができる。
【０１５０】
<name>
<category>
<address>
<zip-code>
<country>
<phone>
<fax>
<url>
<e-mail>
<latitude>
<longitude>
<altitude>
<open>
<close>
<reservation>
<comment>
これらのタグセットは案内すべき施設などの事物を規定する要素として捉えることができる。
【０１５１】
35. <object>下の <name>
タグ: <name>
属性: なし
内部: 内容として，その事物の名称を記述する。
【０１５２】
例: Restaulant Fujitsu
36. <object>下の <category>
タグ: <category>
属性: なし
内部: 内容として，その事物のカテゴリを記述する。
【０１５３】
例: restaulant, Italian,…
37. <object>下の <address>
タグ: <address>
属性: なし
内部: 内容として，その事物の住所を記述する。
【０１５４】
例: 東京都港区台場9-9-9
38. <object>下の <zip-code>
タグ: <zip-code>
属性: なし
内部: 内容として，その事物の郵便番号を記述する。
【０１５５】
例: 012-3456
39. <object>下の <country>
タグ: <country>
属性: なし
内部: 内容として，その事物が属す国名を記述する。
【０１５６】
例: 日本
40. <object>下の <phone>
タグ: <phone>
属性: なし
内部: 内容として，その事物の電話番号を記述する。
【０１５７】
例: 987-654-3210
41. <object>下の <fax>
タグ: <fax>
属性: なし
内部: 内容として，その事物のファックス番号を記述する。
【０１５８】
例: 999-999-9999
42. <object>下の <url>
タグ: <url>
属性: なし
内部: 内容として，その事物に関するウェブページアドレス (URL: Uniform Resource Locator)を記述する。
【０１５９】
例: http://www.fujisan-tv.com/
43. <object>下の <e-mail>
タグ: <e-mail>
属性: なし
内部: 内容として，その事物に関する電子メールアドレスを記述する。
【０１６０】
例: www@fujisan-tv.com
44. <object>下の <latitude>
タグ: <latitude>
属性: なし
内部: 内容として，その事物の緯度を記述する。
【０１６１】
例: 36.3.5
45. <object>下の <longitude>
タグ: <longitude>
属性: なし
内部: 内容として，その事物の経度を記述する。
【０１６２】
例: 133.37.46
46. <object>下の <altitude>
タグ: <altitude>
属性: なし
内部: 内容として，その事物の高度を記述する。
【０１６３】
例: 999m
47. <object>下の <open>
タグ: <open>
属性: なし
内部: 内容として，その事物の開店曜日や開店時間を記述する。
【０１６４】
例: 月曜日−金曜日, 10:00-17:00
48. <object>下の <close>
タグ: <close>
属性: なし
内部: 内容として，その事物の閉店曜日や閉店時間を記述する。
【０１６５】
例: 土曜日，日曜日，祝日
49. <object>下の <reservation>
タグ: <reservation>
属性: なし
内部: 内容として，その事物の予約の要否を記述する。
【０１６６】
例: 要予約
50. <object>下の <comment>
タグ: <comment>
属性: なし
内部: 内容として，その事物についてのコメントを記述する。
【０１６７】
51. <object>下の <text>
タグ: <text>
属性: duration
表示する持続時間
内部: 内容として，事物の案内の１形態として表示する text を text で記述する。
【０１６８】
例: 名物はイタリア人シェフの手による…
52. <object>下の <voice>
タグ: <voice>
属性: duration
発話する持続時間
内部: 内容として，事物の案内の１形態として発話する voiceを text で記述する。
【０１６９】
例: 名物はイタリア人シェフの手による…
53. <object>下の <audio>
タグ: <audio>
属性:
src
事物の案内の１形態として発する audioファイルを指定する。
【０１７０】
duration
発する持続時間
内部: なし
54. <object>下の <image>
タグ: <image>
属性:
src
事物の案内の１形態として表示する imageファイルを指定する。
【０１７１】
duration
表示する持続時間
内部: なし
55. <object>下の <video>
タグ: <video>
属性:
src
事物の案内の１形態として再生する videoファイルを指定する。
【０１７２】
duration
再生する持続時間
内部: なし
56. <inst>下の <route>
タグ: <route>
route は案内すべき経路を意味する。
【０１７３】
属性:
id
内部あるいは外部から参照するための ID を付与する。
【０１７４】
ref
内部あるいは外部の <inst> に付与された ID を記述することによって，その<inst>を参照する。
【０１７５】
内部: 以下のタグセットを内部に包含することができる。
【０１７６】
<means>
<name>
<category>
<cost>
<comment>
これらのタグセットは案内すべき経路を規定する要素として捉えることができる。あるいは，内容として，以下を記述することができる。
【０１７７】
thesame
これは，現地点から次の地点への経路の情報が，１つ前の地点から現地点への経路の情報と同じであることを意味する。
【０１７８】
57. <route> 下の <means>
タグ: <means>
属性: なし
内部: 内容として，その経路の移動手段を記述する。
【０１７９】
例: walk, bicycle, car, bus, train, ship, plane,…
58. <route> 下の <name>
タグ: <name>
属性: なし
内部: 内容として，その経路の名称を記述する。
【０１８０】
例: 国道1 号線
59. <route> 下の <category>
タグ: <category>
属性: なし
内部: 内容として，その経路のカテゴリを記述する。
【０１８１】
例: 一般道路，有料道路，高速道路，遊歩道，…
60. <route> 下の <cost>
タグ: <cost>
属性: なし
内部: 内容として，その経路において必要とされる費用を記述する。
【０１８２】
例: 540yen
61. <route> 下の <comment>
タグ: <comment>
属性: なし
内部: 内容として，その経路についてのコメントを記述する。
【０１８３】
62. <inst>下の <info>
タグ: <info>
infoは案内すべき情報を意味する。
【０１８４】
属性:
ref
内部あるいは外部の <inst> に付与された ID を記述することによって，その<inst>を参照する。
【０１８５】
例:
ref = "object-レインボーブリッジ#info
内部: 以下のタグセットを内部に包含することができる。
【０１８６】
<seq> あるいは <par>
63. <info>下の <seq>
タグ: <seq>
seq は sequential を意味する。
【０１８７】
<seq> は内部に含まれる項目が直列的 (sequential) に実行されることを表す。
【０１８８】
属性: なし
内部: 以下のタグセットあるいはそれらの任意個の任意の組み合わせを内部に包含することができる。
【０１８９】
<text>
<voice>
<audio>
<image>
<video>
64. <info>下の <par>
タグ: <par>
par は parallel を意味する。
【０１９０】
<par> は内部に含まれる項目が並列的 (parallel) に実行されることを表す。なお，<info>下においては，デフォールトを <par>とし，これによって，<par> を省略することができる，とする。
【０１９１】
属性: なし
内部: 以下のタグセットあるいはそれらの任意個の任意の組み合わせを内部に包含することができる。
【０１９２】
<text>
<voice>
<audio>
<image>
<video>
65. <seq> あるいは <par>下の <text>
タグ: <text>
属性:
ref
内部あるいは外部の <inst> に付与された ID を記述することによって，その<inst>を参照する。
【０１９３】
例: ref = "object-restaurant#text"
duration
表示する持続時間
内部: 内容として，案内の１形態として表示する text を text で記述する。
【０１９４】
例: レインボータウンツアーへようこそ！
66. <seq> あるいは <par>下の <voice>
タグ: <voice>
属性:
ref
内部あるいは外部の <inst> に付与された ID を記述することによって，その<inst>を参照する。
【０１９５】
例:
ref = "object-restaurant#voice"
duration
発話する持続時間
内部: 内容として，案内の１形態として発話する voiceを text で記述する。
【０１９６】
例: お疲れ様でした！
67. <seq> あるいは <par>下の <audio>
タグ: <audio>
属性:
ref
内部あるいは外部の <inst> に付与された ID を記述することによって，その<inst>を参照する。
【０１９７】
例: ref = "object-restaurant#audio"
src
案内の１形態として発する audioファイルを指定する。
【０１９８】
duration
発する持続時間
内部: なし
68. <seq> あるいは <par>下の <image>
タグ: <image>
属性:
ref
内部あるいは外部の <inst> に付与された ID を記述することによって，その<inst>を参照する。
【０１９９】
例:
ref = "object-restaurant#image"
src
案内の１形態として表示する imageファイルを指定する。
【０２００】
duration
表示する持続時間
内部: なし
69. <seq> あるいは <par>下の <video>
タグ: <video>
属性:
ref
内部あるいは外部の <inst> に付与された ID を記述することによって，その<inst>を参照する。
【０２０１】
例:
ref = "object-restaurant#video"
src
案内の１形態として再生する videoファイルを指定する。
【０２０２】
duration
再生する持続時間
内部: なし
以上，本発明の実施の形態で用いる案内用スクリプトの言語仕様について詳細に説明したので，この言語仕様に基づいて記述された案内用スクリプトを解釈し実行するシステムについては，当業者であれば上記説明から容易に構築できることはあきらかである。
【符号の説明】
【０２０３】
１０  端末
１１  操作入力部
１２  ネットワークアクセス部
１３  メディアアクセス部
１４  スクリプト変換部
１５  インストラクション実行部
１６  状況獲得部
１７  状況生成部
１８  制約調整部
１９  案内出力部
２０  データベース部
３１  ネットワーク
３２  メディア
【図１】
2010044089.tif 000003
【図２】
2010044089.tif 000004
【図３】
2010044089.tif 000005
【図４】
2010044089.tif 000006
【図５】
2010044089.tif 000007
【図６】
2010044089.tif 000008