(57)【要約】【課題】会話型のユーザインターフェースを利用してプログラムを編集するための技術を提供する。【解決手段】会話型のユーザインターフェースにおいて、設定変更の要求がユーザによって与えられた場合、設定変更の対象となるプログラム箇所の設定情報が通知され、設定変更の要求に従ってプログラム箇所が変更される。【選択図】図７
2019204173.tif 000002
【特許請求の範囲】
【請求項１】
会話型のユーザインターフェースにおいて、設定変更の要求がユーザによって与えられた場合、前記設定変更の対象となるプログラム箇所の設定情報の通知を制御する制御手段と、
前記設定変更の要求に従って前記プログラム箇所を変更する変更手段と、
を有する情報処理装置。
【請求項２】
会話型のユーザインターフェースにおいて、設定変更の要求がユーザによって与えられた場合、前記設定変更の対象となるプログラム箇所の設定情報の通知として、前記プログラム箇所を表す図形の表示を制御する制御手段を有する情報処理装置。
【請求項３】
前記プログラム箇所は、機器を制御するためのプログラムであり、
前記機器は、前記設定変更の可否に応じて動作する、
ことを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記プログラム箇所は、機器を制御するためのプログラムであり、
前記制御手段は、更に、前記ユーザインターフェースにおいて、前記機器に紐付けられたチャットボットを表す画像の表示を制御する、
ことを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項５】
前記ユーザインターフェースにおいて、前記チャットボットと前記ユーザとの間のメッセージのやり取りによって前記設定変更の要求が与えられた場合、前記制御手段は、前記設定変更の対象となるプログラム箇所の設定情報の通知を制御する、
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記制御手段は、更に、動作可能な単位でプログラム部分が完成した場合、その旨の通知を制御する、
ことを特徴とする請求項４又は請求項５に記載の情報処理装置。
【請求項７】
前記制御手段は、更に、前記プログラム部分によって実現される動作を、画像を用いて表現する、
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記制御手段は、更に、プログラムによって機能が追加された場合、前記機能を、画像を用いて表現する、
ことを特徴とする請求項４から請求項７何れかに記載の情報処理装置。
【請求項９】
前記制御手段は、更に、前記設定変更の内容が前記機器によって実行不可能な場合、その旨の通知を制御する、
ことを特徴とする請求項３から請求項８何れかに記載の情報処理装置。
【請求項１０】
前記制御手段は、更に、前記機器を用いて実行可能な機能の通知を制御する、
ことを特徴とする請求項３から請求項９何れかに記載の情報処理装置。
【請求項１１】
前記制御手段は、更に、前記設定変更の要求に従った変更が反映された前記プログラム箇所の設定情報の通知を制御する、
ことを特徴とする請求項１から請求項１０何れかに記載の情報処理装置。
【請求項１２】
前記制御手段は、更に、前記設定変更の内容に対応する処理の候補の通知を制御する、
ことを特徴とする請求項１から請求項１０何れかに記載の情報処理装置。
【請求項１３】
前記制御手段は、更に、前記設定変更の要求に従った変更が反映された前記プログラム箇所の候補の通知を制御する、
ことを特徴とする請求項１から請求項１０何れかに記載の情報処理装置。
【請求項１４】
前記制御手段は、更に、前記設定変更の要求に従った変更が前記プログラム箇所に反映された後、前記変更が反映された前記プログラム箇所をコンパイルする、
ことを特徴とする請求項１から請求項１３何れかに記載の情報処理装置。
【請求項１５】
前記設定変更の内容は、処理を表す文字列であってプログラミング言語を用いて記述された文字列によって与えられる、
ことを特徴とする請求項１から請求項１４何れかに記載の情報処理装置。
【請求項１６】
前記設定変更の内容は、処理に紐付けられた図形によって与えられる、
ことを特徴とする請求項１から請求項１４何れかに記載の情報処理装置。
【請求項１７】
前記制御手段は、更に、前記図形の候補の表示を制御する、
ことを特徴とする請求項１６に記載の情報処理装置。
【請求項１８】
前記制御手段は、更に、前記プログラム箇所の送信指示に従って、前記送信指示を与えたアカウントとは異なるアカウントへの前記プログラム箇所の送信を制御する、
ことを特徴とする請求項１から請求項１７何れかに記載の情報処理装置。
【請求項１９】
前記変更は、前記プログラム箇所に対する処理の追加及び前記プログラム箇所から処理の削除の中の少なくとも１つを含む、
ことを特徴とする請求項１から請求項１８何れかに記載の情報処理装置。
【請求項２０】
前記制御手段は、更に、前記設定変更の対象となるプログラム箇所が特定できない場合、前記設定変更の対象となるプログラム箇所を特定するための情報をユーザから得るための質問の通知を制御する、
ことを特徴とする請求項１から請求項１９何れかに記載の情報処理装置。
【請求項２１】
前記制御手段は、更に、前記設定変更の要求に従った変更が反映された前記プログラム箇所の内容が、既に設定されている別のプログラム箇所の内容と矛盾する場合、警告処理の実行を制御する、
ことを特徴とする請求項１から請求項２０何れかに記載の情報処理装置。
【請求項２２】
コンピュータを、
会話型のユーザインターフェースにおいて、設定変更の要求がユーザによって与えられた場合、前記設定変更の対象となるプログラム箇所の設定情報の通知を制御する制御手段、
前記設定変更の要求に従って前記プログラム箇所を変更する変更手段、
として機能させるプログラム。
【請求項２３】
コンピュータを、
会話型のユーザインターフェースにおいて、設定変更の要求がユーザによって与えられた場合、前記設定変更の対象となるプログラム箇所の設定情報の通知として、前記プログラム箇所を表す図形の表示を制御する制御手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、ユーザとの会話の進行手順が分岐付けで規定されたプログラムが記載されている。そのプログラムにおいては、ある質問の内容と、質問に対する返答となる複数の選択肢と、選択肢に対するアクションとが対応付けられている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−６８４８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、会話型のユーザインターフェースを利用してプログラムを編集するための技術を提供することにある。
【課題を解決するための手段】
【０００５】
請求項１に記載の発明は、会話型のユーザインターフェースにおいて、設定変更の要求がユーザによって与えられた場合、前記設定変更の対象となるプログラム箇所の設定情報の通知を制御する制御手段と、前記設定変更の要求に従って前記プログラム箇所を変更する変更手段と、を有する情報処理装置である。
【０００６】
請求項２に記載の発明は、会話型のユーザインターフェースにおいて、設定変更の要求がユーザによって与えられた場合、前記設定変更の対象となるプログラム箇所の設定情報の通知として、前記プログラム箇所を表す図形の表示を制御する制御手段を有する情報処理装置である。
【０００７】
請求項３に記載の発明は、前記プログラム箇所は、機器を制御するためのプログラムであり、前記機器は、前記設定変更の可否に応じて動作する、ことを特徴とする請求項１又は請求項２に記載の情報処理装置である。
【０００８】
請求項４に記載の発明は、前記プログラム箇所は、機器を制御するためのプログラムであり、前記制御手段は、更に、前記ユーザインターフェースにおいて、前記機器に紐付けられたチャットボットを表す画像の表示を制御する、ことを特徴とする請求項１又は請求項２に記載の情報処理装置である。
【０００９】
請求項５に記載の発明は、前記ユーザインターフェースにおいて、前記チャットボットと前記ユーザとの間のメッセージのやり取りによって前記設定変更の要求が与えられた場合、前記制御手段は、前記設定変更の対象となるプログラム箇所の設定情報の通知を制御する、ことを特徴とする請求項４に記載の情報処理装置である。
【００１０】
請求項６に記載の発明は、前記制御手段は、更に、動作可能な単位でプログラム部分が完成した場合、その旨の通知を制御する、ことを特徴とする請求項４又は請求項５に記載の情報処理装置である。
【００１１】
請求項７に記載の発明は、前記制御手段は、更に、前記プログラム部分によって実現される動作を、画像を用いて表現する、ことを特徴とする請求項６に記載の情報処理装置である。
【００１２】
請求項８に記載の発明は、前記制御手段は、更に、プログラムによって機能が追加された場合、前記機能を、画像を用いて表現する、ことを特徴とする請求項４から請求項７何れかに記載の情報処理装置である。
【００１３】
請求項９に記載の発明は、前記制御手段は、更に、前記設定変更の内容が前記機器によって実行不可能な場合、その旨の通知を制御する、ことを特徴とする請求項３から請求項８何れかに記載の情報処理装置である。
【００１４】
請求項１０に記載の発明は、前記制御手段は、更に、前記機器を用いて実行可能な機能の通知を制御する、ことを特徴とする請求項３から請求項９何れかに記載の情報処理装置である。
【００１５】
請求項１１に記載の発明は、前記制御手段は、更に、前記設定変更の要求に従った変更が反映された前記プログラム箇所の設定情報の通知を制御する、ことを特徴とする請求項１から請求項１０何れかに記載の情報処理装置である。
【００１６】
請求項１２に記載の発明は、前記制御手段は、更に、前記設定変更の内容に対応する処理の候補の通知を制御する、ことを特徴とする請求項１から請求項１０何れかに記載の情報処理装置である。
【００１７】
請求項１３に記載の発明は、前記制御手段は、更に、前記設定変更の要求に従った変更が反映された前記プログラム箇所の候補の通知を制御する、ことを特徴とする請求項１から請求項１０何れかに記載の情報処理装置である。
【００１８】
請求項１４に記載の発明は、前記制御手段は、更に、前記設定変更の要求に従った変更が前記プログラム箇所に反映された後、前記変更が反映された前記プログラム箇所をコンパイルする、ことを特徴とする請求項１から請求項１３何れかに記載の情報処理装置である。
【００１９】
請求項１５に記載の発明は、前記設定変更の内容は、処理を表す文字列であってプログラミング言語を用いて記述された文字列によって与えられる、ことを特徴とする請求項１から請求項１４何れかに記載の情報処理装置である。
【００２０】
請求項１６に記載の発明は、前記設定変更の内容は、処理に紐付けられた図形によって与えられる、ことを特徴とする請求項１から請求項１４何れかに記載の情報処理装置である。
【００２１】
請求項１７に記載の発明は、前記制御手段は、更に、前記図形の候補の表示を制御する、ことを特徴とする請求項１６に記載の情報処理装置である。
【００２２】
請求項１８に記載の発明は、前記制御手段は、更に、前記プログラム箇所の送信指示に従って、前記送信指示を与えたアカウントとは異なるアカウントへの前記プログラム箇所の送信を制御する、ことを特徴とする請求項１から請求項１７何れかに記載の情報処理装置である。
【００２３】
請求項１９に記載の発明は、前記変更は、前記プログラム箇所に対する処理の追加及び前記プログラム箇所から処理の削除の中の少なくとも１つを含む、ことを特徴とする請求項１から請求項１８何れかに記載の情報処理装置である。
【００２４】
請求項２０に記載の発明は、前記制御手段は、更に、前記設定変更の対象となるプログラム箇所が特定できない場合、前記設定変更の対象となるプログラム箇所を特定するための情報をユーザから得るための質問の通知を制御する、ことを特徴とする請求項１から請求項１９何れかに記載の情報処理装置である。
【００２５】
請求項２１に記載の発明は、前記制御手段は、更に、前記設定変更の要求に従った変更が反映された前記プログラム箇所の内容が、既に設定されている別のプログラム箇所の内容と矛盾する場合、警告処理の実行を制御する、ことを特徴とする請求項１から請求項２０何れかに記載の情報処理装置である。
【００２６】
請求項２２に記載の発明は、コンピュータを、会話型のユーザインターフェースにおいて、設定変更の要求がユーザによって与えられた場合、前記設定変更の対象となるプログラム箇所の設定情報の通知を制御する制御手段、前記設定変更の要求に従って前記プログラム箇所を変更する変更手段、として機能させるプログラムである。
【００２７】
請求項２３に記載の発明は、コンピュータを、会話型のユーザインターフェースにおいて、設定変更の要求がユーザによって与えられた場合、前記設定変更の対象となるプログラム箇所の設定情報の通知として、前記プログラム箇所を表す図形の表示を制御する制御手段、として機能させるプログラムである。
【発明の効果】
【００２８】
請求項１，２，２２，２３に記載の発明によれば、会話型のユーザインターフェースを利用してプログラムを編集するための技術を提供することができる。
【００２９】
請求項３に記載の発明によれば、機器の動作によって、設定変更の可否をユーザに通知することができる。
【００３０】
請求項４，５に記載の発明によれば、チャットボットを利用してプログラムを編集することができる。
【００３１】
請求項６に記載の発明によれば、プログラム部分の完成をユーザに通知することができる。
【００３２】
請求項７に記載の発明によれば、プログラム部分の完成を、画像を用いてユーザに通知することができる。
【００３３】
請求項８に記載の発明によれば、追加された機能を、画像を用いてユーザに通知することができる。
【００３４】
請求項９に記載の発明によれば、設定変更の内容が機器によって実行不可能であることがユーザに通知することができる。
【００３５】
請求項１０に記載の発明によれば、機器を用いて実行可能な機能をユーザに通知することができる。
【００３６】
請求項１１に記載の発明によれば、変更が反映されたプログラム箇所をユーザに通知することができる。
【００３７】
請求項１２に記載の発明によれば、処理の候補をユーザに通知することができる。
【００３８】
請求項１３に記載の発明によれば、プログラム箇所の候補をユーザに通知することができる。
【００３９】
請求項１４に記載の発明によれば、プログラム箇所の実行時にコンパイルする場合と比べて、プログラム箇所の実行までに要する時間を短縮することができる。
【００４０】
請求項１５に記載の発明によれば、プログラミング言語を用いて設定変更の要求を与えることができる。
【００４１】
請求項１６に記載の発明によれば、図形を用いて設定変更の要求を与えることができる。
【００４２】
請求項１７に記載の発明によれば、処理に紐付けられた図形の候補をユーザに通知することができる。
【００４３】
請求項１８に記載の発明によれば、プログラム箇所を送信先に送信することができる。
【００４４】
請求項１９に記載の発明によれば、処理の追加及び削除の中の少なくとも１つを行うことができる。
【００４５】
請求項２０に記載の発明によれば、設定変更の対象となるプログラム箇所を特定することができるようになる。
【００４６】
請求項２１に記載の発明によれば、矛盾を解消することが可能となる。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施形態に係る情報処理システムの構成を示すブロック図である。
【図２】端末装置の構成を示すブロック図である。
【図３】機器の構成を示すブロック図である。
【図４】ロボットの外観を示す図である。
【図５】スピーカ装置の外観を示す図である。
【図６】画面を示す図である。
【図７】画面を示す図である。
【図８】画面を示す図である。
【図９】画面を示す図である。
【図１０】画面を示す図である。
【図１１】画面を示す図である。
【図１２】画面を示す図である。
【図１３】画面を示す図である。
【図１４】画面を示す図である。
【図１５】画面の一部を示す図である。
【図１６】機器に紐付けられた画像を示す図である。
【図１７】画面を示す図である。
【発明を実施するための形態】
【００４８】
図１を参照して、本発明の実施形態に係る情報処理システムについて説明する。図１は、本実施形態に係る情報処理システムの一例を示す。
【００４９】
本実施形態に係る情報処理システムは、端末装置１０と１又は複数の機器１２とを含む。
【００５０】
端末装置１０は、ＰＣ、タブレットＰＣ、スマートフォン又は携帯電話等の機器である。端末装置１０は、ウェアラブル端末（腕時計型端末、リストバンド型端末、眼鏡型端末、指輪型端末、コンタクトレンズ型端末、体内埋め込み型端末、ヒアラブル端末等）であってもよい。また、端末装置１０は、表示装置としてフレキシブルディスプレイを有していてもよい。フレキシブルディスプレイとして、例えば、有機エレクトロルミネッセンス型のディスプレイ（フレキシブル有機ＥＬディスプレイ）、電子ペーパー型のディスプレイ、又は、フレキシブル液晶ディスプレイ等が用いられる。これら以外の表示方式が採用されたフレキシブルディスプレイが用いられてもよい。フレキシブルディスプレイは、表示部分が柔軟に変形可能なディスプレイであり、例えば、曲げたり、折り畳んだり、巻いたり、捩ったり、伸ばしたりすることが可能なディスプレイである。端末装置全体がフレキシブルディスプレイによって構成されていてもよいし、フレキシブルディスプレイとそれ以外の構成とが機能的又は物理的に分かれていてもよい。
【００５１】
機器１２は機能を有する装置であり、例えば、画像形成機能（スキャン機能、プリント機能、コピー機能、ファクシミリ機能等）を有する画像形成装置、ＰＣ（パーソナルコンピュータ）、タブレットＰＣ、スマートフォン、携帯電話、ロボット（人型ロボット、人以外の動物型ロボット、それら以外のロボット等）、プロジェクタ、液晶ディスプレイ等の表示装置、記録装置、再生装置、カメラ等の撮像装置、冷蔵庫、炊飯器、電子レンジ、コーヒーメーカー、掃除機、洗濯機、空調機、照明装置、時計、監視カメラ、自動車、二輪車、航空機（例えば無人航空機（いわゆるドローン））、ゲーム機、又は、各種のセンシング機器（例えば温度センサ、湿度センサ、電圧センサ、電流センサ等）等の装置である。機器１２は、ユーザに対して情報を出力する機器（例えば画像形成装置やＰＣ等）であってもよいし、ユーザに対して情報を出力しない機器（例えばセンシング機器）であってもよい。機器１２の概念の範疇には機器全般が含まれてもよい。例えば、情報機器、映像機器、音響機器、その他の機器も、機器１２の概念の範疇に含まれてもよい。また、各種の機能を提供するサーバ、及び、各種のサービスを提供するサーバが、機器１２の概念の範疇に含まれてもよい。
【００５２】
また、端末装置１０と機器１２は、他の装置と通信する機能を有する。その通信は、無線通信であってもよいし、有線通信であってもよい。例えば、端末装置１０と機器１２は、インターネット等の通信経路を介して他の装置と通信してもよいし、直接的に他の装置と通信してもよいし、ハブとして機能する中継器を介して他の装置と通信してもよいし、いわゆるクラウドやサーバを介して他の装置と通信してもよい。機器１２は、いわゆるＩｏＴ（Internet of Things）機器であってもよい。
【００５３】
端末装置１０においては、ユーザと対話する機能を有する対話相手が用いられる。その対話相手は、ユーザの問い合わせに応答するパーソナルアシスタント（操作アシスタント）である。パーソナルアシスタントは、例えば、ユーザの発言を受け、その発言内容を解析することで、その発言に対する回答等の応答を作成してユーザに通知する。例えば、ユーザの発言は、文字入力、音声入力又は画像入力等によって行われ、応答は、文字出力、音声出力又は画像出力等によって行われる。複数種類の入力の組み合わせが用いられてもよいし、複数種類の出力の組み合わせが用いられてもよい。パーソナルアシスタントは、例えば、入力された情報に対して形態素解析等の自然言語処理を適用することで、ユーザの発言内容を解析する。パーソナルアシスタントは、例えばプログラムを実行することで実現される。パーソナルアシスタントを実行するためのプログラムは、例えば端末装置１０にインストールされている。もちろん、そのプログラムは、機器１２にインストールされ、パーソナルアシスタントの機能及びそのような機能を提供するサービスが、機器１２から端末装置１０に提供されてもよい。更に別の例として、そのプログラムは、サーバ等の装置にインストールされ、パーソナルアシスタントの機能及びそのような機能を提供するサービスが、サーバから端末装置１０に提供されてもよい。
【００５４】
パーソナルアシスタントは、例えば人工知能（ＡＩ）によって実現される自動応答ＡＩによって構成されている。自動応答ＡＩは、ユーザの発言内容を解析し、その発言内容に対する回答等の応答をユーザに通知する機能を有する。自動応答ＡＩは、いわゆるチャットボット（chatbot）（人工知能を活用した自動会話プログラム）であってもよい。自動応答ＡＩは、人工知能による学習機能を有し、その学習機能によって、人に近い判断を行う能力を有していてもよい。また、ニューラルネットワーク型のディープラーニングが利用されてもよいし、部分的に学習分野を強化する強化学習等が利用されてもよいし、その他、遺伝的アルゴリズム、クラスタ分析、自己組織化マップ及びアンサンブル学習等が利用されてもよい。もちろん、これら以外の人工知能に関する技術が利用されてもよい。自動応答ＡＩは、インターネット等のネットワークを利用することで、ユーザの問い合わせに対する回答を検索し、その検索結果に基づいて応答を作成してユーザに通知してもよい。
【００５５】
パーソナルアシスタントは、当該パーソナルアシスタントにログインしているユーザアカウントに紐付けられたユーザからの指示に従って動作してもよい。同一のパーソナルアシスタントであっても、当該パーソナルアシスタントにログインしているユーザアカウントに応じた応答を行ってもよい。また、同一のパーソナルアシスタントに複数のユーザアカウントがログインしてもよい。
【００５６】
また、端末装置１０に搭載されているパーソナルアシスタントは、当該端末装置１０を構成するハードウェアを制御してもよいし、当該端末装置１０にインストールされているソフトウェアを制御してもよい。また、当該パーソナルアシスタントは、端末装置１０に接続されている機器１２を制御してもよい。
【００５７】
機器１２に、ユーザを補助するためのパーソナルアシスタントが搭載されていてもよい。パーソナルアシスタントは、当該パーソナルアシスタントが搭載されている機器１２を構成するハードウェアを制御してもよい、当該機器１２にインストールされているソフトウェアを制御してもよい。また、パーソナルアシスタントは、当該パーソナルアシスタントが搭載されている機器１２に接続されている別の機器１２を制御してもよい。また、機器１２に搭載されているパーソナルアシスタントは、端末装置１０に搭載されているパーソナルアシスタントと同様に、ユーザの発言内容を解析し、その発言内容に対応する応答をユーザに通知してもよい。なお、端末装置１０に搭載されているパーソナルアシスタントと機器１２に搭載されているパーソナルアシスタントは、互いに同一種類のパーソナルアシスタントであってもよいし、互いに異なる種類のパーソナルアシスタントであってもよい。
【００５８】
本実施形態においては、プログラムを編集するための技術が提供される。例えば、会話型のユーザインターフェースが端末装置１０に設けられる。当該ユーザインターフェースは、ユーザと対話相手（例えばパーソナルアシスタント）との間でメッセージをやり取りするためのインターフェースである。ユーザの対話相手としてのパーソナルアシスタントは、端末装置１０に搭載されているパーソナルアシスタントであってもよいし、機器１２に搭載されているパーソナルアシスタントであってもよい。プログラム箇所（プログラム部分）の設定変更の要求が、当該ユーザインターフェースを介してユーザによって与えられる。この場合、設定変更の対象となるプログラム箇所の現在の設定情報がユーザに通知され、また、設定変更の要求に従ってプログラム箇所が変更される。このように、会話型のユーザインターフェースを介してプログラムの編集が行われる。プログラムの編集の概念の範疇には、プログラムの部分的な変更、プログラムへの処理の追加、プログラムの部分的な削除、プログラム全体の変更、及び、プログラム全体の削除が含まれる。また、プログラムの編集の概念の範疇には、既存のプログラムの書き換えではなく新たなプログラムの作成が含まれてもよい。なお、会話型のユーザインターフェースが機器１２に設けられ、そのユーザインターフェースを介して、プログラム箇所の設定変更の要求がユーザによって与えられてもよい。
【００５９】
なお、設定変更の対象となるプログラム箇所は、端末装置１０に記憶されているプログラムであってもよいし、機器１２に記憶されているプログラムであってもよいし、端末装置１０によって実行されるプログラムであってもよいし、機器１２によって実行されるプログラムであってもよいし、端末装置１０を制御するためのプログラムであってもよいし、機器１２を制御するためのプログラムであってもよい。
【００６０】
例えば、端末装置１０に搭載されているパーソナルアシスタントとユーザとの間でメッセージのやり取りが行われることで、端末装置１０に記憶されているプログラム箇所の通知と設定変更が行われてもよい。また、機器１２に搭載されているパーソナルアシスタントとユーザとの間でメッセージのやり取りが行われることで、機器１２に記憶されているプログラム箇所の通知と設定変更が行われてもよい。もちろん、本実施形態は、これらの組み合わせに限定されるものではない。端末装置１０に搭載されているパーソナルアシスタントとユーザとの間でメッセージのやり取りが行われることで、端末装置１０に接続されている機器１２に記憶されているプログラム箇所の通知と設定変更が行われてもよい。端末装置１０に記憶されているプログラムについても同様である。また、サーバ等の外部装置に搭載されているパーソナルアシスタントとユーザとの間でメッセージのやり取りが行われることで、端末装置１０又は機器１２に記憶されているプログラム箇所の通知と設定変更が行われてもよい。
【００６１】
なお、機器１２は、本実施形態に係る情報処理システムに含まれていなくてもよい。例えば、機器１２に記憶されているプログラム箇所の通知と設定変更を行うために、端末装置１０が機器１２に接続され、これによって、情報処理システムが構築されてもよい。また、端末装置１０に記憶されているプログラム箇所の通知と設定変更が行われ、機器１２に記憶されているプログラム箇所の通知と設定変更が行われない場合、当該機器１２は情報処理システムに含まれていなくてもよい。
【００６２】
以下、図２を参照して、端末装置１０の構成について説明する。図２は、端末装置１０の構成の一例を示す。
【００６３】
通信部１４は通信インターフェースであり、他の装置にデータを送信する機能、及び、他の装置からデータを受信する機能を有する。通信部１４は、無線通信機能を有する通信インターフェースであってもよいし、有線通信機能を有する通信インターフェースであってもよい。通信部１４は、例えば、１又は複数の種類の通信方式に対応しており、通信相手に適した通信方式（つまり、通信相手が対応している通信方式）に従って通信相手と通信してもよい。通信方式は、例えば、赤外線通信、可視光通信、Ｗｉ−Ｆｉ（登録商標）通信、又は、近接無線通信（例えばＮＦＣ（Near Field Communication）等）等である。近接無線通信としては、Ｆｅｌｉｃａ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）、又は、ＲＦＩＤ（Radio Frequency Identifier）等が用いられる。また、通信部１４は、第５世代移動通信システム（５Ｇ）に対応してもよい。もちろん、別の方式の無線通信が近接無線通信として用いられてもよい。通信部１４は、通信相手に応じて通信方式や周波数帯域を切り替えてもよいし、周囲の環境に応じて通信方式や周波数帯域を切り替えてもよい。周波数帯域として、例えば、２．４ＧＨｚや５ＧＨｚ等が用いられてもよい
【００６４】
ＵＩ部１６はユーザインターフェース部であり、表示部と操作部を含む。表示部は、例えば液晶ディスプレイ等の表示装置である。表示部は、フレキシブルディスプレイであってもよい。操作部は、例えばタッチパネル又はキーボード等の入力装置である。ＵＩ部１６は、表示部と操作部とを兼ねたユーザインターフェース（例えば、タッチ式のディスプレイ、及び、ディスプレイ上に電子的にキーボード等を表示する装置等を含む）であってもよい。また、ＵＩ部１６は、マイク等の集音部とスピーカ等の音声発生部を含んでいてもよい。この場合、音声入力によって情報が機器１２に入力されてもよいし、音声によって情報が発せられてもよい。
【００６５】
記憶部１８は、ハードディスク又はメモリ（例えばＳＳＤ等）等の記憶装置である。記憶部１８には、例えば、各種のデータ及び各種のプログラム等が記憶されている。プログラムとして、例えば、ＯＳ（Operating System）、各種のアプリケーションプログラム、チャットボットを実現するための自動会話プログラム、及び、パーソナルアシスタントプログラム等が記憶されている。なお、パーソナルアシスタントがチャットボットの機能を有している場合、パーソナルアシスタントプログラムは自動会話プログラムを含む。また、記憶部１８には、機器１２のアドレスを示す機器アドレス情報（例えばＩＰアドレス又はＭＡＣアドレス等）、及び、サーバのアドレスを示すサーバアドレス情報（例えばＩＰアドレス又はＭＡＣアドレス等）等が記憶されてもよい。通知と設定変更の対象となるプログラムが、記憶部１８に記憶されていてもよい。プログラムには、当該プログラムを識別するためのプログラム識別情報が紐付けられている。プログラム識別情報は、例えば、プログラムの名称又はＩＤ等である。
【００６６】
変更部２０は、プログラム箇所を変更するように構成されている。変更部２０は、設定変更の要求に従って、プログラム箇所を自動的に変更してもよい。別の例として、設定変更の内容に対応する処理（命令、機能）の候補郡がユーザに提供され、変更部２０は、当該候補群の中からユーザによって選択された処理（命令、機能）をプログラム箇所に反映させてもよい。更に別の例として、変更部２０は、設定変更の要求に従った変更が反映されたプログラム箇所の候補群を作成してもよい。この場合、当該候補群がユーザに提供され、変更部２０は、当該候補群の中からユーザによって選択された候補を変更後のプログラム箇所として識別する。
【００６７】
制御部２２は、端末装置１０の各部の動作を制御するように構成されている。例えば、制御部２２は、プログラムの実行、通信部１４による通信の制御、ＵＩ部１６を用いた情報の通知（例えば情報の表示及び音声出力等）の制御、ＵＩ部１６を用いて端末装置１０に入力された情報の受け付け、記憶部１８への情報の書き込み、及び、記憶部１８からの情報の読み出し等を行う。
【００６８】
また、制御部２２は、設定変更の対象となるプログラム箇所の現在の設定情報の通知を制御するように構成されている。制御部２２は、プログラム箇所の設定情報を表す文字列をＵＩ部１６の表示部に表示させてもよいし、プログラム箇所の設定情報を表す図形を表示部に表示させてもよい。
【００６９】
ここで、各用語の意味を定義する。プログラム箇所は、例えば、１又は複数の単位処理（単位命令、単位機能）を含む集合体であって、１又は複数の単位処理が記述された情報である。
【００７０】
プログラム箇所を表す文字列は、当該プログラム箇所がプログラミング言語によって記述された文字列であり、例えばソースコードである。プログラム言語として、例えば、コンパイル言語が用いられてもよいし、スクリプト言語が用いられてもよい。コンパイル言語として、例えば、Ｃ言語、Ｃ＋＋、Ｊａｖａ（登録商標）又はＣ♯等が用いられる。スクリプト言語として、例えば、Ｐｙｔｈｏｎ、Ｐｅｒｌ、ＰＨＰ、Ｒｕｂｙ又はＪａｖａＳｃｒｉｐｔ（登録商標）等が用いられる。
【００７１】
プログラム箇所を表すブロック図は、当該プログラム箇所によって実行される処理を表す図である。例えば、単位処理（単位命令、単位機能）が予め定められて、各単位処理に図形が紐付けられている。つまり、各単位処理が図形によって表される。ブロック図は、１又は複数の単位処理の集合体を表す図であって、１又は複数の図形によって構成されている。例えば、Ｎｏｄｅ−Ｒｅｄにおけるノードが、当該図形の一例に相当する。また、１又は複数の単位処理がパッケージ化され、そのパッケージ化された処理が１つの図形（例えば１つのノード）によって表現されてもよい。つまり、１つの図形は、１つの単位処理を表す図形であってもよいし、パッケージ化された複数の単位処理を表す図形であってもよい。ユーザによって、パッケージ化された図形が作成されてもよい。
【００７２】
ソースコードと図形は互いに変換可能であってもよい。例えば、ある処理がソースコードの表現形式に従って文字列として表現されている場合に、当該文字列が、当該処理を表す図形に変換されてもよい。同様に、ある処理が図形の表現形式に従って表現されている場合に、当該処理を表す図形が、ソースコードの表現形式である文字列に変換されてもよい。例えば、処理毎に、処理（命令、機能）を示す文字列（ソースコードの表現形式に従って表現された文字列）と、当該処理を表す図形（ブロック図の表現形式に従って表現された図形）とが互いに対応付けられており、その対応付けを示す情報が予め作成されている。その対応付けを示す情報は、端末装置１０に記憶されていてもよいし、機器１２に記憶されていてもよいし、サーバ等の装置に記憶されていてもよい。その情報を参照することで、ソースコードの表現形式で表現された文字列と図形とを相互に変換することができる。なお、１又は複数の単位処理毎に、上記の対応付けが管理されていてもよい。
【００７３】
以下、図３を参照して、機器１２の構成について説明する。図３は、機器１２の構成の一例を示す。なお、図３は、各機器１２が共通して有する構成を示しており、各機器１２の特有の構成を示していない。
【００７４】
通信部２４は通信インターフェースであり、他の装置にデータを送信する機能、及び、他の装置からデータを受信する機能を有する。通信部２４は、無線通信機能を有する通信インターフェースであってもよいし、有線通信機能を有する通信インターフェースであってもよい。通信部２４は、例えば、１又は複数の種類の通信方式に対応しており、通信相手に適した通信方式（つまり、通信相手が対応している通信方式）に従って通信相手と通信してもよい。通信方式は、例えば、上述した通信方式が用いられる。通信部２４は、通信相手に応じて通信方式や周波数帯域を切り替えてもよいし、周囲の環境に応じて通信方式や周波数帯域を切り替えてもよい。
【００７５】
ＵＩ部２６はユーザインターフェース部であり、表示部と操作部を含む。表示部は、例えば液晶ディスプレイ等の表示装置である。表示部は、フレキシブルディスプレイであってもよい。操作部は、例えばタッチパネル又はキーボード等の入力装置である。ＵＩ部２６は、表示部と操作部とを兼ねたユーザインターフェースであってもよい。また、ＵＩ部２６は、集音部と音声発生部を含んでいてもよい。この場合、音声入力によって情報が機器１２に入力されてもよいし、音声によって情報が発せられてもよい。なお、ＵＩ部２６を有していない機器１２が、情報処理システムに含まれてもよい。例えば、情報をユーザに出力しないセンシング機器は、ＵＩ部２６を有していなくてもよい。
【００７６】
記憶部２８は、ハードディスク又はメモリ等の記憶装置である。記憶部２８には、例えば、各種のデータ及び各種のプログラム等が記憶されている。プログラムとして、例えば、ＯＳ、各種のアプリケーションソフトウェア、チャットボットを実現するための自動会話プログラム、及び、パーソナルアシスタントプログラム等が記憶されている。なお、パーソナルアシスタントがチャットボットの機能を有している場合、パーソナルアシスタントプログラムは自動会話プログラムを含む。なお、チャットボットの機能を有していない機器１２には、自動会話プログラムは記憶されていない。また、パーソナルアシスタントを搭載していない機器１２には、パーソナルアシスタントプログラムは記憶されていない。また、記憶部２８には、端末装置１０のアドレスを示す端末アドレス情報（例えばＩＰアドレス又はＭＡＣアドレス等）、他の機器１２の機器アドレス情報、及び、サーバアドレス情報が記憶されてもよい。プログラムには、当該プログラムを識別するためのプログラム識別情報が紐付けられている。
【００７７】
実行部３０は、機能を実行するように構成されている。例えば、機器１２が画像形成装置である場合、実行部３０は、スキャン機能、プリント機能又はコピー機能等の画像形成機能を実行する。機器１２がロボットである場合、実行部３０は、ロボットが有する機能（例えば、移動機能又は持ち上げ機能等）を実行する。機器１２がカメラである場合、実行部３０は、撮影機能を実行する。
【００７８】
変更部３２は、プログラム箇所を変更するように構成されている。変更部３２は、設定変更の要求に従って、プログラム箇所を自動的に変更してもよい。別の例として、設定変更の内容に対応する処理（命令、機能）の候補郡がユーザに提供され、変更部３２は、当該候補群の中からユーザによって選択された処理をプログラム箇所に反映させてもよい。更に別の例として、変更部３２は、設定変更の要求に従った変更が反映されたプログラム箇所の候補群を作成してもよい。この場合、当該候補群がユーザに提供され、変更部３２は、当該候補群の中からユーザによって選択された候補を変更後のプログラム箇所として識別する。
【００７９】
制御部３４は、機器１２の各部の動作を制御するように構成されている。例えば、制御部３４は、プログラムの実行、通信部２４による通信の制御、ＵＩ部２６を用いた情報の通知（例えば情報の表示及び音声出力等）の制御、ＵＩ部２６を用いて機器１２に入力された情報の受け付け、記憶部２８への情報の書き込み、及び、記憶部２８からの情報の読み出し等を行う。
【００８０】
また、制御部３４は、設定変更の対象となるプログラム箇所の現在の設定情報の通知を制御するように構成されている。制御部３４は、プログラム箇所の設定情報を表す文字列をＵＩ部２６の表示部に表示させてもよいし、プログラム箇所の設定情報を表す図形を表示部に表示させてもよい。
【００８１】
プログラム箇所の変更処理は、端末装置１０の変更部２０によって行われてもよいし、機器１２の変更部３２によって行われてもよい。変更処理が端末装置１０の変更部２０によって行われる場合、機器１２に変更部３２は設けられていなくてもよい。同様に、変更処理は機器１２の変更部３２によって行われる場合、端末装置１０に変更部２０は設けられていなくてもよい。また、端末装置１０に記憶されているプログラムに対する変更処理は、端末装置１０の変更部２０によって行われ、機器１２に記憶されているプログラムに対する変更処理は、機器１２の変更部３２によって行われてもよい。
【００８２】
以下、図４を参照して、機器１２の一例としてのロボットについて詳しく説明する。図４は、ロボットの外観を示す。ロボット１２Ａは、機器１２の一例に相当する。
【００８３】
ロボット１２Ａは、一例として人型のロボットである。もちろん、ロボット１２Ａは、人型以外のロボットであってもよい。図４に示す例では、ロボット１２Ａは、胴体部３６と、胴体部３６上に設けられた頭部３８と、胴体部３６の下部に設けられた脚部４０と、胴体部３６の両側部にそれぞれ設けられた腕部４２と、各腕部４２の先端に設けられた指部４４と、を含む。
【００８４】
ロボット１２Ａは、例えば、視覚センサ、聴覚センサ、触覚センサ、味覚センサ及び嗅覚センサの中の少なくとも１つのセンサを有し、人の五感に相当する視覚、聴覚、触覚、味覚及び嗅覚の中の少なくとも１つの感覚に関する能力を有していてもよい。ロボット１２Ａは、脳波、脈波又は指紋等の生体情報を検知する機能を有していてもよい。頭部３８、腕部４２及び指部４４が、人のように反応して動いてもよい。
【００８５】
脚部４０は移動手段の一例に相当し、例えば、モータ等の駆動原からの駆動力によって駆動するように構成されている。ロボット１２Ａは、脚部４０によって移動できる。脚部４０は、人の足のような形状を有していてもよいし、ローラ又はタイヤ等であってもよいし、別の形状を有していてもよい。ロボット１２Ａは、脚部４０以外の移動手段として、例えば、飛行するための構成（例えばプロペラ、羽、飛行用のエンジン等）を有していてもよいし、水中を移動するための構成（例えば水中移動用のエンジン等）を有していてもよい。もちろん、ロボット１２Ａは、移動手段を有していなくてもよい。
【００８６】
ロボット１２Ａは、腕部４２や指部４４によって、物体を掴んだり操作したりする機能を有していてもよいし、物体を掴んだり抱えたりしながら移動する機能を有していてもよい。また、ロボット１２Ａは、音声を発生する機能を有していてもよい。ロボット１２Ａは、表示部４８を有していてもよい。表示部４８には、各種の画像及びメッセージ等が表示される。表示部４８は、操作部を兼ねたユーザインターフェース（例えばタッチパネル等）であってもよい。ロボット１２Ａは、画像を投影する機能を有していてもよいし、画像を撮影する機能を有していてもよい。ロボット１２Ａは、ロボット１２Ａに入力された音声に基づいて、当該音声を発したユーザを識別する機能を有していてもよい。
【００８７】
また、上述したパーソナルアシスタントがロボット１２Ａに搭載されて、当該パーソナルアシスタントがロボット１２Ａを制御してもよいし、ユーザとの間でメッセージをやり取りしてもよい。
【００８８】
また、ロボット１２Ａは、他の機器１２を制御してもよいし、他の機器１２を操作してもよい。その制御及びその操作のために、ロボット１２Ａに搭載されているパーソナルアシスタントが用いられてもよい。また、ロボット１２Ａは、インターネット等を利用することで、各種の情報を取得してもよい。
【００８９】
以下、図５を参照して、機器１２の一例としてのスピーカ装置について詳しく説明する。図５は、スピーカ装置の外観を示す。スピーカ装置１２Ｂは、機器１２の一例に相当する。
【００９０】
スピーカ装置１２Ｂは、いわゆるスマートスピーカであり、通信機能と音声によるアシスト機能とを有する。スピーカ装置１２Ｂは、柱状の本体部５０を含む。本体部５０の側面には、マイク５２、スピーカ５４、表示部５６、及び、発光部５８，６０が設けられている。また、本体部５０の上面には、センサ６２が設けられている。なお、本体部５０の形状は、図５に示されている形状に限定されるものではない。マイク５２とスピーカ５４を備えたスピーカ装置であれば、その形状は、どのような形状であってもよい。また、マイク５２、スピーカ５４、表示部５６、発光部５８，６０、及び、センサ６２は、図５に示されている位置以外の位置に配置されてもよい。
【００９１】
マイク５２は、集音装置として機能し、スピーカ装置１２Ｂの周囲の音を集音する。例えば、ユーザの音声がマイク５２によって集音される。
【００９２】
パーソナルアシスタントがスピーカ装置１２Ｂに搭載されている場合において、ユーザがパーソナルアシスタントと対話している場合、スピーカ５４からパーソナルアシスタントの発言内容が音声として発せられる。また、音楽、テレビの音声及びラジオの音声等が、スピーカ５４から発せられてもよい。
【００９３】
表示部５６は、表示装置である。表示部５６には、各種の画像及びメッセージ等が表示される。表示部５６は、操作部を兼ねたユーザインターフェース（例えばタッチパネル等）であってもよい。
【００９４】
発光部５８は、１又は複数の光源（例えば光源６４，６６，６８）を含み、スピーカ装置１２Ｂに搭載されているパーソナルアシスタントの設定内容に応じた発光の仕方に従って発光する。例えば、年齢、性別、職業又は性格等が、設定項目としてパーソナルアシスタントに設定される。パーソナルアシスタントは、その設定項目に従って、ユーザに対して回答したり、作業を実行したりする。例えば、職業の設定項目として医師が設定されている場合、光源６４，６８が青色に発光し、光源６６が黄色に発光する。別の設定項目が設定された場合、発光部５８は、その設定された内容に応じた発光の仕方に従って発光する。
【００９５】
発光部６０は、１又は複数の光源（例えば光源７０，７２，７４）を含み、スピーカ装置１２Ｂに搭載されているパーソナルアシスタントにログインしているユーザアカウントに応じた発光の仕方に従って発光する。例えば、あるユーザが、スピーカ装置１２Ｂに搭載されているパーソナルアシスタントにログインしている場合、光源７０，７４が青色に発光し、光源７２が黄色に発光する。別のユーザがパーソナルアシスタントにログインしている場合、発光部６０は、そのユーザに応じた発光の仕方に従って発光する。
【００９６】
なお、発光部５８，６０は区別されずに本体部５０に設けられてもよい。例えば、発光部５８，６０に含まれる全光源を用いて、パーソナルアシスタントの設定内容とユーザアカウントが表現されてもよい。また、各光源の発光パターン（例えば、点滅の仕方、時間の長さ等）によって、パーソナルアシスタントの設定内容とユーザアカウントが表現されてもよい。
【００９７】
センサ６２は、ユーザのジェスチャーを検知する。スピーカ装置１２Ｂは、検知されたジェスチャーに従った処理を実行する。例えば、スピーカ装置１２Ｂは、検知されたジェスチャーに従って、自装置にて処理を実行してもよいし、他の機器１２の動作を制御してもよい。
【００９８】
また、スピーカ装置１２Ｂに、他の機器１２が接続されてもよい。この場合、スピーカ装置１２Ｂは中継器として用いられてもよい。スピーカ装置１２Ｂは、例えば、当該スピーカ装置１２Ｂに接続されている他の機器１２（例えば当該他の機器１２が有するハードウェア、又は、当該他の機器１２にインストールされているソフトウェア）を制御してもよい。また、スピーカ装置１２Ｂは、インターネット等を利用することで、各種の情報を取得してもよい。スピーカ装置１２Ｂは、サーバとして機能してもよいし、データの管理等を行ってもよい。スピーカ装置１２Ｂは、屋内（例えば、部屋の由佳、天井又はテーブル等）に設置されてもよいし、屋外に設置されてもよい。また、スピーカ装置１２Ｂは、移動可能な機器（例えば自動式の機器）であってもよい。
【００９９】
以下、本実施形態に係る情報処理システムによる処理について詳しく説明する。本実施形態では、端末装置１０に記憶されているプログラム箇所が変更されてもよいし、機器１２に記憶されているプログラム箇所が変更されてもよい。端末装置１０に記憶されているプログラム箇所が変更される場合、その設定変更の対象となるプログラム箇所は、端末装置１０に接続されている機器１２を制御するためのプログラムであってもよいし、機器１２を制御するためではないプログラムであってもよい。また、機器１２に記憶されているプログラム箇所が変更される場合、その設定変更の対象となるプログラム箇所は、当該機器１２を制御するためのプログラムであってもよいし、当該機器１２に接続されている他の機器１２を制御するためのプログラムであってもよい。以下では一例として、ロボット１２Ａを制御するためのプログラム箇所を変更する場合の処理について説明する。また、そのプログラム箇所はロボット１２Ａに記憶されているものとする。
【０１００】
ユーザは、端末装置１０を操作することで、端末装置１０とロボット１２Ａとの接続を指示する。端末装置１０の制御部２２は、その指示に従ってロボット１２Ａに対して接続要求を示す情報を送信することで、端末装置１０とロボット１２Ａとの間で通信を確立させる。
【０１０１】
端末装置１０とロボット１２Ａとの間で通信が確立された場合、端末装置１０の制御部２２は、ロボット１２Ａに搭載されているパーソナルアシスタントとユーザとの間でメッセージをやり取りするための画面を、端末装置１０のＵＩ部１６の表示部に表示させる。図６は、その画面の一例を示す。
【０１０２】
端末装置１０の制御部２２は、ＵＩ部１６の表示部に画面７６を表示させ、その画面７６に各種の情報を表示させる。画面７６は、ユーザがパーソナルアシスタントと対話するためのユーザインターフェース（会話型のユーザインターフェース）である。画面７６には、ユーザが端末装置１０に入力した情報（例えば文字列及び画像等）と、パーソナルアシスタントの発言内容を示す情報（例えば文字列及び画像等）が表示される。ユーザとパーソナルアシスタントとの間の対話は、いわゆるチャット形式の対話（つまり、ユーザとパーソナルアシスタントが互いに発言しながら対話が進む形式）である。
【０１０３】
例えば、ユーザが画面７６上で端末装置１０に情報を入力した場合、端末装置１０は、その情報をロボット１２Ａに送信する。ロボット１２Ａに搭載されているパーソナルアシスタント（例えばチャットボット）は、端末装置１０から送られてきた情報を解析することで、ユーザの発言内容を認識し、ユーザの発言内容に対する回答等の発言内容を作成する。ロボット１２Ａは、パーソナルアシスタントの発言内容を示す情報を端末装置１０に送信する。端末装置１０の制御部２２は、その情報をパーソナルアシスタントの発言内容として画面７６に表示させる。
【０１０４】
端末装置１０の制御部２２は、画面７６において、ユーザに紐付けられた画像７８（例えばアイコン又は写真等）をユーザ用の表示エリアに表示させる。同様に、制御部２２は、ロボット１２Ａに搭載されているパーソナルアシスタント（例えばチャットボット）に紐付けられた画像８０（例えばアイコン等）をパーソナルアシスタント用の表示エリアに表示させる。画像に代えて又は画像と共に、ユーザを識別するための文字列、及び、パーソナルアシスタントを識別するための文字列が表示されてもよい。
【０１０５】
画面７６上にて、ユーザとパーソナルアシスタント（チャットボット）との間で対話が行われる。その対話が行われた場合、制御部２２は、ユーザの発言内容を画像７８に紐付けて画面７６に表示させ、パーソナルアシスタントの発言内容を画像８０に紐付けて画面７６に表示させる。ユーザの発言内容がパーソナルアシスタントによって認識された場合、その発言内容はパーソナルアシスタントによって読まれたとして扱われ、その発言内容がパーソナルアシスタントによって読まれたことを示す情報（例えば文字列「既読」等）が、ユーザの発言内容に紐付けて表示される。また、パーソナルアシスタントの発言内容がユーザによって読まれた場合（例えば、ユーザがその発言内容を画面７６上で指定した場合）、その発言内容はユーザによって読まれたとして扱われ、その発言内容がユーザによって読まれたことを示す情報が、パーソナルアシスタントの発言内容に紐付けて表示される。
【０１０６】
なお、ユーザとパーソナルアシスタントとの間の対話に、他のユーザが参加してもよいし、他のパーソナルアシスタントが参加してもよい。
【０１０７】
ユーザは、ＵＩ部１６の操作部を構成するキーボード等によって情報を端末装置１０に入力することで、発言内容を端末装置１０に入力してもよいし、音声によって発言内容を端末装置１０に入力してもよいし、ジェスチャーによって発言内容を端末装置１０に入力してもよい。ジェスチャーは、例えば、端末装置１０に設けられているカメラ、端末装置１０の周囲に設けられているカメラ、又は、機器１２に設けられているカメラ等によって撮影される。また、パーソナルアシスタントの発言内容が、端末装置１０又はロボット１２Ａから音声によって発せられてもよいし、パーソナルアシスタントのジェスチャーによって表現されてもよい。また、パーソナルアシスタントの発言内容は画面７６に表示されずに、ロボット１２ＡのＵＩ部２６の表示部（例えば表示部４８）に表示されてもよい。
【０１０８】
対話に音声又はジェスチャーが用いられる場合、画面７６は表示されなくてもよい。もちろん、画面７６がＵＩ部１６の表示部に表示され、音声の内容及びジェスチャーの内容が、画面７６に表示されてもよい。
【０１０９】
画面７６上にて、ユーザによってプログラム箇所の設定変更の要求が与えられる。例えば、発言内容８２のように、ユーザがプログラム箇所の設定変更の要求を与えた場合、発言内容８２を示す情報が、端末装置１０からロボット１２Ａに送信される。ロボット１２Ａに搭載されているパーソナルアシスタントは、その発言内容８２を解析し、回答を含む発言内容８４を作成する。その発言内容８４を示す情報は、ロボット１２Ａから端末装置１０に送信され、画面７６に表示される。発言内容の表示制御は、端末装置１０の制御部２２によって行われる。以下の対話においても同様である。
【０１１０】
発言内容８６のように、ユーザが、設定変更の対象となるプログラム箇所を識別するためのプログラム識別情報を入力した場合、パーソナルアシスタントは、そのプログラム識別情報に紐付けられているプログラム箇所を特定する。例えば、パーソナルアシスタントは、ロボット１２Ａの記憶部２８に記憶されているプログラム群の中から、ユーザによって指定されたプログラム識別情報が紐付けられているプログラム箇所を特定する。図６に示す例では、「会議の司会進行の仕方」を実行するためのプログラム箇所がユーザによって指定されているため、パーソナルアシスタントは、当該プログラム箇所を特定する。なお、プログラム箇所の特定は、ロボット１２Ａの制御部３４によって行われてもよい。
【０１１１】
上記のプログラム箇所の現状の設定内容を示す情報（設定情報）が、ロボット１２Ａから端末装置１０に送信され、その情報が、ロボット１２Ａの発言内容８８として画面７６に表示される。
【０１１２】
また、現状の設定内容を表すブロック図９０が、ロボット１２Ａの発言として画面７６に表示される。ブロック図９０は、プログラム箇所「会議の司会進行の仕方」の表現形式の一例であり、処理が紐付けられた図形（例えばノード）の集合である。例えば、ブロック図９０は、図形９０ａ，９０ｂ，９０ｃ，９０ｄを含む。図形９０ａ，９０ｂ，９０ｃ，９０ｄはそれぞれ別々の処理を表す図形である。図形同士は、処理の流れを表す矢印等の線によって繋げられている。
【０１１３】
例えば、図形９０ａと図形９０ｂが、図形９０ａから図形９０ｂへと向かう矢印によって繋げられている。図形９０ｂと図形９０ｃが、図形９０ｂから図形９０ｃへと向かう矢印によって繋げられている。図形９０ｂと図形９０ｄが、図形９０ｂから図形９０ｄへの向かう矢印によって繋げられている。図形９０ｄと図形９０ａが、図形９０ｄから図形９０ａへと向かう矢印によって繋げられている。この例では、図形９０ａに紐付けられた処理が実行され、その処理結果が、図形９０ｂに紐付けられた処理に渡される。図形９０ｂに紐付けられた処理は、その処理結果を用いて実行される処理である。同様に、図形９０９ｂに紐付けられた処理の結果が、図形９０ｃ，９０ｄのそれぞれに紐付けられた処理に渡されて、図形９０ｃ、９０ｄのそれぞれに紐付けられた処理が実行される。また、図形９０ｄに紐付けられた処理の結果は、図形９０ａに紐付けられた処理に渡される。
【０１１４】
なお、プログラム箇所は、ソースコードの表現形式に従って表現されてロボット１２Ａに記憶されていてもよいし、ブロック図の表現形式に従って表現されてロボット１２Ａに記憶されていてもよい。端末装置１０及び他の機器１２に記憶されているプログラム箇所についても同様である。
【０１１５】
プログラム箇所がソースコードの表現形式に従って表現されて記憶されている場合、プログラム箇所の表現形式がソースコードからブロック図の表現形式に変換され、変換後のブロック図が画面７６に表示されてもよい。同様に、プログラム箇所がブロック図の表現形式に従って表現されて記憶されている場合、プログラム箇所の表現形式がブロック図からソースコードの表現形式に変換され、変換後のソースコードが画面７６に表示されてもよい。その変換処理は、端末装置１０の制御部２２によって行われてもよいし、ロボット１２Ａの制御部３４によって行われてもよい。例えば、ソースコードとしての文字列によって表現された処理と、図形によって表現された処理とが互いに対応付けられており、各処理の対応関係を示す情報が、端末装置１０及び機器１２に記憶されている。制御部２２又は制御部３４は、その対応関係を示す情報を参照することで、ソースコードとブロック図とを互いに変換する。なお、対応関係を示す情報は、サーバ等の外部装置に記憶されていてもよい。この場合、制御部２２又は請求項３４は、当該外部装置から対応関係を示す情報を取得して変換処理を行う。
【０１１６】
図６に示されているブロック図９０は、ブロック図の表現形式に従って表現されてロボット１２Ａに記憶されていてもよいし、ソースコードの表現形式に従って表現されたプログラム箇所がブロック図の表現形式に変換されることで生成された図であってもよい。
【０１１７】
以下、図７を参照して、対話の続きについて説明する。図７は、画面の一例を示す。発言内容９２のように、ユーザが、プログラム箇所「会議の司会進行の仕方」の具体的な変更内容を入力した場合、その変更内容を示す情報は、端末装置１０からロボット１２Ａに送信される。ロボット１２Ａの変更部３２は、その変更内容を解釈し、その解釈結果に基づいて、当該プログラム箇所を変更する。その解釈には、例えば、形態素解析等の自然言語処理が用いられる。なお、ロボット１２Ａに搭載されているパーソナルアシスタントが、設定内容を解釈してもよい。
【０１１８】
例えば、変更部３２は、設定変更の要求に従って、プログラム箇所「会議の司会進行の仕方」において変更箇所を特定し、ユーザが指定した変更内容に対応する処理をその変更箇所に追加したり、その変更箇所の処理を変更したり、その変更箇所の処理を削除したりする。なお、設定内容の変更処理は、端末装置１０の変更部２０によって行われてもよい。
【０１１９】
ユーザによって設定変更の要求が与えられた場合、設定変更を実行する旨を示す情報が、パーソナルアシスタントの発言内容９４として画面７６に表示される。また、設定変更の要求に従った変更が反映されたプログラム箇所が画面７６に表示される。図７に示す例では、変更が反映されたプログラム箇所を表すブロック図９６が、画面７６に表示されている。変更内容に対応する処理に紐付けられた図形９０ｅが、元のブロック図９０に新たに追加されることで、ブロック図９６が作成されている。このブロック図９６は、制御部２２又は請求項３４によって作成される。
【０１２０】
図形９０ｅは、「１０分間沈黙だった場合、会話を促すように発言する」という処理に紐付けられた図形であり、その処理の流れを示す矢印がブロック図９６中に描画されている。
【０１２１】
パーソナルアシスタントの発言内容９８のように、上書き保存を行うか否かをユーザに問い合わせるためのメッセージが画面７６に表示される。その発言内容９８に対して、ユーザが、発言内容１００のように上書き保存を指示した場合、ロボット１２Ａの変更部３２は、変更が反映されたプログラム箇所を、変更が反映される前のプログラム箇所に上書きして記憶部２８に記憶させる。上書き保存が完了すると、その旨を示す発言内容１０２が画面７６に表示される。もちろん、変更が反映されたプログラム箇所と、変更が反映される前のプログラム箇所が、別々に記憶部２８に記憶されてもよい。
【０１２２】
変更が反映されたプログラム箇所は、ソースコードの表現形式で表現された状態で記憶部２８に記憶されてもよいし、ブロック図の表現形式で表現された状態で記憶部２８に記憶されてもよい。
【０１２３】
ロボット１２Ａは、パーソナルアシスタントによる制御の下、首振り、手振り及び発光音等によって、反応を示してもよい。例えば、ロボット１２Ａは、プログラム箇所の変更が可能である場合、首を縦に振り、プログラム箇所の変更が不可能である場合、首を横に振ってもよい。また、変更が反映されたプログラム箇所が上書き保存された場合、ロボット１２Ａは、首を縦に振ってもよい。
【０１２４】
なお、音声又はジェスチャーによって、ユーザとパーソナルアシスタントとの間でメッセージがやり取りされた場合、画面７６は端末装置１０に表示されなくてもよい。この場合においても、ユーザが指定した場合、又は、プログラム箇所の設定変更が完了した場合等に、それまでのメッセージのやり取りを示す画面７６が端末装置１０に表示されてもよい。
【０１２５】
以上のように、本実施形態によれば、会話型のユーザインターフェースを用いてプログラミングが行われる。これにより、ユーザは対話相手と対話しながら簡易にプログラミングを行うことが可能となる。
【０１２６】
なお、変更対象のプログラム箇所が、コンパイル言語によって記述されている場合、ロボット１２Ａの制御部３４は、変更がプログラム箇所に反映された後、その変更が反映されたプログラム箇所が実行される前に、その変更が反映されたプログラム箇所をコンパイルすることで機械語に変換してもよい。予めコンパイルを実行しておくことで、プログラム箇所の実行時にコンパイルを実行する場合と比べて、その実行時に要する時間を短縮することができる。
【０１２７】
上記の例では、機器１２に記憶されているプログラム箇所が変更されているが、端末装置１０に記憶されているプログラム箇所が変更されてもよい。この場合、端末装置１０は機器１２に接続される必要はない。端末装置１０に搭載されているパーソナルアシスタントとユーザとの間でメッセージがやり取りされることで、端末装置１０に記憶されているプログラム箇所が変更される。画面７６は、そのメッセージをやり取りするためのユーザインターフェースとして用いられる。この場合においても、音声又はジェスチャーによって、ユーザとパーソナルアシスタントとの間でメッセージのやり取りが行われてもよい。この場合、画面７６は表示されてもよいし、表示されずに後になって表示されてもよい。
【０１２８】
設定変更の内容が、機器１２（例えばロボット１２Ａ）によって実行不可能な場合、端末装置１０の制御部２２は、その旨を示す情報をＵＩ部１６の表示部に表示させてもよい。例えば、ロボット１２Ａの制御部３４は、ロボット１２Ａが設定変更の内容に対応する機能を有しているか否かを判断する。ロボット１２Ａが当該機能を有していない場合、制御部３４は、その旨を示す情報を端末装置１０に送信する。端末装置１０の制御部２２は、その旨を示す情報を画面７６に表示させる。例えば、ロボット１２Ａの記憶部２８には、ロボット１２Ａが有する機能を示す情報が記憶されており、制御部３４は、その情報を参照することで、ロボット１２Ａが設定変更の内容に対応する機能を有しているか否かを判断する。もちろん、端末装置１０の制御部２２が、上記の判断を行ってもよい。また、端末装置１０に記憶されているプログラム箇所の設定変更の要求が与えられた場合において、端末装置１０が設定変更の内容に対応する機能を有していない場合に、制御部２２は、設定変更の内容が端末装置１０によって実行不可能な旨を示す情報を、ＵＩ部１６の表示部に表示させてもよい。
【０１２９】
以下、変形例について説明する。
【０１３０】
（変形例１）
変形例１について説明する。変形例１では、設定変更の内容に対応する処理の１又は複数の候補がユーザに通知される。１又は複数の候補の中からユーザによって選択された候補が、プログラム箇所に新たに追加されたり、プログラム箇所に含まれる処理が、その候補に変更されたりする。
【０１３１】
以下、図８を参照して、変形例１について詳しく説明する。図８は、画面の一例を示す。ここでは、上述した実施形態と同様に、ロボット１２Ａに記憶されているプログラム箇所「会議の司会進行の仕方」が変更されるものとする。
【０１３２】
発言内容９２のように、ユーザが、プログラム箇所「会議の司会進行の仕方」の具体的な変更内容を入力した場合、その変更内容を示す情報は、端末装置１０からロボット１２Ａに送信される。ロボット１２Ａの変更部３２は、その変更内容を解釈し、その変更内容に対応する処理の１又は複数の候補を特定する。変更部３２は、解釈結果が示す内容と同一の処理を候補として特定してもよいし、その内容と類似する処理を候補として特定してもよい。各候補は、ソースコードの表現形式に従って表現されていてもよいし、処理に紐付けられた図形（例えばノード）の表現形式に従って表現されていてもよい。その解釈には、例えば、形態素解析等の自然言語処理が用いられる。なお、ロボット１２Ａに搭載されているパーソナルアシスタントが、変更内容を解釈してもよい。各処理の１又は複数の候補を示す情報が、機器１２に予め記憶されており、変更部３２は、その情報を参照することで候補を特定する。
【０１３３】
各処理の候補を示す情報（ソースコード又は図形で表現された情報）が、ロボット１２Ａに予め記憶されている場合、変更部３２は、ロボット１２Ａに記憶されている候補群の中から、変更内容に対応する処理の１又は複数の候補を特定する。別の例として、変更部３２は、変更内容に対応する処理の候補を作成してもよい。
【０１３４】
例えば、「１０分間沈黙だった場合、会話を促すように発言する」という処理の候補を示す情報がロボット１２Ａに予め記憶されている場合、変更部３２は、ロボット１２Ａに記憶されている候補群の中から、当該候補を特定する。別の例として、変更部３２は、その候補を作成してもよい。
【０１３５】
端末装置１０の変更部２０が、変更内容を解釈し、その変更内容に対応する処理の１又は複数の候補を特定してもよい。例えば、各処理の１又は複数の候補を示す情報が、端末装置１０に予め記憶されており、変更部２０は、その情報を参照することで候補を特定してもよい。
【０１３６】
特定された１又は複数の候補を示す情報（ソースコード又は図形で表現された情報）は、ロボット１２Ａから端末装置１０に送信される。端末装置１０の制御部２２は、その情報を画面７６に表示させる。例えば、パーソナルアシスタントの発言内容１０４に続けて、候補を示す情報が表示される。ここでは、図形（例えばノード）で表現された候補群１０６が表示されている。もちろん、ソースコードで表現された候補群が表示されてもよい。
【０１３７】
ユーザが、発言内容１０８によって候補群１０６の中から特定の候補（例えば図形９０ｅ）を選択し、元のブロック図９０の中の変更箇所を指定した場合、その選択及び指定を示す情報が、端末装置１０からロボット１２Ａに送信される。変更部３２は、その選択及び指定に従って、図形９０ｅに紐付けられた処理を、元のブロック図９０によって表現されたプログラム箇所の中の変更箇所に追加する。
【０１３８】
画面７６には、設定変更を実行する旨を示す情報が、パーソナルアシスタントの発言内容１１０として表示される。また、変更が反映されたプログラム箇所が画面７６に表示される。例えば、変更が反映されたプログラム箇所を表すブロック図１１２が、画面７６に表示されている。変更内容に対応する処理に紐付けられた図形９０ｅが、元のブロック図９０に新たに追加されることで、ブロック図１１２が作成されている。このブロック図１１２は、制御部２２又は制御部３４によって作成される。
【０１３９】
変形例１によれば、変更内容に対応する処理の候補がユーザに提示されるので、簡易にプログラム箇所を変更することができる。
【０１４０】
なお、候補を通知することができない場合（例えば、候補がロボット１２Ａに記憶されていない場合、及び、候補を作成することができない場合等）、ロボット１２Ａは、首を横に振る等して、候補を通知することができない旨をユーザに伝えてもよい。
【０１４１】
端末装置１０に記憶されているプログラム箇所が変更される場合も、上記の例と同様に、変更内容に対応する処理の候補がユーザに提示される。
【０１４２】
（変形例２）
変形例２について説明する。変形例２では、設定変更の要求に従った変更が反映されたプログラム箇所の候補がユーザに通知される。１又は複数の候補の中からユーザによって選択された候補が、変更が反映されたプログラム箇所として記憶される。
【０１４３】
以下、図９を参照して、変形例２について詳しく説明する。図９は、画面の一例を示す。ここでは、上述した実施形態と同様に、ロボット１２Ａに記憶されているプログラム箇所「会議の司会進行の仕方」の設定内容が変更されるものする。
【０１４４】
発言内容９２のように、ユーザが、プログラム箇所「会議の司会進行の仕方」の具体的な変更内容を入力した場合、その設定変更の内容を示す情報は、端末装置１０からロボット１２Ａに送信される。ロボット１２Ａの変更部３２は、その変更内容を解釈し、その解釈結果に基づいて、当該プログラム箇所の設定内容を変更することで、変更が反映されたプログラム箇所の１又は複数の候補を作成する。各候補は、ソースコードの形式で表現されていてもよいし、処理に紐付けられた図形（例えばノード）の形式で表現されていてもよい。その解釈には、例えば、形態素解析等の自然言語処理が用いられる。なお、ロボット１２Ａに搭載されているパーソナルアシスタントが、設定内容を解釈してもよい。
【０１４５】
例えば、変更部３２は、変更内容の解釈結果に従って、プログラム箇所「会議の司会進行の仕方」において変更箇所を特定し、ユーザが指定した変更内容に対応する処理をその変更箇所に追加したり、その変更箇所の処理を変更したり、その変更箇所の処理を削除したりすることで、プログラム箇所の１又は複数の候補を作成する。なお、設定内容の変更処理は、端末装置１０の変更部２０によって行われてもよい。
【０１４６】
変更が反映されたプログラム箇所の１又は複数の候補を示す情報（ソースコード又は図形で表現された情報）が、ロボット１２Ａから端末装置１０に送信されて、画面７６に表示される。例えば、パーソナルアシスタントの発言内容１１４に続けて、候補を示す情報が表示される。ここでは、ブロック図（例えばノードの集合）で表現された候補１１６，１１８等が表示されている。もちろん、ソースコードで表現された候補群が表示されてもよい。
【０１４７】
ユーザが、発言内容１２０によって候補１１６，１１８等の中から特定の候補（例えば候補１１６）を選択した場合、その選択を示す情報が、端末装置１０からロボット１２Ａに送信される。変更部３２は、その選択に従って、候補１１６が示すプログラム箇所を、変更が反映される前のプログラム箇所に上書きして記憶部２８に記憶させる。上書き保存が完了すると、その旨を示す発言内容が画面７６に表示される。もちろん、変更が反映されたプログラム箇所と、変更が反映される前のプログラム箇所が、別々に記憶部２８に記憶されてもよい。
【０１４８】
上述した実施形態と同様に、変更が反映されたプログラム箇所は、ソースコードの形式で表現された状態で記憶部２８に記憶されてもよいし、ブロック図の形式で表現された状態で記憶部２８に記憶されてもよい。
【０１４９】
変形例２によれば、変更が反映されたプログラム箇所の候補がユーザに提示されるので、簡易にプログラム箇所を変更することができる。
【０１５０】
なお、変形例１と同様に、候補を通知することができない場合、ロボット１２Ａは、首を横に振る等して、候補を通知することができない旨をユーザに伝えてもよい。
【０１５１】
端末装置１０に記憶されているプログラム箇所が変更される場合も、上記の例と同様に、変更が反映されたプログラム箇所の１又は複数の候補がユーザに提示される
【０１５２】
（変形例３）
変形例３について説明する。変形例３では、設定変更の内容が、プログラミング言語を用いて記述された文字列によって与えられる。
【０１５３】
以下、図１０を参照して、変形例３について詳しく説明する。図１０は、画面の一例を示す。ここでは、上述した実施形態と同様に、ロボット１２Ａに記憶されているプログラム箇所「会議の司会進行の仕方」の設定内容が変更されるものとする。
【０１５４】
ユーザが、発言内容１２２のように、変更対象のプログラム箇所「会議の司会進行の仕方」を指定し、続けて、発言内容１２４のように、プログラム言語を用いて記述された設定変更の内容を入力した場合、その設定変更の内容を示す情報は、端末装置１０からロボット１２Ａに送信される。ここでは、その設定変更の内容は、ソースコードの表現形式によって表現されている。
【０１５５】
ロボット１２Ａの変更部３２は、その設定変更の内容に含まれる命令文（ソースコードで表現された文字列）に基づいて、プログラム箇所「会議の司会進行の仕方」において変更箇所を特定し、その命令文を当該プログラム箇所に追加する。
【０１５６】
変更部３２は、ソースコードの表現形式によって表現されている元のプログラム箇所に、設定変更の内容に含まれる命令文（ソースコードで表現された文字列）を追加する。これにより、変更が反映されたプログラム箇所が、ソースコードの表現形式によって表現される。制御部３４は、ソースコードの表現形式によって表現されている変更後のプログラム箇所を、図形（例えばノード）によって表現されるブロック図に変換してもよい。別の例として、変更部３２は、設定変更の内容に含まれる命令文（ソースコードで表現された文字列）を図形（例えばノード）に変換し、変換後の図形を、図形の表現形式によって表現されている変更前のプログラム箇所に追加してもよい。なお、設定内容の変更処理は、端末装置１０の変更部２０によって行われてもよい。
【０１５７】
ユーザによって設定変更の要求が与えられた場合、設定変更を実行する旨を示す情報が、パーソナルアシスタントの発言内容１２６として画面７６に表示される。また、設定変更の要求に従った変更が反映されたプログラム箇所が画面７６に表示される。図１０に示す例では、変更が反映されたプログラム箇所を表すブロック図１２８が、画面７６に表示されている。もちろん、変更が反映されたプログラム箇所が、ソースコードの表現形式によって表現されて、画面７６に表示されてもよい。
【０１５８】
上書き保存を行うか否かをユーザに問い合わせるための発言内容１３０が、画面７６に表示され、ユーザが、発言内容１３２のように上書き保存を指示した場合、ロボット１２Ａの変更部３２は、変更が反映されたプログラム箇所を、変更が反映される前のプログラム箇所に上書きして記憶部２８に記憶させる。
【０１５９】
変形例３によれば、プログラム言語を用いて表現された設定変更の内容を入力することで、簡易にプログラム箇所を変更することができる。
【０１６０】
端末装置１０に記憶されているプログラム箇所も、上記と同様にして変更されてもよい。
【０１６１】
（変形例４）
変形例４について説明する。変形例４では、プログラム箇所の送信指示に従って、プログラム箇所の設定内容が送信先に送信される。
【０１６２】
以下、図１１を参照して、変形例４について詳しく説明する。図１１は、画面の一例を示す。ここでは、上述した実施形態と同様に、ロボット１２Ａに記憶されているプログラム箇所「会議の司会進行の仕方」の設定内容が変更されるものとする。
【０１６３】
発言内容１３４のように、ユーザが、プログラム箇所「会議の司会進行の仕方」の表示指示を与えた場合、その指示を示す情報は、端末装置１０からロボット１２Ａに送信される。ロボット１２Ａの制御部３４は、ロボット１２Ａに記憶されているプログラム箇所群の中から、ユーザによって指定されたプログラム箇所を特定し、そのプログラム箇所を示す情報（ソースコード又は図形によって表現された情報）を端末装置１０に送信する。そのプログラム箇所は、画面７６に表示される。例えば、パーソナルアシスタントの発言内容１３６に続けて、ユーザによって指定されたプログラム箇所を表すブロック図１３８が表示されている。また、当該プログラム箇所がソースコードの表現形式によって表現され、発言内容１４０に続けて、当該プログラム箇所を表す命令文１４１（ソースコードで表現された文字列）が、画面７６に表示されている。
【０１６４】
発言内容１４２のように、ユーザが、送信先のアドレス（電子メールのアドレス等）を指定してプログラム箇所の送信指示を与えた場合、その送信指示を示す情報は、端末装置１０からロボット１２Ａに送信される。ロボット１２Ａの制御部３４は、その送信指示に従って、ユーザによって指定されたプログラム箇所を、ユーザによって指定されたアドレス宛に送信する。なお、端末装置１０が、プログラム箇所を送信先に送信してもよい。
【０１６５】
また、ロボット１２Ａの制御部３４は、上記の送信指示を与えたユーザアカウントとは異なるユーザアカウントが設定されている端末装置等の装置に上記のプログラム箇所を送信してもよい。例えば、ロボット１２Ａの制御部３４は、ロボット１２Ａに登録されているユーザアカウントを有するユーザの端末装置にプログラム箇所を送信する。また、ロボット１２Ａの制御部３４は、送信対象のプログラム箇所を過去に利用又は設定変更したことのあるユーザの利用履歴を管理し、そのユーザの端末装置にプログラム箇所を送信してもよい。
【０１６６】
図１１に示す例では、パーソナルアシスタントが送信指示を受けた旨を示す発言内容１４４が画面７６に表示され、その後、プログラム箇所が送信先に送信される。
【０１６７】
送信されるプログラム箇所は、ソースコードで表現されていてもよいし、ブロック図で表現されていてもよい。
【０１６８】
変形例４によれば、会話型のユーザインターフェースを用いて、プログラム箇所の送信指示を与えることができる。
【０１６９】
端末装置１０に記憶されているプログラム箇所も、上記と同様に送信先に送信されてもよい。
【０１７０】
（変形例５）
変形例５について説明する。変形例５では、設定変更の内容が、その設定変更に係る処理に紐付けられた図形によって与えられる。
【０１７１】
以下、図１２を参照して、変形例５について詳しく説明する。図１２は、画面の一例を示す。ここでは、上述した実施形態と同様に、ロボット１２Ａに記憶されているプログラム箇所「会議の司会進行の仕方」の設定内容が変更されるものとする。
【０１７２】
ユーザが、発言内容１４６のように、変更対象のプログラム箇所「会議の司会進行の仕方」を指定し、続けて、その司会進行の判断に追加する処理として、その処理に紐付けられた図形１４８を入力した場合、その設定変更の内容を示す情報は、端末装置１０からロボット１２Ａに送信される。その設定変更の内容を示す情報は、図形１４８を示す情報と、図形１４８に紐付けられた処理の追加指示を示す情報と、変更対象のプログラム箇所においてその図形１４８（つまり図形１４８に紐付けられた処理）が追加される箇所（司会進行の判断の部分）を示す情報と、を含む。
【０１７３】
ロボット１２Ａの変更部３２は、処理の追加指示に従って、その設定変更の内容に含まれる図形１４８を、プログラム箇所「会議の司会進行の仕方」の変更箇所（司会進行の判断の部分）に追加する。変更部３２は、図形の表現形式によって表現されている変更前のプログラム箇所の変更箇所に、図形１４８を追加する。なお、設定内容の変更処理は、端末装置１０の変更部２０によって行われてもよい。
【０１７４】
設定変更を実行する旨を示す情報が、パーソナルアシスタントの発言内容１５０として画面７６に表示される。また、変更が反映されたプログラム箇所が画面７６に表示される。図１２に示す例では、変更が反映されたプログラム箇所を表すブロック図１５２が、画面７６に表示されている。もちろん、変更が反映されたプログラム箇所が、ソースコードの表現形式によって表現されて画面７６に表示されてもよい。
【０１７５】
なお、変更部３２は、変更前のプログラム箇所を表すブロック図に図形１４８を追加し、追加された図形１４８と他の図形とを、処理の流れを示す矢印等によって繋げてもよい。その繋ぎ合わせは、ユーザによって行われてもよい。
【０１７６】
発言内容１５４のように、ユーザがプログラム箇所の更新（例えば上書き保存）を指示した場合、発言内容１５６のように、パーソナルアシスタントがその旨を承諾したことを示す情報が画面７６に表示される。ロボット１２Ａの変更部３２は、ブロック図１５２によって表現されているプログラム箇所を、変更が反映される前のプログラム箇所に上書きして記憶部２８に記憶させる。
【０１７７】
変形例５によれば、図形を用いて表現された設定変更の内容を入力することで、簡易にプログラム箇所を変更することができる。
【０１７８】
また、端末装置１０の制御部２２は、図１３に示すように、処理を表す図形（例えばノード）の一覧１５８を画面７６に表示させてもよい。一覧１５８は、複数の図形（例えばノード）を含む。ユーザが、その一覧１５８の中から、目的の処理に紐付けられた図形１４８を選択すると、その図形１４８に紐付けられた処理が、変更対象のプログラム箇所に追加される。このように、一覧１５８を表示することで、ユーザは、目的の処理を簡易に選択することができる。なお、一覧１５８に含まれる各図形を示す情報は、端末装置１０に記憶されていてもよいし、機器１２に記憶されていてもよい。
【０１７９】
端末装置１０に記憶されているプログラム箇所も、図形を用いて表現された設定変更の内容に従って変更されてもよい。
【０１８０】
（変形例６）
変形例６について説明する。変形例６では、変更対象のプログラム箇所の一部の処理が削除される。
【０１８１】
以下、図１４を参照して、変形例６について詳しく説明する。図１４は、画面の一例を示す。ここでは、上述した実施形態と同様に、ロボット１２Ａに記憶されているプログラム箇所「会議の司会進行の仕方」の設定内容が変更されるものとする。
【０１８２】
ユーザが、発言内容１６０のように、変更対象のプログラム箇所「会議の司会進行の仕方」を指定し、続けて、その司会進行の判断から削除する処理として、その処理に紐付けられた図形１６２を入力した場合、その設定変更の内容を示す情報は、端末装置１０からロボット１２Ａに送信される。その設定変更の内容を示す情報は、図形１６２を示す情報と、図形１６２に紐付けられた処理の削除指示を示す情報と、変更対象のプログラム箇所においてその図形１６２（つまり図形１６２に紐付けられた処理）が削除される箇所（司会進行の判断の部分）を示す情報と、を含む。
【０１８３】
ロボット１２Ａの変更部３２は、処理の削除指示に従って、その設定変更の内容に含まれる図形１６２を、プログラム箇所「会議の司会進行の仕方」の変更箇所（司会進行の判断の部分）から削除する。変更部３２は、図形の表現形式によって表現されている変更前のプログラム箇所の変更箇所から、図形１６２を削除する。なお、設定内容の変更処理は、端末装置１０の変更部２０によって行われてもよい。
【０１８４】
設定変更を実行する旨を示す情報が、パーソナルアシスタントの発言内容１６４として画面７６に表示される。また、変更が反映されたプログラム箇所が画面７６に表示される。図１４に示す例では、変更が反映されたプログラム箇所を表すブロック図１６６が、画面７６に表示されている。もちろん、変更が反映されたプログラム箇所が、ソースコードの表現形式によって表現されて画面７６に表示されてもよい。
【０１８５】
なお、変更部３２は、図形１６２が削除された後のブロック図において、図形同士を処理の流れを示す矢印等によって繋げてもよい。その繋ぎ合わせは、ユーザによって行われてもよい。
【０１８６】
発言内容１６８のように、ユーザがプログラム箇所の更新（例えば上書き保存）を指示した場合、発言内容１７０のように、パーソナルアシスタントがその旨を承諾したことを示す情報が画面７６に表示される。ロボット１２Ａの変更部３２は、ブロック図１６６によって表現されているプログラム箇所を、変更が反映される前のプログラム箇所に上書きして記憶部２８に記憶させる。
【０１８７】
以上のように、変形例６によれば、図形を用いて表現された設定変更の内容を入力することで、簡易にプログラム箇所を変更することができる。
【０１８８】
端末装置１０に記憶されているプログラム箇所も、上記の処理と同様に、図形を用いて表現された設定変更の内容によって変更されてもよい。
【０１８９】
（変形例７）
変形例７について説明する。変形例７では、プログラムを作成しているときに、動作可能な単位でプログラム部分が完成した場合、その旨が通知される。
【０１９０】
以下、図１５を参照して、変形例７について詳しく説明する。図１５は、画面の一部を示す。例えば、上述した実施形態又は変形例によってプログラム箇所が編集された場合、又は、ユーザによる指示によってプログラムが作成されている場合において、動作可能な単位でプログラム部分が完成した場合、端末装置１０の制御部２２は、その旨の通知を制御する。例えば、端末装置１０において、処理に紐付けられた複数の図形（例えばノード）同士がユーザによって繋げられることで、動作可能なプログラム部分が完成した場合、制御部２２は、その旨を通知する。
【０１９１】
具体例を挙げて説明する。例えば、「機器１２としてのロボットによって荷物を運ぶ」という動作を実行するためのプログラム部分が完成した場合、制御部２２は、そのプログラム部分によって実現される動作を、画像を用いて表現する。図１５に示す例で説明すると、画像１７２はロボットを表す画像であり、画像１７４は荷物を表す画像である。画像１７２，１７４によって、ロボットが荷物を持ち上げている様子が表現されている。画像１７２，１７４は、端末装置１０の画面７６に表示されており、上記の動作を実現するためのプログラム部分が完成した場合、制御部２２は、画面７６上にて、矢印１７６で示す方向に画像１７２，１７４を移動させる。
【０１９２】
変形例７によれば、プログラムが部分的に完成した場合に、その旨がユーザに伝えられる。また、完成した動作を画像で表現することで、プログラムが完成したことを視覚的にユーザに伝えることができる。
【０１９３】
なお、機器１２を制御するためのプログラムが部分的に完成した場合、制御部２２は、当該機器１２に紐付けられた画像によって、当該プログラムによって実現される動作を表現してもよい。例えば、ロボット１２Ａを制御するためのプログラムが部分的に完成した場合、制御部２２は、ロボット１２Ａに紐付けられた画像によって、当該プログラムによって実現される動作（例えば、ロボット１２Ａによって荷物を運ぶという動作）を表現してもよい。また、制御部２２は、ロボット１２Ａに搭載されているパーソナルアシスタントに紐付けられた画像によって、当該プログラムによって実現される動作を表現してもよい。例えば、制御部２２は、図６等に示されている画像８０の代わりに、パーソナルアシスタントの外観を表す画像を画面７６に表示させ、その画像によって、プログラムによって実現される動作を表現してもよい。
【０１９４】
また、プログラムによって機能が追加された場合、制御部２２は、その機能を、画像を用いて表現してもよい。例えば、上述した実施形態又は変形例によってプログラム箇所が編集されたことで機器１２に新たな機能が追加された場合、又は、ユーザによる指示によってプログラムが作成されたことで機器１２に新たな機能が追加された場合、制御部２２は、その機能を、画像を用いて表現する。
【０１９５】
この処理について、図１６を参照して詳しく説明する。図１６は、機器に紐付く画像の一例を示す。例えば、プログラムによって、機器１２としてのロボットに、空を飛ぶ機能が追加されたものとする。制御部２２は、プログラムの作成前又は作成中に、図１６の（ａ）に示すように、ロボットを表す画像１７８を画面７６に表示させる。そして、空を飛ぶ機能がプログラムによってロボットに追加された場合、制御部２２は、図１６の（ｂ）に示すように、その機能が追加されたロボットを表す画像１８０を、画像１７８に代えて画面７６に表示させる。追加前の画像１７８には、空を飛ぶ機能を表す羽根は表されていないが、追加後の画像１８０には羽根が表されている。こうすることで、プログラムによって新たな機能がされたことを視覚的にユーザに伝えることができる。
【０１９６】
また、上述した実施形態のように、ロボット１２Ａに搭載されているパーソナルアシスタントとユーザとの間でメッセージがやり取りされる場合、制御部２２は、当該パーソナルアシスタントに紐付けられた画像として、画像１７８を画面７６に表示させてもよい。例えば、制御部２２は、図６等に示されている画像８０の代わりに画像１７８を画面７６に表示させてもよい。この場合において、ロボット１２Ａに対して空を飛ぶ機能が追加された場合、制御部２２は、画像１７８に代えて画像１８０を画面７６に表示させてもよい。
【０１９７】
（変形例８）
変形例８について説明する。変形例８では、ユーザの発言内容によって設定変更の対象となるプログラム箇所が特定できない場合、設定変更の対象となるプログラム箇所を特定するための情報をユーザから得るための質問が、ユーザに提示される。
【０１９８】
以下、図１７を参照して、変形例８について詳しく説明する。図１７は、画面の一例を示す。ここでは、端末装置１０がロボット１２Ａに接続されて、ロボット１２Ａに搭載されているパーソナルアシスタントとユーザとの間でメッセージがやり取りされているものとする。
【０１９９】
ユーザが、パーソナルアシスタントによって設定変更の対象となるプログラム箇所を特定することができない発言内容１８２を入力した場合、パーソナルアシスタントは、質問を繰り返す。例えば、発言内容１８２には、「たまには」という表現が含まれており、この表現では、パーソナルアシスタントはプログラム箇所を特定することができない。この場合、パーソナルアシスタントは、発言内容１８４のように、その曖昧な表現の意味をユーザに問い合わせるためのメッセージを発する。この質問に対して、発言内容１８６のようにユーザが返答し、パーソナルアシスタントが、その返答の内容によってプログラム箇所を特定することができた場合、プログラム箇所が特定されたことを示す発言内容１８８が画面７６に表示される。このように、プログラム箇所が特定されるまで、パーソナルアシスタントは質問を繰り返す。
【０２００】
また、パーソナルアシスタントは、ユーザが回答すべき内容の候補の一覧を作成し、制御部２２は、その一覧を画面７６に表示させてもよい。別の例として、パーソナルアシスタントは、リンクによって表される回答の候補の一覧を作成し、制御部２２は、その候補の一覧を画面７６に表示させてもよい。別の例として、パーソナルアシスタントは、ユーザの属性（例えば、性別、職業、年齢等）、又は、機器１２等の使用履歴に基づいて、回答の候補を作成してもよい。パーソナルアシスタントは、例えば、カメラによる撮影によって生成された画像、マイクによって収集された音声、又は、ユーザに紐付けられた端末装置１０に記憶されている情報等からユーザの属性を示す情報を取得する。また、パーソナルアシスタントは、ユーザの生体情報（例えば、脳波、脈波、指紋等）を利用することで、ユーザの属性を示す情報を取得してもよい。
【０２０１】
変形例８によれば、ユーザの発言内容によってプログラム箇所が特定されない場合であっても、そのプログラム箇所を特定するための質問がユーザに提示されるので、そのプログラム箇所を特定することが可能となる。
【０２０２】
（変形例９）
変形例９について説明する。変形例９では、機器１２を用いて実行可能な機能が端末装置１０に通知される。
【０２０３】
例えば、あるユーザが機器１２に対して機能を設定した場合、当該機器１２は、当該機器１２に接続されている他のユーザの端末装置１０に、当該機能を示す情報を送信する。当該他のユーザの端末装置１０の制御部２２は、当該機能を示す情報をＵＩ部１６に表示させる。例えば、あるユーザが、機器１２にて実行されるプログラムを設定することで当該機器１２に機能を設定し、他のユーザの端末装置１０が当該機器１２に接続した場合、当該機能を示す情報が当該端末装置１０に表示される。このように、あるユーザが機器１２に設定した機能が、当該機器１２に接続された他のユーザの端末装置１０に通知される。また、あるユーザアカウントを有するユーザによって機器１２に設定された機能が、他のユーザアカウントを有するユーザの端末装置１０に通知されてもよい。
【０２０４】
例えば、あるユーザが、ロボット１２Ａに対して「会議の司会進行の仕方」に関するプログラムを設定することで、「会議の司会進行の仕方」という機能をロボット１２Ａに設定した場合、ロボット１２Ａに接続されている他のユーザの端末装置１０に当該機能が通知される。
【０２０５】
また、機器１２にハードウェア又はソフトウェアが追加された場合、当該機器１２は、当該機器１２に接続されている端末装置１０に、当該機器１２のスペックが向上したことを示す情報を送信してもよい。この場合、端末装置１０の制御部２２は、当該情報をＵＩ部１６に表示させる。例えば、機器１２は、ハードウェア又はソフトウェアの追加によって実行可能になった機能を示す情報を端末装置１０に送信し、制御部２２は、当該機能を示す情報をＵＩ部１６に表示させる。
【０２０６】
例えば、飛行機能を実現するための羽がロボット１２Ａに追加されることで、ロボット１２Ａが飛行機能を有することになった場合、ロボット１２Ａに接続されている端末装置１０に飛行機能が通知される。
【０２０７】
また、機器１２の制御部３４は、ユーザ毎に、当該機器１２に設定されている機能（例えばプログラムによって設定された機能）の利用履歴を管理してもよい。当該機器１２に端末装置１０が接続された場合、制御部３４は、当該端末装置１０を利用するユーザを識別する情報を当該端末装置１０から取得し、当該ユーザの利用履歴を参照することで、当該ユーザが実行指示を与えると想定される機能、又は、当該ユーザに役立つと想定される機能を予測する。機器１２は、その予測結果を示す情報を端末装置１０に送信する。端末装置１０の制御部２２は、その予測結果を示す情報をＵＩ部１６に表示させる。
【０２０８】
変形例９によれば、機器１２を用いて実行可能な機能をユーザに通知することが可能となる。
【０２０９】
（変形例１０）
変形例１０について説明する。変形例１０では、設定変更の要求に従った変更が反映されたプログラム箇所の内容が、既に設定されている別のプログラム箇所の内容と矛盾する場合、警告処理が実行される。
【０２１０】
以下、変形例１０について詳しく説明する。例えば、「扉が開いたことがセンサによって検知された場合、照明装置を点灯させる」という点灯機能を実行するためのプログラム箇所が作成されて、機器１２としての照明装置に記憶され、これにより、当該点灯機能が照明装置に設定されているものとする。この場合において、「扉が開いたことがセンサによって検知された場合、照明装置を消灯する」という消灯機能を実行するためのプログラム箇所が作成されて、同一の照明装置に記憶され、これにより、当該消灯機能が照明装置に設定されようとしているものとする。
【０２１１】
例えば、ユーザＡが、端末装置１０を用いて、点灯機能を実行するためのプログラム箇所を作成して照明装置に記憶させることで、当該点灯機能を照明装置に設定しているものとする。この場合において、ユーザＡ又は別のユーザＢが、端末装置１０を用いて、消灯機能を実行するためのプログラム箇所を作成し、当該プログラム箇所を同一の照明装置に記憶させる指示を与えたとする。
【０２１２】
照明装置の制御部３４は、当該照明装置に既に設定されている機能と、新たに設定される機能とを比較し、それらの機能が互いに矛盾するか否かを判断する。それらの機能が互いに矛盾していない場合、制御部３４は、新たな機能を実行するためのプログラム箇所を記憶部２８に記憶させ、当該新たな機能を自装置である照明装置に設定する。それらの機能が互いに矛盾する場合、制御部３４は、警告処理を実行する。
【０２１３】
例えば、ある機能Ａが機器１２にて実行されている最中に、別の機能Ｂを同一機器１２にて実行することができない場合、機能Ａ，Ｂは互いに矛盾する機能である。上記の例で説明すると、点灯と消灯の両方を同一の照明装置によって同時に実現することができないため、点灯機能と消灯機能は互いに矛盾する機能である。
【０２１４】
なお、各機能が実行される時間帯が設定されてもよい。この場合において、互いに矛盾する機能Ａ，Ｂが同一機器１２に設定されている場合であっても、機能Ａ，Ｂのそれぞれの実行時間帯が互いに重複しなければ、制御部３４は、機能Ａ，Ｂは互いに矛盾しない機能であるとして識別し、警告処理を実行せずに、機能Ａ，Ｂの両方を機器１２に設定する。機能Ａ，Ｂのそれぞれの実行時間帯が互いに重複する場合、制御部３４は、警告処理を実行する。
【０２１５】
以下、警告処理について説明する。制御部３４は、警告処理として、既に設定されているプログラム箇所（例えば機能Ａを実行するためのプログラム箇所）に、新たなプログラム箇所（例えば機能Ｂを実行するためのプログラム箇所）を上書きして機器１２に保存してもよい。これにより、機器１２では、機能Ａは実行されずに、機器Ｂが実行されることになる。
【０２１６】
別の警告処理として、機器１２に既に機能Ａを設定したユーザのアカウントと同一アカウントを有するユーザが、当該機器１２への機能Ｂの設定を指示した場合、制御部３４は、機能Ａを実行するためのプログラム箇所に、機能Ｂを実行するためのプログラム箇所を上書きして機器１２に保存する。一方、機器１２に既に機能Ａを設定したユーザのアカウントと異なるアカウントを有するユーザが、当該機器１２への機能Ｂの設定を指示した場合、制御部３４は、機能Ａと矛盾する機能が機器１２に設定されようとしている旨を示す情報を、機能Ａを設定したユーザの端末装置１０に送信する。その端末装置１０の制御部２２は、その旨を示す情報をＵＩ部１６に表示させる。なお、その旨を示す情報が音声によって端末装置１０又は機器１２から発せられてもよい。機能Ａを設定したユーザが端末装置１０を用いて、プログラム箇所の上書きを指示した場合、機器１２の制御部３４は、機能Ａを実行するためのプログラム箇所に、機能Ｂを実行するためのプログラム箇所を上書きして機器１２に保存する。
【０２１７】
更に別の警告処理として、既に設定されているプログラム箇所が、新たなプログラム箇所によって上書きされた場合、機器１２の制御部３４は、当該機器１２にプログラム箇所を設定した他のユーザの端末装置１０に、プログラム箇所が上書きされた旨を示す情報を送信してもよい。端末装置１０の制御部２２は、その旨を示す情報をＵＩ部１６に表示させる。その旨を示す情報は、電子メールによって端末装置１０に送信されてもよい。また、他のユーザが端末装置１０を用いて機器１２にログインした場合に、制御部３４は、その旨を示す情報を端末装置１０に送信してもよい。
【０２１８】
以下、具体例を挙げて変形例１０について説明する。例えば、ユーザＡが自身の端末装置１０Ａを用いて、点灯機能を実行するためのプログラム箇所を作成して、機器１２としての照明装置に記憶させることで、点灯機能を照明装置に設定したものとする。このように、点灯機能が照明装置に既に設定されている場合に、ユーザＢが自身の端末装置１０Ｂを用いて、消灯機能を実行するためのプログラム箇所を作成し、照明装置への消灯機能の設定を指示したものとする。点灯機能と消灯機能は互いに矛盾する機能であるため、照明装置の制御部３４は、警告処理を実行する。これにより、消灯機能を有するプログラム箇所が、点灯機能を有するプログラム箇所に上書きされることで、消灯機能が照明装置に設定されてもよいし、照明装置から端末装置１０Ａに対して警告情報が送信されてもよい。
【０２１９】
同一ユーザ、又は、同一アカウントを有するユーザによって、機器１２に既に設定されている機能と矛盾する機能を実行するためのプログラム箇所を当該機器１２に設定する指示が与えられた場合に、警告処理が実行されてもよい。
【０２２０】
また、端末装置１０に設定されている機能と矛盾する機能を実行するためのプログラム箇所を当該端末装置１０に設定する指示がユーザによって与えられた場合、端末装置１０の制御部２２は警告処理を実行してもよい。
【０２２１】
変形例１０によれば、既に設定されているプログラム箇所と矛盾するプログラム箇所の設定指示が与えられた場合に、その矛盾を解消することができる。
【０２２２】
上述した実施形態及び変形例においては、機器１２の変更部３２が、機器１２に記憶されているプログラム箇所を変更しているが、ユーザが操作する端末装置１０の変更部２０が、機器１２に記憶されているプログラム箇所を変更してもよい。
【０２２３】
上記の端末装置１０及び機器１２は、一例としてハードウェアとソフトウェアとの協働により実現される。具体的には、端末装置１０及び機器１２は、図示しないＣＰＵ等の１又は複数のプロセッサを備えている。当該１又は複数のプロセッサが、図示しない記憶装置に記憶されたプログラムを読み出して実行することにより、端末装置１０及び機器１２のそれぞれの各部の機能が実現される。上記プログラムは、ＣＤ又はＤＶＤ等の記録媒体を経由して、又は、ネットワーク等の通信経路を経由して、記憶装置に記憶される。別の例として、端末装置１０及び機器１２のそれぞれの各部は、例えばプロセッサ、電子回路又はＡＳＩＣ（Application Specific Integrated Circuit）等のハードウェア資源により実現されてもよい。その実現においてメモリ等のデバイスが利用されてもよい。更に別の例として、端末装置１０及び機器１２のそれぞれの各部は、ＤＳＰ（Digital Signal Processor）又はＦＰＧＡ（Field Programmable Gate Array）等によって実現されてもよい。
【符号の説明】
【０２２４】
１０  端末装置、１２  機器、２０，３２  変更部、２２，３４  制御部。
【図１】
2019204173.tif 000003
【図２】
2019204173.tif 000004
【図３】
2019204173.tif 000005
【図４】
2019204173.tif 000006
【図５】
2019204173.tif 000007
【図６】
2019204173.tif 000008
【図７】
2019204173.tif 000009
【図８】
2019204173.tif 000010
【図９】
2019204173.tif 000011
【図１０】
2019204173.tif 000012
【図１１】
2019204173.tif 000013
【図１２】
2019204173.tif 000014
【図１３】
2019204173.tif 000015
【図１４】
2019204173.tif 000016
【図１５】
2019204173.tif 000017
【図１６】
2019204173.tif 000018
【図１７】
2019204173.tif 000019