(57)【要約】【課題】  不要な質問が混入しないシナリオ（矛盾のないシナリオ）の作成を支援する。【解決手段】  シナリオ作成支援システム１は、シナリオの中で利用可能な項目に関する属性情報として、属性情報を定義する属性情報定義、及び属性情報定義を参照するリソース群を登録する属性情報登録部１４と、属性情報登録部１４に登録されたリソース群を利用して、当該シナリオにおいて矛盾しているシナリオ部品の有無を検証するシナリオ検証部１６と、を備える。【選択図】図１
2019159969.tif 000002
【特許請求の範囲】
【請求項１】
複数のシナリオ部品によって構成されるシナリオの作成を支援するシナリオ作成支援システムであって、
前記シナリオの中で利用可能な項目に関する属性情報として、当該属性情報を定義する属性情報定義、及び当該属性情報定義を参照するリソース群を登録する属性情報登録部と、
前記シナリオにおいて少なくとも何れかの前記シナリオ部品が前記リソース群に含まれる何れかのリソースを参照するとき、前記属性情報登録部に登録された前記リソース群を利用して、当該シナリオにおいて矛盾しているシナリオ部品の有無を検証するシナリオ検証部と、
を備えることを特徴とするシナリオ作成支援システム。
【請求項２】
前記属性情報定義は、前記リソース群に含まれる各リソース及び各リソース間の関係を定義する
ことを特徴とする請求項１に記載のシナリオ作成支援システム。
【請求項３】
前記リソース群に含まれる各リソースは、前記属性情報定義を述語または目的語として参照する
ことを特徴とする請求項１に記載のシナリオ作成支援システム。
【請求項４】
前記シナリオの作成において前記シナリオ部品が前記リソース群に含まれる何れかのリソースを参照する際は、当該リソースのＵＲＩ（Uniform Resource Identifier）が記述される
ことを特徴とする請求項１に記載のシナリオ作成支援システム。
【請求項５】
前記シナリオ検証部は、
前記複数のシナリオ部品を前記シナリオの流れに沿って順に検証するなかで、否定の選択がなされた前記シナリオ部品が参照しているリソースを非選択リソース配列に蓄積し、
検証対象の前記シナリオ部品から参照しているリソースの目的語となっているリソースを、前記属性情報登録部に登録された前記リソース群に基づいて取得し、該取得したリソースが前記非選択リソース配列に蓄積されていた場合に、当該検証対象の前記シナリオ部品を当該シナリオにおいて矛盾しているシナリオ部品であると判断する
ことを特徴とする請求項３に記載のシナリオ作成支援システム。
【請求項６】
前記属性情報定義及び前記リソース群を登録するための属性情報管理画面、並びに前記シナリオの作成を行うためのシナリオ作成画面をユーザから操作可能な形態で提供するとともに、
前記シナリオ検証部による検証結果を前記シナリオ作成画面に表示することによって、前記矛盾しているシナリオ部品をユーザから識別可能な形態で提示する
ことを特徴とする請求項１に記載のシナリオ作成支援システム。
【請求項７】
複数のシナリオ部品によって構成されるシナリオの作成を支援するシナリオ作成支援方法であって、
前記シナリオの中で利用可能な項目に関する属性情報として、当該属性情報を定義する属性情報定義、及び当該属性情報定義を参照するリソース群を登録する属性情報登録ステップと、
前記シナリオにおいて少なくとも何れかの前記シナリオ部品が前記リソース群に含まれる何れかのリソースを参照するとき、前記属性情報登録ステップで登録された前記リソース群を利用して、当該シナリオにおいて矛盾しているシナリオ部品の有無を検証するシナリオ検証ステップと、
を備えることを特徴とするシナリオ作成支援方法。
【請求項８】
前記属性情報登録ステップにおいて、前記属性情報定義は、前記リソース群に含まれる各リソース及び各リソース間の関係を定義する
ことを特徴とする請求項７に記載のシナリオ作成支援方法。
【請求項９】
前記属性情報登録ステップにおいて、前記リソース群に含まれる各リソースは、前記属性情報定義を述語または目的語として参照する
ことを特徴とする請求項７に記載のシナリオ作成支援方法。
【請求項１０】
前記シナリオの作成において前記シナリオ部品が前記リソース群に含まれる何れかのリソースを参照する際は、当該リソースのＵＲＩ（Uniform Resource Identifier）が記述される
ことを特徴とする請求項７に記載のシナリオ作成支援方法。
【請求項１１】
前記シナリオ検証ステップでは、
前記複数のシナリオ部品を前記シナリオの流れに沿って順に検証するなかで、否定の選択がなされた前記シナリオ部品が参照しているリソースを非選択リソース配列に蓄積し、
検証対象の前記シナリオ部品から参照しているリソースの目的語となっているリソースを、前記属性情報登録ステップで登録された前記リソース群に基づいて取得し、該取得したリソースが前記非選択リソース配列に蓄積されていた場合に、当該検証対象の前記シナリオ部品を当該シナリオにおいて矛盾しているシナリオ部品であると判断する
ことを特徴とする請求項９に記載のシナリオ作成支援方法。
【請求項１２】
前記属性情報定義及び前記リソース群を登録するための属性情報管理画面、並びに前記シナリオの作成を行うためのシナリオ作成画面をユーザから操作可能な形態で提供するとともに、
前記シナリオ検証ステップによる検証結果を前記シナリオ作成画面に表示することによって、前記矛盾しているシナリオ部品をユーザから識別可能な形態で提示する
ことを特徴とする請求項７に記載のシナリオ作成支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シナリオ作成支援システム及びシナリオ作成支援方法に関し、対話のためのシナリオの作成を支援するシナリオ作成支援システム及びシナリオ作成支援方法に適用して好適なものである。
【背景技術】
【０００２】
従来、チャットボット等を利用してユーザと対話するシステムが知られている。このような対話システムにおいて自然な対話を実現するためには、ユーザの発話に応じた回答やユーザの発話に応じた次の質問を行う必要がある。
【０００３】
そこで、ユーザの発話に応じた回答や次の質問によって構成される、対話のためのシナリオの作成を支援する技術が提案されている（例えば、特許文献１）。
【０００４】
特許文献１に開示されたシナリオ作成支援装置では、対話シナリオ仕様表を利用して、ユーザからの入力（発話）とシステムからの出力（回答や次の質問）とのペアをレコードとして管理する。入力に関しては、入力のキーとなる単語、及び入力が有効となるシナリオを記載し、出力に関しては、システムからの発話文章、及び次に遷移するシナリオを記載する。このように、入力が有効となるシナリオや次に遷移するシナリオを記述可能な表を用いることによって、特許文献１に開示されたシナリオ作成支援装置は、複数の入力と出力とにより構成されるシナリオであっても、レコード単位で入力と出力とを随時追加していくことができるようにしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２８０６８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、特許文献１に開示されたシナリオ作成支援装置は、シナリオにおける入力及び出力の追加を容易にするものである。しかしながら、シナリオ全体を把握しながらシナリオの作成を支援するものではないため、店舗案内等のような特定のタスクを実行する目的をもったシナリオの作成において、「不要な質問」がシナリオに追加されてしまう可能性があった。
【０００７】
ここで、「不要な質問」とは、シナリオにおける対話の経緯を考慮した場合に、不必要な質問や矛盾する質問を意味する。具体的には例えば、システムからユーザに日本料理が好きか否かを質問した結果、ユーザが好きではないと回答した後に、システムからユーザに日本料理の１つである蕎麦が好きか否かを尋ねるような質問が相当する。すなわち、ユーザが日本料理は好きではないと回答しているにも拘わらず、日本料理の１つである蕎麦の好き嫌いを尋ねる質問は、実質的に意味がない不必要な質問であり、対話の経緯に矛盾する質問である。特許文献１に開示されたシナリオ作成支援装置では、このような「不要な質問」がシナリオに追加され得ることにより、自然な対話を形成し難くなるおそれがあった。
【０００８】
本発明は以上の点を考慮してなされたもので、シナリオにおいて矛盾している部分を提示することによって、不要な質問が混入しないシナリオ（言い換えれば、矛盾のないシナリオ）の作成を支援することが可能なシナリオ作成支援システム及びシナリオ作成支援方法を提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するため本発明においては、複数のシナリオ部品によって構成されるシナリオの作成を支援するシナリオ作成支援システムであって、前記シナリオの中で利用可能な項目に関する属性情報として、当該属性情報を定義する属性情報定義、及び当該属性情報定義を参照するリソース群を登録する属性情報登録部と、前記シナリオにおいて少なくとも何れかの前記シナリオ部品が前記リソース群に含まれる何れかのリソースを参照するとき、前記属性情報登録部に登録された前記リソース群を利用して、当該シナリオにおいて矛盾しているシナリオ部品の有無を検証するシナリオ検証部と、を備えることを特徴とするシナリオ作成支援システムが提供される。
【００１０】
また、かかる課題を解決するため本発明においては、複数のシナリオ部品によって構成されるシナリオの作成を支援するシナリオ作成支援方法であって、前記シナリオの中で利用可能な項目に関する属性情報として、当該属性情報を定義する属性情報定義、及び当該属性情報定義を参照するリソース群を登録する属性情報登録ステップと、前記シナリオにおいて少なくとも何れかの前記シナリオ部品が前記リソース群に含まれる何れかのリソースを参照するとき、前記属性情報登録ステップで登録された前記リソース群を利用して、当該シナリオにおいて矛盾しているシナリオ部品の有無を検証するシナリオ検証ステップと、を備えることを特徴とするシナリオ作成支援方法が提供される。
【発明の効果】
【００１１】
本発明によれば、不要な質問が混入しないシナリオ（矛盾のないシナリオ）の作成を支援することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施の形態に係るシナリオ作成支援システムの構成例を示すブロック図である。
【図２】属性情報の概念を説明するための図である。
【図３】属性情報管理画面の画面構成例を示す図（その１）である。
【図４】属性情報管理画面の画面構成例を示す図（その２）である。
【図５】シナリオ作成支援の流れを示すフロー図である。
【図６】シナリオ作成画面の構成例を示す図である。
【図７】シナリオ部品検証の処理手続例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の実施の形態を詳述する。但し、本発明は、以下に示す実施の形態の記載内容に限定して解釈されるものではなく、本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得るものである。
【００１４】
また、以下に説明する実施の形態の構成において、同一部分または同様な機能を有する部分には、図面間で同一の符号を共通して用いるとし、その重複する説明を省略することがある。また、本明細書等における第１、第２、第３等の表記は、構成要素を選別するために付するものであり、必ずしも数または順序を限定するものではない。また、構成要素の識別のための番号は文脈ごとに用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【００１５】
また、図面等において示す各構成の位置、大きさ、形状、範囲等は、発明の理解を容易にするために、実際の位置、大きさ、形状、範囲等を表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲等に限定されない。また、各図面において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実施には殆ど全ての構成が相互に接続されていると考えてもよい。
【００１６】
なお、本明細書では、情報処理装置の処理部で実行される各種のプログラム、またはその一部を、「部」、「ユニット」、「手段」、「機能」、あるは「モジュール」等と呼称する場合がある。また、実施の形態の構成は、単体のコンピュータで構成してもよいし、あるいは、入力装置、出力装置、処理装置、記憶装置の任意の部分が、ネットワークを介して接続された他のコンピュータで構成されてもよい。また、実施の形態において、ソフトウェアで構成した機能と同等の機能は、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）等のハードウェアでも実現することができる。
【００１７】
（１）シナリオ作成支援システムの構成
図１は、本発明の一実施の形態に係るシナリオ作成支援システムの構成例を示すブロック図である。図１に示すように、シナリオ作成支援システム１は、シナリオ作成サーバ１０と１以上のユーザ端末２０とがインターネット等のネットワーク３０を介して接続されて構成され、対話のシナリオのなかで利用可能な項目に関する属性情報に基づいて、不要な質問が混入しないシナリオ（矛盾のないシナリオ）の作成を支援するサービスシステムである。なお、本明細書では、シナリオにおいて「不要な質問」を発生させる要因となるシナリオ部品のことを「矛盾しているシナリオ部品」あるいは「矛盾があるシナリオ部品」と称し、このようなシナリオ部品を提示することによって、「矛盾のないシナリオ」の作成が支援される。
【００１８】
なお、図１では、複数のユーザによる各自のユーザ端末２０の操作がシナリオ作成サーバ１０におけるシナリオ作成支援に反映されることを想定して、シナリオ作成サーバ１０及びユーザ端末２０がネットワーク３０を介して接続される別個の構成としているが、本実施の形態に係るシナリオ作成支援システム１の構成はこれに限定されるものではない。例えば、シナリオ作成サーバ１０及びユーザ端末２０を一体化し、一体化した装置等において、シナリオ作成支援に関する操作をユーザが直接行うようにしてもよい。
【００１９】
まず、シナリオ作成サーバ１０の詳細な構成について説明する。シナリオ作成サーバ１０は、一般的なサーバ装置によって実現することができ、図１に示したように、制御部１１、ネットワークインタフェース部１２、ウェブサービス提供部１３、属性情報登録部１４、属性情報記憶部１５、シナリオ検証部１６、及び検証ルール記憶部１７を備えている。また、これらの各部はＢＵＳ（バス）１８等によって接続される。
【００２０】
ネットワークインタフェース部１２は、例えばネットワークカード等で構成され、通信機能を有する。具体的には、ネットワークインタフェース部１２は、制御部１１によって転送されたＩＰパケットを、ネットワーク３０を介してユーザ端末２０に送信するとともに、ネットワーク３０を介してシナリオ作成サーバ１０が受信したＩＰパケットを制御部１１に転送する。
【００２１】
ウェブサービス提供部１３は、ネットワーク３０を介してユーザ端末２０に、ウェブブラウザ上で表示可能なフォーマット（例えばＨＴＭＬ（HyperText Markup Language））で記述されたデータや、ＸＭＬ（Extensible Markup Language）やＪＳＯＮ（JavaScript（登録商標） Object Notation）等のフォーマットで記述されたデータを送信する。また、ウェブサービス提供部１３は、ユーザ端末２０のウェブブラウザ上での操作内容等の情報をネットワーク３０を介して受信し、受信した情報に基づいて、属性情報登録部１４やシナリオ検証部１６等による処理を実行する。ウェブサービス提供部１３は、例えば上記のウェブサービス機能を有するプログラムである。
【００２２】
属性情報登録部１４は、ユーザ端末２０のウェブブラウザ上での操作内容等の情報をネットワーク３０を介して受信し、受信した情報に基づいて、シナリオの中で利用可能な項目に関する属性情報を属性情報記憶部１５に登録する機能を有するプログラムである。
【００２３】
属性情報記憶部１５は、例えばＨＤＤ（Hard Disk Drive）等によって構成される記憶部であって、シナリオ検証部１６が実行する処理に利用される属性情報の一部または全てを記憶する。なお、属性情報記憶部１５は、記憶するデータの大きさやフォーマット等に応じてＲＤＢ（Relational DataBase）やファイルサーバ、ＫＶＳ（Key-Value Store）等、それぞれ異なる記憶方式を備えた複数の記憶部によって構成されていてもよい。また、属性情報記憶部１５に記憶されているデータと同等のデータの一部または全部が、ネットワーク３０に接続されたその他の複数のサーバにより提供されてもよい。
【００２４】
シナリオ検証部１６は、ユーザ端末２０のウェブブラウザ上で作成されたシナリオをネットワーク３０を介して受信し、受信したシナリオに対し、属性情報記憶部１５に記録されている属性情報を利用して、シナリオの矛盾している部分の有無を検証する機能を有するプログラムである。
【００２５】
検証ルール記憶部１７は、例えばＨＤＤ等によって構成される記憶部であって、シナリオ検証部１６が処理を実行する際のプログラムや分岐処理を行うルールエンジンのルールの一部または全部を記憶する。なお、検証ルール記憶部１７は、属性情報記憶部１５と同様、記憶するデータの大きさやフォーマット等に応じてＲＤＢやファイルサーバ、ＫＶＳ等、それぞれ異なる記憶方式を備えた複数の記憶部により構成されていてもよい。また、検証ルール記憶部１７に記憶されているデータと同等のデータの一部または全部が、ネットワーク３０に接続されたその他の複数のサーバにより提供されてもよい。
【００２６】
そして制御部１１は、例えばＣＰＵ（Central Processing Unit）等で構成され、上記したシナリオ作成サーバ１０の各部のプログラムを実行する等して、シナリオ作成サーバ１０の全体を制御する。
【００２７】
具体的には、制御部１１がウェブサービス提供部１３のプログラムを実行することにより、ユーザ端末２０によって利用可能なウェブサービスが提供される。詳細は後述するが、属性情報を登録するために用いられる「属性情報管理画面」（図３，図４参照）や、シナリオを作成するために用いられる「シナリオ作成画面」（図６参照）のようなウェブサービス画面は、ウェブサービス提供部１３の機能によって提供される。
【００２８】
また、制御部１１が属性情報登録部１４のプログラムを実行することにより、シナリオの中で利用可能な項目に関する属性情報が属性情報記憶部１５に登録される。また、制御部１１は、シナリオ検証部１６のプログラムの実行において用いられる属性情報の一部または全てを属性情報記憶部１５に記憶させる。また、制御部１１は、シナリオ検証部１６のプログラムの実行において用いられるルールエンジンのルール等の一部または全てを検証ルール記憶部１７に記憶させる。そして、制御部１１がシナリオ検証部１６のプログラムを実行することにより、シナリオの矛盾している部分の有無が検証される。
【００２９】
なお、シナリオ作成サーバ１０において、プログラムの実行によって提供される上記の各機能は、ＬＳＩ等のハードウェアによって実現されてもよい。また、図１に示した各構成要素は、物理的に分離している必要はなく、一つの構成要素が他の構成要素を兼ねてもよい。また、図１において、一般的なサーバが備える入力装置や出力装置等の図示は省略している。
【００３０】
次に、ユーザ端末２０の詳細な構成について説明する。ユーザ端末２０は、一般的なコンピュータによって実現することができ、図１に示したように、制御部２１、ネットワークインタフェース部２２、入力部２３、及び出力部２４を備えている。また、これらの各部はＢＵＳ（バス）２５等によって接続される。
【００３１】
ネットワークインタフェース部２２は、例えばネットワークカード等で構成され、通信機能を有する。具体的には、ネットワークインタフェース部２２は、制御部２１によって転送されたＩＰパケットを、ネットワーク３０を介してシナリオ作成サーバ１０に送信するとともに、ネットワーク３０を介してユーザ端末２０が受信したＩＰパケットを制御部２１に転送する。
【００３２】
入力部２３は、外部からの入力を制御部２１に伝えるものであり、キーボードやマウス等で構成される。
【００３３】
出力部２４は、制御部２１からの情報を外部に出力するものであり、ディスプレイやプリンタなどで構成される。
【００３４】
制御部２１は、例えばＣＰＵ等で構成され、プログラムを実行する等して、上記したユーザ端末２０の各部を含むユーザ端末２０の全体を制御する。具体的には例えば、制御部２１は、入力部２３からの入力情報を受け付けたり、出力部２４に出力情報を送出したりする。なお、ユーザ端末２０において、プログラムの実行によって提供される上記の各機能は、ＬＳＩ等のハードウェアによって実現されてもよい。
【００３５】
（２）属性情報
前述したように、本実施の形態に係るシナリオ作成支援システム１は、対話のシナリオのなかで利用可能な項目に関する属性情報に基づいて、シナリオの矛盾している部分（シナリオ部品）を提示する。以下では、このような属性情報の概念及び登録方法について詳しく説明する。
【００３６】
図２は、属性情報の概念を説明するための図である。図２には、シナリオ作成サーバ１０の属性情報記憶部１５に記憶される属性情報の一例として、属性情報１００について、その概念図が示されている。なお、図２の例では、属性情報１００のデータの記述形式にＲＤＦ（Resource Description Framework）／ＲＤＦＳ（RDF Schema）を用い、データの内容をグラフ形式で表す。
【００３７】
属性情報記憶部１５には、シナリオの中で利用可能な項目に関する属性情報として、属性情報定義と、属性情報定義を参照するリソース群とが記憶される。図２の場合、属性情報１００は、範囲１００ａに示される属性情報定義１１０と、範囲１００ｂに示されるリソース群１２０とによって構成される。属性情報定義１１０は、リソース群１２０の各リソース（図中に楕円で表記）及び各リソース間の関係（図中に矢印付きの線で表記）を定義している。
【００３８】
図２によれば、属性情報定義１１０（範囲１００ａ）には、クラス（Class）という概念を示すクラス１１１と、プロパティ（Property）という概念を示すクラス１１２とが示されている。そして、属性情報定義１１０には、「rdf:type」が「Class」である「ex:店舗」というリソース１１３、「rdf:type」が「Class」である「ex:ジャンル名」というリソース１１４、及び「rdf:type」が「Property」である「ex:ジャンル」というリソース１１５がある。なお、「rdf:」や「ex:」は、名前空間を表すための識別子である。
【００３９】
また、図２に示したように、「rdf:type」が「Class」である「ex:小売店」というリソース１１６、及び「rdf:type」が「Class」である「ex:飲食店」というリソース１１７は、「ex:店舗」というリソース１１３のサブクラス（rdf:subClassOf）である。
【００４０】
また、「ex:ジャンル」というリソース１１４は、「ex:飲食店」や「ex:ジャンル」というリソース１１７，１１４を「rdfs:domain」に持ち、“ex:ジャンル名”というリソース１１５を「rdfs:range」に持つ。なお、「rdfs:」は、名前空間を表す為の識別子である。
【００４１】
一方、リソース群１２０（範囲１００ｂ）には、それぞれ「http://.../ex1」、「http://.../ex2」、「http://.../ex3」、「http://.../ex4」、「http://.../ex5」、及び「http://.../ex6」というリソース１２１〜１２６が示されている。また、範囲１００ｂには、各リソース１２１〜１２６に対応して、「中華」、「中華の戸塚」、「和食」、「蕎麦」、「寿司」、及び「戸塚蕎麦」というリテラル１３１〜１３６が示されている。
【００４２】
ここで、各リソース１２１〜１２６について、他のリソース等との間に定義された関係を具体的に説明する。「http://.../ex1」というリソース１２１（主語）は、「ex:ジャンル名」というリソース１１５（目的語）を持つ「rdf:type」というプロパティ（述語）と、「中華」というリテラル１３１（目的語）を持つ「ex:name」というプロパティ（述語）を持っている。すなわち、「http://.../ex1」は、「中華」というジャンル名を表している。
【００４３】
「http://.../ex2」というリソース１２２（主語）は、「ex:飲食店」というリソース１１７（目的語）を持つ「rdf:type」というプロパティ（述語）と、「http://.../ex1」というリソース１２１（目的語）を持つ「ex:ジャンル」というプロパティ（述語）と、「中華の戸塚」というリテラル１３２（目的語）を持つ「ex:name」というプロパティ（述語）を持っている。すなわち、「http://.../ex2」は、「中華の戸塚」という名前の中華料理店を表している。なお、「ex:ジャンル」というプロパティ（述語）は、属性情報定義１１０の「ex:ジャンル」というリソース１１４によって定義されており、図２では、この対応関係を示すために、リソース群１２０に示された「ex:ジャンル」というプロパティ（述語）から、属性情報定義１１０の「ex:ジャンル」というリソース１１４に向けて矢印付きの点線が接続されている。
【００４４】
「http://.../ex3」というリソース１２３（主語）は、「ex:ジャンル名」というリソース１１５（目的語）を持つ「rdf:type」というプロパティ（述語）と、「和食」というリテラル１３３（目的語）を持つ「ex:name」というプロパティ（述語）を持っている。すなわち、「http://.../ex3」は、「和食」というジャンル名を表している。
【００４５】
「http://.../ex4」というリソース１２４（主語）は、「ex:ジャンル名」というリソース１１５（目的語）を持つ「rdf:type」というプロパティ（述語）と、「http://.../ex3」というリソース１２３（目的語）を持つ「ex:ジャンル」というプロパティ（述語）と、「蕎麦」というリテラル１３４（目的語）を持つ「ex:name」というプロパティ（述語）を持っている。すなわち、「http://.../ex4」は、「和食」のなかの「蕎麦」というジャンル名を表している。
【００４６】
「http://.../ex5」というリソース１２５（主語）は、「ex:ジャンル名」というリソース１１５（目的語）を持つ「rdf:type」というプロパティ（述語）と、「http://.../ex3」というリソース１２３（目的語）を持つ「ex:ジャンル」というプロパティ（述語）と、「寿司」というリテラル１３５（目的語）を持つ「ex:name」というプロパティ（述語）を持っている。すなわち、「http://.../ex5」は、「和食」のなかの「寿司」というジャンル名を表している。
【００４７】
「http://.../ex6」というリソース１２６（主語）は、「ex:飲食店」というリソース１１７（目的語）を持つ「rdf:type」というプロパティ（述語）と、「http://.../ex4」というリソース１２４（目的語）を持つ「ex:ジャンル」というプロパティ（述語）と、「戸塚蕎麦」というリテラル１３６（目的語）を持つ「ex:name」というプロパティ（述語）を持っている。すなわち、「http://.../ex6」は、「戸塚蕎麦」という名前の和食料理店を表している。
【００４８】
以上、本実施の形態で取り扱う属性情報（すなわち、対話のシナリオのなかで利用可能な項目に関する属性情報）の概念を説明した。次に、本実施の形態における属性情報の登録方法について説明する。
【００４９】
本実施の形態に係るシナリオ作成支援システム１では、シナリオ作成サーバ１０のウェブサービス提供部１３によって、属性情報の登録のためのウェブサービス画面（「属性情報管理画面」と称する）がユーザ端末２０に提供される。そして、この属性情報管理画面に対してユーザが入力した属性情報が送信されると、シナリオ作成サーバ１０の属性情報登録部１４が、当該入力された内容（属性情報１００）を属性情報記憶部１５に登録する。
【００５０】
図３，図４は、属性情報管理画面の画面構成例を示す図（その１，その２）である。図３，図４に例示する属性情報管理画面２００は、ユーザ操作によって属性情報を入力可能なウェブサービス画面であって、シナリオ作成サーバ１０のウェブサービス提供部１３によるウェブサービス機能に基づいて、ユーザ端末２０の出力部２４に表示される。本例では、ウェブブラウザ等のウィンドウ上に表示されるとしている。
【００５１】
また、図２を参照して説明したように、属性情報は、属性情報定義１１０と、属性情報定義１１０を参照するリソース群１２０とによって構成される。そこで、本例では、属性情報管理画面２００では、属性情報定義１１０に関する入力を行うためのタブ（属性情報定義タブ２１０）と、リソース群１２０に関する入力を行うためのタブ（リソース群タブ２２０）とを有して構成され、各タブの表示画面に対してユーザによる入力操作が行われるものとする。但し、本実施の形態は、この表示構成に限定されるものではなく、例えば、各タブに相当する表示が独立した別個のウィンドウ上で表示されるようにしたり、または、１つのウィンドウ上で同時に表示されるようにしたりしてもよい。
【００５２】
図３は、属性情報管理画面２００のうちの属性情報定義タブ２１０の画面構成例を示す図である。図３に示したように、属性情報定義タブ２１０の表示画面には、属性情報定義入力エリア２１１、及び属性情報定義登録ボタン２１２が配置されている。
【００５３】
属性情報定義入力エリア２１１は、属性情報定義１１０を入力するための領域である。詳細な説明は省略するが、図３には、図２の属性情報定義１１０に対応する属性情報定義の入力例が示されている。なお、図３では一例として、データの記述形式にＲＤＦ／ＲＤＦＳを用いている。
【００５４】
属性情報定義登録ボタン２１２は、属性情報定義１１０の入力後に押下されるボタンである。属性情報定義登録ボタン２１２が押下されると、属性情報定義入力エリア２１１に入力された属性情報定義等の情報が、ネットワーク３０を介してシナリオ作成サーバ１０に送信される。そして、シナリオ作成サーバ１０では、制御部１１の制御に基づいて、属性情報登録部１４が、ユーザ端末２０から受信した属性情報定義１１０を属性情報記憶部１５に登録する。
【００５５】
図４は、属性情報管理画面２００のうちのリソース群タブ２２０の画面構成例を示す図である。図４に示したように、リソース群タブ２２０の表示画面には、リソース群入力エリア２２１、及びリソース群登録ボタン２２２が配置されている。
【００５６】
リソース群入力エリア２２１は、リソース群１２０を入力するための領域である。詳細な説明は省略するが、図４には、図２のリソース群１２０に対応するリソース群（一部）の入力例が示されている。なお、図４では一例として、データの記述形式にＲＤＦ／ＲＤＦＳを用いている。
【００５７】
リソース群登録ボタン２２２は、リソース群１２０の入力後に押下されるボタンである。リソース群登録ボタン２２２が押下されると、リソース群入力エリア２２１に入力されたリソース群等の情報が、ネットワーク３０を介してシナリオ作成サーバ１０に送信される。そして、シナリオ作成サーバ１０では、制御部１１の制御に基づいて、属性情報登録部１４が、ユーザ端末２０から受信したリソース群を属性情報記憶部１５に登録する。
【００５８】
以上のように、シナリオの中で利用可能な項目に関する属性情報１００（属性情報定義１１０及びリソース群１２０）が属性情報記憶部１５に登録されることによって、シナリオ作成サーバ１０は、後述するシナリオの作成支援に関する処理において、当該属性情報１００を用いてシナリオの矛盾している部分の有無を検証することができる。
【００５９】
（３）シナリオ作成支援
本実施の形態に係るシナリオ作成支援システム１によるシナリオ作成支援方法について説明する。
【００６０】
図５は、シナリオ作成支援の流れを示すフロー図である。なお、図５に示す処理が開始されるよりも前に、シナリオの中で利用可能な項目に関する属性情報１００（属性情報定義１１０及びリソース群１２０）が、属性情報記憶部１５に登録されているとする。
【００６１】
まず、ステップＳ１０１では、ユーザ端末２０においてシナリオの作成が行われる。詳しく説明すると、シナリオ作成サーバ１０によるウェブサービスの提供によって、ユーザ端末２０の出力部２４にシナリオを作成するために用いられる所定の画面（シナリオ作成画面）が表示され、このシナリオ作成画面に対してユーザがシナリオ部品の選択・配置等を行う所定の入力操作を行うことによって、シナリオの作成が行われる。シナリオ作成画面の具体例は、図６を参照しながら後述する。
【００６２】
次のステップＳ１０２において、ユーザ端末２０は、シナリオ作成画面に作成されたシナリオを、ネットワーク３０を介してシナリオ作成サーバ１０に送信する。ステップＳ１０２の送信は、ユーザ端末２０を利用した操作（例えば、所定のボタンの押下等）をトリガとしてもよく、あるいは、予め設定した時間間隔等で定期的に送信するようにしてもよい。
【００６３】
次のステップＳ１０３において、シナリオ作成サーバ１０（シナリオ検証部１６）は、ステップＳ１０２でユーザ端末２０から受信したシナリオに対し、属性情報記憶部１５に登録されている属性情報１００を利用して、矛盾があるシナリオ部品の有無を検証する（シナリオ部品検証）。シナリオ部品検証の詳細は、図７を参照しながら後述する。
【００６４】
次のステップＳ１０４において、シナリオ作成サーバ１０は、ステップＳ１０３における検証結果をネットワーク３０を介してユーザ端末２０に送信する。このとき、ステップＳ１０３において矛盾があるシナリオ部品が見つかった場合にのみ、検証結果を送信するようにしてもよい。また、矛盾があるシナリオ部品以外の情報を合わせて送信するようにしてもよい。
【００６５】
そして、ステップＳ１０５において、ユーザ端末２０は、ステップＳ１０４でシナリオ作成サーバ１０から受信した検証結果に基づいて、矛盾があるシナリオ部品があった場合には、シナリオ作成画面に当該シナリオ部品を提示する。このようにして矛盾があるシナリオ部品が提示された場合、ユーザは、対象のシナリオ部品をシナリオから削除することによって、矛盾しないシナリオを作成することができる。
【００６６】
図６は、シナリオ作成画面の構成例を示す図である。図６に例示したシナリオ作成画面３００は、ユーザ操作によってシナリオを作成可能なウェブサービス画面であって、シナリオ作成サーバ１０のウェブサービス提供部１３によるウェブサービス機能に基づいて、ユーザ端末２０の出力部２４に表示される。本例では、ウェブブラウザ等のウィンドウ上に表示されるとしている。
【００６７】
図６に示したように、シナリオ作成画面３００には、シナリオ作成エリア３１０、及びシナリオ部品選択エリア３２０が配置されている。
【００６８】
シナリオ作成エリア３１０は、シナリオを作成する領域であり、言い換えれば、作成したシナリオ（または作成中のシナリオ）が表示される。
【００６９】
シナリオ部品選択エリア３２０は、シナリオ部品が配置された領域である。シナリオ部品はシナリオの構成要素であり、例えば、「SELECTION」のシナリオ部品３２１は、シナリオの分岐を意味するシナリオ部品であり、「FLAG:xx（TRUE/FALSE）」のシナリオ部品３２２は、シナリオの分岐先を意味するシナリオ部品である。なお、シナリオ部品３２２の「xx」の部分には、例えば、肯定（YES）を意味する「TRUE」、または否定を意味する「FALSE」が入る。また、本実施の形態で使用可能なシナリオ部品は、図中の凡例に示したものに限定されない。
【００７０】
本例では、シナリオの作成にＧＵＩ（Graphic User Interface）を用い、シナリオ部品選択エリア３２０に配置されているシナリオ部品をシナリオ作成エリア３１０にドラッグアンドドロップすることで、選択したシナリオ部品をシナリオ作成エリア３１０に表示させることができる。そして、シナリオ作成エリア３１０に表示させたシナリオ部品同士を矢印で接続することにより、シナリオ部品間の関係とシナリオの流れを記述し、対話のためのシナリオを作成することができる。
【００７１】
具体的に、図６に例示されたシナリオ部品を確認する。図６において、シナリオ作成エリア３１０には、隣接間が矢印で接続されたシナリオ部品３１１〜３１６が表示されている。
【００７２】
まず、シナリオ部品３１１では、和食が好きかどうかを尋ねるために「SELECTION」のシナリオ部品が用いられ、当該シナリオ部品３２１の中に、「和食は好きですか？」という対話内容が記入される。このとき、「和食は好きですか？」の中の「和食」は、属性情報１００に登録されたリテラル１３３（図２参照）に対応する語句であることから、属性情報記憶部１５に記憶されているリソース群１２０のうち、リテラル１３３を指すリソース１２３のＵＲＩ（Uniform Resource Identifier）を記述することによって、リソース１２３を参照させることができる。なお、図６では、参照先を明示的に表すために、「$」マークで対象リソースのＵＲＩ（この場合は「http://.../ex3」）を囲んでいる。
【００７３】
次に、シナリオ部品３１１の分岐先として、「FLAG:FALSE」のシナリオ部品３１２と「FLAG:TRUE」のシナリオ部品３１３とが接続されている。「FLAG:FALSE」のシナリオ部品３１２は、シナリオ部品３１１において和食が好きではない（ＮＯ）という回答が得られたときの分岐先であり、シナリオ部品３１４が接続されている。一方、「FLAG:TRUE」のシナリオ部品３１３は、シナリオ部品３１１において和食が好きだ（ＹＥＳ）という回答が得られたときの分岐先であり、その先の接続は省略されている。
【００７４】
シナリオ部品３１４では、次の質問として中華が好きかどうかを尋ねるために「SELECTION」のシナリオ部品が用いられ、「中華は好きですか？」という対話内容が記入される。さらに、「中華は好きですか？」の中の「中華」は、属性情報１００に登録されたリテラル１３１に対応する語句であることから、シナリオ部品３１１における「和食」の場合と同様にしてＵＲＩを記述することによって（詳細は省略する）、リソース群１２０のリソース１２１（http://.../ex1）を参照している。
【００７５】
次に、シナリオ部品３１４の分岐先として、「FLAG:FALSE」のシナリオ部品３１５が接続されている。さらに、シナリオ部品３１５には、蕎麦が好きかどうかを尋ねるための「SELECTION」のシナリオ部品３１６が接続されている。シナリオ部品３１１，３１４と同様であるため詳細な説明は省略するが、シナリオ部品３１６には「蕎麦は好きですか？」という対話内容が記入され、「蕎麦は好きですか？」の中の「蕎麦」から、リソース群１２０のリソース１２４（http://.../ex4）を参照している。
【００７６】
なお、図６において、シナリオ部品３１６には、エクスクラメーションマークが表示されているが、これは、矛盾があるシナリオ部品の有無の検証（シナリオ部品検証）において矛盾があるシナリオ部品であることの提示例である。ここで、シナリオ部品検証における詳細な処理について、図７を参照しながら説明する。
【００７７】
図７は、シナリオ部品検証の処理手続例を示すフローチャートである。図５のステップＳ１０３でも前述したように、図７に示すシナリオ部品検証は、シナリオ作成画面３００のシナリオ作成エリア３１０に作成されているシナリオ（構成部品はシナリオ部品３１１〜３１６）に対し、属性情報記憶部１５に登録されている属性情報１００を利用して、矛盾しているシナリオ部品の有無を検証するものである。シナリオ部品検証は、検証ルール記憶部１７に記憶されるプログラムや分岐処理を行うルールエンジンのルールを用いて、シナリオ作成サーバ１０のシナリオ検証部１６によって実行される。
【００７８】
図７によればまず、検証対象とするシナリオ部品に進む（ステップＳ２０１）。より具体的には、初回の検証時は、最初のシナリオ部品（図６のシナリオの場合、シナリオ部品３１１）に進み、それ以外の検証時は、前回検証したシナリオ部品に接続される次のシナリオ部品（例えば、シナリオ部品３１１を検証した後は、シナリオ部品３１２またはシナリオ部品３１３）に進む。
【００７９】
次に、ステップＳ２０１で進んだシナリオ部品（検証対象のシナリオ部品）が、「SELECTION」のシナリオ部品であるか否かを確認する（ステップＳ２０２）。「SELECTION」のシナリオ部品である場合は（ステップＳ２０３のＹＥＳ）、ステップＳ２０４に進む。一方、「SELECTION」のシナリオ部品ではない場合は（ステップＳ２０３のＮＯ）、ステップＳ２０８に進む。具体的には例えば、検証対象がシナリオ部品３１１の場合、「SELECTION」のシナリオ部品であることから、ステップＳ２０４に進む。
【００８０】
ステップＳ２０４では、属性情報記憶部１５に登録されているリソース群１２０を参照し、検証対象の「SELECTION」のシナリオ部品から参照しているリソースの目的語となっているリソースを取得する。具体的には例えば、検証対象がシナリオ部品３１１の場合、参照しているリソースは「http://.../ex3」というリソース１２３であり、その目的語となっているリソースは、「ex:ジャンル名」というリソース１１５である（図２参照）。
【００８１】
次に、ステップＳ２０４で取得したリソース、すなわち、検証対象のシナリオ部品から参照しているリソースの目的語となっているリソースが、「非選択リソース配列」に格納されているリソースであるか否かを確認する（ステップＳ２０５）。非選択リソース配列に格納されているリソースである場合は（ステップＳ２０６のＹＥＳ）、ステップＳ２１３に進む。一方、非選択リソース配列に格納されていないリソースである場合は（ステップＳ２０６のＮＯ）、ステップＳ２０７に進む。
【００８２】
ここで「非選択リソース配列」とは、シナリオ部品検証において、対話のシナリオを構成するシナリオ部品をシナリオの流れに沿って順に検証するなかで、否定の選択がなされた項目（リソース）が蓄積されるデータであって、より具体的には、要素選択型のシナリオ部品（例えば「SELECTION」のシナリオ部品）において否定の選択がされた場合に、当該シナリオ部品が参照するリソースが蓄積される。なお、非選択リソース配列は、１つのシナリオについてシナリオ部品検証を行う間、共通して用いられる。検証対象が最初のシナリオ部品３１１である場合は、非選択リソース配列には何のリソースも格納されていないので、ステップＳ２０４で取得したリソース１１５は「非選択リソース配列」に格納されたリソースではなく、ステップＳ２０７に進むこととなる。
【００８３】
そして、ステップＳ２０７では、検証対象のシナリオ部品から参照しているリソースを「変数ＴＭＰ」に格納する。なお、「変数ＴＭＰ」は、非選択リソース配列に格納する可能性があるリソースを一時的に保持するための変数である。具体的には例えば、検証対象が最初のシナリオ部品３１１である場合、ステップＳ２０４で説明したようにシナリオ部品３１１から参照しているリソースは「http://.../ex3」というリソース１２３であり、このリソース１２３が変数ＴＭＰに格納される。そしてステップＳ２０７の処理後は、ステップＳ２０１に戻り、次のシナリオ部品を検証対象として処理を繰り返す。
【００８４】
一方、検証対象のシナリオ部品が「SELECTION」のシナリオ部品ではない場合（ステップＳ２０３のＮＯ）に進むステップＳ２０８では、ステップＳ２０１で進んだシナリオ部品（検証対象のシナリオ部品）が、「FLAG:xx」のシナリオ部品であるか否かを確認する。「FLAG:xx」のシナリオ部品である場合は（ステップＳ２０９のＹＥＳ）、ステップＳ２１０に進む。一方、「FLAG:xx」のシナリオ部品ではない場合は（ステップＳ２０９のＮＯ）、ステップＳ２０１に戻り、次のシナリオ部品を検証対象として処理を繰り返す。具体的には例えば、検証対象がシナリオ部品３１２の場合、「FLAG:xx」のシナリオ部品であることから、ステップＳ２１０に進む。
【００８５】
なお、図７では、検証対象のシナリオ部品の種類について「SELECTION」または「FLAG:xx」を判別する処理を示しているが（ステップＳ２０２，Ｓ２０８）、これらは処理の一例であって、本実施の形態におけるシナリオ部品検証は、他の種類のシナリオ部品に対する処理を除外するよう限定するものではない。すなわち、他の種類のシナリオ部品についても同様に、種類を判別し、当該種類に応じた処理を行うようにしてよい。
【００８６】
ステップＳ２１０では、検証対象の「FLAG:xx」のシナリオ部品の値が「TRUE」であるか否かを確認する。シナリオ部品の値が「TRUE」である場合は（ステップＳ２１１のＹＥＳ）、ステップＳ２０１に戻り、次のシナリオ部品を検証対象として処理を繰り返す。一方、シナリオ部品の値が「TRUE」ではない場合、すなわち「FALSE」である場合は（ステップＳ２１１のＮＯ）、ステップＳ２１２に進む。具体的には例えば、検証対象がシナリオ部品３１２の場合、値は「FALSE」であることから、ステップＳ２１２に進む。
【００８７】
そして、ステップＳ２１２では、変数ＴＭＰに格納されているリソースを非選択リソース配列に格納する。具体的には例えば、検証対象がシナリオ部品３１２の場合、その前のシナリオ部品３１１を検証対象とする処理の際にステップＳ２０７で変数ＴＭＰに「http://.../ex3」というリソース１２３が格納されているため、このリソース１２３（http://.../ex3）が非選択リソース配列に追加される。なお、重複するリソースの格納処理を避けるため、非選択リソース配列への格納後、変数ＴＭＰをクリアすることが好ましい。そしてステップＳ２１２の終了後は、ステップＳ２０１に戻り、次のシナリオ部品を検証対象として処理を繰り返す。
【００８８】
以上に説明してきたように、図７に示すシナリオ部品検証では、検証対象のシナリオ部品から参照しているリソースの目的語となっているリソースが非選択リソース配列に格納されているリソースであると判断されない限り（ステップＳ２０６のＮＯ）、シナリオ作成エリア３１０に作成されているシナリオの流れ順に、各シナリオ部品３１１〜３１６に対してステップＳ２０１〜Ｓ２１２の処理が繰り返される。したがって、シナリオを構成する全てのシナリオ部品３１１〜３１６についてステップＳ２０６が「ＮＯ」となった場合は、矛盾しているシナリオ部品はなく、当該シナリオには矛盾がないと判断される。なお、図７には図示していないが、このとき、シナリオ部品検証の処理は終了する。
【００８９】
一方、検証対象のシナリオ部品から参照しているリソースの目的語となっているリソースが非選択リソース配列に格納されているリソースであると判断された場合には（ステップＳ２０６のＹＥＳ）、ステップＳ２１３において、現在の検証対象のシナリオ部品が、矛盾しているシナリオ部品であると判断し、シナリオ部品検証を終了（停止）する。
【００９０】
以上が図７に示したシナリオ部品検証の処理手順である。以下では、このようなシナリオ部品検証を、図６でシナリオ作成エリア３１０に作成されたシナリオに適用した場合の具体的な処理結果について説明する。なお、図７に関する上記の説明のなかで、シナリオ部品３１１，３１２を検証対象とした場合の具体的な処理については説明済みである。また、値が「TRUE」である「FLAG:xx」のシナリオ部品（例えばシナリオ部品３１３）については、説明を省略する。
【００９１】
まず、上述したように、「和食$http://.../ex3$は好きですか？」という「SELECTION」のシナリオ部品３１１、及び「No」という「FLAG:xx」のシナリオ部品３１２を検証対象とするシナリオ部品検証においては、矛盾しているシナリオ部品はみつからず、非選択リソース配列にはリソース１２３（http://.../ex3）が格納される。
【００９２】
そして、次の検証対象には「中華$http://.../ex1$は好きですか？」という「SELECTION」のシナリオ部品３１４が選択される（ステップＳ２０１）。シナリオ部品３１４は「SELECTION」のシナリオ部品なので、ステップＳ２０４に進む。
【００９３】
そして、シナリオ部品３１４から参照しているリソースは「http://.../ex1」というリソース１２１であり、その目的語となっているリソースは、「ex:ジャンル名」というリソース１１５であるから、ステップＳ２０４では、リソース１１５（ex:ジャンル名）を取得する。
【００９４】
次のステップＳ２０５では、リソース１１５（ex:ジャンル名）は非選択リソース配列に格納されていないので、ステップＳ２０６のＮＯとなり、ステップＳ２０７では、検証対象のシナリオ部品３１４から参照しているリソース、すなわちリソース１２１（http://.../ex1）を変数ＴＭＰに格納する。以上でシナリオ部品３１４に対するシナリオ部品検証は終了する。
【００９５】
次の検証対象には、「No」という「FLAG:xx」のシナリオ部品３１５が選択される（ステップＳ２０１）。シナリオ部品３１５は、「SELECTION」のシナリオ部品ではなく、「FLAG:xx」のシナリオ部品であるため、ステップＳ２０３のＮＯ、ステップＳ２０８、ステップＳ２０９のＹＥＳを経て、ステップＳ２１０に進む。
【００９６】
さらに、ステップＳ２１０では、検証対象のシナリオ部品３１５の値が「TRUE」ではないため、ステップＳ２１１のＮＯを経て、ステップＳ２１２に進む。そして、ステップＳ２１２では、シナリオ部品３１４に対するシナリオ部品検証において変数ＴＭＰに格納したリソース１２１（http://.../ex1）を、非選択リソース配列に追加格納し、シナリオ部品３１５に対するシナリオ部品検証は終了する。
【００９７】
このように、シナリオ部品３１１〜３１５に対するシナリオ部品検証が終了した時点では、矛盾しているシナリオ部品はみつかっておらず、非選択リソース配列にはリソース１２３（http://.../ex3）及びリソース１２１（http://.../ex1）が格納されている。
【００９８】
そして次の検証対象には、「蕎麦$http://.../ex4$は好きですか？」という「SELECTION」のシナリオ部品３１６が選択される（ステップＳ２０１）。シナリオ部品３１６は「SELECTION」のシナリオ部品なので、ステップＳ２０４に進む。
【００９９】
シナリオ部品３１６から参照しているリソースは「http://.../ex4」というリソース１２４であり、その目的語となっているリソースは、「ex:ジャンル名」というリソース１１５及び「http://.../ex3」というリソース１２３であるから、ステップＳ２０４では、リソース１１５（ex:ジャンル名）及びリソース１２３（http://.../ex3）を取得する。
【０１００】
次のステップＳ２０５では、検証対象のシナリオ部品３１６から参照しているリソースの目的語となっているリソース１１５またはリソース１２３が非選択リソース配列に格納されているリソースであるか否かを確認する。このとき、非選択リソース配列にはリソース１２３（http://.../ex3）及びリソース１２１（http://.../ex1）が格納されているため、リソース１２３（http://.../ex3）がこれに該当し、ステップＳ２０６のＹＥＳを経てステップＳ２１３に進む。
【０１０１】
ステップＳ２１３に進んだことにより、現在の検証対象の「蕎麦$http://.../ex4$は好きですか？」という「SELECTION」のシナリオ部品３１６を矛盾しているシナリオ部品であると判断し、これがシナリオ部品検証の検証結果となる。
【０１０２】
そして、図５のステップＳ１０４，Ｓ１０５で説明したように、シナリオ部品検証の検証結果はシナリオ作成サーバ１０からネットワーク３０を介してユーザ端末２０に送信され、ユーザ端末２０のシナリオ作成画面３００において、矛盾があるシナリオ部品３１６が提示される。図６の場合は、矛盾があるシナリオ部品であることの提示方法の一例として、シナリオ部品３１６にエクスクラメーションマークが表示されていたが、提示方法はこのような表示方法に限るものではない。
【０１０３】
また、シナリオ作成エリア３１０に作成されたシナリオを構成する全てのシナリオ部品３１１〜３１６に対して矛盾のあるシナリオ部品が見つからなかった場合には、矛盾しないシナリオである旨をシナリオ作成画面３００に表示するようにしてもよい。
【０１０４】
以上のように、本実施の形態に係るシナリオ作成支援システム１によれば、対話のシナリオのなかで利用可能な項目に関する属性情報を登録し、当該登録された属性情報に基づいて、シナリオにおいて矛盾している部分（シナリオ部品）をユーザに提示することができ、不要な質問が混入しないシナリオ（言い換えれば、矛盾のないシナリオ）の作成を支援することができる。すなわち、ユーザは、シナリオ作成において、本実施の形態に係るシナリオ作成支援システム１によって提示された矛盾しているシナリオを除去することによって、不要な質問が混入しないシナリオ（矛盾のないシナリオ）を容易に作成することができる。
【符号の説明】
【０１０５】
１      シナリオ作成支援システム
１０    シナリオ作成サーバ
１１    制御部
１２    ネットワークインタフェース部
１３    ウェブサービス提供部
１４    属性情報登録部
１５    属性情報記憶部
１６    シナリオ検証部
１７    検証ルール記憶部
１８    ＢＵＳ（バス）
２０    ユーザ端末
２１    制御部
２２    ネットワークインタフェース部
２３    入力部
２４    出力部
２５    ＢＵＳ（バス）
３０    ネットワーク
１００  属性情報
１００ａ，１００ｂ  範囲
１１０  属性情報定義
１１１，１１２  クラス
１１３〜１１７  リソース
１２０  リソース群
１２１〜１２６  リソース
１３１〜１３６  リテラル
２００  属性情報管理画面
２１０  属性情報定義タブ
２１１  属性情報定義入力エリア
２１２  属性情報定義登録ボタン
２２０  リソース群タブ
２２１  リソース群入力エリア
２２２  リソース群登録ボタン
３００  シナリオ作成画面
３１０  シナリオ作成エリア
３１１〜３１６，３２１，３２２  シナリオ部品
３２０  シナリオ部品選択エリア
【図１】
2019159969.tif 000003
【図２】
2019159969.tif 000004
【図３】
2019159969.tif 000005
【図４】
2019159969.tif 000006
【図５】
2019159969.tif 000007
【図６】
2019159969.tif 000008
【図７】
2019159969.tif 000009