JP2001154852A - マルチモーダル・ブラウジングおよび会話型マークアップ言語の実施の方法およびシステム - Google Patents

マルチモーダル・ブラウジングおよび会話型マークアップ言語の実施の方法およびシステム

Info

Publication number
JP2001154852A
JP2001154852A JP2000311661A JP2000311661A JP2001154852A JP 2001154852 A JP2001154852 A JP 2001154852A JP 2000311661 A JP2000311661 A JP 2000311661A JP 2000311661 A JP2000311661 A JP 2000311661A JP 2001154852 A JP2001154852 A JP 2001154852A
Authority
JP
Japan
Prior art keywords
xsl
gesture
application
cml
cnn
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.)
Granted
Application number
JP2000311661A
Other languages
English (en)
Other versions
JP4140878B2 (ja
Inventor
Stephane Herman Maes
ステファン・ハーマン・マエス
Thiruvilvama Lai V Raman
ティルヴィルヴァマ・ライヴィー・ラマン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Priority claimed from US09/544,823 external-priority patent/US7685252B1/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2001154852A publication Critical patent/JP2001154852A/ja
Application granted granted Critical
Publication of JP4140878B2 publication Critical patent/JP4140878B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 ユーザが任意のタイプの情報にアクセスする
ために利用している任意の装置とのユーザ対話に基づ
く、新しいアプリケーション・プログラミング言語を提
供すること。 【解決手段】 この新しい言語は、本明細書で「会話型
マークアップ言語(CML)」と呼ぶ。好ましい一実施
形態では、CMLは、ユーザが所与のコンピューティン
グ装置と行うことになる「ダイアログ」または「会話」
を表すためのハイレベルXMLベースの言語である。ア
プリケーション作成者は、「会話型ジェスチャ」と呼ぶ
対話ベースの要素を使用してアプリケーションをプログ
ラムすることができる。本発明はまた、様々なモーダル
性特定の表現、例えばHTMLベースのグラフィカル・
ユーザ・インタフェース(GUI)ブラウザ、VoiceX
MLベースのスピーチ・ブラウザなどに従ってCMLの
特徴をサポートすることのできるマルチモーダル・ブラ
ウザの様々な実施形態を可能にする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般に情報アクセス
・アプリケーションに関し、より詳細には、そのような
情報アクセス・アプリケーションで使用するための、対
話ベースのマークアップ言語および対話ベースのマーク
アップ言語をサポートするマルチモーダル・ブラウジン
グ機構に関する。
【0002】
【従来の技術】関連出願の相互参照 本発明は、1999年10月12日出願の米国仮特許出
願第60/158777号への優先権を主張し、この開
示を参照により本明細書に組み込む。本明細書は、
(i)US99/23008(整理番号YO998−3
92)として識別される1999年10月1日出願のP
CT国際特許出願、(ii)US99/22927(整理
番号YO999−111)として識別される1999年
10月1日出願のPCT国際特許出願、(iii)US9
9/22925(整理番号YO999−113)として
識別される1999年10月1日出願のPCT国際特許
出願に関係し、上記の各PCT国際特許出願は、199
8年10月2日出願の米国仮特許出願第60/1029
57号および1999年1月27日出願の米国仮特許出
願第60/117595号への優先権を主張する。さら
に本明細書は、(iv)2000年2月18日出願の米国
特許出願第09/507526号(整理番号YO999
−178)に関係し、この出願は、1999年4月7日
出願の米国仮特許出願第60/128081号および1
999年10月12日出願の米国仮特許出願第60/1
58777号への優先権を主張する。上に参照した関連
出願のすべてを参照により本明細書に組み込む。
【0003】様々なタイプおよび量の情報の使用可能度
が劇的に上昇し、そのような情報にアクセスする従来の
機構の時間または使用可能度あるいはその両方が急激に
減少したために、個人は現在、いつどんな装置からで
も、どんな情報に対してもアクセスまたは作用または変
換できるようになりたい、あるいはそのすべてを行える
ようになりたいと思っている。例えばインターネットの
場合、様々な大量の情報が利用可能だが、インターネッ
トは従来、HTTP(HyperText Transport Protocol)
ネットワークの最上部にあるHTML(HyperText Mark
up Language)ブラウザを使用して情報にアクセスする
装置しか主にサポートしていなかった。これは、TCP
/IP(Transmission Control Protocol/Internet Pro
tocol)の最上部に提供されていた。
【0004】この問題に対する解決法は、そのような情
報にアクセスするのに使用されるアプリケーション・プ
ログラムを書き直し、それによって他の方法でその情報
にアクセスできるようにすることが中心であった。ある
解決法は、WAP(WirelessApplication Protocol)の
開発へとつながった。http://www.mobilewap.comを参照
されたい。WAPは、無線ネットワーク用のHTTPに
相当する。無線ネットワーク用のHTMLに相当するW
ML(Wireless Markup Language)が開発された。した
がって、HTTPの最上部でHTMLが使用される方式
と同様に、WAPの最上部でWMLが使用される。WA
PおよびWMLにより、ユーザは、制約された画面レン
ダリングおよび限られた帯域幅の接続能力を有するセル
ラー・ホンを介してインターネットにアクセスすること
ができる。CHTMLが、この空間を対象とするML
(マークアップ言語)のもう1つの例である。
【0005】次に、より最近になり、ウェブ・プログラ
ミング・モデル(ファット・クライアント・プログラミ
ング・モデルとも呼ばれる)をボイス・アクセス、特に
電話アクセスおよび自動音声応答(IVR)システムに
導入するための機構が開発された。このような機構は、
通常、スピーチ・ブラウザ(またはボイス・ブラウザ)
と呼ばれる。このようなスピーチ・ブラウザは、上に参
照した、米国出願第60/102957号(整理番号Y
O998−382)として識別される米国仮特許出願に
記載されている。スピーチ・ブラウザは、VoiceXML
と呼ばれる、XML(Extensible Markup Language)の
スピーチ・ベースの変形を使用することができる。htt
p://www.voicexml.orgを参照されたい。スピーチ・ブラ
ウザはまた、WAPプロトコルの最上部でWMLデータ
の交換と共に動作することもできる。
【0006】しかし、このような手法は、アプリケーシ
ョン・プログラマがマルチチャネル・サポートを提供し
たい場合、すなわち、ウェブ・ブラウザ(HTMLブラ
ウザ)、電話(ボイス・ブラウザ)、および無線ブラウ
ザ(WML)、または前述の開示に定義されるマルチモ
ーダル/会話型ブラウザへのアクセスを提供したい場合
に、アプリケーション・プログラマにいくつかの問題を
提起する。第1に、この手法によれば、アプリケーショ
ン・プログラマは、アプリケーションを開発するときに
少なくとも3つの異なる言語、例えばHTML、WM
L、およびVoiceXMLを扱わなければならない。すな
わち、ユーザが従来の電話を介したスピーチ・ブラウザ
を介して、あるいはWAPブラウザを使用するまたは従
来のウェブ・ブラウザを使用する無線接続を介してイン
ターネット・ベースの情報にアクセスしようとするた
め、アプリケーションを書くときにHTML、WAP、
およびVoiceXMLを使用しなければならないという事
実を、アプリケーションは考慮しなければならない。こ
れは、アプリケーション開発者にとって非常に厄介なも
のとして知られている。第2に、この手法によれば、マ
ルチモーダル・アプリケーション、例えばアプリケーシ
ョンにアクセスするために利用されるブラウザとの視覚
とスピーチの両方に基づくユーザ対話を可能にするアプ
リケーションを同期させるのに適した方法がない。
【0007】アプリケーションは、従来、コンテンツ
(すなわち情報またはその他のデータ)とプレゼンテー
ション(すなわちコンテンツがユーザに呈示される方
式)の両方が混合されるように開発されてきた。しか
し、アプリケーション・プログラミングを簡単にする試
みにおいて、コンテンツをプレゼンテーションから分離
する努力がなされてきた。こうしてXSL(Extensible
Stylesheet Language)が開発されたが、これは、アプ
リケーションに関連するコンテンツがXMLで記憶さ
れ、特定の装置上でコンテンツを呈示するのに必要な変
換がXSLによって扱われるように、XMLと共に動作
する。http://www.w3.org/Style/XSLを参照されたい。
このような手法は、W3C(ワールド・ワイド・ウェブ
・コンソーシアム)によって採用されている。この手法
は、メイン・ブラウザ(例えば異なるバージョンのMicr
osoft Internet Explorer、Netscape Communicator/Nav
igator、その他のより一般的でないブラウザなど)の特
徴にプレゼンテーションを適合させるのに通常使用され
る。この使用を他のモーダル性/チャネル(例えば、組
込み装置(無線電話またはPDA)の最上部にあるWM
Lのようなフォーマットをサポートする無線ブラウザ)
に拡張しようとする者もいた。この最後の手法はあまり
成功しておらず、または便利になっておらず、いずれの
場合でも、これは、XSLページを複数回オーサリング
すること必要とする。しかし、この手法は、アプリケー
ションと装置/チャネルの両方に依存するという欠点を
有する。すなわち、XSL規則は、コンテンツを転記す
べきアプリケーションおよび装置に依存する。したがっ
て、アプリケーションが新しい装置からアクセスされる
場合、その装置用に新しいXSL変換を書かなければな
らない。
【0008】これらの問題のいくつかを克服するための
他の試みもなされてきた。ユーザの意図(複雑かつタス
ク指向の意図)に基づいたXMLモデルを提供する試み
があった。ユーザの意図は複雑なコンポーネントでモデ
リングすることができるが、これは、小さなスクリーン
またはスピーチで装置上にレンダリングすることができ
ないかまたは非常に難しい。それより小さい原子コンポ
ーネントに分解されないこれらの複雑なコンポーネント
はまた、モーダル性にまたがって密に同期させることが
できない。異なるブラウザによってレンダリングされ
る、装置独立のタグが提供される。また、スピーチ自動
音声応答(IVR)システムへのいくつかの拡張が提案
されてきた。しかし、欠陥の中でもとりわけ、これらの
試みはダイアログをモデリングせず、モーダル性からモ
ーダル性へのトランスコーディングは一般に不可能な作
業である。
【0009】これらの手法では、ユーザの意図は、複雑
な対話を記述する複雑なコンポーネントでモデリングさ
れる。しかし、これらは通常、アプリケーション特定で
ある。すなわち、これらは、ビジネス論理の概念および
要素に依存し、またはそれを特徴づけ、または必要とす
る。したがってその場合、XSL規則(およびXSLス
タイル・シート)が今日、根本的にアプリケーションま
たはアプリケーション領域(すなわち関係するXML属
性の性質)の関数であるのと同じ形で、これらの言語で
書かれたページを変換するのに使用されるXSL規則も
また、根本的にアプリケーションまたはアプリケーショ
ン領域の関数である。これらは、新しいアプリケーショ
ンごとに書き直さなければならない。これは、これらの
手法の限界を特徴づけている。これらの手法は、アクセ
スのモーダル性に対して独立したコンテンツへのアクセ
スを提供するのを助ける際に貢献しない。実に、これら
の手法は、そのアプリケーションまたはアプリケーショ
ン領域に関係するコンテンツへのアクセスを可能にする
だけである。他のどんな場合も、変換規則の書直しを必
要とする。したがって、バックエンド・アプリケーショ
ンから変換規則を解放し、それをアクセス装置またはチ
ャネルによってサポートされる特徴/モーダル性だけに
依存させることが必要とされている。
【0010】いくつかの場合に、複数のチャネルのサポ
ートは、スタイル・シートのカスケードを使用して、得
られたXMLストリームをシリアル化された内部API
(Application Programming Interface)として扱うこ
とによって達成されてきたことに留意されたい。この場
合もやはり、これは複数のオーサリングを必要とする。
【0011】さらに、上記の手法は、WMLのようなモ
ーダル性で適切な対応するレンダリングを有しないコン
ポーネントによる、非常に複雑な意図モデルを有するこ
とになる。これらのモデルが、異なるタイプの(本質的
に同じチャネルおよびモーダル性の変形内の)表示装置
またはブラウザの要件にグラフィカル・ユーザ・インタ
フェース(GUI)プレゼンテーションをカストマイズ
する能力を提供するために設計されたことは明らかであ
る。この結果、これらの手法はどれも、スピーチまたは
マルチモーダルのユーザ・インタフェースを適切にモデ
リングせず処理しない。
【0012】すでに述べたように、従来のトランスコー
ディング(XMLコンテンツを呈示するのに使用される
XSL規則、およびあるモーダル性から別のモーダル性
に移るためのXSLスタイル・シートの変更)は、異な
るアクセス・モーダル性をサポートすると考えられてき
た。これは、所与のXMLコンテンツに対し、システム
が、XML規則を変更することによってHTMLペー
ジ、WML規則、またはVoiceXMLページやその他さ
えも作成することができることを意味する。実際、これ
は今日、市販の異なるウェブ・ブラウザ、例えばNetsca
pe Communicator、Microsoft Internet Explorer、Sun
Microsystems Hot Java、Spyglassブラウザ、Open Sour
ce Amayaブラウザ/エディタなどをサポートするのに使
用されているものである。残念ながらこれは、以下の場
合のみに可能である。 (i)XSL規則がアプリケーションまたはアプリケー
ション領域(すなわちXML属性の性質)に特定であ
り、 (ii)トランスコーディングが2つの言語間、例えばH
TMLとWMLとの間であり、元のコンテンツが非常に
厳格なオーサリングの規則を守りながらHTMLで構築
された場合。もっとも、これは、所与の会社内の所与の
ウェブ・サイトに対する場合にのみ施行可能である。そ
のような場合でも、これは、一般にはほとんど実施不可
能である。というのは、他のモーダル性で対応するコン
ポーネントを提供するための、マークアップ言語または
モーダル性にまたがる情報の欠落(例えば、HTMLフ
ォームまたはメニューが音声によって自動的にそれをレ
ンダリングするために必要な情報を提供しない)、なら
びに異なるモーダル性におけるダイアログ・ナビゲーシ
ョン・フローの違いのせいである。
【0013】したがって、既存の言語およびブラウザに
あるとされるこれらおよび他の欠点を克服する、アプリ
ケーション・プログラミング言語およびそれに関連する
情報ブラウジング機構が必要とされている。
【0014】
【発明が解決しようとする課題】本発明は、ユーザが任
意のタイプの情報にアクセスするために利用している任
意の装置とのユーザ対話に基づく新しいアプリケーショ
ン・プログラミング言語を提供する。この新しい言語
を、本明細書では「会話型マークアップ言語(Conversa
tional Markup Language(CML))」と呼ぶ。
【0015】
【課題を解決するための手段】好ましい一実施形態で
は、CMLは、ユーザが所与のコンピューティング装置
と行うことになる「ダイアログ」または「会話」を表す
ためのハイレベルXMLベースの言語である。ダイアロ
グおよび会話という用語を本明細書で使用するが、これ
らはより一般的に、モーダル性および装置に対して独立
した、装置(ローカル装置、リモート装置(例えば電話
を介した対話)、または他の方法で分散されたいずれか
の装置)とのユーザ対話を指すことを理解されたい。し
たがって対話は、これらに限定されないが、視覚ベース
(テキストまたはグラフィカル)のユーザ対話およびス
ピーチ・ベースのユーザ対話、ならびにこれらの組合せ
を含むことができる。
【0016】このような言語により、アプリケーション
作成者は、本明細書で以後「会話型ジェスチャ(conver
sational gesture)」と呼ぶ対話ベースの要素を使用し
てアプリケーションをプログラムすることができる。会
話型ジェスチャは、それに従ってプログラムされたアプ
リケーションに関連する情報にアクセスするために利用
されるモーダル性、装置、またはブラウザに対して独立
してどんなダイアログも記述する、CMLの基本的なプ
ログラミング・コンポーネントまたは要素である。
【0017】本発明は、新しいアプリケーション・プロ
グラミング・パラダイムを提起することにより、これら
および他の特徴および利点を達成する。前述のように、
既存のアプリケーション・オーサリング手法は、アプリ
ケーションのコンテンツ・ベースのアスペクトをプレゼ
ンテーション・ベースのアスペクトから分離する概念を
採用してきた。本発明によれば、CMLは、アプリケー
ション・プログラミングをコンテンツ・アスペクト、プ
レゼンテーション・アスペクト、および対話アスペクト
に分離することを可能にする新しいパラダイムを導入す
る。ユーザに関してアプリケーションの対話アスペクト
に焦点を当てることにより、アプリケーションは、コン
テンツ/アプリケーションの論理およびプレゼンテーシ
ョンに対して独立した形で書くことができる。アプリケ
ーションのコンテンツ論理またはビジネス論理、あるい
はその両方は、アプリケーションに関連する「バックエ
ンド論理」とも呼ぶことを理解されたい。
【0018】クライアント/サーバ構成では、「バック
エンド論理」は、論理すなわち、アプリケーションの進
化を促す状態および状況のコード化されたセット、なら
びに可変の妥当性検査情報を含むアプリケーションの部
分である。追って説明するが、バックエンド・データか
ら分離された論理情報を伝えるために、属性制約および
妥当性検査情報をCMLページに加えることができる。
したがって、以下に説明し例示するが、アプリケーショ
ンがCMLで作成された後、そのアプリケーションに関
連するCMLコードの一部がサーバからクライアント装
置にダウンロードされ、次いで、CMLコードのCML
ジェスチャが、その装置で利用されるブラウザ特定のマ
ークアップ言語、例えばHTMLまたはVoiceXML、
あるいはその両方にトランスコーディングされる。
【0019】本発明によれば、ダウンロードされたCM
Lコードで動作する装置(クライアント、さらにはCM
LページをHTML、VoiceXML、WMLなど、おそ
らく他のレガシー・マークアップ言語にサービスするサ
ーバ)は、例えばHTMLおよびVoiceXMLにほぼ同
時にトランスコーディングし、したがってユーザに情報
へのアクセスを提供する複数のブラウザを同期させるこ
とができる。本発明によるこのような有利な同期化は、
トランスコーディングがジェスチャ識別によってジェス
チャごとに行われるために可能である。したがって、あ
るモーダル性で入力/出力イベントが発生するとき、ブ
ラウザは、どんなイベントがどんなジェスチャに対して
発生したかを知り、サポートされるすべてのモーダル性
を即座に更新することができる。これにより、モーダル
性にまたがる非常に密な同期化がもたらされる。このよ
うな同期化はまた、例えばグラフィカル・ユーザ・イン
タフェース(GUI)ブラウザまたはスピーチ・ブラウ
ザに関連する、モーダル性特定の様々なユーザ・インタ
フェース・ダイアログが、ジェスチャごとに単一のCM
L表現から生成されるという事実によっても達成され
る。したがって、ユーザが一方または他方のモーダル性
を対話的に続行するのに伴い、複数のユーザ・インタフ
ェース、例えばGUI、スピーチなどが同期化され、連
続的に更新される。本発明のCMLおよびブラウジング
機構は、自然言語(NL)プログラミング用のプラット
フォームも提供する。CMLによってアプリケーション
作成者がジェスチャごとにプログラムすることができる
ため、そのようなアプリケーションは、広範囲の自然会
話方式で要求/応答を提供するフレキシビリティをユー
ザに提供する。したがってユーザは、単一のコマンドに
制約されるのではなく、より制約されない形で、例えば
より自然の会話に近い形で、アプリケーションと対話す
ることができる。NLおよび本発明によって、ユーザ
は、もう1人の人間と行っているかのような自然な会話
を行う以外にどんな制約もなく、複数のモーダル性で自
由に自身を表現することができる。NLの場合にはさら
に、システムは、コンテキストおよび過去の対話/ダイ
アログ履歴(ならびにユーザ・プリファレンス、アプリ
ケーション設定、記憶された共通知識などの他のメタ情
報)を使用して、照会を一義化することができる。
【0020】NLは、スピーチに限定されず、自然マル
チモーダル会話型アプリケーションのすべてのアスペク
トを含むステートメントである。これは、NL入力を自
然マルチモーダル入力と結合する。上に参照した整理番
号YO999−111によって識別される特許出願に記
載のように、どんな入力も、モーダル性に対して独立し
て入力/出力イベントとしてモデリングされ、次いでそ
れは、ダイアログ・マネージャおよびアービトレータに
よって処理され、ダイアログ・マネージャおよびアービ
トレータは、履歴、ダイアログ・コンテキスト、および
他のメタ情報(例えばユーザ・プリファレンス、装置お
よびアプリケーションの情報)を使用して、入力イベン
トのターゲットを決定する、あるいは要求されたアクシ
ョンを実行する前にダイアログをユーザに関係させてユ
ーザの意図を完結、確認、訂正、または一義化する、あ
るいはその両方を行うことになる。
【0021】本発明がマルチデバイスまたは分散ブラウ
ジング環境を可能にすることも理解されたい。複数のブ
ラウザを効果的に同期させるCMLの性質およびその能
力により、アプリケーションの様々な部分を別々のコン
ピューティング・デバイス上に常駐させて実行すること
ができる。次いでユーザは、あるアプリケーションにア
クセスするときに複数の装置、例えばラップトップ・コ
ンピュータおよびセルラー・ホンと同時に対話すること
ができる。これを「マルチデバイス・ブラウジング」と
呼ぶ。実際、本発明のこの態様は、「マルチモーダル
性」を必要としない。すなわち、GUI/HTMLブラ
ウザだけでも、ジェスチャ・ベースのXSL規則を使用
して、どのブラウザに何がレンダリングされるかを定義
することができる。したがって、いくつかのコンテンツ
を携帯情報端末(personal digitalassistant)すなわ
ちPDA上に表示し(すなわちカラー画像、ストリーミ
ングされたビデオ、長いリスト)、残りのコンテンツを
セルラー・ホン画面上などに表示することができる。
【0022】CMLがモーダル性独立なので、アプリケ
ーションが書かれた後でも、どんなタイプのブラウザに
関連するどんなトランスコーディング規則も実施するこ
とができる。すなわち、CMLにより、作成者は、元々
実装されていた可能性のあるデフォルトのトランスコー
ディング以外の別のタイプのトランスコーディング(す
なわちジェスチャ・ベースのトランスコーディング規
則)に変更することができる。したがって、この特徴は
有利にも、ジェスチャ・ベースのXSL規則の単純な更
新によって、いわゆる「レガシー言語」、例えばHTM
L、WML、VoiceXMLなどの新しいリリース/バー
ジョンと、新しい言語、例えばCHTML、HDMLな
どに対するサポートを保証する。さらに、この特徴は、
単純なジェスチャ・ベースのXSL規則を使用して、あ
るバージョンのCMLから新しいCMLへの単純かつ容
易な通路を可能にする。バージョンからバージョンへの
ジェスチャごとのトランスコーディングは、CMLから
他のレガシー言語へのトランスコーディングと異なる問
題ではないことを理解されたい。これは、CMLが定義
によってこのトランスコーディングの原理を取り巻くよ
うに設計されるので、特に有利である。これが他のマー
クアップ言語のほとんどに当てはまらないことは確かで
あり、他のマークアップ言語では、後方互換性は提供す
るかもしれないが、仕様の更新は通常、新世代ブラウザ
に対して、ならびにより古いバージョンで書かれたより
古いすべてのコンテンツに関して問題を含む。
【0023】CMLはまた、CMLページが書かれた後
でも、プレゼンテーションを表面的に変更することを可
能にする。例えば、所望のモーダル性およびターゲット
・マークアップ言語に応じてCMLコマンドを発行し
て、いくつかのモーダル性におけるコンテンツのプレゼ
ンテーションの、いくつかのフィーチャを表面的に変更
することができる。これにより、CML開発者は、HT
MLレンダリングに対してするのと同じ量の表面的努力
で済む。しかし、利点は当然、(アクセス装置またはチ
ャネルに対して独立)ユニバーサル・アクセスを提供す
るのに使用できる、またはマルチモーダルおよび会話型
ユーザ・インタフェースを密に同期させることができ
る、あるいはその両方ができる、対話のマルチチャネル
(すなわち複数のタイプのターゲットMLまたはデバイ
ス・モーダル性または特定のユーザ・インタフェース特
徴で表現することができる)記述を、同じ代償で得たこ
とである。
【0024】本発明はまた、様々なモーダル性特定の表
現、例えばHTMLベースのグラフィカル・ユーザ・イ
ンタフェース(GUI)ブラウザ、VoiceXMLベース
のスピーチ・ブラウザなどに従ってCMLの機能をサポ
ートすることのできるマルチモーダル・ブラウザの様々
な実施形態を可能にする。
【0025】用語「CML」は、上で参照した整理番号
YO998−392およびYO999−178によって
識別される特許出願で使用されていることに留意された
い。これらの出願では、この用語は、会話型インタフェ
ースを記述するための宣言的な方式を指すものとされ
る。本発明によれば、用語CMLは、以下に詳細に述べ
るように、対話によるプログラミングの概念を組み入れ
たジェスチャ・ベースの言語について言う。
【0026】本発明のこのような態様ならびに以下に述
べる他の態様があった場合に、ここで、このような創意
に富んだ特徴と既存の手法との重要な違いをいくつか考
察する。この5年間のワールド・ワイド・ウェブ(WW
W)の急激な成長は、まずコンテンツからユーザ対話を
分離し、続いてプラットフォームに依存するWWWブラ
ウザによってレンダリングされるHTMLのようなマー
クアップ言語を介してアプリケーション・フロント・エ
ンドを送達することによって軽量ユーザ・インタフェー
ス・アプリケーションを構築することにおける潜在的な
強さを指摘した。この体系は、基礎をなすハードウェア
およびオペレーティング・システムの細部からエンドユ
ーザ・アプリケーションを解放することによって、新し
い可能性の世界を開く。現在のWWW体系は、基礎をな
すハードウェアおよびオペレーティング・システムの細
部から、eコマース・アプリケーションへの視覚インタ
フェースを開放した。この進化における次のステップ
は、インタフェース・モーダル性と、電子情報と対話す
るのに使用される装置とに対して独立したエンドユーザ
・アプリケーションを作ることである。この進化は、新
世代のeコマース・アプリケーションとのスピーチ・ベ
ースの対話を可能にすることにおいて自然な次のステッ
プである。
【0027】装置およびモーダル性から独立したエンド
ユーザWWWサービスを達成するために、様々な装置へ
の送達を可能にするような、モーダル性独立の技術を使
用するアプリケーションおよびサービスをオーサリング
することが強く必要とされている。XMLが急速にWW
Wの次世代共通語となっていることから、そのような言
語をXMLアプリケーションとして設計することが自然
である。
【0028】したがって、モーダル性独立の情報コンテ
ンツおよび対話論理をオーサリングするためのXMLベ
ースの言語を設計し、次いで、得られたアプリケーショ
ンをターゲット装置に最適な仕方で送達することによ
り、モーダル性独立のWWWサービスを達成することが
できる。これは必然的に、情報コンテンツ、情報プレゼ
ンテーション、および対話論理を別個のコンポーネント
に分離する言語を設計することになる。WWWはすで
に、スタイル・シートを利用することによってコンテン
ツをプレゼンテーションから分離することに向けて進化
している。次の進化ステップは、対話論理を情報コンテ
ンツから抽出することである。現在、この領域での外部
規格活動が、W3Cなどの産業コンソーシアムのXFO
RMSおよびボイス・ブラウザの委員会内から現れるこ
とが予想されている。
【0029】上に概説した分離は、会話型コンピューテ
ィングと我々が呼ぶ手法となる。エンドユーザ・アプリ
ケーションおよびサービスは、モーダル性独立の会話型
ジェスチャの集合として表され、各会話型ジェスチャ
は、ユーザ対話を構成するマン・マシン・ダイアログの
原子的な一片をコード化する。
【0030】上に概説した洞察は、意図ベースのマーク
アップ言語を設計する試みが近い過去にわずかにあった
という事実によって妥当性検査される。これらは最初
に、異なる装置間、例えば小さい画面のハンドヘルド対
デスクトップPCの視覚プレゼンテーションにおける違
いを抽出するように設計された。スピーチ・インタフェ
ースが関係してくるとき、これらの言語は両方とも、こ
れらの元のターゲットであった異なる視覚表示に加えて
スピーチ装置に送達するためのエンドユーザ・アプリケ
ーションをオーサリングするための可能な手段として呈
示される。
【0031】本発明によれば、CMLは、スピーチおよ
び自然言語技術を含む会話型インタフェースに対処する
必要性によって導入される新たな要件に特に焦点を当て
られて、モーダル性独立のユーザ対話に向けたXMLベ
ースの言語として最初から設計される。ユーザ・インタ
フェースにおける一流市民としてのスピーチへのこの焦
点は、CMLを従来の試みとは異なる形で進化させた。
これらの、鍵となる違いのいくつかを対比することにす
る。
【0032】(i)データ・モデル上への対話のオーバ
ーレー 従来技術の言語はすべて、ユーザの意図と、ユーザ対話
によって同じ一片のマークアップ内に配置される、基礎
をなすデータ・モデルとを定義する。ある仕様からこれ
を例示する短い例を挙げる。以下に示すマークアップの
断片は、人の称号(Mr.、Mrs.、Ms)を得るの
に使用されることになる。プロンプト指示されるデータ
・モデルの定義が、ユーザ対話を生成するマークアップ
と混ざっていることに留意されたい。 <prior art ML> <CHOICE NAME="Person Titles" SELECTION-POLICY="SINGLE"> <CAPTION>Title</CAPTION> <HINT>This is a set of valid titles for a person.</ HINT> <STRING NAME="Mr"> <VALUE>Mr.<VALUE> </STRING> <STRING NAME="MRS"> <VALUE>Mrs.<VALUE> </STRING> <STRING NAME="MISS"> <VALUE>Miss</VALUE> </STRING> <STRING NAME="MS"> <VALUE>Ms<VALUE> </STRING> <CHOICE> </prior art ML>
【0033】上記を、以下に示す、人の称号を得るため
のCML表現と比較されたい。データ・モデルの定義、
すなわち有効な人の称号をリストする列挙型を、ユーザ
対話コンポーネントすなわち選択ジェスチャから分離し
ていることに留意されたい。
【0034】まず、列挙型PersonTitleを定義する。 <enum name="PersonTitle"type="string"> <value>MR</
value> <value>MRS</value> <value>MISS</value> </en
um>
【0035】フィールドPersonTitleが定義されると、
それは、ユーザ対話中の複数のポイントで適切なCML
ジェスチャを介してインスタンス化することができる。
これを、ジェスチャselectによって以下に示す。 <select name="PersonTitle"selection-policy="singl
e"> <message>PersonTitle</mesage> <choices> <choic
evalue="MR">Mr.</choice> <choicevalue="MRS>MRS.</
choice> <choicevalue="MISS">Miss.</choice> </choi
ces> </select>
【0036】基礎をなすデータ・モデルの定義(上の列
挙PersonTitle)から会話型ジェスチャ(上の例ではジ
ェスチャselect)を分離することは、次のようないくつ
かの利点をもたらす。
【0037】(1)データ定義から会話型ジェスチャを
分離することにより、例えば上のダイアログを国際化す
るときに、人の称号をプロンプト指示するための複数の
ユーザ・インタフェースをオーサリングすることができ
る。したがって、CMLで構成されたこのダイアログの
ドイツ語バージョンは、会話型ジェスチャを修正される
ことだけしか必要としないことになる。上記の表現が国
際化されるとき、すなわち変更が必要なのは要素captio
n、hint、およびcode valueのコンテンツであるとき、
基礎をなす列挙型の定義は同じままであることに留意さ
れたい。しかし、ユーザ・インタフェース・マークアッ
プをデータ定義上にオーバーレーすることによれば、こ
の設計は、ダイアログを国際化するのに必要な変更を切
り離すことができない。従来の言語のいくつかは、上記
のダイアログの異なる言語バージョンを作成するために
作成者によって次いで再利用されるテンプレートの概念
を導入することによって、国際化に関するこの明示的な
問題を回避していることに留意されたい。しかしこれ
は、根源にある基本的な問題を除去していない。すなわ
ち、データ定義およびユーザ・インタフェースは、依然
としてテンプレート定義中でリンクされたままである。
【0038】(2)フィールドPersonTitleが定義され
ると、CMLジェスチャは、ユーザ対話中の複数のポイ
ントでこのフィールドを参照することができる。したが
って、ユーザがフィールドPersonTitleに対する値を指
定すると、ダイアログの後続の部分は、プロンプト、例
えばWelcome to the electronic store Mr. Smithを作
成するときに、供給された値を参照することができる。
【0039】(3)CMLでオーサリングされたアプリ
ケーションはまた、ユーザ対話の異なるポイントでPers
onTitleなどの特定のフィールドに対してユーザに自由
にプロンプト指示することができ、ユーザは、どのポイ
ントで自分がそのフィールドに値を供給するかを自由に
決定することができる。このような形のフレキシビリテ
ィは、自然言語インタフェースの設計では特に不可欠で
あり、この場合もまた、ユーザ対話を宣言するマークア
ップからモデルを定義するマークアップを分離する結果
となる。この分離がなければ(現時点の従来技術のよう
に)、上記のものは、作成者にフィールドPersonTitle
を複数回定義させることになる。
【0040】上記のことを理解するために、ユーザがミ
ューチュアル・ファンドを売買することができると同様
に特定の資産の正味価値を知ることもできるミューチュ
アル・ファンド・アプリケーションを考察されたい。こ
の対話を単純化したバージョンで、システムは、ユーザ
から2つの情報アイテムを得る必要がある。 (a)ユーザ・アクション、すなわち売買または正味資
産評価 (b)作用する資産、例えば購入資金
【0041】上の例に自然言語インタフェースを使用す
るとき、ユーザは、システムから最初にプロンプト指示
されるときに、実行するアクションと作用する資産のい
ずれか、またはおそらくその両方を指定することが等し
く見込まれる。何が指定されたかに応じて、次にダイア
ログは、欠落した部分の情報に対してシステムがプロン
プト指示する状態に移行する必要がある。あるいは、ア
クションと資産が両方とも指定された場合、システム
は、フォーム「Would you like to action specified f
und?」の確認プロンプトを作成する必要がある。従来技
術は現在、対話マークアップすなわちこの場合に要素CH
OICEをデータ定義上にオーバーレーするので、アプリケ
ーション作成者が同じフィールドの値、例えばユーザ対
話中の異なるポイントにおける資産を得るためにユーザ
対話を指定することは不可能となる。
【0042】データ・モデルの上への対話のオーバーレ
ーは、本明細書に開示する、我々の手法の新規性とプロ
グラミング・モデルの新しいパラダイムとを特に強調す
る。
【0043】(ii)アプリケーション状態をカプセル化
するための明示的環境の欠如 CMLでユーザ対話からデータ・モデルを分離すること
の別の結果は、CML文書としてオーサリングされたア
プリケーションが、アプリケーション状態、例えば上に
挙げた例の中のPersonTitleまたはアクションを結合す
る環境を明瞭に呈示することである。従来技術の場合で
は、このアプリケーション状態は暗黙的であり、その言
語でコード化されたユーザ・インタフェースの他の部分
にとって容易に利用可能ではない。
【0044】データ・モデルを、したがってアプリケー
ション状態を明示的に定義することにより、CMLは、
ユーザ対話が完了するとサーバに送り返されることにな
るXMLコード化を明瞭に定義する。したがって、フィ
ールドPersonTitleの場合、サーバは、サブミット時に
以下のものを受信することになる。 <PersonTitle>MR</PersonTitle>
【0045】データ・モデルの定義にアクセスできるサ
ーバは、サブミットされた値を妥当性検査することがで
きる。より複雑な例では、データ・モデル定義は、アプ
リケーション特定の妥当性検査制約をカプセル化するこ
とができ、これらの制約は両方で、クライアント側でチ
ェックして、後でサブミット時にサーバ・エンド上で妥
当性検査することができる。このようにデータ・モデル
および制約をユーザ・インタフェースから分離すること
により、ユーザが特定の対話装置、例えばデスクトップ
PCを使用して対話を開始することを可能にするCML
アプリケーションが、部分的に完了したトランザクショ
ンをサブミットし、後で異なる装置、例えばセルラー・
ホンを使用してそのトランザクションを完了させること
ができる。
【0046】(iii)従来技術はGUIレガシーを反映
する 従来技術の仕様に定義されているコア属性の多くは、G
UI特定のレガシーを反映している。例えば、すべての
データ・モデルは表示されるコア属性によって制限さ
れ、これは、表示ベースのインタフェースにしか意味を
なさない。スピーチ・ベースのハンドヘルドやセルラー
電話などの視覚的でない装置に対し、enable=false、sh
own=trueなどの一義的な設定変換はないように思われ
る。
【0047】さらに、これらの属性は、ユーザ対話の表
現を小さいサイズの表示装置にマッピングすることを難
しくする。これは、デスクトップGUI用のこれらのM
Lでオーサリングされるアプリケーションが、対話要素
の多くを表示されるように宣言する見込みが高いからで
あり、これは表示装置のスペースが乏しい環境では難し
くなる。
【0048】従来技術は通常、大きな画面の外では意味
を持たない他のGUIコンポーネントを有する。残念な
がら、言語内に行き渡り、モーダル性/チャネルにまた
がって容易に使用可能ではない機能には問題があり、ト
ランスコーディング/レンダリングが任意のターゲット
に対して可能となることを保証することができない。
【0049】さらに、スピーチのようなモーダル性は、
ダイアログ・コンポーネントをレンダリングするために
追加の情報(例えば文法、語彙、言語モデル、音響モデ
ル、NL解析およびタグ付けデータ・ファイルなど)を
必要とする可能性がある。この情報は、従来の仕掛けで
は利用不可能である。この場合もまた、データ・モデル
と対話の間のオーバーレーは、同じダイアログ・コンポ
ーネントが、異なるデータ・ファイルを有するページで
複数回使用されるときに問題となる。
【0050】(iv)原子的会話型ジェスチャの欠如 従来技術によるユーザ対話の表現は、実装されている、
基礎をなすデータ・モデル上に直接オーバーレーされる
ため、これらのMLには、CMLにあるような原子的会
話型ジェスチャのセットの概念はない。むしろ、select
などの明示的なCMLジェスチャは、従来技術では暗黙
的である。例えば、CMLジェスチャselectは、従来技
術では、リスト構造に対するマークアップ上に選択要素
に対するマークアップをオーバーレーした結果として表
れることになる。上に挙げたフィールドPersonTitleの
例を参照されたい。
【0051】より複雑なダイアログを構成するとき、原
子的会話型ジェスチャの欠如がまず問題になる。例え
ば、従来技術は、明示的なテーブルおよびツリー構成を
導入して、2次元表レイアウトおよびツリーの仕組みの
GUI概念に対応する。しかし、これらのよりハイレベ
ルな構造はCMLにおけるように原子構成単位で構築さ
れていないため、テーブルやツリー(ここでツリーはop
enまたはclosedと宣言される)のようなコンポーネント
構成を、静的2次元表示が欠如したスピーチのようなモ
ーダル性にマッピングすることは不可能である。また、
ツリーやテーブルのようなジェスチャには、画面の小さ
い装置上で直接に相当するものがない。
【0052】(v)同期化 複数の対話モーダル性にまたがる密な同期化が、高品質
なマルチモーダル・インタフェースの鍵となる要件であ
る。さらに言えば、このようなマルチモーダル・クライ
アントは、基礎をなすプラットフォームとして従来のブ
ラウザから提供されるDOM(Document Object Mode
l、http://www.w3c.orgに記載)を使用して構成される
見込みがより高い。この後者の実施シナリオでは、上で
詳述した、ユーザ・インタフェース構成をデータ定義上
にオーバーレーすることが、やはりネックになりやすい
(例えば、ダイアログ/アプリケーション状態をカプセ
ル化するための明示的な環境の欠如に対して上に述べ
た、この場合にビューごとの同じ問題)
【0053】モーダル性にまたがる密な同期化は、CM
Lにおける基本的な目標である。これは、CML設計全
体に反映され、会話型ジェスチャとデータ・モデルの定
義との間に生じる分離は、旧来のモデル・ビュー・コン
トローラ(MVC)設計を使用してDOMの最上部に構
築されるマルチモーダル・ブラウザの実装をより容易に
する。
【0054】(vi)会話型アプリケーション 会話型アプリケーションは、複数のフォーム(それぞれ
がトランザクションまたはトランザクションの一部を記
述する)を同時に活動化させることによって宣言的に開
発することができる。これは、ファイル中の異なる場所
で同じダイアログ・コンポーネントを再利用する機能を
必要とする。上に説明したように、前述のオーバーレー
はこの要件をサポートしない。
【0055】(vii)イベント結合の欠如 イベント結合能力の欠如は、アプリケーションのマルチ
チャネル/マルチモーダル機能を制限する。すなわち、
何らかの具体的な論理動作を何らかの具体的な物理動作
に関連付ける方式がない。これは、異なる結合が望まし
いマルチモーダル/マルチチャネル・アクセス(例えば
電話ヘルプ用キー・ショート・カット、ヘルプ用音声コ
マンド、キーボード上におけるヘルプ用のキーの組合
せ)を提供したい場合にクリティカルである。
【0056】(viii)ピア さらに、従来技術の試みはまた、基礎をなす同じ表現か
ら異なるユーザ対話を生成するためにピアの技術に依拠
している。そうすることにより、これは、同期化される
マルチモーダル対話の問題に対処しない。
【0057】
【発明の実施の形態】後続の説明で、好ましい仕様のC
ML、好ましいマルチモーダル・ブラウジング環境、お
よび本発明をよりよく理解するためのいくつかの例示的
な適用例を使用して本発明を示す。しかし、本発明がこ
れらの特定の好ましい実施態様および例示的な適用例に
限定されないことを理解されたい。本発明はむしろ、よ
り一般に、アクセス・プロトコル、モーダル性、ブラウ
ザ、または装置に関係なく、どんな情報アクセス・アプ
リケーションにも適用可能である。したがって、本発明
はより一般に、同期化されマルチモーダルの、簡単かつ
便利な情報のアクセスをユーザに提供することが望まし
いどんな情報アクセス状況にも適用可能である。
【0058】詳細な説明は、参照しやすいように次のセ
クションに分かれている。すなわち、(I)CML仕
様、および(II)CMLをサポートし、解析し、レン
ダリングするためのマルチモーダル・ブラウザ体系であ
る。セクションIは、本発明によるCMLの好ましい仕
様の詳細な説明を提供する。セクションIIは、本発明
によるCMLを実施するための好ましいマルチモーダル
・ブラウジング環境を提供する。
【0059】I.CML仕様 以下の説明は、CMLの好ましい実施形態の仕様であ
る。このセクションは、参照しやすいように次のサブセ
クションに分かれている。すなわち、(A)序説、
(B)比較例、(C)CML構文、(D)名前空間、
(E)CML属性、(F)CMLコンポーネント、
(G)結合イベント、(H)ジェスチャのグループ化お
よび定義フォーカス、(I)データ・モデルおよびデー
タ・モデル、(J)アクセス環境、(K)CML横断モ
デル、(L)特定ユーザ・インタフェース言語へのCM
Lの変換、(M)表面変更、および(N)CML文書型
定義である。
【0060】A.序説 前述のように、コンテンツ再利用を達成するためにコン
テンツをプレゼンテーションから分離することは、ワー
ルド・ワイド・ウェブ(WWW)上で情報を展開するた
めに従来受け入れられてきた方式である。これを図1に
示す。図示のように、アプリケーション・オーサリング
に関する既存の手法は、2つのコンポーネントしか考慮
しない。すなわち、コンテンツ・コンポーネント
(A)、およびプレゼンテーションコンポーネント
(B)である。現在のW3C体系では、このような分離
は、コンテンツをXMLで表現し、次いでそれをアプリ
ケーションおよび装置に依存するXSL変換を介して適
切な最終形式のプレゼンテーション(例えばHTML、
VoiceXML、WML)に変換することによって達成さ
れる。しかし、この手法にはクリティカルな欠点があ
る。実際、XSL規則は通常、バックエンド・アプリケ
ーションまたは領域に依存する。結果として、アプリケ
ーションのオーサリングは、XMLコンテンツを設計
し、次いでXSLスタイル・シートをアプリケーション
/ページごとに、かつターゲット装置/チャネルごとに
設計することを伴う複数のオーサリング実行である。さ
らに、スタイル・シートを使用してあるMLから別のM
Lにトランスコーディングされると予想されるとき、前
述のように、トランスコーディングは通常、2つのレガ
シー言語間(例えばHTMLからWMLへ)であること
が多く、次いで、非常に厳密なオーサリングの規則に従
って元のコンテンツがHTMLで構築される。もっと
も、これは、所与の会社内の所与のウェブ・サイトに対
する場合にのみ施行可能である。そのような場合でも、
これは、一般にはほとんど実施不可能である。というの
は、他のモーダル性で対応するコンポーネントを提供す
るための、マークアップ言語またはモーダル性の間の情
報の欠落(例えば、HTMLフォームまたはメニューが
音声によって自動的にそれをレンダリングするために必
要な情報を提供しない)のせいである。
【0061】CMLは、フォーム(プレゼンテーショ
ン)およびコンテンツに加えて第3のコンポーネント、
すなわち対話を実現することによって動かされ、この対
話は、静的情報表現を対話型情報に変えることの中心に
ある。静的情報は、ユーザが受動的であり、かつ、すべ
ての情報を呈示される、非常に特殊な場合であることを
理解されたい。この新しいパラダイムを図2に示す。図
示のように、本発明は、対話によるプログラミングの概
念を導入し、ここで、アプリケーション・オーサリング
は3つのコンポーネント、すなわちコンテンツ(A)、
プレゼンテーション(B)、および対話(C)に分割さ
れる。この新しいプログラミング・パラダイムは、新し
いプログラミング環境、例えば開発ツールなどの開発と
組になって行われる。
【0062】この明細書を通して、少量の埋め込み型ア
プリケーション・インテリジェンスを有する「軽量」情
報アプリケーションまたは電子情報を「インフォウェア
(infoware)」と呼ぶ。現在まで、このような対話は、
一部は表示的なHTMLすなわちフォーム要素内で、一
部はサーブレット(servlets)およびCGI(CommonGa
te Interface)スクリプトにカプセル化されたサーバ側
の論理内で表示されてきた。この組合せが、情報コンテ
ンツが支配するインフォウェアすなわち軽量アプリケー
ションを生み出すことになった。今日のWWWにおける
インフォウェアのよい例は、Amazon.comのようなeビジ
ネスである。
【0063】複数のモーダル性を介してこのようなイン
フォウェアと対話する世界に我々が移動するのに伴い、
この3つのアスペクト、電子コンテンツすなわちコンテ
ンツとプレゼンテーションと対話との間を明瞭に分離す
る時が来た。
【0064】CMLは、すべてのマン・マシン・ダイア
ログが、適切なシーケンスの「会話型ジェスチャ」、ま
たは適切に結合させて任意の対話に置き換えることので
きるモーダル性独立の構成単位(コンポーネントまたは
要素)に分割できるという洞察に基づく。CMLは、こ
れらの基本的な構成単位をXMLでコード化することに
より、モーダル性独立方式でマン・マシン対話をカプセ
ル化する。このようなCMLカプセル化は、後に適切な
モーダル性依存のユーザ・インタフェースに変換され
る。この変換は、複数の「コントローラ」、すなわち今
日のWWW中心の世界におけるブラウザの間で同期化を
達成する形で行われ、これらが、単一のモーダル性独立
「モデル」に対するモーダル性特定の「ビュー」を操作
する。「モデル」、「ビュー」、「コントローラ」とい
う用語は、コンピューティングの従来のMVC(モデル
・ビュー・コントローラ)分解に従って使用される周知
の用語であり、例えば、その開示を参照により本明細書
に組み込むG.E.KrasnerおよびS.T.Popeの「A Cookbook
for Using the Model-View-Controller User Interface
Paradigm in SmallTalk-80」,Journal of Object-Orie
nted Programming,1(3):26-49, August/September 1988
を参照されたい。結果として、複数の情報機器にわたっ
て対話挙動が一貫し、複数のインタフェース・モーダル
性にわたってユーザ対話が整合され正しく同期化され
る。
【0065】B.比較例 CMLの好ましい実施形態の仕様を説明する前に、CM
Lおよび対話によるプログラミングの基本原理を示すい
くつかの例を呈示する。これらの例は、「グローバル・
カフェ」サイトに言及する。カフェに着く前またはカフ
ェにいるときに顧客が自分の飲物を前もって注文するこ
とができるようにすると決定したカフェを想像された
い。したがって、彼らは基本的に、アクセス・チャネル
に対して独立して自分の情報へのアクセスを提供したい
と思う。
【0066】したがって、ページがCMLでオーサリン
グされる。このページを生成するためのCMLコードを
CMLコード10として図3に示す。このページは基本
的に、一連の会話型ジェスチャを含む(ここでジェスチ
ャは、CMLおよび対話によるプログラミングの基本原
理がよりよく理解されるように、後で提供される実際の
CML仕様の細部からはいくぶん自由であることに留意
されたい。
【0067】このページは次のものを含むことができ
る。 (1)タイトル(図3で「ジェスチャ」20として示
す):「Global Cafe」(すなわちタイトルとしてレン
ダリングされる特定のメッセージ) (2)ジェスチャ・メッセージ(図3で「ジェスチャ」
22として示す):Would you like coffee, tea, milk
or nothing? (3)ジェスチャ・リストからの排他的選択(図3で
「ジェスチャ」24として示す:リストは次のアイテム
で構成される。coffee,tea,milk,nothing。 (4)サブミット・ジェスチャ(図3には明示的に示さ
ず)
【0068】明らかに、このページは、ターゲット・モ
ーダル性(すなわちアクセス・チャネルまたはアクセス
装置のタイプ)へのどんな依存も導入せずに、ユーザと
の完全な対話を十分に定義している。このページはま
た、次のような、対話によるプログラミングのプログラ
ミング・モデルもはっきりと示している。
【0069】(i)ターゲット・モーダル性に対して独
立して対話の基本的なコンポーネントを使用して、アプ
リケーションが対話によってプログラムされる。 (a)ジェスチャ・メッセージ:「Global Cafe」 (b)ジェスチャ・メッセージ:Would you like coffe
e, tea, milk or nothing? (c)ジェスチャ・リストからの排他的選択 (d)サブミット・ジェスチャ
【0070】(ii)これは、従来通りにプログラム/開
発されるバックエンドに接続される。この例では、バッ
クエンドへの接続はリスト(coffee,tea,milk,nothi
ng)によって例示され、これは、ページが作成されたと
きには静的に、また、ページがバックエンド論理を使用
してサーバ上で動的に生成されたときは動的に、バック
エンド・データベース中に読み込まれ、かつリストへの
引数として追加されたものである。
【0071】(iii)この段階で必要なら、例えばXF
ORM構文を使用して、属性/変数の制約、妥当性検査
を追加することができる。例えば、ページがアルコール
飲料を提供するためにユーザの年齢を要求する場合に
は、ユーザが自分は未成年であることを示すとダイアロ
グを制約または修正するといった制約を容易に表すこと
ができる。これは、このページには明示的に示していな
い。
【0072】(iv)プレゼンテーションは以後、表面変
更することができる。この例では、これは、ジェスチャ
・メッセージの代わりにジェスチャ・タイトルを使用す
ることによって行われる。すなわちモーダル性独立の表
面変更である。モーダル性特定の表面変更もまた、例え
ば、得られたHTMLページに使用するための背景(色
または画像)を指定するHTMLタグを追加することに
よって追加することができる。これは、他のターゲット
・モーダル性からは無視される、あるいは他のモーダル
性用に提供された「挙動」で置換されることになる。例
えば、HTMLモーダル性で画像が表示されるとき、代
わりのレンダリングとなるキャプションをWML、Voic
eXML、または他のモーダル性に提供することができ
る。
【0073】(v)得られたページは、次に、適切なブ
ラウザによってレンダリングすることができる。2つの
モデルが存在する。CMLページは、CMLコンテンツ
を解析およびレンダリングすることのできるブラウザに
提供される(以下のケースB参照)か、またはレガシー
言語、例えばHTML、WML、VoiceXMLなどしか
扱うことのできないレガシー・ブラウザに提供される
(以下のケースA参照)。
【0074】(a)ケースA:このケースは、「マルチ
チャネル」ケースとも呼ばれる。ターゲット・ブラウザ
は、要求者のアドレス(無線ゲートウェイまたはスピー
チ・ブラウザ)から、または要求(すなわちHTMLフ
ァイル要求対WMLページ要求)から明確である(HT
MLブラウザ用のHTTP接続で識別される)。ページ
が要求されるとき、これは、CMLで取り出され、ジェ
スチャ・ベースのXSL変換規則を使用して実行中にタ
ーゲットMLにトランスコーディングされる。
【0075】(b)ケースB:ターゲット・ブラウザは
CMLを扱う。したがって、ターゲット・ブラウザは、
それがサポートするモーダル性が何であるか(単一か複
数か)、ならびにサポートされるモーダル性で所与のジ
ェスチャを最適にレンダリングするのに必要な規則を正
確に知っている。これらのジェスチャXSL変換規則
は、装置が構築されたときまたはブラウザがそれに移植
されたときにブラウザ中にプログラムされたものである
ことが有利である。明らかに、これは、適切な情報を有
する(すなわちその装置を十分によく理解している)最
も適切なプログラマがその責務を負うことを意味する。
【0076】(vi)いずれの場合にも、CMLアプリケ
ーション開発者は、何もする必要がない。開発者は常
に、プラットフォーム/ブラウザがレンダリングを適切
に扱うと仮定することができる。
【0077】(vii)ジェスチャは、ターゲット・モー
ダル性から完全に独立している。ジェスチャはまた、バ
ックエンド・ビジネス論理/ドメインまたは他の何にも
独立、ジェスチャだけに依存する。これが、XSL規則
をブラウザに記憶できる理由である。
【0078】(viii)XSL規則は、ターゲット・モー
ダル性に基づいてジェスチャをレンダリングする。この
場合では、これは次のことを意味する。 (a)タイトル: HTML:太字の見出し文字が表示される WML:単一カード表示 VoiceXML:歓迎プロンプト (b)メッセージ: HTML:通常の文字で表示 WML:通常の文字で表示(おそらく複数のカード上
で) VoiceXML:プロンプト・メッセージを生成(テキス
トからメッセージへ、または再生) (c)リストからの排他的選択: HTML:プルダウン・メニュー WML:ラジオ・ボタン VoiceXML:メニュー中で選択するためのダイアログ
(おそらく自然言語)(例えば、「あなたはこのように
多くのアイテムから選べます。最初の3つを読みます。
アイテムを選ぶか、次の3つが聞きたければもっと、と
言って下さい・・・」)
【0079】図3に戻ると、CMLで書かれたグローバ
ル・カフェ・アプリケーションで得ることのできる3つ
の例示的なレンダリングを視覚化したものがある。した
がって、ジェスチャ・ベースのXSL変換を含むCML
コード10から、グローバル・カフェ・アプリケーショ
ンのHTMLレンダリング12、WMLレンダリング1
4、およびVoiceXMLレンダリング16が得られる。
【0080】(ix)マルチモーダル/会話型ブラウザに
よってトランスコーディングが行われるとき(以下に述
べる)、ジェスチャはnode_idタグを使用して一意に識
別される。これにより、登録された各モーダル性(ロー
カルまたは分散)でレンダリングが生成されるだけでな
く、非常に密な同期化が実現する(すなわち、これが意
味をなすジェスチャであるときに、ジェスチャ・レベル
で、またはサブ・ジェスチャ・レベルでも)。例えば、
イベント(I/Oイベント)は即座にダイアログの状態
(すなわち、上に参照した整理番号YO999178に
よって識別される特許出願にあるように、例えばマルチ
モーダル・シェル中に維持される状態)および他のモー
ダル性に影響する。したがって、このような密な同期化
が、携帯情報端末がサポートできるHTMLレンダリン
グ12と、従来の電話機がサポートできるVoiceXML
レンダリング16との間に存在することができる。
【0081】ジェスチャXSL変換規則は、アプリケー
ション開発者が上書きし、それらをどこでダウンロード
すべきかを示すことができることに留意されたい。それ
らはまた、普通ならデフォルトの挙動となるものから、
ユーザ、アプリケーション、または装置のプリファレン
スによって上書きすることもできる。
【0082】新しいジェスチャを追加することもでき、
その場合、関連するXSL規則を提供しなければならな
い(例えばそれを得る場所のURL)。
【0083】C.CML構文 CMLの好ましい実施形態では、CML構文はXMLに
準拠する。CMLインスタンスは、うまく形成されたX
MLである。装置の制約に基づいてXMLプロセッサを
妥当性検査するCMLプロセッサを実施することができ
る。
【0084】(i)特別なCML注記 (1)ケース依存性 CMLクライアントおよびサーバは、CML要素名およ
び属性名をケース依存として扱う。慣習として、この仕
様中に定義されたすべての要素名および属性名は、より
低いケースを使用する。この慣習は、事前定義されたす
べての要素名および属性名に厳密に課される。
【0085】(2)コンテンツ・モデル CMLインスタンスは、一連のXML要素からなる。C
MLは、最上レベルにあるどんなpcデータも許容しな
い。すなわち、CMLのすべての最上レベルの子は、必
ず要素である。
【0086】(3)乏しいCML CMLインスタンスは乏しい場合がある。属性node_id
を除き、この仕様中に述べる最上レベルのCML属性お
よび要素が必要とされる。
【0087】(4)エンティティ参照 CML中のすべてのエンティティ参照は、URI(Univ
ersal Resource Identifier)仕様に準拠する。http://
www.w3.orgのW3CからURI仕様を参照されたい。
【0088】(ii)用語 CML文書を記述するのに使用される用語を、この仕様
の本文中に定義する。以下のリスト中に定義する用語
は、これらの定義を構築し、CML「プロセッサ」の動
作を記述する際に使用される。CMLプロセッサは一般
に、CMLコードおよび関連するアプリケーションを実
行するように構成された処理装置を指す。用語は以下の
通りである。することができる、してもよい(may)
適合したCML文書およびプロセッサは、記述されたよ
うに挙動することができるが、その必要はない。しなけ
ればならない(must) 適合したCML文書およびプロ
セッサは、記述されたように挙動する必要がある。そう
でない場合は、以下に定義するエラーにある。エラー
(error) 本仕様の規則の違反。結果は不定である。
適合したソフトウェアがエラーを検出して報告すること
ができ、それから復旧することができる。致命的誤り
(fatal error) 適合したCMLプロセッサが検出し
てアプリケーションに報告しなければならないエラー。
【0089】D.名前空間 このセクションでは、CMLインスタンスのすべてのセ
クション内の名前空間の使用を詳述する。本仕様中に定
義するすべての要素および属性は暗黙的に名前空間cml
中にあることに留意されたい。すなわち、一般XML文
書内で発生するCMLインスタンス中の要素名message
は、XMLプロセッサにはcml:messageとして見え、C
ML属性node_idは、XMLプロセッサにはcml:node_id
として見えることになる。このセクションの後続の段落
で、CMLクライアント間の名前衝突を避けるために名
前空間cmlがさらにどのように細分されるかを定義す
る。
【0090】「限定されない」名前空間によって導入さ
れたすべての名前空間、例えばvxmlは、暗黙的に名前空
間com.ibm.cml.vxml中にある。より一般には、ベンダ特
定の名前空間は、ベンダのドメイン名から構成されるベ
ンダ接頭部を使用する。これは、Javaのようなシステム
によって使用される方式に類似する。
【0091】CMLはまた、名前空間を使用して、異な
る個々のインフォウェアからのフィールド名および値が
共存できるようにする。したがって、アプリケーション
cafe中のフィールドdrinkの完全に限定された名前は、c
afe.drinkである。この飲物の例に対する例示的な適用
は以下に述べる。CML中のすべてのフィールド名は常
に完全に限定されることに留意されたい。すなわち、フ
ィールド名内には、関連するジェスチャが発生するネス
ティング・レベルに基づく暗黙的な階層はない。
【0092】E.CML属性 CMLインスタンスは、次のXML属性を有することが
できる。別の方法で述べていない限り、すべての属性は
オプションである。 (i)node_id このCMLノードに対する固有の識別
子。属性node_idが要求される。 (ii)title CMLインスタンスにタイトルを指定す
る、人間が読めるメタデータ・ストリング。 (iii)name CMLインスタンス内でインスタンス化
されたすべてのフィールド値に対して名前空間を確立す
るのに使用される名前。 (iv)action CMLのターゲット・アクションである
URL(Uniform Resource Locator)を指定する。 (v)style 関連するXSLスタイル・シートのUR
I。指定がない限り、CMLインタープリタは、モーダ
ル性独立のCMLインスタンスをモーダル性特定のコー
ド化に変換するために、デフォルトで一般スタイル・シ
ートに設定する。属性styleは、CML作成者がシステ
ム全体のスタイル規則をオーバーライドまたは特殊化す
ることを可能にする。
【0093】F.CMLコンポーネント CMLインスタンスは、「会話型ジェスチャ」を表す。
前述のように、会話型ジェスチャは、ダイアログの基本
的な構成単位であり、対話論理をモーダル性独立の形で
カプセル化する。複雑な会話型コンポーネント(ダイア
ログ・コンポーネントまたはダイアログ・モジュールと
も呼ばれる)は、後続のサブセクションで述べるより基
本的な会話型ジェスチャを統合することによって構築さ
れる。これらの複雑な会話型コンポーネントは通常、例
えば電話番号を得る、住所を得るなどのタスク指向であ
る。基本的な会話型ジェスチャのCML記述は、所望の
レベルの複雑性までネストすることができる。ネスティ
ングの他にも、複雑な会話型コンポーネントは、基本的
な会話型ジェスチャを並列で、または逐次的に、あるい
はその両方で結合することによっても得られる。また、
複雑な会話型コンポーネントは、命令型ジェスチャ、例
えばCFC(Conversational Foundation Class)を結
合することによっても得られ、これは以下に述べる。あ
らゆるCMLジェスチャがXML要素であるものの、そ
の逆は真ではないことにも留意されたい。すなわち、本
仕様中に定義するあらゆるXML要素がCMLジェスチ
ャであるというわけではない。多くのCMLジェスチャ
は、サブ要素を使用して所与のジェスチャの基礎構造を
カプセル化する。後続のセクションでは、「ジェスチ
ャ」であるCML要素は、ジェスチャ・メッセージとい
うタイトルのサブセクション中のようにマークされる。
【0094】CMLは、新たに出現する他のW3C規
格、例えばXHTML(Extensible HyperText Markup
Language)などと相互動作するように設計される。した
がってCML要素は、HTML、MATHMLなどのよ
うな他のマークアップ言語から要素を再創作するのでは
なく、適切なところで再利用する。このような要素は、
CMLインスタンス中に埋め込まれると、例えばhtml:e
mなどに完全に限定される。以下の第1のサブセクショ
ンは、様々なCML構成単位の共通面を紹介し、後続の
サブセクションは、各構成単位を詳細に記述する。各C
ML基本要素が基本的な会話型ジェスチャを取り込み、
XML属性がより特殊化された挙動をコード化するのに
使用されることに留意されたい。したがって、例えば、
イエス/ノーの質問はCML基本要素であり、ユーザの
確認を必要とするイエス/ノーの質問は、この基本要素
を改良したものである。
【0095】CMLはジェスチャの上書きおよびジェス
チャの拡張を可能にするので、CMLの特定の実施形態
中に提供されるCMLジェスチャの基本セットがどんな
ものであるかは問題ではない。本明細書で提供されるセ
ットおよび規則は、どんなレガシー・ページおよび対話
の実施も可能にする。
【0096】CMLジェスチャは、以下の共通XML属
性を共用する。 action ジェスチャの完了時に行われるアクション。属
性actionは、link、return、またはsubmitのうちの1つ
とすることができる。
【0097】(i)ジェスチャMessage 会話型ジェスチャmessageは、ユーザに情報メッセージ
を伝達するのに使用される。ジェスチャmessageは通
常、表示される文字列または話されるプロンプトとして
レンダリングされる。話されるメッセージの一部は、C
MLインタープリタによってホスティングされている様
々な個々のインフォウェアの現状態の関数とすることが
できる(アクセス環境の状態に関するセクション参
照)。例:<message node_id="1">Your <html:em> chec
king</html:em> account balance is<value name="bank
ing.checking.balance"/>after transfering<value nam
e="banking.checking.transfer"/>to your<value name
="banking.creditCard.account ' '/></message>空の要
素valueは、現在の環境からの可変の情報を挿入するの
に使用され、アクセス環境の状態に関するセクションで
正式に定義する。
【0098】(ii)ジェスチャHelp 会話型ジェスチャhelpは、ダイアログにトラブルが起こ
った場合に表示すべきコンテキスト・ヘルプをカプセル
化するのに使用される。ジェスチャhelpは通常、表示さ
れるストリングまたは話されるプロンプトとしてレンダ
リングされる。メッセージの一部は、CMLインタープ
リタによってホスティングされている様々な個々のイン
フォウェアの現状態の関数とすることができる。 例: help node_id"1"You can check your account balances
by specifying aparticular account. </help>
【0099】(iii)Final CML要素finalは、カプセル化されたジェスチャが首
尾よく完了したときに行われるアクション、例えばユー
ザ対話に基づいてカプセル化環境を更新することをカプ
セル化するためにジェスチャ内で使用される。
【0100】(iv)ジェスチャBoolean:イエス/ノー
の質問 会話型ジェスチャbooleanは、典型的なイエス/ノーの
質問をカプセル化する。ジェスチャbooleanは、message
として使用すべきプロンプトならびにもしあればデフォ
ルトの応答をカプセル化する。属性require_confirmati
on、require_confirmation_if_no、およびrequire_conf
irmation_if_yes(デフォルトではすべてfalse)によっ
て、インフォウェア・アプリケーションがダイアログを
改良することができる。 例: <boolean default="y" node_id="1" require_confirm_if_no="true"> <grammar type="text/jsgf"> (yes | yeah) {yes} | (no nay) {no} </grammar> <message> Please confirm that you would like to stay at the <value href="travelCenter.hotel.selected"/> </message> </boolean>
【0101】(v)ジェスチャSelect 会話型ジェスチャselectは、ユーザが一組の選択肢から
選び取ることを期待される場合のダイアログをカプセル
化するのに使用される。これは、プロンプト、デフォル
ト選択、ならびに合法な選択肢のセットをカプセル化す
る。要素selectの属性は、相互排他的選択を達成する
(ラジオ・ボタンのグループとして視覚的にレンダリン
グされる)、範囲から選択する、スクロールバーとして
視覚的にレンダリングするなどのためにジェスチャを改
良する。selectのサブ要素は、以下のものを含む。 choices 値と参照のいずれかによって埋め込まれた可能な選択肢
のリストを含む。要素choicesは、1つまたは複数のcho
ice要素のリスト、ならびにもしあればデフォルト選択
を指定するせいぜい1つのdefault要素を含む。 predicate 選択が満たすべきテストをカプセル化する述語。 help ダイアログが行き詰まった場合に提供すべきヘルプ。 error predicateが失敗の場合に使用すべきメッセージを含
む。 例: <select name="portfolio.fund" node_id="1" require predicate= "yes"> <message node_id="2"> Which of your positions would you like to check? </message> <help> You can specify the names of stocks or funds you o
wnand we will report your current position. </help> <choices> <var name="possibleChoices"/> <default value="possibleChoices"> Check the position of all holdings</default> </choices> <predicate> <conduction> fund in possibleChoices </condition> <error> Sorry, you do not appear to own any shares in <var name="portfolio.fund"/> </error> </predicate> </select>
【0102】(vi)Predicate 要素predicateは、特定の会話型ジェスチャの結果を妥
当性検査するための規則をカプセル化するためにCML
中で使用される。テスト述語は、その開示を参照により
本明細書に組み込むW3Cからのxpath仕様すなわちXML
Path Language, W3C Proposed Recommendation中に定
義される表現構文および意味論を使用して単純な条件文
として表される。http://www.w3.org/tr/xpathを参照さ
れたい。xpathは、文書ツリーの異なる部分にアクセス
するための表現構文を指定し、アプリケーション・バッ
クエンドへの呼出しを必要とする妥当性検査は、個別に
扱われる。
【0103】predicate要素を含む会話型ジェスチャ
は、テストが失敗した場合に適切な属性を介して行うべ
きアクションを限定する。
【0104】(vii)Grammer CMLサブ要素grammarは、VoiceXML中で要素gramma
rの後にモデリングされる。サブ要素grammarは、文法フ
ラグメントをコード化し、サブ要素helpが、どの発話が
許容されるかをユーザに示すために再生される適切なヘ
ルプ・メッセージをカプセル化する。適切な場合に、C
MLジェスチャは、CMLインタープリタによってより
複雑な文法に組み立てられる文法フラグメントを提供す
ることができる。
【0105】サブ要素grammarは、入力、特にスピーチ
を処理する規則として一般化することができる。これら
の規則は、厳密にすることができる、または、処理に使
用すべき遠隔リソース(URL)を記述して、どのデー
タ・ファイルでどの処理を行い、どのアドレスにどんな
結果を返さなければならないかを記述する引数を、これ
らのリソースに渡すために提供することができる。一般
に文法は、適正範囲内に定義するかまたはURLを介し
て定義することができる。
【0106】さらに、この処理を、オブジェクト・タ
グ、例えば<object>...<object>によって宣言すること
も可能である。オブジェクト・タグによって、CFC
(Conversational Foundation Classes)またはCAP
(Conversational Application Platform)サービスを
ロードすることができる(例えば、上に参照したUS9
9/22927(整理番号YO999−111)として
識別されるPCT国際特許出願を参照されたい。ここで
CAPはCVMすなわち会話型仮想マシン(Conversati
onal Virtual Machine)に相当する。)引数は、XML
属性および変数を使用してオブジェクトに渡すことがで
きる。結果は、同様の変数プレースホルダを介して返す
ことができる。これにより、これらのオブジェクト呼出
しは、環境にアクセスしてそれを修正することができ
る。
【0107】オブジェクトは、以下の値をとることので
きる属性executeによって限定することができる。すな
わち、parallel(並列でブロックされずに実行され、環
境への進行中の影響を、その完了前の実行中に知らせる
ことができる)、asynchronous(非同期でブロックされ
ずに実行され、環境の更新が完了したときにイベントを
介して知らせる)、blocking(環境の更新および継続の
前にブラウザがオブジェクト呼出しの完了を待機する)
である。
【0108】処理を分散させるのに必要なすべての情報
は、上で参照したUS99/22925(整理番号YO
999−113)として識別されるPCT国際特許出願
に記載されており、これは、会話型アプリケーションの
分散を可能にする体系およびプロトコルを定義する。し
たがって、この国際特許出願は、そのような分散をどの
ように行うことができ、それがどのようにこの場合のク
ライアント・ブラウザとサーバ・ブラウザとの間、なら
びにローカル・エンジンとサーバ・エンジンとの間に処
理を分散させることを可能にするかを記述する。これに
より、ネットワークにわたる入力/出力イベントの処理
の分散が可能である。
【0109】(viii)ジェスチャMenu ジェスチャmenuは、ジェスチャselectの特殊なケースで
ある。ジェスチャmenuは、ユーザがあるアプリケーショ
ンの異なるサブパートをナビゲートするのを助けるダイ
アログをカプセル化するのに使用される。ジェスチャse
lectを使用して、同じ結果を達成することができる。し
かし、明示的なmenuジェスチャを有することにより、作
成者は、selectジェスチャが使用されている理由に関し
てより意味的な情報を提供することができる。以下の例
で、要素menuは、属性actionがlinkに設定されている要
素selectに相当することに留意されたい。 例: <menu name="main"> <choice value="#query">Ask a question</choice> <choice value="#browse">Browse available categorie
s</choice> </menu> 各選択における属性valueの値は、その選択に対するU
RIターゲットを指定する。
【0110】(ix)ジェスチャUser Identification 会話型ジェスチャuser_identificationは、ユーザ・ロ
グインおよび認証をカプセル化するのに使用される。こ
れは総称的なものとされ、スタイル規則を介して特定の
ユーザ対話環境用に特殊化される。
【0111】サブ要素userおよびidentifyは、ユーザ名
および認証の情報を得るための会話型ジェスチャをカプ
セル化する。要素predicateは、ユーザが首尾よく認証
されたかどうかを確認するためのテストを提供する。 例: <user_identify name="login" require_predicate="yes" on_fail="retry" node_id="2"> <message node_id="3"> To use this service, you first need to login using
your nameand personal identification. </message> <user name="userid" node_id="4"> what is your user id? </user> <identify name="pin" node_id="4"> Please provide your user authentication. </dentify> <predicate> <conditon> backend.authenticate(user id,pin) </condition> <predicate> <error> Sorry, login for <var name="userid"/> with identification <var name="pin"/> failed. </error> </user_identify> このジェスチャに対する変形は、例えば、識別ジェスチ
ャ(例えばその人が誰かを識別する)、検証ジェスチャ
(例えば要求者の認証)、スピーチ生物測定法(例えば
米国特許第5897616号)の間の明示的な区別に有
用となることができる。
【0112】(x)ジェスチャ制約付きのInput CMLは、日付や通貨などのユーザ入力を得るための、
いくつかの定義済みダイアログ・コンポーネントを提供
する。通常、このような入力は、これまでに列挙した様
々な選択ジェスチャよりも拡張可能であり、単純な編集
フィールドを介して従来の視覚インタフェース中で実現
される。しかし、このような入力ジェスチャに対するド
メイン特定の制約をカプセル化することは、口頭の対話
を構築する際に有利である。また、このようなドメイン
特定の制約は、通常、サーバにサブミットする前にユー
ザ入力の妥当性検査を行うHTMLページ内のクライア
ント側スクリプトとして、今日のWWWインタフェース
中で実施されていることにも留意されたい。CMLで
は、今日のWWW上で広く使用されているこれらの入力
ジェスチャを、標準的なユーザ・レベルのタスクを行う
ために形式化する。CMLはまた、この基本的な入力ジ
ェスチャのセットを時の経過に伴って拡張することので
きる拡張機構も提供する。このリスト中に定義するすべ
てのCML要素はジェスチャであることに留意された
い。 (1)Date 日付を指定する。 (2)Time 時間を指定する。 (3)Currency 通貨額を指定する。 (4)Credit Card クレジット・カード(カード・タ
イプ、カード番号、有効期限を含む)を指定する。 (5)Phone 電話番号を指定する。 (6)Email 電子メール・アドレスを指定する。 (7)URL URLを指定する。 (8)Snail Address 郵便番号、国/州/市、通りを
含めた「スネイル・メール」アドレスを指定する。
【0113】制約付きの入力ジェスチャは、文法を他の
入力フィールドに渡すことによって容易に拡張すること
ができる。このジェスチャはさらに、ローカライズでき
る(すなわち、国際化でき、地域的な趣を持たせること
のできる)トランスコーディング規則に関連付けること
もできることに留意されたい。これは、すべてのジェス
チャおよびジェスチャ・ベースのトランスコーディング
規則に実際に拡張可能なステートメントである。ロケー
ション(すなわち電話番号、IPアドレスの起点、ユー
ザに関して分かっている(ユーザのローカル装置/ブラ
ウザ上にあるかまたはクッキーを介してサーバに送信さ
れた)プリファレンス))に基づいて、ジェスチャを別
の言語で表すことができ(すなわち、「Select yes or
no」が「Selectionnez oui ou non」になるなど)、あ
るいは地理に適合させることができる(例えば、zipコ
ードが郵便番号になる)。
【0114】(xi)ジェスチャ制約のないInput 会話型ジェスチャinputは、入力制約がより複雑な(ま
たはおそらく存在しない)場合の、得られたユーザ入力
に使用される。このジェスチャは、ユーザ・プロンプ
ト、要求されている情報のアイテムに関するアプリケー
ション・レベルの意味構造、およびもしかすると入力の
妥当性をテストするためのpredicateをカプセル化す
る。アプリケーション特定の意味制約を伴うジェスチャ
inputは、前のセクションで考察した、組み込まれた制
約付き入力のジェスチャのセットを拡張する手段を提供
することに留意されたい。 例: <Input node_id="1"> <Message>...</Message> </Input>
【0115】(xii)ジェスチャSubmit 会話型ジェスチャsubmitは、パッケージされて、含んで
いるCMLインスタンスから返されるべき、環境からの
コンポーネントを指定する。これはまた、使用すべきプ
ロンプト、ならびにカプセル化された環境の状態をサブ
ミットすべきターゲットURIもカプセル化する。 例: <submit target="uri"> <env name="location.state"/> <env name="location.city"/> </submit>サブ要素envは、囲んでいるジェスチャがサブ
ミットすべき環境のコンポーネントを指定する。
【0116】様々なCML属性およびコンポーネントを
以上に説明したが、CMLのこの実施形態の他の態様を
説明しながら、その他の属性およびコンポーネントを以
下に呈示および定義することを理解されたい。その他の
属性およびコンポーネントは、本発明の教示に従って定
義される場合があることを理解されたい。すなわち、本
発明は、この詳細な説明で述べる特定の属性およびコン
ポーネントに限定されるものではない。
【0117】G.結合イベント CMLは、アプリケーション作成者が「論理入力イベン
ト」、ならびに、そのような論理イベントと、定義され
た論理イベントをトリガする実際の「物理入力イベン
ト」との間の関連を定義するための、フレキシブルかつ
拡張可能な機構を提供する。CMLジェスチャは、定義
された論理イベントが受け取られるとき、CMLジェス
チャが扱う準備のできている論理イベントを、CML属
性triggerを介して宣言し、そのトリガ・リスト中にマ
ッチング・イベントを有する最も近くの囲んでいるジェ
スチャが、そのイベントを扱う。CML属性trigger
は、ジェスチャがそれに論理的に結合されたイベントに
よってトリガされるようにする。この機構は、例によっ
て最もよく示される。以下に示すCMLコードの断片で
は、アプリケーションは、helpを論理入力イベントとし
て定義し、これを異なる2つのモーダル性にある物理イ
ベントに結合し、最終的に、helpイベントを扱うCML
ジェスチャを宣言する。 CML要素bind-eventは、3つの属性をとる。 (1)logical 定義されている論理イベントの名前を
指定する。 (2)modality イベントが結合されている対話モーダ
ル性を指定する。 (3)physical 論理イベントに結合させる物理イベン
トを指定する。
【0118】アプリケーションを構成するCMLジェス
チャによって扱われない入力イベントは、helpなどの標
準的なプラットフォーム・イベントがデフォルト・ハン
ドラによって扱われるCMLインタープリタにバブルア
ップする。バブルアップとは、トリガ値と一致するジェ
スチャを探索することが、一致するジェスチャがなくな
るまで階層的に、最も近くの囲んでいるジェスチャから
より高いジェスチャにバブルアップするという意味であ
る。このような場合、トリガは、ブラウザから、さもな
ければ基礎をなすプラットフォーム(例えばYO999
−111の会話型仮想マシン)から提供されるサービス
に関連付けるべきである。どれも満たされない場合、そ
のイベントは無視されるか、または入力が理解されず
(またはサポートされず)無視されたことを説明するデ
フォルト・メッセージがユーザに返される。しかしこれ
らは、ブラウザおよび基礎をなすプラットフォームを実
施する選択肢であって、言語の選択肢ではない。機構bi
nd-eventは、プラットフォームの挙動をオーバーライド
するように設計され、これは、ユーザ入力をCMLジェ
スチャにマッピングするための排他的機構として使用さ
れるものではないことに留意されたい。したがって、ア
プリケーション中の有効なすべての口頭発話を適切なジ
ェスチャに結合するのに要素bind-eventを使用すること
は反対される。
【0119】さらに、要素bind-event中の属性modality
を省略することにより、指定の物理結合がすべてのモー
ダル性で関連付けられることにも留意されたい。要素bi
nd-event中の属性physicalの値を省略することは、非結
合の、すなわち物理イベントに結合されない論理イベン
トを宣言する。
【0120】H.グループ化ジェスチャおよび定義フォ
ーカス 会話型ジェスチャは、特定のユーザ・インタフェースを
実現するために特定のモーダル性にされるとき、適切に
グループ化されて、ユーザがインタフェースの関係する
部分と対話することを可能にする。この断定を理解する
ために、ユーザ対話をいくつかのHTMLページにわた
って分割し、インタフェースの関係する部分が同じペー
ジ上に表示されるWWWアプリケーションを考察された
い。同様に、スピーチ・インタフェースは、ユーザがい
くつかの関係するコマンドのいずれかを所与の時間に指
定することを可能にする。
【0121】こうした形のジェスチャのグループ化は、
アプリケーションがオーサリングされているときにもっ
ともよく取り込まれる。このようなグループ化は、モー
ダル性独立の場合もあり、そうでない場合もある。CM
Lによれば、アプリケーション作成者は、両方の形のグ
ループ化をカプセル化することができる。
【0122】会話型ジェスチャは、CML要素groupを
使用してグループ化される。要素groupはさらに、属性i
d、modality、classによって限定される。属性idは、ジ
ェスチャをグループ化するのに最低限必要である。属性
modalityは、もしあれば、指定のグループ化をモーダル
性特定にすることを宣言する。属性classは、関係する
要素をさらに選択してCMLをHTMLのような言語に
トランスコーディングするために、HTMLのclass属
性と同様の方式で使用することができる。
【0123】デフォルトで、単一のgroup要素に囲まれ
たCMLジェスチャは、含まれるいずれかのジェスチャ
とユーザが対話できるようにするユーザ・インタフェー
スにマッピングする。HTMLの場合、これは、単一ペ
ージにトランスコーディングされているジェスチャとな
り、VoiceXMLの場合、これは、並列で活動化されて
いる対応するフォームとなる。
【0124】ジェスチャのグループを並列で活動化する
ことは、混合イニシアチブNLインタフェースを実施す
る方式であり、所与の時間にサポートされる各コマンド
/照会は、ジェスチャの中から構築されたフォーム(す
なわちジェスチャのグループはフォームと呼ばれる)を
特徴とすることに留意されたい。入力/出力イベントが
発生するとき、ブラウザまたは基礎をなすプラットフォ
ームから提供されるダイアログ・マネージャは、活動状
態にされた異なるフォーム中のジェスチャが何であるか
を推測することになり、それらの関連する属性(ジェス
チャに関連付けられた環境変数)を限定できるようにす
る。フォームのすべての必須属性が値を受け取ると、ア
クションは一義化されて実行されると見なされる。以下
に述べるが、XFORMSを使用して属性間の追加の制
約を表すこともできることに留意されたい。並列活動化
に関する考察に対する、上で参照した整理番号YO99
8−392によって識別される特許出願と、K.A.Papine
ni他の「Free-flow dialogmanagement using forms」,
Proc. Eurospeech,1999、およびその開示を参照により
本明細書に組み込むK.Davies他の「The conversational
telephony systemfor financial applications」,Pro
c. Eurospeech,1999も参照されたい。
【0125】要素groupのインスタンスは、内部グルー
プ要素が、囲んでいる要素中に指定されたものとは異な
る値を属性modalityまたはclassに対して指定しない限
り、ネストすることができない。
【0126】XFORMS(http://www.w3.org/MarkUp
/Forms/)のような努力は、同じバックエンドを保持し
ながら異なる種類のブラウザに向けた表示の置換を容易
にする試みにおいて(ただしXFORMSは異なるモー
ダル性に対処するのに失敗している)、図4に示すよう
にフォームを3層(プレゼンテーション、論理、デー
タ)に分割することにより、既存のマークアップ言語に
関連する問題を解決しようとしてきた。XFORMSデ
ータ層は、アプリケーション開発者がフォームに対して
データ・モデルを定義することを可能にする。開発者
は、組込みデータ・モデルを使用することもでき、自分
自身のものをロールすることもできる。XFORMS
は、XMLスキーマ上で行われている作業の最上部にデ
ータ・モデルを構築している。論理層は、アプリケーシ
ョン開発者が、例えば現総計に対する、またはあるフィ
ールドがファイルされるのに別のフィールドを必要とす
る場合の、フィールド間の依存性を定義することを可能
にする。XFORMSは、スプレッド・シートおよび既
存のフォーム・パッケージへの広く行き渡った親しみの
上に構築する軽量表現構文をサポートする。アプリケー
ション開発者は、追加のフレキシビリティが必要なとき
に、依然としてスクリプトを呼び出すことができる。プ
レゼンテーション層は、フォーム制御用のマークアップ
および他のHTMLマークアップからなり、各制御は、
データ・モデル中のフィールドに結合される。「gette
r」および「setter」関数は、正規の表現を内的に保持
しながら、プレゼンテーションが例えば日付および通貨
に対するユーザのプリファレンスに一致するようにし、
したがって、フォーム処理を簡略化する。同じデータ・
フィールドが、2つ以上のプレゼンテーション制御を結
合されることができる。いずれかの制御で値が変更され
ると、次いで、他のすべてが自動的に更新される。
【0127】本明細書で説明したように、XFORMS
は、プレゼンテーションからデータを分離するためのバ
ックエンド機構を提供する。CMLは、論理およびプレ
ゼンテーションの部分をさらにプレゼンテーション・レ
ンダリング(すなわち、対話情報のないモーダル性独立
のレンダリング)/対話(可能性あるモーダル性依存の
表面的入力を足したもの)/コンテンツ(すなわち、バ
ックエンド・データと論理情報を足したものから対話に
関係するすべての論理対話を引いたもの)に分離するた
めの機構を提供する。この創意に富んだ概念を図5に示
す。前に説明したように、本発明のプログラミング・パ
ラダイムは、プレゼンテーション/モーダル性特定のレ
ンダリングAと、対話Bと、コンテンツおよびバックエ
ンド/アプリケーション論理Cとを分離する。図5はま
た、前述のXFORMSのバックエンド機構も示し、デ
ータDはバックエンドEから分離している。図6は、ど
のようにフォーム・ベースの混合イニシアチブNLU
(自然言語理解、natural language understanding)ア
プリケーションがCMLで書かれるかを表している。文
字AおよびCは、図5にあるのと同じアイテムを示す。
B'で示したブロックでは、対話/ダイアログ情報がC
MLで記述される。この部分は、活動化可能な各トラン
ザクションを実現するために発生する必要のある対話
(必須およびオプション)を記述する。このためには、
基礎をなす属性データ構造に関連する制約およびデータ
・モデルを取り込むXFORMSコンポーネントを追加
する。エンジン制御および表面変更の部分は、会話型エ
ンジン、特にダイアログ・マネージャおよびNLUエン
ジンの挙動を最適化するのに使用される追加の制御パラ
メータを取り込む。CMLの部分は、前に述べたように
他のモーダル性でレンダリングするのに使用できること
に留意されたい。ブロックFは、ブロックB'に従って
利用できる例示的なフォーム(例えばミューチュアル・
ファンド・デモ・フォーム)を示す。
【0128】I.データ・モデルおよびデータ・モデル CMLは、XMLスキーマおよびXMLフォームに関す
るW3Cワークの結果によって指定されるデータ・モデ
ルまたはデータ・モデル基本要素を定義する。http://w
ww.w3.orgを参照されたい。
【0129】J.アクセス環境 CMLジェスチャは、集合的に「環境」と呼ばれる変数
の集合を定義する。CML文書が横断されるとき、環境
中の変数は、成功したユーザ対話から得られる値に束縛
される。環境は、以下に述べるが、要素var、value、as
signを介してCMLジェスチャ内でアクセスし操作する
ことができる。このような名前はすべて、常に完全に限
定されることに留意されたい。
【0130】(i)var 要素varは、現行の環境で、
変数を宣言し、(かつ任意選択で)初期設定する(それ
を初期値に割り当てる)。属性nameは、変数の名前を指
定する。初期値は、要素assignに対して指定するのと同
じ構文を使用して指定することができる。以下を参照さ
れたい。
【0131】(ii)assign 要素assingは、環境中にす
でに存在する変数に値を割り当てる。すなわち、要素as
signは、環境中の値を束縛するのに使用される。属性na
meは、束縛すべき変数を指定する。束縛すべき値は、属
性exprの値として、xpathによって使用されるのと同じ
表現構文を使用して指定することもでき、あるいは、割
り当てるべき値は、要素assignのコンテンツとして指定
することもできる。要素assignは通常、直接的なユーザ
対話によって設定されない中間変数を束縛または更新す
るのに使用される。
【0132】(iii)value 要素valueは、定義された
変数の値を取り出す。すなわち、空の要素valueの属性n
ameは、その値を環境中で検索すべき変数を指定する。
属性nameの値は、部分的にまたは完全に限定された名前
であり(名前空間に関する前述のセクション参照)、含
んでいるCMLジェスチャのコンテキストで解釈され
る。
【0133】上に定義したように、変数は、それらを割
り当てることができる前に宣言されなければならないこ
とに留意されたい。
【0134】K.CML横断モデル CMLでオーサリングされたインフォウェアは、複数の
ユーザ・エージェント間を調停する会話型シェルによっ
てホスティングされ、この会話型シェルを、以後、CM
Lインタープリタと呼ぶ。横断モデルは、図13および
14のコンテキストでさらに考察し、例示することを理
解されたい。ユーザ対話は、CMLインタープリタがC
MLインスタンスをHTMLやVoiceXMLなどの適切
なモーダル性特定の言語にマッピングすることによって
進行する。これらのモーダル性特定の表現は、モーダル
性特定バージョンのダイアログをレンダリングする適切
なユーザ・エージェントに渡される。
【0135】CMLからモーダル性特定の表現への変換
は、XSL変換規則(XSLT)に支配されることが好
ましい。他の変換機構も使用できることに留意された
い。XSLTは、好ましい実施形態に提案される一手段
にすぎない。例えば、JSP、Java Server Pagesまた
はJava Beans、ならびに規則に基づいてジェスチャをそ
れらのターゲット・レンダリングに変換する他の技術を
使用することもできる。このような実施の一例は、各ジ
ェスチャにジャバ・ビーンを関連付けるものである。ジ
ャバ・ビーンは、各モーダル性でそれ自体のレンダリン
グを(JSPを介して)伝える。したがって、本発明は
XSLTに限定されない。いずれの場合にも、これらの
XSL規則は、モーダル性特定である。CMLインスタ
ンスを適切なモーダル性特定の表現にマッピングするプ
ロセスで、XSL規則は、モーダル性特定のユーザ対話
の実現に必要な情報を追加する。例として、要素select
をVoiceXMLに変換するとき、関係するXSL変換規
則は、その会話型ジェスチャに有効な選択肢をカバーす
る文法の生成を扱う。
【0136】CMLインスタンスをHTMLなどのモー
ダル性特定の表現に変換するプロセスは、単一のCML
ノードを出力表現中のノードの集合にマッピングするこ
とになる可能性がある。これらの様々な表現にわたる同
期化を助けるために、CML属性node_idが、所与のC
MLノードから得られたすべての出力ノードに適用され
る。所与のCMLインスタンスが、適切なモーダル性特
定のXSL規則によって異なる表現、例えばHTMLお
よびVoiceXMLにマッピングされるとき、出力におけ
るツリーの形は、様々なモーダル性にわたっておそらく
非常に異なる。しかし、属性node_idは、モーダル性特
定の各表現から発生源であるCMLノードへの概念上の
バックリンクを提供することによって、これらの表現の
間で同期をとることを可能にする。上で参照した米国第
60/128081号(整理番号YO999−178)
として識別される米国仮特許出願に、マルチモーダル・
アプリケーションをしっかりとサポートできるプラット
フォーム(マルチモーダル・シェル)をどのように開発
するかに関する記述が提供されている。この機構は、次
のように動作する。各モーダル性は、それがサポートす
るコマンドと、それらの実行が他の登録済みモーダル性
に与えることになる影響とをマルチモーダル・シェルに
登録する。明らかに、ここでの場合、CMLページを解
析しジェスチャをトランスコーディングするとき、各ジ
ェスチャは、マルチモーダル・シェル中のデータ構造
(すなわちテーブル)中に保持される。所与のモーダル
性のI/Oイベント時に、活動化されたジェスチャを見
つけるためにnode_id情報が使用され、テーブル(すな
わちCML文書ダイアログ・ツリー)から、活動化され
たモーダル性ならびに他のモーダル性への影響が即座に
見つかる(すなわち、各ビューを更新するかまたはCM
Lサーバ上の新しいページを取り出す)。
【0137】ユーザ対話が進行するにつれ、現行のCM
Lインスタンスによって環境中で定義された変数は、妥
当性検査された値に束縛される。まず、登録されたモー
ダル性特定のユーザ・エージェントの1つでこの束縛が
発生する。登録されたユーザ・エージェントは、更新さ
れた環境および完了したばかりのジェスチャのnode_id
からなる適切なメッセージを会話型シェルに送る。更新
された束縛がCMLインタープリタに伝えられると、C
MLインタープリタは、完了したばかりのジェスチャの
node_idで、登録されたすべてのユーザ・エージェント
にメッセージを送る。登録されたユーザ・エージェント
は、このメッセージを受け取ると、まずそれらのプレゼ
ンテーションに影響する環境の部分に対してCMLイン
タープリタに照会することによって、それらのプレゼン
テーションを更新する。
【0138】L.特定ユーザ・インタフェース言語への
CMLの変換 CMLは、XSLで表現される変換規則によって、ユー
ザ・インタフェース(ui)特定のコード化、例えばH
TMLに変換される。このセクションは、XSL変換に
ついてのいくつかの背景材料で始まり、次いで、本発明
によってXSLがどのようにCMLおよびマルチモーダ
ル・ブラウザのコンテキストで使用されるかについての
例を呈示する。
【0139】(i)XSL変換の背景情報 W3C XSL変換(xslt)仕様は、James Clark編Pro
posed Recommendation: XSL Transformations (xslt) V
ersion 1.0, reference: W3C Proposed Recommendation
8-October-1999としてリリースされており、この開示
を参照により本明細書に組み込む。上に参照したW3C Pr
oposed Recommendationは、W3C Style活動の一部で
ある。具体的には、xslt仕様は、XML文書を他のXM
L文書にトランスコーディングするための言語であるxs
ltの構文および意味論を定義する。xsltは、XMLに対
するスタイル・シート言語であるXSLの一部として使
用するために設計されている。xslt言語中の変換は、xs
ltによって定義される要素とxsltによって定義されない
要素とを含むことのできるXML Recommendation中の
名前空間に準拠した、うまく形成されたXML文書とし
て表現される。xsltで表される変換は、ソース・ツリー
を結果ツリーに変換するための規則を記述する。変換
は、パターンをテンプレートと関連付けることによって
達成される。パターンは、ソース・ツリー中の要素と突
き合わせられる。テンプレートは、結果ツリーの一部を
生み出すためにインスタンス化される。結果ツリーは、
ソース・ツリーとは別個である。結果ツリーの構造は、
ソース・ツリーの構造とは全く異なるものとすることが
できる。結果ツリーを構成する際、ソース・ツリーから
の要素は、フィルタリングしてリオーダーすることがで
き、任意の構成を追加することができる。xsltで表され
た変換は、スタイル・シートと呼ばれる。xslt仕様は、
XMLとHTMLの両方のフォーマットで入手可能であ
る。
【0140】(ii)XSL変換の例 以下は、CMLコード、XSL変換規則と、それぞれの
変換から得られたHTML、WML、およびVoiceXM
Lコードを示すコード化の例である。
【0141】以下のコードは、CMLと、レガシーML
ページ(それぞれHTML、VoiceXML、およびWM
L)を作成するのに使用されていた異なるジェスチャ・
ベースのXSL規則とによって書かれたページの完全な
例を示す。各ページは、後続の図で示すような特定のレ
ンダリングに関連する。この例は、異なる情報サービス
へのアクセス、すなわちニュース、ビジネス、スポー
ツ、旅行、天気、芸能を提供するサイトのものである。
【0142】(a)CMLコード これは、例に関連するソースCMLページを記述する。 <!--$Id: cnn.cml,v 1.19 2000/02/01 Exp $--> <!--Description: CNN Mobile In cml --> <cml name="cnn" node_id="1" title="CNN Mobile News"> <menu name="cnn.command" node_id="2" > <choices node_id="3" > <default value="#cnn.query">Select News Stories</default> <choice value="#cnn.exit" require_confirmation="true"> Exit </choice> <choice value="#cnn.applicationHelp">Help</choice> </choices> </menu> <cml name="cnn.applicationHelp" title="About CNN Mobile" node_id="4" action="return"> <message node_id="5" > This application allows you to select and view CNN news stories </message> </cml> <cml name="cnn.exit" node_id="6" title="Exit CNN Mobile News" action="submit"> <message node_id="60"> Thankyou for using the CNN news service </message> </cml> <group node_id="7" groupId="query"> <cml name="cnn.query" title="Search CNN Mobile News" node_id="8" > <menu name="cnn.query.topic" node_id="11" title="Topic Selection"> <choices node_id="12" > <choice value="#cnn.query.news"> News </choice> <choice value="#cnn.query.business"> Business </choice> <choice value="#cnn.query.sports"> <grammar> (sport | sports" </grammar> Sports </choice> <choice value="#cnn.query.travel"> Travel </choice> <choice value="#cnn.query.weather"> Weather </choice> <choice value="#cnn.query.show"> <grammar > show [business] </grammar> Show Business </choice> </choices> </menu> </cml> <cml name="cnn.query.news" title="News Channel" node_id="13" action="submit"> <select name="cnn.query.part"> <message node_id="9" > Which part of today's news would you like to read?</message> <choices node_id="10" > <choice value="h"> Headlines</choice> <choice value="1"> first story </choice> <choice value="2"> second story </choice> <choice value="3"> third story </choice> </choices> </select> <select name="cnn.query.interest"> <message node_id="14" > Which news category would you like to read? </message> <choices node_id="15" > <choice value="business"> <grammar type="text/jsgf"> business {BIZ}</grammar> Business </choice> <choice value="africa"> Africa</choice> <choice value="world"> World </choice> <choice value="United states"> United states </choice> <choice value="europe"> Europe </choice> <choice value="Asia"> Asia</choice> <choice value="me"> Middle East</choice> <choice value="america"> America </choice> </choices> </select> </cml> <cml name="cnn.query.business" title="Business Channel" action="submit" node_id="16" > <select name="cnn.query.part"> <message node_id="9" > Which part of today's news would you like to read?</message> <choices node_id="10" > <choice value="h"> Headlines</choice> <choice value="1"> first story </choice> <choice value="2"> second story </choice> <choice value="3"> third story </choice> </choices> </select> <select name="cnn.query.interest"> <message node_id="17"> Which business category would you like to read?</message> <choices node_id="lS"> <choice value="NEWS"> news </choice> <choice value="IN"> indexes </choice> <choice value="CU"> exchange rates </choice> <choice value="MET"> metals </choice> </choices> </select> </cml> <cml name="cnn.query.weather" title="Weather Channel" action="submit" node_id="19" > <select name="cnn.query.part"> <message node_id="9" > Which part of today's news would you like to read?</message> <choices node_id="10" > <choice value="h"> Headlines</choice> <choice value="1"> first story </choice> <choice value="2"> second story </choice> <choice value="3"> third story </choice> </choices> </select> <select name="cnn.query.interest"> <message node_id="20"> Which region are you interested in?</message> <choices node_id="21"> <choice value="us"> United states </choice> <choice value="europe"> <grammar type="text/jsgf"> (euro | Europe) </grammar> Europe </choice> <choice value="JP"> Japan </choice> <choice value="AU"> Australia </choice> <choice value="AS"> Asia </choice> </choices> </select> </cml> <cml name="cnn.query.travel" title="Travel Section" action="submit" node_id="522" > <select name="cnn.query.part"> <message node_id="9" > Which part of today's news would you like to read?</message> <choices node_id="10" > <choice value="h"> Headlines</choice> <choice value="1"> first story </choice> <choice value="2"> second story </choice> <choice value="3"> third story </choice> </choices> </select> <select name="cnn.query.interest"> <message node_id="23"> Which city do you want to visit?</message> <choices node_id="24"> <choice value="AMSTERDAM">AMSTERDAM</choice> <choice value="COPENHAGEN">COPENHAGEN</choice> <choice value="HELSINKI">HELSINKI</choice> <choice value="HONGKONG">HONGKONG</choice> <choice value="LONDON">LONDON</choice> <choice value="OSLO">OSLO</choice> <choice value="PRAGUE">PRAGUE</choice> <choice value="SINGAPORE">SINGAPORE</choice> <choice value="STOCKHOLM">STOCKHOLM</choice> <choice value="SYDNEY">SYDNEY</choice> </choices> </select> </cml> <cml name="cnn.query.sports" action="submit" title="Sports Channel" node_id="25" > <select name="cnn.query.part"> <message node_id="9" > Which part of today's news would you like to read?</message> <choices node_id="10" > <choice value="h"> Headlines</choice> <choice value="1"> first story </choice> <choice value="2"> second story </choice> <choice value="3"> third story </choice> </choices> </select> <select name="cnn.query.interest"> <message node_id="26"> What sports are you interested in?</message> <choices node_id="27"> <choice value="AS"> Asia </choice> <choice value="w"> world </choice> <choice value="eu"> europe </choice> <choice value="us"> united states </choice> <choice value="nba"> NBA </choice> <choice value="nkl"> nbl </choice> <choice value="EF"> Europoean football </choice> </choices> </select> </cml> <submit target="htUp://raman.almaden.ibm.com/cgi-bin/cnn.cgi"> <message node_id="28"> executing <value name="cnn.command"/> for <value name="cnn.query.part"/> stories about <value name= "cnn.query.interest"/> from topic <value name="cnn.query.topic"/> </message> <env name="cnn.command"/> <env name="cnn.query.topic"/> <env name="cnn.query.interest"/> <env name="cnn.query.part"/> </submit> </group> <submit target="http://raman.almaden.ibm.com/cgi-bin/cnn.cgi"> </submit> </cml>
【0143】(b)ジェスチャXSL 以下の例は、CMLページをジェスチャごとにHTML
ページにトランスコーディングするのに使用される、C
MLからHTMLへのジェスチャ・ベースのXSL規則
を示す。任意の可能なCMLページをトランスコーディ
ングするのに必要なジェスチャ・ベースのトランスコー
ディング規則がすべてあるわけではない。これは、この
方法の例示と見なすべきである。XSL構文は、従来の
XSLT規則に従う。例えば、http://www.w3.org/1999
/XSL/Transformを参照されたい。 !--$Id: cml2html.xel,v 1.8 1999/11/12 20:01:11 $--> <!--Description: Transform CML to HTML --> <xsl:stylesheet xmlns:xcl="http://www.w3.org/1999/XSL/Transform" xmlns:xt="htCp://www.jclark.com/xt" version="1.0" extension-element-prefixes="xt"> <xsl:include href="html/cml.xsl"/> <xsl:include href="html/environment.xsl"/> <xsl:include href="html/output.xsl"/> <xel:include href="html/selections.xsl"/> <xsl:include href="common/identity.xsl"/> </xsl:stylesheet> <!--$Id: cml.xel,v 1.13 2000/01/31 Exp $--> <!--Description: Translate CML element to HTML --> <!-- Handle case of CML element being the top-level element --> <xsl:stylesheet xmlUs:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:template match="/cml"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <title><xsl:value-of select="@title"/></title> </head> <body> <hl> <a name="{@name}"> <xel:value-of select="@title"/> </a> </hl> <xsl:choose> <xsl:when test="@action='submit'"> <form> <xsl:attribute name="node_id"> <xsl:value-of select="@node_id"/> </xsl:attribute> <xsl:attribute name="action"> <xsl:value-of select="submit/@target"/> </xsl:attribute> <xsl:apply-templates/> <p> <INPUT TYPE="SUBMIT" VALUE="@name"/> < /p> </form> </xsl:when> <xsl:otherwise> <div node_id="{@node_id}" name="{@name}"> <xsl:apply-templates/> </div> </xsl:otherwise> </xsl:choose> </body> </html> </xsl:template> <xsl:template match="cml[@action='submit']"> <h2> <a name="{@name}"> <xsl:value-of select="@title"/> </a> </h2> <form> <xsl:attribute name="node_id"> <xsl:value-of select="@node_id"/> </xsl:attribute> <xsl:attribute name="action"> <!-- for rea, we should process submit node to cons up target uri --> <xsl:value-of select="../submit/@target"/> </xsl:attribute> <xcl:apply-templates/> <p> <INPUT TYPE="SUBMIT" VALUE="{@name}"/> </P> </form> </xsl:template> <xsl:template match="cml"> <h2 node_id="{@node_id}"> <a name="{@name}"> <xsl:value-of select="@title"/> </a> </h2> <xsl:apply-templates/> <xSl:if test="@action='return'"> <p> <a name="{concat('#', /cml/@name)}"> Back </a> < /p> </xsl:if> </xsl:template> <xsl:template match="group"> <div groupId="{@groupId}" modality="{@modality}" class="{@class}"> <xsl:apply-templates/> </div> </xsl:template> <xsl:template match="submit"/> </xsl:stylesheet> <!--$Id: environment.xsl,v 1.2 2000/02/01 Exp $ --> <!--Description: Process CML environment constructs --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="final"> <xsl:apply-templates/> </xsl:template> <xsl:template match="var"> <input type="hidden" name="{@name}" value="{@expr}"/> </xsl:template> <xsl:template match="assign"> <input name="{@name}" type="hidden"> <xsl:attribute name="value"> <xsl:choose> <xsl:when test="@expr=''"> <xsl:value-of select="./node()"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="@expr"/> </xsl:otherwise> </xsl:choose> </xsl:attribute> </input> </xcl:template> <xsl:template match="value"> <b><xsl:value-of select="@name"/></b> </xsl:template> </xsl:stylesheet> <!--$Id: output.xsl,v 1.3 1999/11/12 20:07:23 Exp $--> <!-- Description: Transformation rules for CML gestures that --> <!-- primarily output information --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="message"> <P> <xsl:attribute name="node_id"> <xsl:value-of select="@node_id"/> </xsl:attribute> <xsl:apply-templates/> </P> </xsl:template> <!-- eventually generate pop-up help via javascript --> <xsl:template match="help"> <P> <xsl:attribute name="node_id"> <xsl:value-of select="@node_id"/> </xsl:attribute> <xsl:apply-templates/> </P> </xsl:template> </xsl:stylesheet> <!--$Id: selections.xsl,v 1.8 2000/01/31 17:50:34 $--> <!--Descriptions: Transform CML selection gestures to HTML --> <xsl:stylesheet xmlus:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="menu"> <xsl:if test="@title!=''"> <h2> <a name="#{@name}"> <xsl:value-of select="@title"/> </a> </h2> </xsl:if> <xsl:apply-templates select="message"/> <ol node_id="{@node_id}"> <xsl:for-each select="choices/choice|choices/default"> <li> <a href="{@value}"> <xsl:apply-templates/> </a> </li> </xsl:for-each> </ol> </xsl:template> <xsl:template match="select"> <xsl:apply-templates select="message"/> <select name="{@name}"> <xsl:apply-templates select="choices"/> </select> <P/> </xsl:template> <xsl:template match="choices"> <xsl:apply-templates/> </xsl:template> <xsl:template match="choice|default"> <option> <xsl:attribute name="value"> <xsl:value-of select="@value"/> </xsl:attribute> <xsl:if test="name(.)='default'"> <xsl:attribute name="checked"/> </xsl:if> <xsl:apply-templates/> </option> </xsl:template> <xsl:template match="grammar" /> </xsl:stylesheet> <!--$Id: identity.xsl,v 1.1 1999/11/08 18:05:26 Exp $--> <!-- Description: Identity transform for use in other sheets--> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="*|@*"> <xsl:value-of select="."/> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:apply-templates select="node()"/> </xsl:copy> </xsl:template> </xsl:stylesheet>
【0144】(c)HTMLソース 以下は、(CMLからHTMLへの)XSLソースをC
MLソース・ページ上に適用することによって得られる
HTMLソース・ページを記述する。得られた歓迎GU
IページをHTMLブラウザで見たものを、図7から9
に示す。 <!DOCTYPE html PUBLIC "-/M13C//DTD HTML 4.0 Transitional//EN"> <html> <head> <META http-equiv=" Content-Type" content= "text/html; charset=iso-8859- 1 " > <title>CNN Mobile News</title> </head> <body> <hl> <a name="cnn">CNN Mobile News</a> </hl> <divnode_id="l" name="cnn"> <ol node_id="2"> <li> <a href="#cnn.query">Select News Stories</a> </li> <li> <a href="#cnn.exit"> Exit </a> </li> <li> <a href="#cnn.applicationHelp">Help</a> </li> </ol> <h2 node_id="4"> <a name="cnn.applicationHelp">About CNN Mobile</a> </h2> <P node_id=" 5 " > This application allows you to select and view CNN news stories </P> <p> <a name="#cnn"> Back </a> </p> <h2> <a name="cnn.exit">Exit CNN Mobile News</a> </h2> <form node_id= " 6 " action="http://raman.almaden.ibm.com/cgi-bin/cnn.cg i?command=exit" > <P node id="60"> Thankyou for using the CNN news service </P> <p> <INPUT TYPE="SUBMIT" VALUE="cnn.exit"> </p> </form> <div groupId="query" modality="" class=""> <h2 node_id="8"> <a name="cnn.query">Search CNN Mobile News</a> </h2> <h2> <a name="#cnn.query.topic">Topic Selection</a> </h2> <ol node_id="ll"> <li> <a href="#cnn.query.news"> News </a> </li> <li> <a href="#cnn.query.business"> Business </a> </li> <li> <a href="#cnn.query.sports"> Sports </a> </li> <li> <a href="#cnn.query.travel"> Travel </a> </li> <li> <a href="#cnn.query.weather"> Weather </a> </li> <li> <a href="#cnn.query.show"> Show Business </a> </li> </ol> <h2> <a name="cnn.query.news">News Channel</a> </h2> <form node_id=" 13 " action="http://raman.almaden.ibm.com/cgi-bin/cnn.cg i?command=search" > <P node_id="9"> Which part of today's news would you like to read?</P> <select name="cnn.query.part"> <option value="h"> Headlines</option> <option value="1"> first story </option> <option value="2"> second story </option> <option value="3"> third story </option> </select> <p> </p> <P node id="14"> Which news category would you like to read? </P> <select name= " cnn.query.interest" > <option value="business"> Business </option> <option value="africa"> Africa</option> <option value="world"> World </option> <option value="United states"> United states </option> <option value="europe"> Europe </option> <option value="Asia"> Asia</option> <option value="me"> Middle East</option> <option value="america"> America </option> </select> <p> </p> <p> <INPUT TYPE="SUBMIT" VALUE="cnn.query.news"> </p> </form> <h2> <a name= " cnn.query.business" >Business Channel</a> </h2> <form node_id=" 16 " action="http://raman.almaden.ibm.com/cgi-bin/cnn.cg i?command=search" > <P node_id="9"> Which part of today's news would you like to read?</P> <select name="cnn.query.part"> <option value="h"> Headlines</option> <option value=" 1 " > first story </option> <option value="2"> second story </option> <option value="3"> third story </option> </select> <p> </p> <P node_id="17"> Which business category would you like to read?</P> <select name="cnn.query.interest" > <option value="NEWS"> news </option> <option value="IN"> indexes </option> <option value="CU"> exchange rates </option> <option value="MET"> metals </option> </select> <p> </p> <p> <INPUT TYPE="SUBMIT" VALUE=" cnn.query.business" > </p> </form> <h2> <a name="cnn.query.weather">Weather Channel</a> </h2> <form node_id= " 19 " action="http://raman.almaden.ibm.com/cgi-bin/cnn.c gi?command=search" > <P node id="9"> Which part of today's news would you like to read?</P> <select name="cnn.query.part"> <option value="h"> Headlines</option> <option value= " 1 " > f~rst story </option> <option value="2"> second story </option> <option value="3"> third story </option> </select> <p> </p> <P node_id="20"> Which region are you interested in?</P> <select name= "cnn.query.interest" > <option value="us"> United states </option> <option value="europe"> Europe </option> <option value="JP"> Japan </option> <option value="AU"> Australia </option> <option value="AS"> Asia </option> </select> <p> </p> <p> <INPUT TYPE="SUBMIT" VALUE="cnn.query.weather"> </p> </form> <h2> <a name="cnn.query.travel">Travel Section</a> </h2> <form node_id=" 22 " action="http://raman.almaden.ibm.com/cgi-bin/cnn.cg i?command=search" > <P node_id="9"> Which part of today's news would you like to read?</P> <select name="cnn.query.part"> <option value="h"> Headlines</option> <option value=" 1 " > first story </option> <option value="2"> second story </option> <option value="3"> third story </option> </select> <p> </p> <P node_id= " 23 " > Which city do you want to visit?</P> <select name="cnn.query.interest"> <option value="AMSTERDAM">AMSTERDAM</option> <option value= " COPENHAGEN " >COPENHAGEN</option> < option value = " HELSINKI " >HELSINKI</option> <option value="HONGKONG">HONGKONG</option> <option value="LONDON" >LONDON</option> <option value= " OSLO " >OSLO</option> <option value="PRAGUE">PRAGUE</option> <option value= " SINGAPORE " >SINGAPORE</option> <option value="STOCKHOLM" >STOCKHOLM</option> <option value="SYDNEY">SYDNEY</option> </select> <p> </p> <p> <INPUT TYPE="SUBMIT" VALUE="cnn.query.travel"> </p> </form> <h2> <a name="cnn.query.sports">Sports Channel</a> </h2> <form node_id= " 25 " action= "http://raman.almaden.ibm.com/cgi-bin/cnn. cgi?command=search" > <P node_id="9"> Which part of today's news would you like to read?</P> <select name="cnn.query.part"> <option value="h"> Headlines</option> <option value= " 1 " > first story </option> <option value="2"> second story </option> <option value="3"> third story </option> </select> <p> </p> <P node_id="26"> What sports are you interested in?</P> <select name="cnn.query.interest"> <option value="AS"> Asia </option> <option value="w" > world </option> <option value="eu"> europe </option> <option value="us"> united states </option> <option value="nba"> NBA </option> <option value="nhl"> nhl </option> <option value="EF"> Europoean football </option> </select> <p> </p> <p> <INPUT TYPE="SUBMIT" VALUE="cnn.query.sports"> </p> </form> </div> </div> </body> </html>
【0145】(d)ジェスチャXSL 以下の例は、CMLページをジェスチャごとにWMLペ
ージにトランスコーディングするのに使用される、CM
LからWMLへのジェスチャ・ベースのXSL規則を示
す。任意の可能なCMLページをトランスコーディング
するのに必要なジェスチャ・ベースのトランスコーディ
ング規則がすべてあるわけではない。これは、この方法
の例示と見なすべきである。XSL構文は、従来のXS
LT規則に従う。例えば、http://www.w3.org/1999/XSL
/Transformを参照されたい。 <!-- $Id: cml2html.xsl,v 1.9 2000/02/05 19:32:40 Exp $ --> <!-- Description: Transform CML to HTML --> - <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xt="http://www.jclark.com/xt" version="1.0" extension-element-pref ixes="xt"> <xsl:include href="html/cml.xsl" /> <xsl:include href="html/environment.xsl" /> <xsl:include href="html/modality.xsl" /> <xsl:include href="html/output.xsl" /> <xsl:include href="html/selections.xsl" /> <xsl:include href="common/identity.xsl" /> </xsl:stylesheet> <!--$Id: cml.xsl,v 1.13 2000/01/31 Exp $--> <!--Description: Translate CML element to HTML --> <!-- Handle case of CML element being the top-level element --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:template match="/cml"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/ > <title><xsl:value-of select="@title"/></title> </head> <body> <h1> <a name="{@name}"> <xsl:value-of select="@title"/> </a> </h1> <xsl:choose> <xsl:when test="@action='submit'"> <form> <xsl:attribute name="node_id"> <xsl:value-of select="@node_id"/> </xsl:attribute> <xsl:attribute name="action"> <xsl:value-of select="submit/@target"/> </xsl:attribute> <xsl:apply-templates/> <p> <INPUT TYPE="SUBMIT" VALUE="@name"/> </p> </form> </xsl:when> <xsl:otherwise> <div node_id="{@node_id}" name="{@name}"> <xsl:apply-templates/> </div> </xsl:otherwise> </xsl:choose> </body> </html> </xsl:template> <xsl:template match="cml[@action='submit']"> <h2> <a name="{@name}"> <xsl:value-of select="@title"/> </a> </h2> <form> <xsl:attribute name="node_id"> <xsl:value-of select="@node_id"/> </xsl:attribute> <xsl:attribute name="action"> <!-- for rea, we should process submit node to cons up target uri --> <xsl:value-of select="../submit/@target"/> </xsl:attribute> <xsl:apply-templates/> <p> <INPUT TYPE="SUBMIT" VALUE="{@name}"/> </p> </form> </xsl:template> <xsl:template match="cml"> <h2 node_id="{@node_id}"> <a name="{@name}"> <xsl:value-of select="@title"/> </a> </h2> <xsl:apply-templates/> <xsl:if test="@action='return'"> <p> <a name="{concat('#', /cml/@name)}"> Back </a> </p> </xsl:if> </xsl:template> <xsl:template match="group"> <div groupId="{@groupId}" modality="{@modality}" class="{@class}"> <xsl:apply-templates/> </div> </xsl:template> <xsl:template match="submit"/> </xsl:stylesheet> <!--$Id: environment.xsl,v 1.2 2000/02/01 Exp $ --> <!--Description: Process CML environment constructs --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="final"> <xsl:apply-templates/> </xsl:template> <xsl:template match="var"> <input type="hidden" name="{@name}" value="{@expr}"/> </xsl:template> <xsl:template match="assign"> <input name="{@name}" type="hidden"> <xsl:attribute name="value"> <xsl:choose> <xsl:when test="@expr=''"> <xsl:value-of select="./node()"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="@expr"/> </xsl:otherwise> </xsl:choose> </xsl:attribute> </input> </xsl:template> <xsl:template match="value"> <b><xsl:value-of select="@name"/></b> </xsl:template> </xsl:stylesheet> <!-- $Id: modality.xsl,v 1.1 2000/02/05 19:32:00 Exp $ --> <!-- Description: Process CML modality constructs --> - <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> - <xsl:template match="modality[@class='visual']"> <xsl:apply-templates /> </xsl:template> - <xsl:template match="var"> <input type="hidden" name="{@name}" value="{@expr}" /> </xsl:template> - <xsl:template match="assign"> - <input name="{@name}" type="hidden"> - <xsl:attribute name="value"> - <xsl:choose> - <xsl:when test="@expr=''"> <xsl:value-of select="./node()" /> </xsl:when> - <xsl:otherwise> <xsl:value-of select="@expr" /> </xsl:otherwise> </xsl:choose> </xsl:attribute> </input> </xsl:template> - <xsl:template match="value"> - <b> <xsl:value-of select="@name" /> </b> </xsl:template> </xsl:stylesheet> <!--$Id: output.xsl,v 1.3 1999/11/12 20:07:23 Exp $--> <!-- Description: Transformation rules for CML gestures that --> <!-- primarily output information --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="message"> <P> <xsl:attribute name="node_id"> <xsl:value-of select="@node_id"/> </xsl:attribute> <xsl:apply-templates/> </P> </xsl:template> <!-- eventually generate pop-up help via javascript --> <xsl:template match="help"> <P> <xsl:attribute name="node_id"> <xsl:value-of select="@node_id"/> </xsl:attribute> <xsl:apply-templates/> </P> </xsl:template> </xsl:stylesheet> <!--$Id: selections.xsl,v 1.8 2000/01/31 17:50:34 $--> <!--Descriptions: Transform CML selection gestures to HTML --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="menu"> <xsl:if test="@title!=''"> <h2> <a name="#{@name}"> <xsl:value-of select="@title"/> </a> </h2> </xsl:if> <xsl:apply-templates select="message"/> <ol node_id="{@node_id}"> <xsl:for-each select="choices/choice|choices/default"> <li> <a href="{@value}"> <xsl:apply-templates/> </a> </li> </xsl:for-each> </ol> </xsl:template> <xsl:template match="select"> <xsl:apply-templates select="message"/> <select name="{@name}"> <xsl:apply-templates select="choices"/> </select> <p/> </xsl:template> <xsl:template match="choices"> <xsl:apply-templates/> </xsl:template> <xsl:template match="choice|default"> <option> <xsl:attribute name="value"> <xsl:value-of select="@value"/> </xsl:attribute> <xsl:if test="name(.)='default'"> <xsl:attribute name="checked"/> </xsl:if> <xsl:apply-templates/> </option> </xsl:template> <xsl:template match="grammar" /> </xsl:stylesheet> <!--$Id: identity.xsl,v 1.1 1999/11/08 18:05:26 Exp $--> <!-- Description: Identity transform for use in other sheets--> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="*|@*"> <xsl:value-of select="."/> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:apply-templates select="node()"/> </xsl:copy> </xsl:template> </xsl:stylesheet>
【0146】(e)WMLソース 以下は、(CMLからWMLへの)XSLソースをCM
Lソース・ページ上に適用することによって得られるW
MLソース・ページを記述する。得られた歓迎GUIペ
ージをWMLブラウザで見たものを、図10に示す。 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum .org/DTD/wml_1.1. <wml> <template> <do type="prev" label="Back"> <prev/> </do> </template> <card id="cnn.command" title="cnn.command"> <p> <select name="cnn.command"> <option onpick="#cnn.query">Select News Stories</option> <option onpick="#cnn.exit"> Exit </option> <option onpick="#cnn.applicationHelp">Help</option> </select> </p> </card> <card id="cnn.applicationHelp" title="cnn.applicationHelp"> <p> This application allows you to select and view CNN news stories </p> </card> <card id="cnn.exit" title="cnn.exit"> <p> Thankyou for using the CNN news service </p> <p align="center"> <a href="cnn.wmls#submit()"/> </p> </card> <card id="cnn.query" title="cnn.query"> <p> <select name="cnn.query"> <option onpick="#cnn.query.news"> News </option> <option onpick="#cnn.query.business"> Business </option> <option onpick="#cnn.query.sports"> Sports </option> <option onpick="#cnn.query.travel"> Travel </option> <option onpick="#cnn.query.weather"> Weather </option> <option onpick="#cnn.query.show"> Show Business </option> </select> </p> </card> <card id="cnn.query.news" title="cnn.query.news"> <p> Which part of today's news would you like to read?<select name="cnn.quer y.part"> <option value="h" onpick="cnn.wmls#submit()"> Headlines</option> <option value="1" onpick="cnn.wmls#submit()"> first story </option> <option value="2" onpick="cnn.wmls#submit()"> second story </option> <option value="3" onpick="cnn.wmls#submit()"> third story </option> </select> </p> <p> Which news category would you like to read? <select name="cnn.query.interest"> <option value="business" onpick="cnn.wmls#submit()"> Business </option> <option value="africa" onpick="cnn.wmls#submit()"> Africa</option> <option value="world" onpick="cnn.wmls#submit()"> World </option> <option value="United states" onpick="cnn.wmls#submit()"> United states </option> <option value="europe" onpick="cnn.wmls#submit()"> Europe </option> <option value="Asia" onpick="cnn.wmls#submit()"> Asia</option> <option value="me" onpick="cnn.wmls#submit()"> Middle East</option> <option value="america" onpick="cnn.wmls#submit()"> America </option> </select> </p> <p align="center"> <a href="cnn.wmls#submit()"/> </p> </card> <card id="cnn.query.business" title="cnn.query.business"> <p> Which part of today's news would you like to read?<select name="cnn.quer y.part"> <option value="h" onpick="cnn.wmls#submit()"> Headlines</option> <option value="1" onpick="cnn.wmls#submit()"> first story </option> <option value="2" onpick="cnn.wmls#submit()"> second story </option> <option value="3" onpick="cnn.wmls#submit()"> third story </option> </select> </p> <p> Which business category would you like to read?<select name="cnn.query.i nterest" <option value="NEWS" onpick="cnn.wmls#submit()"> news </option> <option value="IN" onpick="cnn.wmls#submit()"> indexes </option> <option value="CU" onpick="cnn.wmls#submit()"> exchange rates </option> <option value="MET" onpick="cnn.wmls#submit()"> metals </option> </select> </p> <p align="center"> <a href="cnn.wmls#submit()"/> </p> </card> <card id="cnn.query.weather" title="cnn.query.weather"> <p> Which part of today's news would you like to read?<select name="cnn.quer y.part"> <option value="h" onpick="cnn.wmls#submit()"> Headlines</option> <option value="1" onpick="cnn.wmls#submit()"> first story </option> <option value="2" onpick="cnn.wmls#submit()"> second story </option> <option value="3" onpick="cnn.wmls#submit()"> third story </option> </select> </p> <p> Which region are you interested in?<select name="cnn.query.interest"> <option value="us" onpick="cnn.wmls#submit()"> United states </option> <option value="europe" onpick="cnn.wmls#submit()"> Europe </option> <option value="JP" onpick="cnn.wmls#submit()"> Japan </option> <option value="AU" onpick="cnn.wmls#submit()"> Australia </option> <option value="AS" onpick="cnn.wmls#submit()"> Asia </option> </select> </p> <p align="center"> <a href="cnn.wmls#submit()"/> </p> </card> <card id="cnn.query.travel" title="cnn.query.travel"> <p> Which part of today's news would you like to read?<select name="cnn.quer y.part"> <option value="h" onpick="cnn.wmls#submit()"> Headlines</option> <option value="1" onpick="cnn.wmls#submit()"> first story </option> <option value="2" onpick="cnn.wmls#submit()"> second story </option> <option value="3" onpick="cnn.wmls#submit()"> third story </option> </select> </p> <p> Which city do you want to visit?<select name="cnn.query.interest"> <option value="AMSTERDAM" onpick="cnn.wmls#submit()">AMSTERDAM</option> <option value="COPENHAGEN" onpick="cnn.wmls#submit()">COPENHAGEN</option > <option value="HELSINKI" onpick="cnn.wmls#submit()">HELSINKI</option> <option value="HONGKONG" onpick="cnn.wmls#submit()">HONGKONG</option> <option value="LONDON" onpick="cnn.wmls#submit()">LONDON</option> <option value="OSLO" onpick="cnn.wmls#submit()">OSLO</option> <option value="PRAGUE" onpick="cnn.wmls#submit()">PRAGUE</option> <option value="SINGAPORE" onpick="cnn.wmls#submit()">SINGAPORE</option> <option value="STOCKHOLM" onpick="cnn.wmls#submit()">STOCKHOLM</option> <option value="SYDNEY" onpick="cnn.wmls#submit()">SYDNEY</option> </select> </p> <p align="center"> <a href="cnn.wmls#submit()"/> </p> </card> <card id="cnn.query.sports" title="cnn.query.sports"> <p> Which part of today's news would you like to read?<select name="cnn.quer y.part"> <option value="h" onpick="cnn.wmls#submit()"> Headlines</option> <option value="1" onpick="cnn.wmls#submit()"> first story </option> <option value="2" onpick="cnn.wmls#submit()"> second story </option> <option value="3" onpick="cnn.wmls#submit()"> third story </option> </select> </p> <p> What sports are you interested in?<select name="cnn.query.interest"> <option value="AS" onpick="cnn.wmls#submit()"> Asia </option> <option value="w" onpick="cnn.wmls#submit()"> world </option> <option value="eu" onpick="cnn.wmls#submit()"> europe </option> <option value="us" onpick="cnn.wmls#submit()"> united states </option> <option value="nba" onpick="cnn.wmls#submit()"> NBA </option> <option value="nhl" onpick="cnn.wmls#submit()"> nhl </option> <option value="EF" onpick="cnn.wmls#submit()"> Europoean football </opti on> </select> </p> <p align="center"> <a href="cnn.wmls#submit()"/> </p> </card> </wml>
【0147】(f)ジェスチャXSL 以下の例は、CMLページをジェスチャごとにVoiceX
MLページにトランスコーディングするのに使用され
る、CMLからVoiceXMLへのジェスチャ・ベースの
XSL規則を例示する。任意の可能なCMLページをト
ランスコーディングするのに必要なジェスチャ・ベース
のトランスコーディング規則がすべてあるわけではな
い。これは、この方法の例示と見なすべきである。XS
L構文は、従来のXSLT規則に従う。例えば、http:/
/www.w3.org/1999/XSL/Transformを参照されたい。 <!-- cml2wml.xsl --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tran sform"> <!-- <xsl:output method="html" indent="yes"/> --> <xsl:output method="xml" indent="yes" media-type="text/xml"/> <xsl:template match="/cml"> <xsl:text disable-output-escaping="yes"> &lt;!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapfo rum.org/DTD/wml_1 </xsl:text> <wml> <template> <do type="prev" label="Back"> <prev/> </do> </template> <xsl:apply-templates/> </wml> </xsl:template> <xsl:template match="cml"> <xsl:choose> <xsl:when test="menu"> <!-- to avoid <card><card>..</card></card> --> <card> <xsl:attribute name="id"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:attribute name="title"> <xsl:value-of select="@name"/> </xsl:attribute> <p><select> <xsl:attribute name="name"> <xsl:value-of select="menu/@name"/> </xsl:attribute> <xsl:apply-templates select="menu/message"/> <xsl:for-each select="menu/choices/choice | menu/choices/default"> <option> <xsl:attribute name="value"> <xsl:value-of select="@value"/> </xsl:attribute> <xsl:attribute name="onpick">#<xsl:value-of select="@value"/></xsl:attri bute> <xsl:call-template name="lex"/></option> </xsl:for-each> </select> </p> </card> </xsl:when> <xsl:otherwise> <card> <xsl:attribute name="id"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:attribute name="title"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:apply-templates/> </card> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template match='cml[@action="submit"]'> <card> <xsl:attribute name="id"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:attribute name="title"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:apply-templates/> <p align="center"> <a> <xsl:attribute name="href"> <xsl:value-of select="/cml/@name"/>.wmls#submit()</xsl:attribute> </a> </p> </card> </xsl:template> <xsl:template match='select'> <p> <xsl:apply-templates select="message"/> <select> <xsl:attribute name="name"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:for-each select="choices/choice | choices/default"> <option> <xsl:attribute name="value"> <xsl:value-of select="@value"/> </xsl:attribute> <xsl:attribute name="onpick"> <xsl:value-of select="/cml/@name"/>.wmls#submit()</xsl:attribute> <xsl:call-template name="lex"/></option> </xsl:for-each> </select> </p> </xsl:template> <xsl:template match="menu"> <card> <xsl:attribute name="id"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:attribute name="title"> <xsl:value-of select="@name"/> </xsl:attribute> <p> <select> <xsl:attribute name="name"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:apply-templates select="message"/> <xsl:for-each select="choices/choice | choices/default"> <option> <xsl:attribute name="value"> <xsl:value-of select="@value"/> </xsl:attribute> <xsl:attribute name="onpick">#<xsl:value-of select="@value"/></xsl:attri bute> <xsl:call-template name="lex"/></option> </xsl:for-each> </select> </p> </card> </xsl:template> <xsl:template name="lex"> <xsl:for-each select="node()"> <xsl:if test="position()=last()"> <xsl:value-of select="current()"/> </xsl:if> </xsl:for-each> </xsl:template> <!-- explicitly remove segment --> <xsl:template match="submit"/> <xsl:template match="message"/> </xsl:stylesheet>
【0148】(g)VoiceXMLを作成するためのXS
Lソース 以下に、VoiceXMLソース・ページを作成するのに使
用されるXSLソース・コードを記述する。 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tran sform"> <xsl:output method="html"/> <xsl:template match="/cml"> <vxml> <xsl:apply-templates/> </vxml> </xsl:template> <xsl:template match="menu"> <menu> <xsl:apply-templates select="message"/> <xsl:attribute name="id"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:attribute name="node_id"> <xsl:value-of select="@node_id"/> </xsl:attribute> <xsl:apply-templates select="message"/> <prompt> Say one of <enumerate/> </prompt> <xsl:for-each select="choices/choice|choices/default"> <choice> <xsl:attribute name="next">#<xsl:value-of select="@value"/></xsl:attribu te> <xsl:apply-templates/> </choice> </xsl:for-each> </menu> </xsl:template> <xsl:template match="cml[@action='return']"> <form> <xsl:attribute name="id"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:attribute name="node_id"> <xsl:value-of select="@node_id"/> </xsl:attribute> <xsl:apply-templates/> <block><goto> <xsl:attribute name="next">#<xsl:value-of select="/cml/menu/@name"/></xs l:attribut </goto></block> </form> </xsl:template> <xsl:template match="cml[@action='submit']"> <form> <xsl:attribute name="id"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:attribute name="node_id"> <xsl:value-of select="@node_id"/> </xsl:attribute> <xsl:apply-templates/> <block> <goto next="http://raman.almaden.ibm.com/cgi-bin/cnn.cgi"> <xsl:if test="select[@name]"> <xsl:for-each select="select"> <xsl:attribute name="submit"> <xsl:value-of select="@name"/> </xsl:attribute> </xsl:for-each> </xsl:if> </goto> </block> </form> </xsl:template> <xsl:template match="select"> <field> <xsl:attribute name="name"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:attribute name="node_id"> <xsl:value-of select="../@node_id"/> </xsl:attribute> <xsl:if test="message"> <prompt> <xsl:value-of select="message"/> Say one of <enumerate/> </prompt> </xsl:if> <grammar> <xsl:for-each select="choices/choice|choices/default"> <xsl:call-template name="lex"/> <xsl:if test="following-sibling::choice">|</xsl:if> </xsl:for-each> </grammar> </field> </xsl:template> <xsl:template match="message"> <field><prompt> <xsl:attribute name="node_id"> <xsl:value-of select="@node_id"/> </xsl:attribute> <xsl:apply-templates/> </prompt> </field> </xsl:template> <xsl:template match="help"> <help> <xsl:attribute name="node_id"> <xsl:value-of select="@node_id"/> </xsl:attribute> <xsl:apply-templates/> </help> </xsl:template> <xsl:template match="grammar"/> <xsl:template match="submit"/> <xsl:template name="lex"> <xsl:for-each select="node()"> <xsl:if test="position()=last()"> <xsl:value-of select="current()"/> </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet>
【0149】(h)VoiceXMLソース 以下に、(CMLからVoiceXMLへの)XSLソース
をCMLソース・ページ上に適用することによって得ら
れるVoiceXMLソース・ページを記述する。得られる
歓迎スピーチ・ダイアログは、VoiceXMLブラウザで
呈示されるとき、異なるオプション間で音声によって選
択するためのダイアログを最初にユーザに呈示する。 <vxml> <menu id="cnn_command" node_id="2"> <prompt> Say one of <enumerate></enumerate></prompt><choice next="#cnn_q uery">Select News Exit </choice><choice next="#cnn_applicationHelp">Help</choice> </menu> <form id="cnn_applicationHelp" node_id="4"> <field><prompt node_id="5"> This application allows you to select and view CNN news stories </prompt></field> <block><goto next="#cnn"></goto></block> </form> <form id="cnn_exit" node_id="6"> <field><prompt node_id="60"> Thankyou for using the CNN news service </prompt></field> <block><goto next="http://raman.almaden.ibm.com/cgi-bin/cnn.cgi"></goto> </block> </form> <menu id="cnn_query" node_id="11"> <prompt> Say one of <enumerate></enumerate></prompt><choice next="#cnn_q uery_news"> News < Sports </choice><choice next="#cnn_query_travel"> Travel </choice><choice next= "#cnn_qu Show Business </choice> </menu> <form id="cnn_query_news" node_id="13"> <field name="cnn_query_part" node_id="13"><prompt> Which part of today's news would you like to read?</prompt><grammar> Hea dlines| <field name="cnn_query_interest" node_id="13"><prompt> Which news category would you like to read? </prompt><grammar> Business | Africa| World | United states | Europe | Asia| Middle East| America </gr amma <block><goto next="http://raman.almaden.ibm.com/cgi-bin/cnn.cgi" submit= "cnn_query_int </form> <form id="cnn_query_business" node_id="16"> <field name="cnn_query_part" node_id="16"><prompt> Which part of today's news would you like to read?</prompt><grammar> Hea dlines| <field name="cnn_query_interest" node_id="16"><prompt> Which business category would you like to read?</prompt><grammar> news | indexes <block><goto next="http://raman.almaden.ibm.com/cgi-bin/cnn.cgi" submit= "cnn_query_int </form> <form id="cnn_query_weather" node_id="19"> <field name="cnn_query_part" node_id="19"><prompt> Which part of today's news would you like to read?</prompt><grammar> Hea dlines| <field name="cnn_query_interest" node_id="19"><prompt> Which region are you interested in?</prompt><grammar> United states | Europe | Japan | Australia | Asia </grammar></field> <block><goto next="http://raman.almaden.ibm.com/cgi-bin/cnn.cgi" submit= "cnn_query_int </form> <form id="cnn_query_travel" node_id="22"> <field name="cnn_query_part" node_id="22"><prompt> Which part of today's news would you like to read?</prompt><grammar> Hea dlines| <field name="cnn_query_interest" node_id="22"><prompt> Which city do you want to visit?</prompt><grammar>AMSTERDAM|COPENHAGEN|H ELSINKI| <block><goto next="http://raman.almaden.ibm.com/cgi-bin/cnn.cgi" submit= "cnn_query_int </form> <form id="cnn_query_sports" node_id="25"> <field name="cnn_query_part" node_id="25"><prompt> Which part of today's news would you like to read?</prompt><grammar> Hea dlines| <field name="cnn_query_interest" node_id="25"><prompt> What sports are you interested in?</prompt><grammar> Asia | world | euro pe | uni <block><goto next="http://raman.almaden.ibm.com/cgi-bin/cnn.cgi" submit= "cnn_query_int </form> </vxml>
【0150】(iii)密なマルチモーダル・ブラウジン
グおよびマルチデバイス・ブラウジング 上に述べ、かつ、以下により詳細に述べるように、異な
るモーダル性を密に同期させることができる。例えば、
同じ装置上の音声およびGUIとすることもでき、HT
MLまたはWMLブラウザ上のGUIと同期をとられた
電話上の音声とすることもできるなどである。
【0151】M.表面変更 モーダル性特定の表面的コンテンツまたはパラメータ
を、モーダル性特定のXML構文を使用して追加するこ
とができる。モーダル性特定のジェスチャは、モーダル
性修飾詞を有するモーダル性特定のXML構文を使用し
て追加することができる。その他のモーダル性は、これ
らのコンポーネントを無視するか、または他のもの(例
えばキャプション)で置換することができる。
【0152】(i)モーダル性特定の情報 CMLは、対話論理および会話型アプリケーション・フ
ローを指定するための宣言的かつモーダル性独立のマー
クアップ言語に設計される。しかし、アプリケーション
作成者がそのうちに、カスタム・プレゼンテーションを
達成するためにCMLアプリケーションにモーダル性特
定のコンテンツを追加したいと思うであろうことは理解
される。CMLは、特定のモーダル性用とされるマーク
アップの断片をカプセル化するのに使用される要素moda
lityによって、これを可能にする。このようなモーダル
性特定の断片は、指定されたモーダル性にしか表れない
ことになることに留意されたい。したがって、作成者
は、このようなモーダル性特定の断片を、絶対に必要と
思われる場合、さらには作成者が他のモーダル性用の代
替断片を提供するかまたは他のどんなモーダル性も気に
かけない場合だけに使用することが推奨される。XML
属性のclassおよびmoduleによって限定される要素modal
ityは、以下のように定義される。 Class この断片が適用されるモーダル性のクラスを指
定する。 module この断片を受け入れることのできるマークアッ
プ言語モジュールを指定する。
【0153】以下は、視覚表現までに通過されることに
なるHTML特定の断片である。 <modality class="visual" module="html-basic"> <LINK REL="stylesheet" HREF="cnn.css" TYPE="text/css"/> </modality> The following is an example of a cosmetized CML page: <!--$Id: cnn.cml,v 1.21 2000/02/05 20:08:27 Exp $--> <!--Description: CNN Mobile In cml --> <cml name="cnn" node_id="1" title="CNN Mobile News"> <modality class="visual" module="html-basic"> <LINK REL="stylesheet" HREF="cnn.css" TYPE="text/css"/> </modality> <modality class="visual" module="html"> <TABLE BORDER="0" WIDTH="600" CELLSPACING="0" CELLPADDING="0"><TR> <TD WIDTH="122"VALIGN="TOP"><a H <IMG SRC="http://cnn.com/images/1999/10/cnnstore.gif" WIDTH="120" HEIGHT="60" BORDER="1" AL <TD WIDTH="8" VALIGN="TOP"><a HREF="http://cnn.com/ads/ e.market/"> <IMG SRC="http://cnn.com/images/1998/05/homepage/ad. info.gif" WIDTH="7" HEIGHT="62" BORDER= <TD WIDTH="470" VALIGN="TOP"> <a HREF= " http: / /cnn. com/event.ng/Type=click%26RunID= 11875%26Prof ileID=34%2 6AdID=13042%2 6Group: target="_top"> <img src="http://cnn.com/ads/advertiser/promo/ intercompany_onair/9907/onair_egg_cnn.giff" border="0'' height="60" width="468" alt="Get to the point news!"/> </a> <table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td align="right"'><font face="verdana,ARIAL,sans-serif" size="l"><a </TD></TR></TABLE> </modality> <modality class="speech" module="vxml''> <block> Shop CNN for all your information needs! </block> </modality> <menu name="cnn.command" node_id="2"> <choices node_id="3" > <default value=~#cnn.query''>Select News Stories</default> <choice value="#cnn.exit" require_confirmation="true"> Exit </choice> <choice value="#cnn.applicationHelp">Help</choice> </choices> </menu> <cml name="cnn.applicationHelp" title="About CNN Mobile" node_id=''4" action="return"> <message node id="5" > This application allows you to select and view CNN news stories </message> </cml> <cml name="cnn.exit" node_id="6" title="Exit CNN Mobile News" action="submit"> <message node_id="60"> Thankyou for using the CNN news service </message> </cml> <group node_id="7" groupId="query"> <cml name="cnn.query" title="Search CNN Mobile News" node_id="58"> <menu name="cnn.query.topic" node_id="11" title="Topic Selection"> <choices node_id="12'' > <choice value="#cnn.query.news"> News </choice> <choice value="#cnn.query.business"> Business </choice> <choice value="#cnn.query.sports"> <grammar> (sport | sports" </grammar> Sports </choice> <choice value="#cnn.query.travel"> Travel </choice> <choice value="#cnn.query.weather"> Weather </choice> <choice value=*#cnn.query.show"> <grammar > show [business] </grammar> Show business </choice> </choices> </menu> </cml> <cml name=*cnn.query.news* title="News Channel" node_id=*13" action="submit"> <select name=*cnn.query.part"> <message node_id=*9* > Which part of today's news would you like to read?</message> <choices node_id="10" > <choice value="h"> Headlines</choice> <choice value="1"> first story </choice> <choice value="2"> second story </choice> <choice value="3"> third story </choice> </choices> </select> <select name="cnn.query.interest"> <message node_id="14"> Which news category would you like to read? </message> <choices node_id="15" > <choice value="business"> <grammar type="text/jsgf"> business {BIZ}</grammar> Business </choice> <choice value="africa"> Africa</choice> <choice value="world"> World </choice> <choice value="United states"> United states </choice> <choice value="europe"> Europe </choice> <choice value="Asia"> Asia</choice> <choice value="me"> Middle East</choice> <choice value="america"> America </choice> </choices> </select> </cml> <cml name="cnn.query business" title="Business Channel" action="submit" node_id="16" > <select name="cnn.query.part"> <message node_id="9" > Which part of today*s news would you like to read?</message> <choices node_id="10" > <choice value="h"> Headlines</choice> <choice value="1"> first story </choice> <choice value="2"> second story </choice> <choice value="3"> third story </choice> </choices> </select> <select name="cnn.query.interest"> <message node_id="17"> Which business category would you like to read?</message> <choices node_id="18"> <choice value="NEWS"> news </choice> <choice value="IN"> indexes </choice> <choice value="CU"> exchange rates </choice> <choice value="MET"> metals </choice> </choices> </select> </cml> <cml name="cnn.query.weather" title="Weather Channel" action="submit" node_id="19" > <select name="cnn.query.part"> <message node_id="9" > Which part of today*s news would you like to read?</message> <choices node_id="10" > <choice value="h"> Headlines</choice> <choice value="1"> first story </choice> <choice value="2"> second story </choice> <choice value="3"> third story </choice> </choices> </select> <select name="cnn.query.interest"> <message node_id="20"> Which region are you interested in?</message> <choices node_id="21"> <choice value="us"> United states </choice> <choice value="europe"> <grammar type="text/jsgf"> (euro | Europe) </grammar> Europe </choice> <choice value="JP"> Japan </choice> <choice value="AU"> Australia </choice> <choice value="AS"> Asia </choice> </choices> </select> </cml> <cml name="cnn.query.travel" title="Travel Section" action="submit" node_id="22" > <select name="cnn.query.part"> <message node_id="9" > Which part of today*s news would you like to read?</message> <choices node_id="10"> <choice value="h"> Headlines</choice> <choice value="1"> first story </choice> <choice value="2"> second story </choice> <choice value="3"> third story </choice> </choices> </select> <select name="cnn.query.interest"> <message node_id="23"> Which city do you want to visit?</message> <choices node_id="24"> <choice value="AMSTERDAM">AMSTERDAM</choice> <choice value="COPENHAGEN">COPENHAGEN</choice> <choice value="HELSINKI">HELSINKI</choice> <choice value="HONGKONG">HONGKONG</choice> <choice value="LONDON">LONDON</choice> <choice value="OSLO">OSLO</choice> <choice value="PRAGUE">PRAGUE</choice> <choice value="SINGAPORE">SINGAPORE</choice> <choice value="STOCKHOLM">STOCKHOLM</choice> <choice value="SYDNEY">SYDNEY</choice> </choices> </select> </cml> <cml name="cnn.query.sports" action="submit" title="Sports Channel" node_id="25"> <select name="cnn.query.part"> <message node_id="9"> Which part of today's news would you like to read?</message> <choices node_id="10" > <choice value="h"> Headlines</choice> <choice value="1"> first story </choice> <choice value="2"> second story </choice> <choice value="3"> third story </choice> </choices> </select> <select name="cnn.query.interest"> <message node_id="26"> What sports are you interested in?</message> <choices node_id="27"> <choice value="AS"> Asia </choice> <choice value="w"> world </choice> <choice value="eu"> europe </choice> <choice value="us"> united states </choice> <choice value="nba"> NBA </choice> <choice value="nhl"> nhl </choice> <choice value="EF"> Europoean football </choice> </choices> </select> </cml> <submit target="http://raman.almaden.ibm.com/cgi-bin/cnn.cgi"> <message node_id="28"> executing <value name="cnn.command"/> for <value name="cnn.query.part"/> stories about <value name="cnn.query.interest"/> from topic <value name="cnn.query.topic"/> </message> <env name="cnn.command"/> <env name="cnn.query.topic"/> <env name="cnn.query.interest"/> <env name="cnn.query.part"/> </submit> </group> <submit target=~'http://raman.almaden.ibm.com/cgi-bin/cnn.cgi"> </submit> </cml>
【0154】以下に、(CMLからHTMLへの)XS
LソースをHTMLによって表面変更されたCMLソー
ス・ページ上に適用することによって得られるHTML
ソース・ページを記述する。得られた歓迎GUIページ
をHTMLブラウザで見たものを、図11に示す。表面
変更は、表面変更されないページと比較するときにはっ
きりと見ることができる。これは、意のままにページを
表面変更する可能性を示す。この場合もやはり、すべて
のケースを考慮しているわけではないが、これは、この
手法を明瞭に示している。
【0155】以下は、得られた表面変更済みのHTML
ソース・ページに関連するコードである。 <!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=iso -8859-1"> <title>CNN Mobile News</title> </head> <body> <a name="cnn">CNN Mobile News</a> </hl> <div node_id="1" name="cnn"> <LINK REL="stylesheet" HREF="cnn.css" TYPE="text/css"> <TABLE BORDER="0" WIDTH="600" CELLSPACING="0" CELLPADDING="0"> <TR> <TD WIDTH="122"VALIGN="TOP"><a HREF="http://cgi.cnn.com/cgi-bin/redir ec t?cnn_store"> <IMG SRC="http://cnn.com/images/1999/10/cnnstore.gif" WIDT H="120" HEIGH T="60" BORDER="1" ALT="CNN Store"></a></TD> <TD WIDTH="8" VALIGN="TOP"><a HREF="http://cnn.com/ads/ e.market/"> <IMG SRC="http://cnn.com/images/1998/05/homepage/ad.info.g if" WIDTH ="7" HEIGHT="62" BORDER="0" ALT="ad info"></a></TD> <TD WIDTH="470" VALIGN="TOP"> <a HREF="http://cnn.com/event.ng/Type=click%26RunID=11875%26 Profi leID=34%26AdID=13042%26GroupID=15%26FamilyID=1099%26TagValues=4.8.249.43 5.594.606%26Redirect=http:%2F%2Fwww.cnn.com%2FHLN%2Findex_pgm.htm" targe t="_top"> <img src="http://cnn.com/ads/advertiser/promo/inter company_ onair/9907/onair_egg_cnn.gif" border="0" height="60" width="468" alt= "Get to the point news!"> </a> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td align="right"><font face="verdana,ARIAL,sans-serif" size="l"><a href ="http://cnn.com/event.ng/Type=click%26RunID=11875%26ProfileID= 34%26AdID=13042%26GroupID=15%26FamilyID=1099%26TagValues=4.8.249.435. 594.60 6%26Redirect=http:%2F%2Fwww.cnn.com%2FHLN%2Findex_pgm.htm target= _top" >Get to the point news!</a></font></td> </tr> </table> </TD> </TR> </TABLE> <ol node_id="2"> <li> <a href="#cnn.query">Select News Stories</a> </li> <li> <a href="#cnn.exit"> Exit </a> </li> <li> <a href="#cnn.applicationHelp">Help</a> </li> </ol> <h2 node_id="4"> <a name="cnn.applicationHelp">About CNN Mobile</a> </h2> <P node_id="5"> This application allows you to select and view CNN news stories </P> <p> <a href="#cnn"> Back </a> </p> <h2> <a name="cnn.exit">Exit CNN Mobile News</a> </h2> <form node_id="6" action="http://raman.almaden.ibm.com/cgi-bin/ cnn.cgi"> <P node_id="60"> Thankyou for using the CNN news service </P> <p> <INPUT TYPE="SUBMIT" VALUE="cnn.exit"> < /p> </form> <div groupId="query" modality="" class=""> <h2 node_id="8"> <a name="cnn.query">Search CNN Mobile News</a> </h2> <h2> <a name="#cnn.query.topic">Topic Selection</a> </h2> <ol node_id="ll"> <li> <a href="#cnn.query.news"> News </a> </li> <li> <a href="#cnn.query.business"> Business </a> </li> <li> <a href="#cnn.query.sports"> Sports </a> </li> <li> <a href="#cnn.query.travel"> Travel </a> </li> <li> <a href="#cnn.query.weather"> Weather </a> </li> <li> <a href="#cnn.query.show"> Show Business </a> </li> </ol> <h2> <a name="cnn.query.news">News Channel</a> </h2> <form node_id="13" action="http://raman.almaden.ibm.com/cgi-bin/ cnn.cgi"> <P node_id="9"> Which part of today's news would you like to read?</P> <select name="cnn.query.part"> <option value="h"> Headlines</option> <option value="l"> first story </option> <option value="2"> second story </option> <option value="3"> third story </option> </select> <p> < /p> <P node_id="14"> Which news category would you like to read? </P> <select name="cnn.query.interest"> <option value="business"> Business </option> <option value="africa"> Africa</option> <option value="world"> World </option> <option value="United states"> United states </option> <option value="europe"> Europe </option> <option value="Asia"> Asia</option> <option value="me"> Middle East</option> <option value="america"> America </option> </select> <p> </p> <p> <INPUT TYPE="SUBMIT" VALUE="cnn.query.news"> < /p> </form> <h2> <a name="cnn.query.business">Business Channel</a> </h2> <form node_id="16" action="http://raman.almaden.ibm.com/cgi-bin/ cnn.cgi"> <P node_id="9"> Which part of today's news would you like to read?</P> <select name="cnn.query.part"> <option value="h"> Headlines</option> <option value="l"> first story </option> <option value="2"> second story </option> <option value="3"> third story </option> </select> <p> </p> <P node_id="17"> Which business category would you like to read?</P> <select name="cnn.query.interest"> <option value="NEWS"> news </option> <option value="IN"> indexes </option> <option value="CU"> exchange rates </option> <option value="MET"> metals </option> </select> <p> </p> <p> <INPUT TYPE="SUBMIT" VALUE="cnn.query.business"> < /p> </form> <h2> <a name="cnn.query.weather">Weather Channel</a> </h2> <form node_id="l9" action="http://raman.almaden.ibm.com/cgi-bin/ cnn.cgi"> <P node_id="9"> Which part of today's news would you like to read?</P> <select name="cnn.query.part"> <option value="h"> Headlines</option> <option value="l"> first story </option> <option value="2"> second story </option> <option value="3"> third story </option> </select> <p> </p> <P node_id="20"> Which region are you interested in?</P> <select name="cnn.query.interest"> <option value="us"> United states </option> <option value="europe"> Europe </option> <option value="JP"> Japan </option> <option value="AU"> Australia </option> <option value="AS"> Asia </option> </select> <p> </p> <p> <INPUT TYPE="SUBMIT" VALUE="cnn.query.weather"> </p> </form> <h2> <a name="cnn.query.travel">Travel Section</a> </h2> <form node_id="22" action="http://raman.almaden.ibm.com/cgi-bin/ cnn.cgi"> <P node_id="9"> Which part of today's news would you like to read?</P> <select name="cnn.query.part"> <option value="h"> Headlines</option> <option value="1"> first story </option> <option value="2"> second story </option> <option value="3"> third story </option> </select> <p> </p> <P node_id="23"> Which city do you want to visit?</P> <select name="cnn.query.interest"> <option value="AMSTERDAM">AMSTERDAM</option> <option value="COPENHAGEN">COPENHAGEN</option> <option value="HELSINKI">HELSINKI</option> <option value="HONGKONG">HONGKONG</option> <option value="LONDON">LONDON</option> <option value="OSLO">OSLO</option> <option value="PRAGUE">PRAGUE</option> <option value="SINGAPORE">SINGAPORE</option> <option value="STOCKHOLM">STOCKHOLM</option> <option value="SYDNEY">SYDNEY</option> </select> <p> </p> <p> <INPUT TYPE="SUBMIT" VALUE="cnn.query.travel"> </p> </form> <h2> <a name="cnn.query.sports">Sports Channel</a> </h2> <form node_id="25" action="http://raman.almaden.ibm.com/cgi-bin/ cnn.cgi"> <P node_id="9"> Which part of today's news would you like to read?</P> <select name="cnn.query.part"> <option value="h"> Headlines</option> <option value="l"> first story </option> <option value="2"> second story </option> <option value="3"> third story </option> </select> <p> </p> <P node_id="26"> What sports are you interested in?</P> <select name="cnn.query.interest"> <option value="AS"> Asia </option> <option value="w"> world </option> <option value="eu"> europe </option> <option value="us"> united states </option> <option value="nba"> NBA </ option> <option value="nhl"> nhl </option> <option value="EF"> Europoean football </option> </select> <p> </p> <p> <INPUT TYPE="SUBMIT" VALUE=" cnn.query.sports"> </p> </form> </div> </div> </body> </html>
【0156】N.CML DTD 文書型定義 以下は、CML DTDを表現する。以下のDTD記述
が、XMLの技術に精通する者なら誰にでも完全に理解
されるべきであることを理解されたい。これは、この実
施形態に対して呈示されるCMLの構文を完全に定義す
る。 <!--$Id: cml.dtd,v 1.14 2000/03/02 17:04:02$ --> <!-- DTD For Conversational Markup Language CML --> <!--Conventions: Tags are all lower case. Attribute names are all lower case. --> <!-- {attribute entities --> <!-- core attributes common to most elements node_id document-wide unique id name Names data item that is populated by this gesture. title Human readable title style URI of custom stylesheet --> <!ENTITY % coreattrs "node_id ID #IMPLIED name CDATA #IMPLIED style CDATA ; #IMPLIED trigger CDATA #implied title CDATA #IMPLIED" > <!-- } --> <!-- {entities --> <!ENTITY % GESTURE "(cml | select | menu | message | help)"> <!-- } --> <!-- { TOP LEVEL CML --> <!ELEMENT group ( %GESTURE+) > <!ATTLIST group id ID #required modality CDATA #implied class CDATA #implied > <!ELEMENT CML ( (group | %GESTURE)+, submit? ) > <!ATTLIST cml %coreattr> <!-- } --> <!-- {gesture message <!ELEMENT message ANY> <!ATTLIST message %coreattr> <!-- } --> <!-- {gesture help <!ELEMENT help ANY> <!ATTLIST help %coreattr> <!-- } --> <!-- {gesture boolean <!ELEMENT boolean( message, help?) > <!ATTLIST boolean %coreattr; require_confirmation (true | false ) #implied require_confirmation_if_yes (true | false #implied require_confirmation_if_no (true | false #implied default (true | false #implied > <!-- } --> <!-- {gesture select <!ELEMENT error ANY> <!ELEMENT grammar ( gram, help?) > <!ATTLIST grammar type CDATA #required> <!ELEMENT gram ANY> <!ELEMENT final ANY> <!-- open content model for element predicate for now --> <!-- will use an expression syntax a la xpath and augmented --> <!-- as needed --> <!-- will also draw on xforms work --> <!ELEMENT predicate ANY> <!ELEMENT choice ( grammar?, PCDATA) > <!ATTLIST choice %coreattr; value CDATA #required > <!-- default has same content model as choice --> <!ELEMENT default ( grammar?, PCDATA) > <!ATTLIST default %coreattr; value CDATA #required > <!ELEMENT choices ( choice+, default?) > <!ELEMENT select ( message, help?, choices, predicate?, error?) > <!ATTLIST select %coreattr; require_predicate (true | false ) #implied selection_type CDATA #implied > <!-- } --> <!-- {gesture menu <!ELEMENT menu ( message, help?, choices) > <!ATTLIST menu %coreattr; > <!-- } --> <!-- {constrained input --> <!-- CML provides gestures for standard dialog components, the following is merely a sample list of gestures: Date Specify date Time Specify time. Currency Specify currency amount. Credit card Specify a credit card (including card type, card number and expiration date). Phone Specify a telephone number. Email Specify an email address. url Specify a url. Snail Adress Specify a snail mail address, including street, city/state/country and zip code. We will specify formal DTD for these elements. --> <!-- } --> <!-- {unconstrained input --> <!ELEMENT input ( message, help?, predicate?) > <!ATTLIST input %coreattr; require_predicate (true | false ) #implied > <!-- } --> <!-- {gesture user_identification <!ELEMENT user_identification ( message, help?, user, identify, predicate, error) > <!ATTLIST user_identification %coreattr; require_predicate (true | false ) #implied on_fail CDATA #implied > <!-- } --> <!-- {gesture submit --> <!ELEMENT env EMPTY> <!ATTLIST env name CDATA #required> <!ELEMENT submit ( message?, help?, env*) > <!ATTLIST submit target CDATA #required> <!-- } --> <!-- {binding events --> <!ELEMENT bind-event EMPTY> <!ATTLIST bind-event logical CDATA #required physical CDATA #implied modality CDATA #implied > <!-- } --> <!-- {environment <!ELEMENT var EMPTY> <!ATTLIST var name CDATA #required value CDATA #implied > <!ELEMENT value EMPTY> <!ATTLIST var name CDATA #required > <!ELEMENT assign EMPTY> <!ATTLIST var name CDATA #required value CDATA #required > <!-- } --> <!-- { end of file --> <!-- End Of DTD local variables: folded-file: t end: --> <!-- } -->
【0157】したがって、本発明による会話型マークア
ップ言語は、本明細書に詳細に述べるように、多くの有
用な特徴および利点を提供する。対話によるプログラミ
ングは、実装されている、基礎をなすデータ・モデルの
定義(モデル)が、ユーザ対話を定義するマークアップ
言語(ビュー/コントローラ)から分離されることを可
能にする。これにより、密に同期化されたマルチモーダ
ル対話の構築が可能となり、会話型アプリケーションが
サポートされる。本発明によるCMLは、密な同期化を
サポートする機構、すなわち各ジェスチャにNode_id属
性を結合し、この属性を様々な出力にマッピングするこ
とを提供する。この言語は、原子構成(ジェスチャ)で
定義されることが好ましく、より複雑な構成がもしあれ
ば、それらは、(ダイアログで表した)複雑な構成の明
瞭な意味定義と共にこれらの原子ジェスチャで構成され
る。これにより、複雑なモジュールを異なるモーダル性
にマッピングすることができる。音声は、GUIと同じ
レベルにある第1のクラスのユーザ・インタフェース
(UI)モーダル性と考えられる。ジェスチャは、基本
のダイアログ・コンポーネントに対応する(これは、適
切なデータ・ファイルを追加することを含む)。必要と
される場合に、モーダル性特定のコンポーネントをカプ
セル化したいと思う作成者は、モーダル性特定のマーク
アップをコード化するための「通過」機構を提供するこ
とができる。モーダル性特定の構造(スピーチ用または
GUI用)は、この通過機構に限定される。会話型UI
がサポートされる。マークアップ言語は、並列で活動化
できるダイアログ・コンポーネントを取り込む。CML
は拡張可能言語であり、例えば、新しいジェスチャを定
義することができ、ジェスチャ変換規則を修正すること
ができ、他の言語からのタグ/構成を埋め込むことがで
きる(通過モードで)。モーダル性特定のタグ/通過
は、ページを追加で表面変更するための機構でしかな
い。CMLはまた、アプリケーション状態をカプセル化
するための明示的な環境も提供する。CMLはまた、動
的に生成されたデータに言及する対話記述ならびにバッ
クエンドへのサポート用コールバック機構の能力も提供
する。どんな従来方法も、これらの目的に使用すること
ができる。さらに、本明細書に提供するCMLの詳細な
説明が与えられれば、当業者は、この創意に富んだマー
クアップ言語の使用に関連する様々なツールおよび開発
環境を実現することができる。
【0158】II.マルチモーダル・ブラウザ 以下は、本発明によるマルチモーダル・ブラウザの説明
である。このセクションは、参照しやすいように次のサ
ブセクションに分かれている。すなわち、(A)序説、
(B)マルチモーダル・シェル、(C)マルチモーダル
・シェルとCML、(D)CMLとマルチモーダル同期
化、(E)CMLとアプリケーション・オーサリング、
(F)例示的な実施形態、(G)代替実施形態である。
【0159】A.序説 本発明によるマルチモーダル・ブラウジングを説明する
前に、本発明のCMLおよびマルチモーダル・ブラウザ
に関係する概念を有する、上に参照した特許出願のいく
つかの記述を要約したものを以下に述べる。参照しやす
いように、関連出願は、それらの各整理番号を介して言
及する。
【0160】YO999−111は、会話型コンピュー
ティング、会話型ユーザ・インタフェース、および会話
型アプリケーション・プラットフォーム(CVM、会話
型仮想マシン)の概念を開示する。YO999−111
に述べられている、CVMから提供される機能および挙
動/サービスは、実際には、本発明のマルチモーダル・
ブラウザによって、または会話型ユーザ・インタフェー
スを提供するアプリケーションによって実施される。し
かし、概念レベルでは、CVMが、本発明のブラウザを
サポートするのに必要なすべてのサービスを実施すると
仮定される。
【0161】YO998−392は、会話型アプリケー
ション(すなわちマルチモーダル)をプログラムするた
めの宣言的なプログラミング言語(「CML」と言及さ
れるが、これはこの場合、本発明の言語とは異なる)の
使用を開示する。YO998−392言語は、マルチモ
ーダル/会話型ユーザ・インタフェースをサポートする
宣言的な言語である。実際には、その明細書に提供され
ている例/実施形態は、本発明によって可能な単一のオ
ーサリングではなく「複数オーサリング」モデルに従っ
て書かれたMLページからなる。以下の通り、宣言的な
プログラミング言語の異なる例が教示された。 (i)スピーチのみのML。スピーチMLとも呼ばれ、
VoiceXMLに通じる。 (ii)ファイル間の同期化タグを有する複数のファイル
(HTMLとVoiceMXL、またはWMLとVoiceXM
L)。 (iii)複数のモーダル性記述を有する単一のファイル
(例えば<MM><Speech>Speech rendering info</speech>
<GUI>GUI rendering info</GUI></MM>など)。この場合
も同期化情報を有する。 (iv)異なるモーダル性に関連する情報を分割するため
のフレーム様モデルを有する単一のファイル(例えば、
スピーチ・コンテンツがHTMLページに加えて「スピ
ーチ・フレーム」中に呈示される)。
【0162】これらのアイテムはどれも、単一オーサリ
ングに対処しない。また、CML、任意のターゲット・
レガシーML(チャネル)、あるいはジェスチャまたは
ジェスチャ・ベースのXSLの概念からのサポートにも
対処しない。
【0163】YO999−178は、一般マルチモーダ
ル・シェルを記述する。これは、同期化されるマルチモ
ーダル・アプリケーション(宣言型でも命令型でもハイ
ブリッドでも)をどのようにサポートおよびプログラム
するかを記述する。これは、各アプリケーション・モー
ダル性がその状態、それがサポートするコマンド、およ
びそれらのコマンドが他のモーダル性に与える影響を登
録する登録テーブルを使用する。この場合もまた、ジェ
スチャおよび単一オーサリングの教示はない。一実施形
態は、アプリケーションがブラウザ(すなわち各モーダ
ル性のレンダリングに関連するブラウザ)であり、シェ
ルがCMLページを受け取り(YO998−392に定
義されるように)、登録テーブルを構築し、したがって
モーダル性にわたって同期をとる体系を記述する。
【0164】ここで本発明は、以下の記述に説明するよ
うに、マルチモーダル・ブラウザ体系を可能にする。こ
のようなマルチモーダル・ブラウザは、以下に述べる
が、上のセクションIで詳細に述べたCMLおよびその
言語の会話型ジェスチャの特徴および利点を利用して、
ユーザがアプリケーションによってサポートされる任意
の装置上にある任意のモーダル性の情報にアクセスでき
るようにする。例えば、マルチモーダル・ブラウザ内の
視覚的および話される対話は、会話型ジェスチャのコア
・セットを使用して抽象され、CMLを使用して表現さ
れる。対話型ジェスチャは、各対話モーダル性によって
適切に実現される。これらの基本的な会話型ジェスチャ
を使用して軽量情報アプリケーション(インフォウェ
ア)をオーサリングすることができ、得られたコンテン
ツは、表現されるときに、モーダル性/装置特定のマー
クアップ言語またはワイヤ・プロトコル(wire protoco
l)、例えばいくつかを挙げればVoiceXML、WMLに
投影される。
【0165】B.マルチモーダル・シェル マルチモーダル・ブラウザの動作の中心には、マルチモ
ーダル・シェル機構がある。マルチモーダル・シェル
は、複数のユーザ・インタフェース・クライアントまた
はブラウザに対するサーバの役割を果たす。異なる対話
モーダル性を備えるブラウザ、例えば視覚HTMLブラ
ウザまたは聴覚VoiceXMLブラウザは、マルチモーダ
ル・シェルにクライアントとして登録する。ユーザ対話
は、マルチモーダル・シェルがCML文書を横断するこ
とによって進行する。この横断中に、シェルは、以下に
よって、ユーザの対話を特定の個々のCMLインフォウ
ェアに対して調整する。 (i)現行のCMLノードの対話特定の表現を、すべて
の登録済みクライアントに渡すことによってユーザ対話
を開始する。 (ii)現行のCMLノードを受け取ったすべての登録済
みクライアントからの情報更新を待機する。 (iii)受け取った情報間の矛盾、例えばユーザが右と
言っているのに左を指しているなどをおそらく解消す
る。 (iv)受け取ったばかりの情報更新に基づいて現行のC
MLノードを更新する。 (v)更新の実行が成功すると、シェルは新たに更新さ
れたアプリケーション状態をすべての登録済みブラウザ
に渡す。
【0166】C.マルチモーダル・シェルとCML 上に説明したように、CMLアプリケーションは、標準
的な会話型ジェスチャのセットの集合である。このよう
な会話型ジェスチャは、アプリケーションを構成する完
全なダイアログの基本的な構成単位を形成する。例え
ば、特定のアプリケーションでは、アプリケーション設
計者の主要な作業は、以下のものを指定することであ
る。 (i)ユーザから収集する情報のアイテムを指定する。 (ii)必要なアイテムごとに制約、例えばセットからの
選択などを指定する。 (iii)情報の各アイテムに必要なものが備わったとき
に、アプリケーション状態を更新する。 (iv)収集した情報のアイテムをパッケージして、バッ
クエンド・アプリケーション・サーバにサブミットす
る。
【0167】上の作業は、指定されるとき、使用中の対
話モーダル性に対して独立であることに留意されたい。
【0168】異なるユーザ・インタフェース・フロント
エンド、例えば視覚WWWブラウザ、聴覚VoiceXML
などは、これらの作業を適切なユーザ・インタフェース
の仕掛けにマッピングする。
【0169】CML文書は、一般マルチモーダル・シェ
ルによってホスティングされる。シェルは、異なるユー
ザ・インタフェースの実現、例えば、視覚HTMLブラ
ウザまたは聴覚VoiceXMLブラウザを助ける。シェル
のクライアントになりたいと思うブラウザは、現行のア
プリケーション状態への弱い参照を保持する。登録済み
クライアントは、アプリケーション状態が変化したとき
にシェルから通知され、次いで各クライアントは、それ
自体の弱い参照をアプリケーション状態に照会して、ユ
ーザに呈示したいと思う関係情報を抽出する。
【0170】ユーザは、登録済みブラウザの1つを介し
てアプリケーションと対話することによって、CML文
書を横断する。対話が進行するにつれて、すべての登録
されたブラウザは、対話のフォーカスである現行のCM
Lノードについて通知され、したがって、それらの表現
を必要に応じて更新する。シェルは、現在開かれている
CML文書、ならびにそれらに対応するアプリケーショ
ン状態を常に監視する。必要な場合に、会話型シェル
は、現在開かれているアプリケーションのいずれかの状
態の簡潔な要約を提供することができる。登録済みクラ
イアントのいずれかを介してサブミットされた情報はシ
ェルによって媒介され、シェルは、他の登録済みクライ
アントへの、かつ必要な場合にバックエンド・アプリケ
ーション・サーバへの通知を扱う。
【0171】D.CMLおよびマルチモーダル同期化 単一のCML表現からのアプリケーションを対話特定に
具現化したもの総合することによって、マルチモーダル
・インタフェースの異なる態様を同期させることができ
る。CML表現中の各ノードは、特定のnode-idでタグ
付けされる。CML表現が対話特定の表現、すなわちH
TMLまたはVoiceXMLにマッピングされるとき、得
られたマッピングにおけるノードは、それらに対応する
CML表現中のノードのnode-idでタグ付けされる。ユ
ーザが特定のモーダル性を介してブラウザと対話すると
き、マルチモーダル・シェルは、関係するnode-idを検
索することによって、アプリケーション中の現在活動化
されているノードを元のCML表現にマッピングし返
す。ユーザ対話のせいでアプリケーション状態が変化す
るとき、シェルは、修正されたアプリケーション状態
を、修正されたノードのnode-idと共に、通知されるよ
うに登録されたすべてのクライアントに渡す。通知され
たアプリケーションは、node-idに対してチェックする
ことによって、それらの対話特定の表現中の対応するノ
ードを更新する。登録済みのアプリケーションは本質的
に、基礎をなすアプリケーション状態への弱い参照を保
持することに留意されたい。対話特定のレンダリング・
エンジンが必要なノードを更新するとき、弱い参照は、
その更新に関係する情報(かつ、必要とされる情報だ
け)が自動的にシェルから検索されるようにすることに
なる。
【0172】ここで図12を参照すると、MVCモデル
の新しい解釈が示されている。この新しい解釈によれ
ば、このモデルは対話のCML記述である。ビューは、
ジェスチャ・ベースのXSL変換規則を適用して、異な
るレンダリング・ブラウザ中にレンダリングされる(ビ
ュー)異なるターゲットMLを生成することによって得
られるものである。ブラウザは、ユーザとの対話を通し
てモデルの制御を提供する(かつ、I/Oイベントがレ
ンダリング・ブラウザの1つで発生したときにその状態
を修正する)。図9に従って、V0がGUIビュー(例
えばHTML)でありV1がスピーチ・ビュー(自然言
語による、またはそうでない)であると想像されたい。
C0は、モノモーダルHTMLブラウザのみの制御/対
話である。C1は、同期化されるマルチモーダル・ビュ
ーである。C2は、モノモーダル・スピーチ制御であ
る。この手法は、根本的に新しいパラダイムである。
【0173】E.CMLとアプリケーション・オーサリ
ング アプリケーション・クリエータは、WYSIWYG(wh
at you see is what you get)オーサリング・ツールと
対話して、自分のアプリケーションのCML表現を作成
することができる。CMLで表現されたアプリケーショ
ンは、スタイル変換の標準セットを使用して、対話特定
の表現、例えばVoiceXMLまたはHTMLにマッピン
グされる。必要とされる場合に、ユーザ・インタフェー
ス設計者は、カスタム・スタイル変換を生み出して、特
定のルック・アンド・フィールまたはサウンド・アンド
・フィールを設計することができる。CMLオーサリン
グ・ツールを生み出すこともでき、これは、クライアン
トがマルチモーダル・ブラウザ・プラットフォーム上で
展開するためにレガシーHTMLのみのWWWアプリケ
ーションをCMLにマッピングすることができるように
作成することができる。このようなツールは、顧客が既
存のWWWアプリケーションをVoiceXMLプラットフ
ォーム上で展開することを助けるのに必要な橋を提供す
る。この解決法は、VoiceXMLに直接オーサリングし
直すよりも魅力がある。というのは、既存のアプリケー
ションをCMLに一度マッピングすることは、様々なマ
ルチモーダル・ブラウザ設定にわたる展開を可能にする
からである。これは、HTML、WML(およびその他
のレガシーML)にも当てはまる。
【0174】F.例示的な実施形態 次に図13〜15を参照すると、既存のシステムから本
発明によってマルチモーダル・ブラウジング環境でCM
Lを完全に使用するまでの移行ロード・マップが示され
ている。
【0175】図13に、現行のファット・クライアント
・ウェブ・プログラミング・モデルを示す。コンテンツ
は、主にHTMLで書かれる(そのフォーマットで静的
に記憶される、または動的に生成される)。コンテンツ
が特定のブラウザ(例えば所与のバージョンのInternet
explorerまたはCommunicator)に適合される必要があ
るとき、ターゲット・ブラウザの機能である特定のスタ
イル・シート、ならびにコンテンツのタイプが構築され
る。これは通常、XML/XSLオーサリング手法であ
る。別のチャネル/モーダル性(WML、CHTML、
VoiceXMLなど)が必要な場合、コンテンツは、書直
す必要があるか、あるいはHTMLまたはXMLで書か
れた場合には非常に特定の規則に従って、よく知られた
タイプ/領域のものとする必要があり、したがって、い
くつかの一般アプリケーション/ビジネス論理に依存す
るXSL規則を使用してこれらのモーダル性特定のレガ
シー言語を作成することができるか、またはXSL規則
を非常に頻繁にオーサリングし直さなければならない
か、あるいはその両方である。これは、異なるレガシー
言語で直接にオーサリングしようが、単一のXMLコン
テンツをこれらの異なるレガシーMLに変換する異なる
スタイル・シートでオーサリングしようが、過多な複数
オーサリングとなる。最終的に、今日、ウェブ(すなわ
ち主にHTMLの交換による)、無線ネットワーク(主
にWML、ただし他の規格も存在する)、および電話
(主にVoiceXML)にアクセスする必要が一層多くな
っている。複数オーサリングが唯一の解決法のため、こ
のようなタイプのサービスを提供するサイトは、通常、
限られた量のサービス/コンテンツ・プロバイダまたは
企業サイトによる、閉じたサイト(開いた完全なウェブ
・コンテンツとは反対に、限られた量のサービス/コン
テンツ)である。いつどこでも、どんな情報へのアクセ
スをどんなアクセス装置を介しても提供し、ユーザがそ
れを操作できるようにする解決法は存在しない。異なる
レガシー言語(XMLを含む)は、ページの異なる部分
を適切に他のモーダル性で扱うのに必要な情報を含まな
い(例えば会話エンジン用の文法およびその他の引数が
欠落しているなど)。
【0176】図14に、CMLを展開して、対話プログ
ラミング・モデルおよび会話型コンピューティング・パ
ラダイムによるプログラミングを使用する第1のステッ
プを記述する。この解決法は、トランスポート・プロト
コルおよびネットワーク(例えばテレフォニーPST
N、無線ネットワーク(音声またはデータあるいはその
両方)、voice over IP、TCP/IP−HTTP、
WAPなど)、ならびにレガシー・ブラウザ(例えばH
TMLブラウザ、WMLブラウザ、VoiceXMLブラウ
ザなど)で表される、今日存在するインフラストラクチ
ャを使用することができる。コンテンツがCMLで利用
可能な場合、それは、静的に生成されようが動的に生成
されようがページが提供されるとき、要求するブラウザ
によってサポートされるターゲット・レガシーMLに実
行中にトランスコーディングすることができる。ターゲ
ットMLの決定は、ブラウザのタイプ、またはゲートウ
ェイ、ブラウザ、サーバのIPに基づく。WAPゲート
ウェイはWMLページを受け取り、ブラウザは、(http
ヘッダ中の)記述子またはアクセス機構に基づいてその
要件を記述する(例えば、httpは、いくつかのCMLブ
ラウザが利用可能になるまでの少なくとも展開の最初で
は、HTMLを暗黙指定することになる)。決定はま
た、要求されたページに基づいても行われる。ブラウザ
がxxxx.htmlを要求する場合、それは、CMLがHTM
Lにトランスコーディングされることを意味し、yyyy.v
xmlを要求する場合、それは、VoiceXMLにトランスコ
ーディングされることを意味する、などである。明らか
にこれは、現在のインフラストラクチャおよびその何ら
かの未来の進化形をサポートすることを保証する。
【0177】CMLブラウザ(すなわち会話型/マルチ
モーダル)が開放されるとき、それは、CMLページ
(すなわちzzzz.cml)を要求することになり、また、そ
れ自体をCMLブラウザとして記述することもできる。
このような場合、ページはどんなトランスコーディング
も必要とせずに提供される。これは、レガシー/今日の
インフラストラクチャからCML/会話型支配のウェブ
・プログラミング・パラダイムへのスムーズな移行を保
証する。ここで、レガシー・コンテンツ(すなわちHT
ML、WML、VoiceXML、またはその他のレガシー
言語、あるいはそれらすべてで書かれた静的または動的
コンテンツ)は、CMLに変換される必要がある。ツー
ルは、せいぜいCMLターゲットを「当てる」ことにし
か使用できず、次いでそのCMLターゲットは、手作業
で妥当性検査して再編集する必要がある。しかし、上に
説明したのと同じ理由で、元のページが特定の規則に従
って構築された場合、またはXMLタグが明確であり
(領域特定であり)、したがってページ中のそれらの役
割が明確である場合、実行可能な自動トランスコーディ
ング・システムを使用することができる。
【0178】図15に、CML会話型(マルチモーダル
・ブラウザ)が標準となったときの展開ロード・マップ
における次のステップを示す。したがって、今やトラン
スコーディングはブラウザの一部であり、ページはCM
Lでオーサリングされ提供される。レガシー(すなわち
非CML)ページが提供されるとき、それは、マルチモ
ーダル・シェルによって取り出されるが、次いで、対応
するモーダル性を扱う対応するレンダリング・ブラウザ
に直接に送信されることになる。
【0179】CMLコンテンツおよびレガシー・コンテ
ンツは、当然、依然として前述のようにCMLにオーサ
リングまたは変換される必要がある。
【0180】図16を参照すると、本発明によるマルチ
モーダル・ブラウザ体系のブロック図が示されている。
図示のように、マルチモーダル・ブラウザ60は、マル
チモーダル・シェルまたは会話型シェル62、GUIレ
ンダリング・ブラウザ・コンポーネント64、およびス
ピーチ・レンダリング・ブラウザ・コンポーネント66
を備える。マルチモーダル・シェルはまた、「仮想ブラ
ウザ」とも呼ばれる。マルチモーダル・ブラウザ60は
2つのモーダル性、視覚(ブラウザ・コンポーネント6
4)およびスピーチ(ブラウザ・コンポーネント66)
の使用を示しているが、本発明がこれらのモーダル性に
限定されないことを理解されたい。マルチモーダル・ブ
ラウザ60は、一般に次のように動作する。アプリケー
ションにアクセスしようとするユーザは、マルチモーダ
ル・ブラウザのすべてか一部が常駐するクライアント装
置(例えばパーソナル・コンピュータ、ラップトップ・
コンピュータ、携帯情報端末など)とインタフェースす
る。図16に示す一般的な場合では、ユーザはテキスト
・インタフェースもしくはグラフィカル・インタフェー
ス(GUI入力/出力)またはその両方を介してこれを
行うことができ、あるいはインタフェースはスピーチ
(オーディオ入力/出力)を介したものとすることがで
き、あるいはその両方ができる。図16にはマルチモー
ダル・ブラウザ60を1つのブロック中に示してある
が、マルチモーダル・ブラウザはクライアントとサーバ
のコンピュータ・システムを両方含めた複数の装置を介
して実施できることを以下に説明する。
【0181】ユーザの要求に基づいて、マルチモーダル
・ブラウザ60は適切なURLをコンテンツ・サーバ6
9に送り、コンテンツ・サーバ69もまた、所望の特定
アプリケーションへのアクセスを要求するために、同じ
くクライアント装置に常駐することのできる会話型エン
ジン68にサービスする。次いで、アプリケーションに
関連するCMLコードが、コンテンツ・サーバ69から
マルチモーダル・ブラウザ60にダウンロードされる。
次いでマルチモーダル・ブラウザは、そのCMLコード
に関連する会話型ジェスチャに基づいて、モーダル性特
定のレンダリング(GUI表現またはスピーチ表現ある
いはその両方)を生成する。したがってユーザは、これ
らの表現を介してブラウザ60と対話する。
【0182】次に(引き続き図16も参照しながら)図
17を参照すると、本発明の一実施形態によるマルチモ
ーダル・ブラウザの動作をより詳細に示す流れ図が示さ
れている。アプリケーション開発者は、アプリケーショ
ン、例えばインフォウェアと呼ばれる軽量アプリケーシ
ョンをCMLで書く。CMLでオーサリングされたイン
フォウェアは、複数のモーダル性特定のブラウザ・コン
ポーネント(例えば図16の視覚ブラウザ64とスピー
チ・ブラウザ66)の間を媒介する会話型シェル(例え
ば図16のマルチモーダル・シェル62)によってホス
ティングされる。マルチモーダル・シェルは、CMLイ
ンタープリタまたはプロセッサと考えることができる。
これを、ブロック70として図17に示す。ユーザ対話
はCMLインタープリタによって進行し、CMLインタ
ープリタは、ダウンロードされたCMLコードに関連す
るCMLインスタンスをHTML(ブロック77)やVo
iceXML(ブロック78)などの適切なモーダル性特
定の言語にマッピングする。これらのモーダル性特定の
表現は、そのアプリケーションに関連するモーダル性特
定のバージョンのダイアログをレンダリングする。ブロ
ック70中に示すように、ノード(A)および矢印
(B)は、CMLの宣言型プログラムを表す。CMLプ
ログラム中のジェスチャは各ノードで表され、矢印は、
あり得る分岐点またはループによる対話/ダイアログの
流れを表す。各ジェスチャはノードID(node_id)で
識別され、これは、異なる登録済みのモーダル性の間で
同期をとるために、活動化されたジェスチャを適切に識
別することを可能にする。node_idはジェスチャを識別
し、したがって、CMLブラウザ(すなわちマルチモー
ダル・シェルまたは仮想ブラウザ)は、それがダイアロ
グ・フロー中のどこであるか、およびそこからどこに行
くべきか(例えば、異なるモーダル性を更新する、また
はサーバに変数を送って新しいCMLページを取り出
す)を知る。
【0183】CMLからモーダル性特定の表現への変換
77および78は、XSL変換規則(または前述の他の
変換機構)によって支配される。これらのXSL規則
は、モーダル性特定である。これらの変換は、XSL規
則74および登録テーブル76に従って、プレゼンテー
ション生成ブロック72によって扱われる。登録テーブ
ル76は、デフォルトのジェスチャXSL変換規則、な
らびに拡張形、アプリケーション特定、装置特定、また
はユーザ特定の特定規則のリポジトリである。CMLイ
ンスタンスを適切なモーダル性特定の表現にマッピング
する過程で、XSL規則は、モーダル性特定のユーザ対
話を実現するのに必要な情報を追加する。一例として
は、要素selectをVoiceXMLに変換するとき、関係す
るXSL変換規則は、その会話型ジェスチャに有効な選
択肢をカバーする文法の生成を扱う。
【0184】CMLインスタンスをHTMLなどのモー
ダル性特定の表現に変換する過程は、単一のCMLノー
ドを出力表現中のノードの集合にマッピングすることに
なる。これらの様々な表現にわたって同期をとるのを助
けるために、CML属性node_idが、所与のCMLノー
ドから得られた出力ノードのすべてに適用される。所与
のCMLインスタンスが適切なモーダル性特定のXSL
規則によって異なる表現、例えばHTMLおよびVoice
XMLにマッピングされるとき、出力におけるツリーの
形は、様々なモーダル性の間で異なる見込みが高い。し
かし、属性node_idは、モーダル性特定の各表現から元
のCMLノードへの概念上のバックリンクを提供するこ
とにより、これらの表現の間で同期をとることを可能に
する。これを、図17のブロック70に図示する。
【0185】ユーザ対話が進行するにつれて、現行のC
MLインスタンスによって環境中で定義される変数は、
妥当性検査された値に束縛される。この束縛は、まず、
モーダル性特定の表現(登録済みクライアント)77お
よび78のうちの1つで発生する。モーダル性特定の表
現は、更新された環境および完了したばかりのジェスチ
ャのnode_idを含む適切なメッセージをCMLインター
プリタ(マルチモーダル・シェル)に送る。更新された
束縛がCMLインタープリタに伝達されると、CMLイ
ンタープリタは、完了したばかりのジェスチャのnode_i
dでモーダル性特定の表現すべてにメッセージを送る。
モーダル性特定の表現は、このメッセージを受け取る
と、まずCMLインタープリタにそれらの表現に影響す
る環境の部分を照会することによって、それらの表現を
更新する。
【0186】図18に、本発明の一実施形態によりCM
Lマルチモーダル・ブラウザによって行われる異なるス
テップを示す。CMLページがブラウザによって取り出
されると、ブラウザは、XMLパーサと同様にCMLコ
ンテンツを解析する(ステップ90)。ブラウザは、対
話の内部表現(すなわち、ページ中に記述された異なる
ジェスチャのグラフ/ツリー)およびノードIDを構築
する。ブラウザは、ブラウザに記憶されたジェスチャX
SL変換(またはJava BeansやJava Server Pagesのよ
うな他の変換機構)を使用して(ブロック98)、異な
るMLページを構築し(ステップ96)、これは各レン
ダリング・ブラウザに送られる(ステップ100)。あ
るモーダル性のI/Oイベント時に、その影響が対話グ
ラフ(すなわちYO999−178に記載のようにMM
シェル登録テーブル(ブロック94)に記憶された)の
レベルで検査される(ステップ92)。ジェスチャXS
L変換規則は、アプリケーション開発者が上書きし、そ
れらをどこでダウンロードすべきかを示すことができる
ことに留意されたい。これらはまた、普通ならデフォル
ト挙動となるものから、ユーザ、アプリケーション、ま
たは装置のプリファレンスによって上書きすることもで
きる。新しいジェスチャも追加することができ、その場
合、関連するXSL規則が提供されなければならない
(例えばそれを得るためのURL)。
【0187】前述のように、本発明は、複数装置ブラウ
ジング環境または分散ブラウジング環境を可能にする。
CMLの性質およびそれが効果的に複数のブラウザを同
期させる能力のせいで、アプリケーションの様々な部分
を別個のコンピューティング装置上に常駐させて実行す
ることができる。次いでユーザは、1つのアプリケーシ
ョンにアクセスするときに複数の装置、例えばラップト
ップ・コンピュータおよびセルラー・ホンと同時に対話
することができる。これは実際、異なるモーダル性での
ブラウジングに限定されない。同じモーダル性(例えば
GUIのみ)中でも、同じコンテンツを表現してこの表
現をモーダル性にわたって同期化する必要があるとき、
例えば1つの装置上で画像を、別の装置上でビデオを、
3つ目の装置上でテキストと背景を足したものを表示す
るときに、同じ原理を使用して、前もってそれがどんな
装置かを記述することができる。別の例は、1つの装置
上でテキストおよび画像を、別の装置上でアプレットを
表示するなどである。もっと多くの例も容易に考えられ
る。これは、カストマイズされたジェスチャまたはジェ
スチャXSL規則の使用を必要とすることになる。ある
いは、これは、それを行うための(他のジェスチャおよ
びデフォルト・レンダリングを有する)別のマークアッ
プを必要とすることになる。
【0188】次に図19を参照すると、このような分散
ブラウジング環境が示されている。マルチモーダル・ブ
ラウザ62、視覚ブラウザ64、スピーチ・ブラウザ6
6、会話型エンジン68、およびコンテンツ・サーバ6
9の機能および動作は、図16および17に関して上に
述べたものと同じである。しかし、見れば分かるよう
に、コンポーネントは複数のコンピューティング装置上
に分散されている。例えば、マルチモーダル・ブラウザ
62はサーバ80上に常駐し、ビジュアル・ブラウザ6
4はクライアント装置82上に常駐し、スピーチ・ブラ
ウザはサーバ84上に常駐する。これらのクライアント
装置およびサーバ装置は、WWW、ローカル・ネットワ
ーク、または他の何らかの適したネットワークを介して
通信することができる。ユーザはクライアント装置82
に対してローカルでよく、サーバ80と82とはリモー
トに位置する。あるいは、すべてのまたはいくつかのコ
ンピューティング装置を一所に配置することもできる。
ユーザがクライアント装置82と直接に対話するので、
オーディオ入力/出力機能86(例えばマイクロホンお
よびスピーカ)が装置82に備わり、これらはサーバ8
4にあるスピーチ・ブラウザに接続される。見れば分か
るように、CMLアプリケーションの、同期した同じ動
作は、マルチモーダル・ブラウザの様々なコンポーネン
トが別個のコンピューティング装置上に位置していても
達成することができる。
【0189】本発明の方法を実施するための前述の各ク
ライアント装置およびサーバは、メモリおよびI/O装
置に動作可能に結合されたプロセッサを備えることがで
きることを理解されたい。本明細書で使用する用語「プ
ロセッサ」は、例えばCPU(中央処理装置)を備える
ものなど、どんな処理装置も含むものとすることを理解
されたい。本明細書で使用する用語「メモリ」は、例え
ばRAM、ROM、固定記憶装置(例えばハード・ドラ
イブ)、取外し可能記憶装置(例えばディスケット)、
フラッシュ・メモリなど、プロセッサまたはCPUに関
連するメモリを含むものとする。さらに、本明細書で使
用する用語「入力/出力装置」または「I/O装置」
は、例えばデータを処理装置に入力するための1つまた
は複数の入力装置、例えばキーボード、マイクロホンな
ど、および処理装置に関連する結果を呈示するための1
つまたは複数の出力装置、例えばCRTディスプレイ、
スピーカなど、あるいはその両方を含むものとする。入
力/出力装置は、モーダル性特定であり、したがって、
他の装置を採用することもできる。また、「プロセッ
サ」は複数の処理装置を指すことができ、処理装置に関
連する様々な要素は他の処理装置によって共用できるこ
とも理解されたい。したがって、本明細書に述べる本発
明の方法を実行するための命令またはコードを含むソフ
トウェア・コンポーネントは、1つまたは複数の関連す
る記憶装置(例えばROM、固定または取外し可能メモ
リ)に記憶することができ、利用される準備ができたと
きに部分的にまたは全体で(例えばRAMに)ロードし
てCPUによって実行することができる。
【0190】G.代替実施形態 本発明の教示から自明に得られる可能な拡張の中には次
のものがある。
【0191】(i)上に考察した複数装置ブラウジング
(ある所与のモーダル性でも)。
【0192】(ii)複数地理サポート。いくつかのジェ
スチャ(例えば電話番号、アドレスなど)を、ローカル
のフォーマットならびに言語に適合させることができ
る。これは、テキスト間変換システムに結合して、異な
るXSL規則を簡単に介して完全に自動的なローカライ
ズ機構(select yes/Noがselect Oui/Nonになる)を実
現することができる。あるいは、このような自動的なト
ランスコーダがない場合に、システムを開発/ローカラ
イズ用ツールの一部として使用して、ローカライズ/国
際化、地理/地域の適合を高速化することもできる。
【0193】(iii)会話型ファウンデーション・クラ
ス(Conversational Foundation Class)。会話型ファ
ウンデーション・クラスは、モーダル性独立の、かつ並
列でおよび逐次的に実行してより複雑なダイアログを構
築できる命令型ダイアログ・コンポーネントとして、Y
O999−111に導入された。これらは、会話型アプ
リケーション・プラットフォーム(CVM、会話型仮想
マシン)から提供されるサービスと組み合わせられて、
プラットフォームが提供するこれらのファウンデーショ
ン・クラスのライブラリにロード/リンクすることによ
って、命令型会話型(マルチモーダル・アプリケーショ
ン)のプログラミングを可能にする。各CVMプラット
フォームがこれを提供するので、アプリケーション開発
者はそれらを利用することができ、装置によってサポー
トされるモーダル性内のレンダリングおよびそれらの同
期化を心配しなくてよい。したがって、本明細書に提供
したCML仕様中に宣言的に定義した各ジェスチャは、
逐次的に(1つずつ)または並列で(複数のフォームが
一度に活動化されるように複数が活動化される)実行で
きる命令型の実施形態を(例えばJavaで)有することが
できる。CFCでのプログラミングは、対話による命令
型のプログラミングに相当する。すなわち、何らかの命
令型のジェスチャを使用してそれにリンクし、それをバ
ックエンドにフックし、従来のコードによってそのジェ
スチャを共に結合する。このコードまたはCFC引数中
に、いくらかのモーダル性特定のカストマイズを加える
こともできる。次いで、プラットフォーム(同じレベル
の機能を実行するCVMまたはブラウザ)が適切なモー
ダル性内のレンダリングと、ファウンデーション・クラ
ス中にハード・コーディングされたモーダル性の間の適
切な同期化とを扱えるようにする。一例は、すべてのフ
ァウンデーション・クラスがJava Classとして提供され
る場合であろう。これにより、対話モデルによるプログ
ラミングをJavaアプレットまたはサーブレットに拡張す
ることが可能である。
【0194】(iv)対話によるハイブリッド・プログラ
ミングは、宣言型と命令型の結合である。すなわち、C
FCおよびCFCを使用して(かつ、よりタスク特定
に)構築された他のオブジェクト、例えばjavaアプレッ
トへの呼出しを伴うCMLページである。したがって、
対話プログラミング・モデルによるプログラミングは、
一般にすべてのプログラミング・モデルをカバーすると
考えられる。
【0195】(v)スクリプティング。CMLは、再利
用したいと思うどんなスクリプティング(http://www.e
cma.ch/stand/ecma-262.htmに定義されているECMA
スクリプトなど)もマルチモーダル・シェルのスクリプ
ティング言語として直接サポートすることができる。モ
ーダル性特定のスクリプト(JavascriptやWMLスクリ
プトのような)は、モーダル性特定のスクリプティング
言語として考えなければならない。CMLのECMAス
クリプトがどのようにレガシー・ブラウザ用に変換され
ることになるかのより詳細な挙動を今日(すなわち我々
が今日のインフラストラクチャを使用する場合のステッ
プのために)定義することは可能だが、これらは、モー
ダル性特定として(すなわち画像のように)単純に扱う
ことができる。
【0196】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0197】(1)ユーザから1つまたは複数のコンピ
ュータ・ベースの装置を介してアクセス可能なアプリケ
ーションをプログラムする方法であって、前記アプリケ
ーションにアクセスするために使用される前記1つまた
は複数のコンピュータ・ベースの装置とユーザが対話ベ
ースのプログラミング・コンポーネントによって行うこ
とが可能な対話を表現するステップを含み、前記対話ベ
ースのプログラミング・コンポーネントが、前記アプリ
ケーションに関連するコンテンツ/アプリケーション論
理およびプレゼンテーション要件に対して独立、さら
に、コンポーネントごとにトランスコーディングされ
て、前記1つまたは複数のコンピュータ・ベースの装置
上で前記アプリケーションの1つまたは複数のモーダル
性特定のレンダリングを生成する方法。 (2)前記アプリケーションの少なくとも一部がサーバ
から、クライアントの役割を果たす前記1つまたは複数
のコンピュータ・ベースの装置のうちの少なくとも1つ
にダウンロードされるクライアント/サーバ構成におい
て、前記サーバに常駐する前記コンテンツ/アプリケー
ション論理への接続を提供するように動作可能なコード
を前記アプリケーション中に含めるステップをさらに含
む、上記(1)に記載の方法。 (3)前記コンテンツ/アプリケーション論理接続コー
ドが、前記アプリケーションに関連する1つまたは複数
のデータ・モデル、属性制約、および妥当性検査規則の
うちの少なくとも1つを表す、上記(2)に記載の方
法。 (4)前記1つまたは複数のモーダル性特定のレンダリ
ングが、前記アプリケーションの一部のスピーチ・ベー
スの表現を含む、上記(1)に記載の方法。 (5)前記スピーチ・ベースの表現がVoiceXMLに基
づく、上記(4)に記載の方法。 (6)前記1つまたは複数のモーダル性特定のレンダリ
ングが、前記アプリケーションの一部の視覚ベースの表
現を含む、上記(1)に記載の方法。 (7)前記視覚ベースの表現がHTML、CHTML、
WMLのうちの少なくとも1つに基づく、上記(6)に
記載の方法。 (8)前記ユーザ対話が前記対話ベースのプログラミン
グ・コンポーネントによって宣言的に表現される、上記
(1)に記載の方法。 (9)前記ユーザ対話が前記対話ベースのプログラミン
グ・コンポーネントによって命令的に表現される、上記
(1)に記載の方法。 (10)前記ユーザ対話が前記対話ベースのプログラミ
ング・コンポーネントによって宣言的かつ命令的に表現
される、上記(1)に記載の方法。 (11)前記対話ベースのプログラミング・コンポーネ
ントが、前記ユーザと前記1つまたは複数のコンピュー
タ・ベースの装置との間で発生する可能性のあるダイア
ログに関連する基本要素を含む、上記(1)に記載の方
法。 (12)前記対話ベースのプログラミング・コンポーネ
ントが複合要素を含み、前記複合要素は、前記ユーザと
前記1つまたは複数のコンピュータ・ベースの装置との
間で発生する可能性のあるダイアログに関連する2つ以
上の前記基本要素の集合体である、上記(11)に記載
の方法。 (13)前記対話ベースのプログラミング・コンポーネ
ントの1つが会話型ジェスチャを表す、上記(1)に記
載の方法。 (14)前記会話型ジェスチャが、ユーザへの情報メッ
セージをカプセル化するジェスチャを含む、上記(1
3)に記載の方法。 (15)前記会話型ジェスチャが、コンテキスト・ヘル
プ情報をカプセル化するジェスチャを含む、上記(1
3)に記載の方法。 (16)前記会話型ジェスチャが、別のジェスチャの完
了が成功したときに行われるアクションをカプセル化す
るジェスチャを含む、上記(13)に記載の方法。 (17)前記会話型ジェスチャが、イエス/ノー・ベー
スの質問をカプセル化するジェスチャを含む、上記(1
3)に記載の方法。 (18)前記会話型ジェスチャが、ユーザが選択肢のセ
ットから選択することを期待される場合のダイアログを
カプセル化するジェスチャを含む、上記(13)に記載
の方法。 (19)前記選択ジェスチャが前記選択肢のセットを表
すサブ要素を含む、上記(18)に記載の方法。 (20)前記選択ジェスチャが、選択がパスすべきテス
トを表すサブ要素を含む、上記(18)に記載の方法。 (21)前記選択ジェスチャが、前記テストが不合格の
場合に呈示すべきエラー・メッセージを表すサブ要素を
含む、上記(20)に記載の方法。 (22)前記会話型ジェスチャが、所与の会話型ジェス
チャの結果を妥当性検査するための規則をカプセル化す
るジェスチャを含む、上記(13)に記載の方法。 (23)前記会話型ジェスチャが、文法処理規則をカプ
セル化するジェスチャを含む、上記(13)に記載の方
法。 (24)前記会話型ジェスチャが、ユーザが前記アプリ
ケーションの各部分をナビゲートするのを助けるダイア
ログをカプセル化するジェスチャを含む、上記(13)
に記載の方法。 (25)前記会話型ジェスチャが、少なくとも1つのユ
ーザ・ログインおよび認証の情報を求める要求をカプセ
ル化するジェスチャを含む、上記(13)に記載の方
法。 (26)前記会話型ジェスチャが、制約付きのユーザ入
力を求める要求をカプセル化するジェスチャを含む、上
記(13)に記載の方法。 (27)前記会話型ジェスチャが、制約のないユーザ入
力を求める要求をカプセル化するジェスチャを含む、上
記(13)に記載の方法。 (28)前記会話型ジェスチャが、情報のサブミットを
制御するジェスチャを含む、上記(13)に記載の方
法。 (29)論理入力イベント、ならびに、前記論理入力イ
ベントと定義された前記論理入力イベントをトリガする
物理入力イベントとの間の関連を定義する機構を提供す
るステップをさらに含む、上記(1)に記載の方法。 (30)前記コンポーネントごとのトランスコーディン
グがXSL変換規則に従って行われる、上記(1)に記
載の方法。 (31)前記コンポーネントごとのトランスコーディン
グがJava Beanに従って行われる、上記(1)に記載の
方法。 (32)前記コンポーネントごとのトランスコーディン
グがJava Server Pageに従って行われる、上記(1)に
記載の方法。 (33)前記対話ベースのプログラミング・コンポーネ
ントによるプレゼンテーションが、前記1つまたは複数
のコンピュータ・ベースの装置上で前記アプリケーショ
ンの前記1つまたは複数のモーダル性特定のレンダリン
グを同期させることを可能にする、上記(1)に記載の
方法。 (34)前記対話ベースのプログラミング・コンポーネ
ントによるプレゼンテーションが自然言語理解環境をサ
ポートする、上記(1)に記載の方法。 (35)前記1つまたは複数のコンピュータ・ベースの
装置上で前記アプリケーションの前記1つまたは複数の
モーダル性特定のレンダリングに関連するプレゼンテー
ション・フィーチャを表面的に変更することを可能にす
るコードを含めるステップをさらに含む、上記(1)に
記載の方法。 (36)コンポーネントごとにトランスコーディングし
て前記1つまたは複数のコンピュータ・ベースの装置上
で前記アプリケーションの前記1つまたは複数のモーダ
ル性特定のレンダリングを生成するための規則を変更す
ることを可能にするコードを含めるステップをさらに含
む、上記(1)に記載の方法。 (37)実装されている、基礎をなすデータ・モデルの
定義が、前記ユーザ対話を定義するマークアップ言語か
ら分離される、上記(1)に記載の方法。 (38)node_id属性が各コンポーネントに付加され、
前記属性は様々な出力の上にマッピングされる、上記
(1)に記載の方法。 (39)モーダル性特定のマークアップ・コンポーネン
トをカプセル化する通過機構が作成者に提供される、上
記(1)に記載の方法。 (40)前記コンポーネントが並列に活動化させること
ができる、上記(1)に記載の方法。 (41)前記プレゼンテーションおよびトランスコーデ
ィングが拡張可能である、上記(1)に記載の方法。 (42)前記アプリケーションの状態がカプセル化され
る、上記(1)に記載の方法。 (43)前記表現が動的に生成されるデータの参照を可
能にし、前記コンテンツ/アプリケーション論理へのコ
ールバック機構をサポートする、上記(1)に記載の方
法。 (44)1つまたは複数のコンピュータ・ベースの装置
に関連するアプリケーションにアクセスする際に使用す
る装置であって、1つまたは複数のプロセッサを備え、
前記プロセッサが、(i)アプリケーション・サーバか
ら前記アプリケーションを得るように動作可能であり、
前記アプリケーションが、前記1つまたは複数のコンピ
ュータ・ベースの装置とユーザが対話ベースのプログラ
ミング・コンポーネントによって行うことが可能な対話
によってプログラム的に表現され、前記対話ベースのプ
ログラミング・コンポーネントが、前記アプリケーショ
ンに関連するコンテンツ/アプリケーション論理および
プレゼンテーション要件に対して独立し、前記プロセッ
サはまた、(ii)前記対話ベースのプログラミング・コ
ンポーネントをコンポーネントごとにトランスコーディ
ングして、前記1つまたは複数のコンピュータ・ベース
の装置上で前記アプリケーションの1つまたは複数のモ
ーダル性特定のレンダリングを生成するように動作可能
である装置。 (45)前記1つまたは複数のプロセッサが前記1つま
たは複数のコンピュータ・ベースの装置にわたって分散
される、上記(44)に記載の装置。 (46)前記アプリケーションの少なくとも一部がサー
バから、クライアントの役割を果たす前記1つまたは複
数のコンピュータ・ベースの装置のうちの少なくとも1
つにダウンロードされるクライアント/サーバ構成にお
いて、前記サーバに常駐する前記コンテンツ/アプリケ
ーション論理への接続を提供するように動作可能なコー
ドを前記アプリケーション中に含めるステップをさらに
含む、上記(44)に記載の装置。 (47)前記コンテンツ/アプリケーション論理接続コ
ードが、前記アプリケーションに関連する1つまたは複
数のデータ・モデル、属性制約、および妥当性検査規則
のうちの少なくとも1つを表す、上記(46)に記載の
装置。 (48)前記1つまたは複数のモーダル性特定のレンダ
リングが、前記アプリケーションの一部のスピーチ・ベ
ースの表現を含む、上記(44)に記載の装置。 (49)前記スピーチ・ベースの表現がVoiceXMLに
基づく、上記(48)に記載の装置。 (50)前記1つまたは複数のモーダル性特定のレンダ
リングが、前記アプリケーションの一部の視覚ベースの
表現を含む、上記(44)に記載の装置。 (51)前記視覚ベースの表現がHTML、CHTM
L、WMLのうちの少なくとも1つに基づく、上記(5
0)に記載の装置。 (52)前記ユーザ対話が前記対話ベースのプログラミ
ング・コンポーネントによって宣言的に表現される、上
記(44)に記載の装置。 (53)前記ユーザ対話が前記対話ベースのプログラミ
ング・コンポーネントによって命令的に表現される、上
記(44)に記載の装置。 (54)前記ユーザ対話が前記対話ベースのプログラミ
ング・コンポーネントによって宣言的かつ命令的に表現
される、上記(44)に記載の装置。 (55)前記対話ベースのプログラミング・コンポーネ
ントが、前記ユーザと前記1つまたは複数のコンピュー
タ・ベースの装置との間で発生する可能性のあるダイア
ログに関連する基本要素を含む、上記(44)に記載の
装置。 (56)前記対話ベースのプログラミング・コンポーネ
ントが複合要素を含み、前記複合要素は、前記ユーザと
前記1つまたは複数のコンピュータ・ベースの装置との
間で発生する可能性のあるダイアログに関連する2つ以
上の前記基本要素の集合体である、上記(55)に記載
の装置。 (57)前記対話ベースのプログラミング・コンポーネ
ントの1つが会話型ジェスチャを表す、上記(44)に
記載の装置。 (58)前記会話型ジェスチャが、ユーザへの情報メッ
セージをカプセル化するジェスチャを含む、上記(5
7)に記載の装置。 (59)前記会話型ジェスチャが、コンテキスト・ヘル
プ情報をカプセル化するジェスチャを含む、上記(5
7)に記載の装置。 (60)前記会話型ジェスチャが、別のジェスチャの完
了が成功したときに行われるアクションをカプセル化す
るジェスチャを含む、上記(57)に記載の装置。 (61)前記会話型ジェスチャが、イエス/ノー・ベー
スの質問をカプセル化するジェスチャを含む、上記(5
7)に記載の装置。 (62)前記会話型ジェスチャが、ユーザが選択肢のセ
ットから選択することを期待される場合のダイアログを
カプセル化するジェスチャを含む、上記(57)に記載
の装置。 (63)前記選択ジェスチャが前記選択肢のセットを表
すサブ要素を含む、上記(62)に記載の装置。 (64)前記選択ジェスチャが、選択がパスすべきテス
トを表すサブ要素を含む、上記(62)に記載の装置。 (65)前記選択ジェスチャが、前記テストが不合格の
場合に呈示すべきエラー・メッセージを表すサブ要素を
含む、上記(64)に記載の装置。 (66)前記会話型ジェスチャが、所与の会話型ジェス
チャの結果を妥当性検査するための規則をカプセル化す
るジェスチャを含む、上記(57)に記載の装置。 (67)前記会話型ジェスチャが、文法処理規則をカプ
セル化するジェスチャを含む、上記(57)に記載の装
置。 (68)前記会話型ジェスチャが、ユーザが前記アプリ
ケーションの各部分をナビゲートするのを助けるダイア
ログをカプセル化するジェスチャを含む、上記(57)
に記載の装置。 (69)前記会話型ジェスチャが、少なくとも1つのユ
ーザ・ログインおよび認証の情報を求める要求をカプセ
ル化するジェスチャを含む、上記(57)に記載の装
置。 (70)前記会話型ジェスチャが、制約付きのユーザ入
力を求める要求をカプセル化するジェスチャを含む、上
記(57)に記載の装置。 (71)前記会話型ジェスチャが、制約のないユーザ入
力を求める要求をカプセル化するジェスチャを含む、上
記(57)に記載の装置。 (72)前記会話型ジェスチャが、情報のサブミットを
制御するジェスチャを含む、上記(57)に記載の装
置。 (73)論理入力イベント、ならびに、前記論理入力イ
ベントと定義された前記論理入力イベントをトリガする
物理入力イベントとの間の関連を定義するための機構を
提供するステップをさらに含む、上記(44)に記載の
装置。 (74)前記コンポーネントごとのトランスコーディン
グがXSL変換規則に従って行われる、上記(44)に
記載の装置。 (75)前記コンポーネントごとのトランスコーディン
グがJava Beanに従って行われる、上記(44)に記載
の装置。 (76)前記コンポーネントごとのトランスコーディン
グがJava Server Pageに従って行われる、上記(44)
に記載の装置。 (77)前記対話ベースのプログラミング・コンポーネ
ントによるプレゼンテーションが、前記1つまたは複数
のコンピュータ・ベースの装置上で前記アプリケーショ
ンの前記1つまたは複数のモーダル性特定のレンダリン
グを同期させることを可能にする、上記(44)に記載
の装置。 (78)前記対話ベースのプログラミング・コンポーネ
ントによるプレゼンテーションが自然言語理解環境をサ
ポートする、上記(44)に記載の装置。 (79)前記1つまたは複数のコンピュータ・ベースの
装置上で前記アプリケーションの前記1つまたは複数の
モーダル性特定のレンダリングに関連するプレゼンテー
ション・フィーチャを表面的に変更することを可能にす
るコードを含めるステップをさらに含む、上記(44)
に記載の装置。 (80)コンポーネントごとにトランスコーディングし
て前記1つまたは複数のコンピュータ・ベースの装置上
で前記アプリケーションの前記1つまたは複数のモーダ
ル性特定のレンダリングを生成するための規則を変更す
ることを可能にするコードを含めるステップをさらに含
む、上記(44)に記載の装置。 (81)実装されている、基礎をなすデータ・モデルの
定義が、前記ユーザ対話を定義するマークアップ言語か
ら分離される、上記(44)に記載の装置。 (82)node_id属性が各コンポーネントに付加され、
前記属性は様々な出力の上にマッピングされる、上記
(44)に記載の装置。 (83)モーダル性特定のマークアップ・コンポーネン
トをカプセル化する通過機構が作成者に提供される、上
記(44)に記載の装置。 (84)前記コンポーネントが並列に活動化させること
ができる、上記(44)に記載の装置。 (85)前記プレゼンテーションおよびトランスコーデ
ィングが拡張可能である、上記(44)に記載の装置。 (86)前記アプリケーションの状態がカプセル化され
る、上記(44)に記載の装置。 (87)前記表現が動的に生成されるデータの参照を可
能にし、前記コンテンツ/アプリケーション論理へのコ
ールバック機構をサポートする、上記(44)に記載の
装置。 (88)前記1つまたは複数のプロセッサが前記1つま
たは複数のコンピュータ・ベースの装置にわたって分散
され、前記アプリケーションが前記1つまたは複数のコ
ンピュータ・ベースの装置にまたがって同期化される、
上記(44)に記載の装置。 (89)前記アプリケーションの表現がさらに、1つま
たは複数のモーダル性特定のマークアップ言語を介して
前記1つまたは複数のモーダル性特定のレンダリングを
表面的に変更することを可能にする、上記(44)に記
載の装置。 (90)ユーザからの1つまたは複数のコンピュータ・
ベースの装置を介したアプリケーションへのアクセスを
提供する際に使用するブラウザ装置であって、コンピュ
ータ実行可能なコードを含む機械読取可能媒体を備え、
前記コンピュータ実行可能なコードが、実行時に、アプ
リケーション・サーバからアプリケーションを得るステ
ップであって、前記アプリケーションが、前記1つまた
は複数のコンピュータ・ベースの装置とユーザが対話ベ
ースのプログラミング・コンポーネントによって行うこ
とが可能な対話によってプログラム的に表現され、前記
対話ベースのプログラミング・コンポーネントが、前記
アプリケーションに関連するコンテンツ/アプリケーシ
ョン論理およびプレゼンテーション要件に対して独立し
ているステップと、前記対話ベースのプログラミング・
コンポーネントをコンポーネントごとにトランスコーデ
ィングして、前記1つまたは複数のコンピュータ・ベー
スの装置上で前記アプリケーションの1つまたは複数の
モーダル性特定のレンダリングを生成するステップとを
実施することを可能にするブラウザ装置。(91)ユー
ザから1つまたは複数のコンピュータ・ベースの装置を
介してアクセス可能なアプリケーションをプログラミン
グする際に使用する製造品であって、コンピュータ実行
可能なコードを含む機械読取可能媒体を備え、前記コン
ピュータ実行可能なコードが、実行時に、前記アプリケ
ーションにアクセスするために使用される前記1つまた
は複数のコンピュータ・ベースの装置とユーザが対話ベ
ースのプログラミング・コンポーネントによって行うこ
とが可能な対話を表現するステップを実施することを可
能にし、前記対話ベースのプログラミング・コンポーネ
ントが、前記アプリケーションに関連するコンテンツ/
アプリケーション論理およびプレゼンテーション要件に
対して独立、さらに、コンポーネントごとにトランスコ
ーディングされて、前記1つまたは複数のコンピュータ
・ベースの装置上で前記アプリケーションの1つまたは
複数のモーダル性特定のレンダリングを生成する製造
品。
【図面の簡単な説明】
【図1】従来のアプリケーション・プログラミング手法
を示す図である。
【図2】本発明の対話ベースのアプリケーション・プロ
グラミング手法を示す図である。
【図3】本発明の一実施形態によるCMLオーサリング
されたアプリケーションの一例を示す図である。
【図4】XFORMS概念を示す図である。
【図5】本発明の対話ベースのプログラミング手法にお
けるXFORMSの使用を示す図である。
【図6】本発明の対話ベースのプログラミング手法にお
けるXFORMSの使用を示す図である。
【図7】CMLソース・コード・ページから変換された
GUI歓迎ページをHTMLブラウザで見たものを示す
図である。
【図8】CMLソース・コード・ページから変換された
GUI歓迎ページをHTMLブラウザで見たものを示す
図である。
【図9】CMLソース・コード・ページから変換された
GUI歓迎ページをHTMLブラウザで見たものを示す
図である。
【図10】CMLソース・コード・ページから変換され
たGUI歓迎ページをWMLブラウザでみたものを示す
図である。
【図11】HTMLによって表面変更されたCMLソー
ス・コード・ページから変換されたGUI歓迎ページを
HTMLブラウザで見たものを示す図である。
【図12】MVCモデルの新しい解釈を示す図である。
【図13】既存のシステムから本発明によってCMLを
完全に使用するまでの移行ロード・マップを示す図であ
る。
【図14】既存のシステムから本発明によってCMLを
完全に使用するまでの移行ロード・マップを示す図であ
る。
【図15】既存のシステムから本発明によってCMLを
完全に使用するまでの移行ロード・マップを示す図であ
る。
【図16】本発明の一実施形態によるマルチモーダル・
ブラウザ体系を示す図である。
【図17】本発明のマルチモーダル・ブラウザ機構の一
実施形態によるアプリケーション・プログラミング過程
におけるCMLの例示的な使用を示す流れ図である。
【図18】本発明のマルチモーダル・ブラウザ機構の一
実施形態によるアプリケーション・プログラミング過程
におけるCMLの例示的な使用を示す別の流れ図であ
る。
【図19】本発明の一実施形態による複数装置ブラウザ
体系を示す図である。
【符号の説明】
10 CMLコード 20 ジェスチャ:タイトル 22 ジェスチャ:メッセージ 24 ジェスチャ:排他的選択 60 マルチモーダル・ブラウザ 62 マルチモーダル・シェル 64 視覚ブラウザ 64 GUIレンダリング・ブラウザ 66 スピーチ・ブラウザ 66 スピーチ・レンダリング・ブラウザ 68 会話型エンジン 69 コンテンツ・サーバ 76 登録テーブル 77 モーダル性特定のレンダリング 78 モーダル性特定のレンダリング 80 サーバ 82 クライアント装置 84 サーバ 86 オーディオ入力/出力機能 94 MMシェル登録テーブル 98 ジェスチャXSL規則
フロントページの続き (72)発明者 ステファン・ハーマン・マエス アメリカ合衆国06811 コネチカット州ダ ンベリー ウィンターグリーン・ヒル・ロ ード 1 (72)発明者 ティルヴィルヴァマ・ライヴィー・ラマン アメリカ合衆国95123−5310 カリフォル ニア州サンノゼ ラ・テラス・サークル 2715

Claims (91)

    【特許請求の範囲】
  1. 【請求項1】ユーザから1つまたは複数のコンピュータ
    ・ベースの装置を介してアクセス可能なアプリケーショ
    ンをプログラムする方法であって、 前記アプリケーションにアクセスするために使用される
    前記1つまたは複数のコンピュータ・ベースの装置とユ
    ーザが対話ベースのプログラミング・コンポーネントに
    よって行うことが可能な対話を表現するステップを含
    み、 前記対話ベースのプログラミング・コンポーネントが、
    前記アプリケーションに関連するコンテンツ/アプリケ
    ーション論理およびプレゼンテーション要件に対して独
    立、さらに、コンポーネントごとにトランスコーディン
    グされて、前記1つまたは複数のコンピュータ・ベース
    の装置上で前記アプリケーションの1つまたは複数のモ
    ーダル性特定のレンダリングを生成する方法。
  2. 【請求項2】前記アプリケーションの少なくとも一部が
    サーバから、クライアントの役割を果たす前記1つまた
    は複数のコンピュータ・ベースの装置のうちの少なくと
    も1つにダウンロードされるクライアント/サーバ構成
    において、前記サーバに常駐する前記コンテンツ/アプ
    リケーション論理への接続を提供するように動作可能な
    コードを前記アプリケーション中に含めるステップをさ
    らに含む、請求項1に記載の方法。
  3. 【請求項3】前記コンテンツ/アプリケーション論理接
    続コードが、前記アプリケーションに関連する1つまた
    は複数のデータ・モデル、属性制約、および妥当性検査
    規則のうちの少なくとも1つを表す、請求項2に記載の
    方法。
  4. 【請求項4】前記1つまたは複数のモーダル性特定のレ
    ンダリングが、前記アプリケーションの一部のスピーチ
    ・ベースの表現を含む、請求項1に記載の方法。
  5. 【請求項5】前記スピーチ・ベースの表現がVoiceXM
    Lに基づく、請求項4に記載の方法。
  6. 【請求項6】前記1つまたは複数のモーダル性特定のレ
    ンダリングが、前記アプリケーションの一部の視覚ベー
    スの表現を含む、請求項1に記載の方法。
  7. 【請求項7】前記視覚ベースの表現がHTML、CHT
    ML、WMLのうちの少なくとも1つに基づく、請求項
    6に記載の方法。
  8. 【請求項8】前記ユーザ対話が前記対話ベースのプログ
    ラミング・コンポーネントによって宣言的に表現され
    る、請求項1に記載の方法。
  9. 【請求項9】前記ユーザ対話が前記対話ベースのプログ
    ラミング・コンポーネントによって命令的に表現され
    る、請求項1に記載の方法。
  10. 【請求項10】前記ユーザ対話が前記対話ベースのプロ
    グラミング・コンポーネントによって宣言的かつ命令的
    に表現される、請求項1に記載の方法。
  11. 【請求項11】前記対話ベースのプログラミング・コン
    ポーネントが、前記ユーザと前記1つまたは複数のコン
    ピュータ・ベースの装置との間で発生する可能性のある
    ダイアログに関連する基本要素を含む、請求項1に記載
    の方法。
  12. 【請求項12】前記対話ベースのプログラミング・コン
    ポーネントが複合要素を含み、前記複合要素は、前記ユ
    ーザと前記1つまたは複数のコンピュータ・ベースの装
    置との間で発生する可能性のあるダイアログに関連する
    2つ以上の前記基本要素の集合体である、請求項11に
    記載の方法。
  13. 【請求項13】前記対話ベースのプログラミング・コン
    ポーネントの1つが会話型ジェスチャを表す、請求項1
    に記載の方法。
  14. 【請求項14】前記会話型ジェスチャが、ユーザへの情
    報メッセージをカプセル化するジェスチャを含む、請求
    項13に記載の方法。
  15. 【請求項15】前記会話型ジェスチャが、コンテキスト
    ・ヘルプ情報をカプセル化するジェスチャを含む、請求
    項13に記載の方法。
  16. 【請求項16】前記会話型ジェスチャが、別のジェスチ
    ャの完了が成功したときに行われるアクションをカプセ
    ル化するジェスチャを含む、請求項13に記載の方法。
  17. 【請求項17】前記会話型ジェスチャが、イエス/ノー
    ・ベースの質問をカプセル化するジェスチャを含む、請
    求項13に記載の方法。
  18. 【請求項18】前記会話型ジェスチャが、ユーザが選択
    肢のセットから選択することを期待される場合のダイア
    ログをカプセル化するジェスチャを含む、請求項13に
    記載の方法。
  19. 【請求項19】前記選択ジェスチャが前記選択肢のセッ
    トを表すサブ要素を含む、請求項18に記載の方法。
  20. 【請求項20】前記選択ジェスチャが、選択がパスすべ
    きテストを表すサブ要素を含む、請求項18に記載の方
    法。
  21. 【請求項21】前記選択ジェスチャが、前記テストが不
    合格の場合に呈示すべきエラー・メッセージを表すサブ
    要素を含む、請求項20に記載の方法。
  22. 【請求項22】前記会話型ジェスチャが、所与の会話型
    ジェスチャの結果を妥当性検査するための規則をカプセ
    ル化するジェスチャを含む、請求項13に記載の方法。
  23. 【請求項23】前記会話型ジェスチャが、文法処理規則
    をカプセル化するジェスチャを含む、請求項13に記載
    の方法。
  24. 【請求項24】前記会話型ジェスチャが、ユーザが前記
    アプリケーションの各部分をナビゲートするのを助ける
    ダイアログをカプセル化するジェスチャを含む、請求項
    13に記載の方法。
  25. 【請求項25】前記会話型ジェスチャが、少なくとも1
    つのユーザ・ログインおよび認証の情報を求める要求を
    カプセル化するジェスチャを含む、請求項13に記載の
    方法。
  26. 【請求項26】前記会話型ジェスチャが、制約付きのユ
    ーザ入力を求める要求をカプセル化するジェスチャを含
    む、請求項13に記載の方法。
  27. 【請求項27】前記会話型ジェスチャが、制約のないユ
    ーザ入力を求める要求をカプセル化するジェスチャを含
    む、請求項13に記載の方法。
  28. 【請求項28】前記会話型ジェスチャが、情報のサブミ
    ットを制御するジェスチャを含む、請求項13に記載の
    方法。
  29. 【請求項29】論理入力イベント、ならびに、前記論理
    入力イベントと定義された前記論理入力イベントをトリ
    ガする物理入力イベントとの間の関連を定義する機構を
    提供するステップをさらに含む、請求項1に記載の方
    法。
  30. 【請求項30】前記コンポーネントごとのトランスコー
    ディングがXSL変換規則に従って行われる、請求項1
    に記載の方法。
  31. 【請求項31】前記コンポーネントごとのトランスコー
    ディングがJava Beanに従って行われる、請求項1に記
    載の方法。
  32. 【請求項32】前記コンポーネントごとのトランスコー
    ディングがJava Server Pageに従って行われる、請求項
    1に記載の方法。
  33. 【請求項33】前記対話ベースのプログラミング・コン
    ポーネントによるプレゼンテーションが、前記1つまた
    は複数のコンピュータ・ベースの装置上で前記アプリケ
    ーションの前記1つまたは複数のモーダル性特定のレン
    ダリングを同期させることを可能にする、請求項1に記
    載の方法。
  34. 【請求項34】前記対話ベースのプログラミング・コン
    ポーネントによるプレゼンテーションが自然言語理解環
    境をサポートする、請求項1に記載の方法。
  35. 【請求項35】前記1つまたは複数のコンピュータ・ベ
    ースの装置上で前記アプリケーションの前記1つまたは
    複数のモーダル性特定のレンダリングに関連するプレゼ
    ンテーション・フィーチャを表面的に変更することを可
    能にするコードを含めるステップをさらに含む、請求項
    1に記載の方法。
  36. 【請求項36】コンポーネントごとにトランスコーディ
    ングして前記1つまたは複数のコンピュータ・ベースの
    装置上で前記アプリケーションの前記1つまたは複数の
    モーダル性特定のレンダリングを生成するための規則を
    変更することを可能にするコードを含めるステップをさ
    らに含む、請求項1に記載の方法。
  37. 【請求項37】実装されている、基礎をなすデータ・モ
    デルの定義が、前記ユーザ対話を定義するマークアップ
    言語から分離される、請求項1に記載の方法。
  38. 【請求項38】node_id属性が各コンポーネントに付加
    され、前記属性は様々な出力の上にマッピングされる、
    請求項1に記載の方法。
  39. 【請求項39】モーダル性特定のマークアップ・コンポ
    ーネントをカプセル化する通過機構が作成者に提供され
    る、請求項1に記載の方法。
  40. 【請求項40】前記コンポーネントが並列に活動化させ
    ることができる、請求項1に記載の方法。
  41. 【請求項41】前記プレゼンテーションおよびトランス
    コーディングが拡張可能である、請求項1に記載の方
    法。
  42. 【請求項42】前記アプリケーションの状態がカプセル
    化される、請求項1に記載の方法。
  43. 【請求項43】前記表現が動的に生成されるデータの参
    照を可能にし、前記コンテンツ/アプリケーション論理
    へのコールバック機構をサポートする、請求項1に記載
    の方法。
  44. 【請求項44】1つまたは複数のコンピュータ・ベース
    の装置に関連するアプリケーションにアクセスする際に
    使用する装置であって、 1つまたは複数のプロセッサを備え、前記プロセッサ
    が、(i)アプリケーション・サーバから前記アプリケ
    ーションを得るように動作可能であり、前記アプリケー
    ションが、前記1つまたは複数のコンピュータ・ベース
    の装置とユーザが対話ベースのプログラミング・コンポ
    ーネントによって行うことが可能な対話によってプログ
    ラム的に表現され、前記対話ベースのプログラミング・
    コンポーネントが、前記アプリケーションに関連するコ
    ンテンツ/アプリケーション論理およびプレゼンテーシ
    ョン要件に対して独立し、前記プロセッサはまた、(i
    i)前記対話ベースのプログラミング・コンポーネント
    をコンポーネントごとにトランスコーディングして、前
    記1つまたは複数のコンピュータ・ベースの装置上で前
    記アプリケーションの1つまたは複数のモーダル性特定
    のレンダリングを生成するように動作可能である装置。
  45. 【請求項45】前記1つまたは複数のプロセッサが前記
    1つまたは複数のコンピュータ・ベースの装置にわたっ
    て分散される、請求項44に記載の装置。
  46. 【請求項46】前記アプリケーションの少なくとも一部
    がサーバから、クライアントの役割を果たす前記1つま
    たは複数のコンピュータ・ベースの装置のうちの少なく
    とも1つにダウンロードされるクライアント/サーバ構
    成において、前記サーバに常駐する前記コンテンツ/ア
    プリケーション論理への接続を提供するように動作可能
    なコードを前記アプリケーション中に含めるステップを
    さらに含む、請求項44に記載の装置。
  47. 【請求項47】前記コンテンツ/アプリケーション論理
    接続コードが、前記アプリケーションに関連する1つま
    たは複数のデータ・モデル、属性制約、および妥当性検
    査規則のうちの少なくとも1つを表す、請求項46に記
    載の装置。
  48. 【請求項48】前記1つまたは複数のモーダル性特定の
    レンダリングが、前記アプリケーションの一部のスピー
    チ・ベースの表現を含む、請求項44に記載の装置。
  49. 【請求項49】前記スピーチ・ベースの表現がVoiceX
    MLに基づく、請求項48に記載の装置。
  50. 【請求項50】前記1つまたは複数のモーダル性特定の
    レンダリングが、前記アプリケーションの一部の視覚ベ
    ースの表現を含む、請求項44に記載の装置。
  51. 【請求項51】前記視覚ベースの表現がHTML、CH
    TML、WMLのうちの少なくとも1つに基づく、請求
    項50に記載の装置。
  52. 【請求項52】前記ユーザ対話が前記対話ベースのプロ
    グラミング・コンポーネントによって宣言的に表現され
    る、請求項44に記載の装置。
  53. 【請求項53】前記ユーザ対話が前記対話ベースのプロ
    グラミング・コンポーネントによって命令的に表現され
    る、請求項44に記載の装置。
  54. 【請求項54】前記ユーザ対話が前記対話ベースのプロ
    グラミング・コンポーネントによって宣言的かつ命令的
    に表現される、請求項44に記載の装置。
  55. 【請求項55】前記対話ベースのプログラミング・コン
    ポーネントが、前記ユーザと前記1つまたは複数のコン
    ピュータ・ベースの装置との間で発生する可能性のある
    ダイアログに関連する基本要素を含む、請求項44に記
    載の装置。
  56. 【請求項56】前記対話ベースのプログラミング・コン
    ポーネントが複合要素を含み、前記複合要素は、前記ユ
    ーザと前記1つまたは複数のコンピュータ・ベースの装
    置との間で発生する可能性のあるダイアログに関連する
    2つ以上の前記基本要素の集合体である、請求項55に
    記載の装置。
  57. 【請求項57】前記対話ベースのプログラミング・コン
    ポーネントの1つが会話型ジェスチャを表す、請求項4
    4に記載の装置。
  58. 【請求項58】前記会話型ジェスチャが、ユーザへの情
    報メッセージをカプセル化するジェスチャを含む、請求
    項57に記載の装置。
  59. 【請求項59】前記会話型ジェスチャが、コンテキスト
    ・ヘルプ情報をカプセル化するジェスチャを含む、請求
    項57に記載の装置。
  60. 【請求項60】前記会話型ジェスチャが、別のジェスチ
    ャの完了が成功したときに行われるアクションをカプセ
    ル化するジェスチャを含む、請求項57に記載の装置。
  61. 【請求項61】前記会話型ジェスチャが、イエス/ノー
    ・ベースの質問をカプセル化するジェスチャを含む、請
    求項57に記載の装置。
  62. 【請求項62】前記会話型ジェスチャが、ユーザが選択
    肢のセットから選択することを期待される場合のダイア
    ログをカプセル化するジェスチャを含む、請求項57に
    記載の装置。
  63. 【請求項63】前記選択ジェスチャが前記選択肢のセッ
    トを表すサブ要素を含む、請求項62に記載の装置。
  64. 【請求項64】前記選択ジェスチャが、選択がパスすべ
    きテストを表すサブ要素を含む、請求項62に記載の装
    置。
  65. 【請求項65】前記選択ジェスチャが、前記テストが不
    合格の場合に呈示すべきエラー・メッセージを表すサブ
    要素を含む、請求項64に記載の装置。
  66. 【請求項66】前記会話型ジェスチャが、所与の会話型
    ジェスチャの結果を妥当性検査するための規則をカプセ
    ル化するジェスチャを含む、請求項57に記載の装置。
  67. 【請求項67】前記会話型ジェスチャが、文法処理規則
    をカプセル化するジェスチャを含む、請求項57に記載
    の装置。
  68. 【請求項68】前記会話型ジェスチャが、ユーザが前記
    アプリケーションの各部分をナビゲートするのを助ける
    ダイアログをカプセル化するジェスチャを含む、請求項
    57に記載の装置。
  69. 【請求項69】前記会話型ジェスチャが、少なくとも1
    つのユーザ・ログインおよび認証の情報を求める要求を
    カプセル化するジェスチャを含む、請求項57に記載の
    装置。
  70. 【請求項70】前記会話型ジェスチャが、制約付きのユ
    ーザ入力を求める要求をカプセル化するジェスチャを含
    む、請求項57に記載の装置。
  71. 【請求項71】前記会話型ジェスチャが、制約のないユ
    ーザ入力を求める要求をカプセル化するジェスチャを含
    む、請求項57に記載の装置。
  72. 【請求項72】前記会話型ジェスチャが、情報のサブミ
    ットを制御するジェスチャを含む、請求項57に記載の
    装置。
  73. 【請求項73】論理入力イベント、ならびに、前記論理
    入力イベントと定義された前記論理入力イベントをトリ
    ガする物理入力イベントとの間の関連を定義するための
    機構を提供するステップをさらに含む、請求項44に記
    載の装置。
  74. 【請求項74】前記コンポーネントごとのトランスコー
    ディングがXSL変換規則に従って行われる、請求項4
    4に記載の装置。
  75. 【請求項75】前記コンポーネントごとのトランスコー
    ディングがJava Beanに従って行われる、請求項44に
    記載の装置。
  76. 【請求項76】前記コンポーネントごとのトランスコー
    ディングがJava Server Pageに従って行われる、請求項
    44に記載の装置。
  77. 【請求項77】前記対話ベースのプログラミング・コン
    ポーネントによるプレゼンテーションが、前記1つまた
    は複数のコンピュータ・ベースの装置上で前記アプリケ
    ーションの前記1つまたは複数のモーダル性特定のレン
    ダリングを同期させることを可能にする、請求項44に
    記載の装置。
  78. 【請求項78】前記対話ベースのプログラミング・コン
    ポーネントによるプレゼンテーションが自然言語理解環
    境をサポートする、請求項44に記載の装置。
  79. 【請求項79】前記1つまたは複数のコンピュータ・ベ
    ースの装置上で前記アプリケーションの前記1つまたは
    複数のモーダル性特定のレンダリングに関連するプレゼ
    ンテーション・フィーチャを表面的に変更することを可
    能にするコードを含めるステップをさらに含む、請求項
    44に記載の装置。
  80. 【請求項80】コンポーネントごとにトランスコーディ
    ングして前記1つまたは複数のコンピュータ・ベースの
    装置上で前記アプリケーションの前記1つまたは複数の
    モーダル性特定のレンダリングを生成するための規則を
    変更することを可能にするコードを含めるステップをさ
    らに含む、請求項44に記載の装置。
  81. 【請求項81】実装されている、基礎をなすデータ・モ
    デルの定義が、前記ユーザ対話を定義するマークアップ
    言語から分離される、請求項44に記載の装置。
  82. 【請求項82】node_id属性が各コンポーネントに付加
    され、前記属性は様々な出力の上にマッピングされる、
    請求項44に記載の装置。
  83. 【請求項83】モーダル性特定のマークアップ・コンポ
    ーネントをカプセル化する通過機構が作成者に提供され
    る、請求項44に記載の装置。
  84. 【請求項84】前記コンポーネントが並列に活動化させ
    ることができる、請求項44に記載の装置。
  85. 【請求項85】前記プレゼンテーションおよびトランス
    コーディングが拡張可能である、請求項44に記載の装
    置。
  86. 【請求項86】前記アプリケーションの状態がカプセル
    化される、請求項44に記載の装置。
  87. 【請求項87】前記表現が動的に生成されるデータの参
    照を可能にし、前記コンテンツ/アプリケーション論理
    へのコールバック機構をサポートする、請求項44に記
    載の装置。
  88. 【請求項88】前記1つまたは複数のプロセッサが前記
    1つまたは複数のコンピュータ・ベースの装置にわたっ
    て分散され、前記アプリケーションが前記1つまたは複
    数のコンピュータ・ベースの装置にまたがって同期化さ
    れる、請求項44に記載の装置。
  89. 【請求項89】前記アプリケーションの表現がさらに、
    1つまたは複数のモーダル性特定のマークアップ言語を
    介して前記1つまたは複数のモーダル性特定のレンダリ
    ングを表面的に変更することを可能にする、請求項44
    に記載の装置。
  90. 【請求項90】ユーザからの1つまたは複数のコンピュ
    ータ・ベースの装置を介したアプリケーションへのアク
    セスを提供する際に使用するブラウザ装置であって、コ
    ンピュータ実行可能なコードを含む機械読取可能媒体を
    備え、前記コンピュータ実行可能なコードが、実行時
    に、 アプリケーション・サーバからアプリケーションを得る
    ステップであって、前記アプリケーションが、前記1つ
    または複数のコンピュータ・ベースの装置とユーザが対
    話ベースのプログラミング・コンポーネントによって行
    うことが可能な対話によってプログラム的に表現され、
    前記対話ベースのプログラミング・コンポーネントが、
    前記アプリケーションに関連するコンテンツ/アプリケ
    ーション論理およびプレゼンテーション要件に対して独
    立しているステップと、 前記対話ベースのプログラミング・コンポーネントをコ
    ンポーネントごとにトランスコーディングして、前記1
    つまたは複数のコンピュータ・ベースの装置上で前記ア
    プリケーションの1つまたは複数のモーダル性特定のレ
    ンダリングを生成するステップとを実施することを可能
    にするブラウザ装置。
  91. 【請求項91】ユーザから1つまたは複数のコンピュー
    タ・ベースの装置を介してアクセス可能なアプリケーシ
    ョンをプログラミングする際に使用する製造品であっ
    て、コンピュータ実行可能なコードを含む機械読取可能
    媒体を備え、前記コンピュータ実行可能なコードが、実
    行時に、 前記アプリケーションにアクセスするために使用される
    前記1つまたは複数のコンピュータ・ベースの装置とユ
    ーザが対話ベースのプログラミング・コンポーネントに
    よって行うことが可能な対話を表現するステップを実施
    することを可能にし、 前記対話ベースのプログラミング・コンポーネントが、
    前記アプリケーションに関連するコンテンツ/アプリケ
    ーション論理およびプレゼンテーション要件に対して独
    立、さらに、コンポーネントごとにトランスコーディン
    グされて、前記1つまたは複数のコンピュータ・ベース
    の装置上で前記アプリケーションの1つまたは複数のモ
    ーダル性特定のレンダリングを生成する製造品。
JP2000311661A 1999-10-12 2000-10-12 マルチモーダル・ブラウジングおよび会話型マークアップ言語の実施の方法およびシステム Expired - Fee Related JP4140878B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15877799P 1999-10-12 1999-10-12
US09/544823 2000-04-06
US60/158777 2000-04-06
US09/544,823 US7685252B1 (en) 1999-10-12 2000-04-06 Methods and systems for multi-modal browsing and implementation of a conversational markup language

Publications (2)

Publication Number Publication Date
JP2001154852A true JP2001154852A (ja) 2001-06-08
JP4140878B2 JP4140878B2 (ja) 2008-08-27

Family

ID=26855386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000311661A Expired - Fee Related JP4140878B2 (ja) 1999-10-12 2000-10-12 マルチモーダル・ブラウジングおよび会話型マークアップ言語の実施の方法およびシステム

Country Status (1)

Country Link
JP (1) JP4140878B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366344A (ja) * 2001-06-12 2002-12-20 Asahi Kasei Corp 音声命令システム、音声命令装置、音声命令方法および音声命令プログラム
JP2006318287A (ja) * 2005-05-13 2006-11-24 Fujitsu Ltd マルチモーダル制御装置およびマルチモーダル制御方法
US7421655B2 (en) 2003-07-10 2008-09-02 Canon Kabushiki Kaisha Presenting information indicating input modalities
US7434158B2 (en) 2003-12-10 2008-10-07 International Business Machines Corporation Presenting multimodal web page content on sequential multimode devices
JP2009059378A (ja) * 2001-10-21 2009-03-19 Microsoft Corp ダイアログを目的とするアプリケーション抽象化のための記録媒体及び方法
US8160883B2 (en) 2004-01-10 2012-04-17 Microsoft Corporation Focus tracking in dialogs
US8224650B2 (en) 2001-10-21 2012-07-17 Microsoft Corporation Web server controls for web enabled recognition and/or audible prompting

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366344A (ja) * 2001-06-12 2002-12-20 Asahi Kasei Corp 音声命令システム、音声命令装置、音声命令方法および音声命令プログラム
US8165883B2 (en) 2001-10-21 2012-04-24 Microsoft Corporation Application abstraction with dialog purpose
US8229753B2 (en) 2001-10-21 2012-07-24 Microsoft Corporation Web server controls for web enabled recognition and/or audible prompting
JP2009059378A (ja) * 2001-10-21 2009-03-19 Microsoft Corp ダイアログを目的とするアプリケーション抽象化のための記録媒体及び方法
US8224650B2 (en) 2001-10-21 2012-07-17 Microsoft Corporation Web server controls for web enabled recognition and/or audible prompting
US7711570B2 (en) 2001-10-21 2010-05-04 Microsoft Corporation Application abstraction with dialog purpose
US7421655B2 (en) 2003-07-10 2008-09-02 Canon Kabushiki Kaisha Presenting information indicating input modalities
US7434158B2 (en) 2003-12-10 2008-10-07 International Business Machines Corporation Presenting multimodal web page content on sequential multimode devices
US8108769B2 (en) 2003-12-10 2012-01-31 International Business Machines Corporation Presenting multimodal web page content on sequential multimode devices
US8160883B2 (en) 2004-01-10 2012-04-17 Microsoft Corporation Focus tracking in dialogs
JP4705406B2 (ja) * 2005-05-13 2011-06-22 富士通株式会社 マルチモーダル制御装置およびマルチモーダル制御方法
US7657502B2 (en) 2005-05-13 2010-02-02 Fujitsu Limited Multimodal control device and multimodal control method
JP2006318287A (ja) * 2005-05-13 2006-11-24 Fujitsu Ltd マルチモーダル制御装置およびマルチモーダル制御方法

Also Published As

Publication number Publication date
JP4140878B2 (ja) 2008-08-27

Similar Documents

Publication Publication Date Title
US7685252B1 (en) Methods and systems for multi-modal browsing and implementation of a conversational markup language
US20030046316A1 (en) Systems and methods for providing conversational computing via javaserver pages and javabeans
US6996800B2 (en) MVC (model-view-controller) based multi-modal authoring tool and development environment
US7783613B2 (en) Context-aware middleware platform for client devices
US7028306B2 (en) Systems and methods for implementing modular DOM (Document Object Model)-based multi-modal browsers
Freire et al. WebViews: accessing personalized web content and services
US8635218B2 (en) Generation of XSLT style sheets for different portable devices
US7890506B2 (en) User interface control apparatus and method thereof
US7216351B1 (en) Systems and methods for synchronizing multi-modal interactions
US8204911B2 (en) Software, devices and methods facilitating execution of server-side applications at mobile devices
US8627344B2 (en) Methods and apparatuses for user interface management
US7167863B2 (en) System and method for building a distributed internet application
US20080320168A1 (en) Providing user customization of web 2.0 applications
US20100094635A1 (en) System for Voice-Based Interaction on Web Pages
Mueller et al. Interactive multimodal user interfaces for mobile devices
JP4140878B2 (ja) マルチモーダル・ブラウジングおよび会話型マークアップ言語の実施の方法およびシステム
US7844909B2 (en) Dynamically rendering a button in a hypermedia content browser
Honkala Web user interaction: a declarative approach based on XForms
US20060242653A1 (en) Request-response handling system for web-based applications
Goodwill Apache Axis Live: A Web Services Tutorial
US20120005610A1 (en) Methods, apparatus, systems and computer readable mediums for use in transfering information to and/or from user devices
US20030097420A1 (en) Multi-channel delivery system
Sikora et al. Representations and Protocols for Universal Access to the World-Wide-Web
Zou Adaptable User Interfaces for Diverse Human-Computer Interaction Devices
Book et al. Specifying and controlling multi-channel web interfaces for enterprise applications

Legal Events

Date Code Title Description
A521 Written amendment

Effective date: 20040212

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040212

Free format text: JAPANESE INTERMEDIATE CODE: A523

RD12 Notification of acceptance of power of sub attorney

Effective date: 20040212

Free format text: JAPANESE INTERMEDIATE CODE: A7432

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040420

A601 Written request for extension of time

Effective date: 20040715

Free format text: JAPANESE INTERMEDIATE CODE: A601

A602 Written permission of extension of time

Effective date: 20040721

Free format text: JAPANESE INTERMEDIATE CODE: A602

A521 Written amendment

Effective date: 20041018

Free format text: JAPANESE INTERMEDIATE CODE: A523

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20041018

A521 Written amendment

Effective date: 20041018

Free format text: JAPANESE INTERMEDIATE CODE: A821

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050221

A521 Written amendment

Effective date: 20050520

Free format text: JAPANESE INTERMEDIATE CODE: A523

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050520

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050804

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051024

A602 Written permission of extension of time

Effective date: 20051028

Free format text: JAPANESE INTERMEDIATE CODE: A602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060203

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060203

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20060224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20071026

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080502

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080502

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080605

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20080605

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Effective date: 20080606

Free format text: JAPANESE INTERMEDIATE CODE: A61

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 3

Free format text: PAYMENT UNTIL: 20110620

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 5

Free format text: PAYMENT UNTIL: 20130620

LAPS Cancellation because of no payment of annual fees