(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-14
(45)【発行日】2022-11-22
(54)【発明の名称】情報処理装置及びプログラム
(51)【国際特許分類】
G06F 8/34 20180101AFI20221115BHJP
【FI】
G06F8/34
(21)【出願番号】P 2018097347
(22)【出願日】2018-05-21
【審査請求日】2021-03-19
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001210
【氏名又は名称】弁理士法人YKI国際特許事務所
(72)【発明者】
【氏名】得地 賢吾
(72)【発明者】
【氏名】大石 忠広
(72)【発明者】
【氏名】佐藤 文香
【審査官】石川 亮
(56)【参考文献】
【文献】米国特許第09959868(US,B1)
【文献】特開平09-034517(JP,A)
【文献】特開2006-172000(JP,A)
【文献】特開平06-124216(JP,A)
【文献】特開2016-130800(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/30-8/38
(57)【特許請求の範囲】
【請求項1】
機器と通信する通信手段と、
複数の処理で構成されたプログラム箇所であって前記機器を制御するためのプログラム箇所を記憶する記憶手段と、
前記通信手段との間で通信が確立している前記機器に紐付けられたチャットボットと、ユーザとの間で対話するための会話型のユーザインターフェースにおいて、
前記ユーザからの指示に応じて、前記機器における前記プログラム箇所の変更を制御する制御手段
と、
を有し、
前記制御手段は、前記会話型のユーザインターフェースにおける前記ユーザからの前記処理に対する指示に応じて、前記プログラム箇所に含まれる各処理の入れ替え、追加、及び、削除の中の少なくとも一つを行う、
ことを特徴とする情報処理装置。
【請求項2】
前記制御手段は、更に、前記プログラム箇所を表す図形の表示を制御する
、
ことを特徴とする
請求項1に記載の情報処理装置。
【請求項3】
前記ユーザインターフェースにおいて、
前記ユーザからの前記処理に対する指示によって、前記プログラム箇所の変更の要求が与えられた場合、前記制御手段は、前記
変更の要求の対象となるプログラム箇所の設定情報の通知を制御する、
ことを特徴とする請求項
1又は請求項2に記載の情報処理装置。
【請求項4】
前記制御手段は、更に、動作可能な単位でプログラム部分が完成した場合、その旨の通知を制御する、
ことを特徴とする
請求項1から請求項3何れかに記載の情報処理装置。
【請求項5】
前記制御手段は、更に、前記プログラム部分によって実現される動作を、画像を用いて表現する、
ことを特徴とする請求項
4に記載の情報処理装置。
【請求項6】
前記制御手段は、更に、プログラムによって機能が追加された場合、前記機能を、画像を用いて表現する、
ことを特徴とする請求項
1から請求項
5何れかに記載の情報処理装置。
【請求項7】
前記制御手段は、更に、
前記プログラム箇所の変更の内容が前記機器によって実行不可能な場合、その旨の通知を制御する、
ことを特徴とする請求項
1から請求項
6何れかに記載の情報処理装置。
【請求項8】
前記制御手段は、更に、前記機器を用いて実行可能な機能の通知を制御する、
ことを特徴とする請求項
5から請求項
7何れかに記載の情報処理装置。
【請求項9】
前記制御手段は、更に、
前記プログラム箇所の変更の要求に従った変更が反映された前記プログラム箇所の設定情報の通知を制御する、
ことを特徴とする請求項1から請求項
8何れかに記載の情報処理装置。
【請求項10】
前記制御手段は、更に、
前記プログラム箇所の変更の内容に対応する処理の候補の通知を制御する、
ことを特徴とする請求項1から請求項
8何れかに記載の情報処理装置。
【請求項11】
前記制御手段は、更に、
前記プログラム箇所の変更の要求に従った変更が反映された前記プログラム箇所の候補の通知を制御する、
ことを特徴とする請求項1から請求項
8何れかに記載の情報処理装置。
【請求項12】
前記制御手段は、更に、
前記プログラム箇所の変更の要求に従った変更が反映された後、前記変更が反映された前記プログラム箇所をコンパイルする、
ことを特徴とする請求項1から請求項
11何れかに記載の情報処理装置。
【請求項13】
前記プログラム箇所の変更の内容は、処理を表す文字列であってプログラミング言語を用いて記述された文字列によって与えられる、
ことを特徴とする請求項1から請求項
12何れかに記載の情報処理装置。
【請求項14】
前記プログラム箇所の変更の内容は、処理に紐付けられた図形によって与えられる、
ことを特徴とする請求項1から請求項
12何れかに記載の情報処理装置。
【請求項15】
前記制御手段は、更に、前記図形の候補の表示を制御する、
ことを特徴とする請求項
14に記載の情報処理装置。
【請求項16】
前記制御手段は、更に、前記プログラム箇所の送信指示に従って、前記送信指示を与えたアカウントとは異なるアカウントへの前記プログラム箇所の送信を制御する、
ことを特徴とする請求項1から請求項
15何れかに記載の情報処理装置。
【請求項17】
前記プログラム箇所の変更は、前記プログラム箇所に対する処理の追加及び前記プログラム箇所から処理の削除の中の少なくとも1つを含む、
ことを特徴とする請求項1から請求項
16何れかに記載の情報処理装置。
【請求項18】
前記制御手段は、更に、
前記プログラム箇所の変更の対象となるプログラム箇所が特定できない場合、前
記変更の対象となるプログラム箇所を特定するための情報をユーザから得るための質問の通知を制御する、
ことを特徴とする請求項1から請求項
17何れかに記載の情報処理装置。
【請求項19】
前記制御手段は、更に、
前記プログラム箇所の変更の要求に従った変更が反映された前記プログラム箇所の内容が、既に設定されている別のプログラム箇所の内容と矛盾する場合、警告処理の実行を制御する、
ことを特徴とする請求項1から請求項
18何れかに記載の情報処理装置。
【請求項20】
前記警告処理は、前記別のプログラム箇所の内容の設定を行った一のユーザとは別のユーザからの前記処理に対する指示によって、前記プログラム箇所の変更の要求が与えられた場合に実行され、
前記制御手段は、前記一のユーザと同一のユーザが変更要求を行った場合には変更要求に従った変更を前記プログラム箇所に反映する、
ことを特徴とする請求項19に記載の情報処理装置。
【請求項21】
前記プログラム箇所を構成する情報は、前記複数の処理の順序を規定する、
ことを特徴とする請求項1から請求項20何れかに記載の情報処理装置。
【請求項22】
コンピュータを、
機器と通信する通信手段、
複数の処理で構成されたプログラム箇所であって前記機器を制御するためのプログラム箇所を記憶する記憶手段、
前記通信手段との間で通信が確立している前記機器に紐付けられたチャットボットと、ユーザとの間で対話するための会話型のユーザインターフェースにおいて、
前記ユーザからの指示に応じて、前記機器における前記プログラム箇所の変更を制御する制御手段、
として機能させ
、
前記制御手段は、前記会話型のユーザインターフェースにおける前記ユーザからの前記処理に対する指示に応じて、前記プログラム箇所に含まれる各処理の入れ替え、追加、及び、削除の中の少なくとも一つを行う、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、ユーザとの会話の進行手順が分岐付けで規定されたプログラムが記載されている。そのプログラムにおいては、ある質問の内容と、質問に対する返答となる複数の選択肢と、選択肢に対するアクションとが対応付けられている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の目的は、会話型のユーザインターフェースを利用してプログラムを編集するための技術を提供することにある。
【課題を解決するための手段】
【0005】
請求項1に記載の発明は、機器と通信する通信手段と、複数の処理で構成されたプログラム箇所であって前記機器を制御するためのプログラム箇所を記憶する記憶手段と、前記通信手段との間で通信が確立している前記機器に紐付けられたチャットボットと、ユーザとの間で対話するための会話型のユーザインターフェースにおいて、前記ユーザからの指示に応じて、前記機器における前記プログラム箇所の変更を制御する制御手段と、を有し、前記制御手段は、前記会話型のユーザインターフェースにおける前記ユーザからの前記処理に対する指示に応じて、前記プログラム箇所に含まれる各処理の入れ替え、追加、及び、削除の中の少なくとも一つを行う、ことを特徴とする情報処理装置である。
【0006】
請求項2に記載の発明は、前記制御手段は、更に、前記プログラム箇所を表す図形の表示を制御する、ことを特徴とする請求項1に記載の情報処理装置である。
【0009】
請求項3に記載の発明は、前記ユーザインターフェースにおいて、前記ユーザからの前記処理に対する指示によって、前記プログラム箇所の変更の要求が与えられた場合、前記制御手段は、前記変更の要求の対象となるプログラム箇所の設定情報の通知を制御する、ことを特徴とする請求項1又は請求項2に記載の情報処理装置である。
【0010】
請求項4に記載の発明は、前記制御手段は、更に、動作可能な単位でプログラム部分が完成した場合、その旨の通知を制御する、ことを特徴とする請求項1から請求項3何れかに記載の情報処理装置である。
【0011】
請求項5に記載の発明は、前記制御手段は、更に、前記プログラム部分によって実現される動作を、画像を用いて表現する、ことを特徴とする請求項4に記載の情報処理装置である。
【0012】
請求項6に記載の発明は、前記制御手段は、更に、プログラムによって機能が追加された場合、前記機能を、画像を用いて表現する、ことを特徴とする請求項1から請求項5何れかに記載の情報処理装置である。
【0013】
請求項7に記載の発明は、前記制御手段は、更に、前記プログラム箇所の変更の内容が前記機器によって実行不可能な場合、その旨の通知を制御する、ことを特徴とする請求項1から請求項6何れかに記載の情報処理装置である。
【0014】
請求項8に記載の発明は、前記制御手段は、更に、前記機器を用いて実行可能な機能の通知を制御する、ことを特徴とする請求項5から請求項7何れかに記載の情報処理装置である。
【0015】
請求項9に記載の発明は、前記制御手段は、更に、前記プログラム箇所の変更の要求に従った変更が反映された前記プログラム箇所の設定情報の通知を制御する、ことを特徴とする請求項1から請求項8何れかに記載の情報処理装置である。
【0016】
請求項10に記載の発明は、前記制御手段は、更に、前記プログラム箇所の変更の内容に対応する処理の候補の通知を制御する、ことを特徴とする請求項1から請求項8何れかに記載の情報処理装置である。
【0017】
請求項11に記載の発明は、前記制御手段は、更に、前記プログラム箇所の変更の要求に従った変更が反映された前記プログラム箇所の候補の通知を制御する、ことを特徴とする請求項1から請求項8何れかに記載の情報処理装置である。
【0018】
請求項12に記載の発明は、前記制御手段は、更に、前記プログラム箇所の変更の要求に従った変更が反映された後、前記変更が反映された前記プログラム箇所をコンパイルする、ことを特徴とする請求項1から請求項11何れかに記載の情報処理装置である。
【0019】
請求項13に記載の発明は、前記プログラム箇所の変更の内容は、処理を表す文字列であってプログラミング言語を用いて記述された文字列によって与えられる、ことを特徴とする請求項1から請求項12何れかに記載の情報処理装置である。
【0020】
請求項14に記載の発明は、前記プログラム箇所の変更の内容は、処理に紐付けられた図形によって与えられる、ことを特徴とする請求項1から請求項12何れかに記載の情報処理装置である。
【0021】
請求項15に記載の発明は、前記制御手段は、更に、前記図形の候補の表示を制御する、ことを特徴とする請求項14に記載の情報処理装置である。
【0022】
請求項16に記載の発明は、前記制御手段は、更に、前記プログラム箇所の送信指示に従って、前記送信指示を与えたアカウントとは異なるアカウントへの前記プログラム箇所の送信を制御する、ことを特徴とする請求項1から請求項15何れかに記載の情報処理装置である。
【0023】
請求項17に記載の発明は、前記プログラム箇所の変更は、前記プログラム箇所に対する処理の追加及び前記プログラム箇所から処理の削除の中の少なくとも1つを含む、ことを特徴とする請求項1から請求項16何れかに記載の情報処理装置である。
【0024】
請求項18に記載の発明は、前記制御手段は、更に、前記プログラム箇所の変更の対象となるプログラム箇所が特定できない場合、前記変更の対象となるプログラム箇所を特定するための情報をユーザから得るための質問の通知を制御する、ことを特徴とする請求項1から請求項17何れかに記載の情報処理装置である。
【0025】
請求項19に記載の発明は、前記制御手段は、更に、前記プログラム箇所の変更の要求に従った変更が反映された前記プログラム箇所の内容が、既に設定されている別のプログラム箇所の内容と矛盾する場合、警告処理の実行を制御する、ことを特徴とする請求項1から請求項18何れかに記載の情報処理装置である。
請求項20に記載の発明は、前記警告処理は、前記別のプログラム箇所の内容の設定を行った一のユーザとは別のユーザからの前記処理に対する指示によって、前記プログラム箇所の変更の要求が与えられた場合に実行され、前記制御手段は、前記一のユーザと同一のユーザが変更要求を行った場合には変更要求に従った変更を前記プログラム箇所に反映する、ことを特徴とする請求項19に記載の情報処理装置である。
請求項21に記載の発明は、前記プログラム箇所を構成する情報は、前記複数の処理の順序を規定する、ことを特徴とする請求項1から請求項20何れかに記載の情報処理装置である。
【0026】
請求項22に記載の発明は、コンピュータを、機器と通信する通信手段、複数の処理で構成されたプログラム箇所であって前記機器を制御するためのプログラム箇所を記憶する記憶手段、前記通信手段との間で通信が確立している前記機器に紐付けられたチャットボットと、ユーザとの間で対話するための会話型のユーザインターフェースにおいて、前記ユーザからの指示に応じて、前記機器における前記プログラム箇所の変更を制御する制御手段、として機能させ、前記制御手段は、前記会話型のユーザインターフェースにおける前記ユーザからの前記処理に対する指示に応じて、前記プログラム箇所に含まれる各処理の入れ替え、追加、及び、削除の中の少なくとも一つを行う、ことを特徴とするプログラムである。
【発明の効果】
【0028】
請求項1,2,21,22に記載の発明によれば、会話型のユーザインターフェースを利用してプログラムを編集するための技術を提供することができる。
【0030】
請求項1,3,22に記載の発明によれば、チャットボットを利用してプログラムを編集することができる。
【0031】
請求項4に記載の発明によれば、プログラム部分の完成をユーザに通知することができる。
【0032】
請求項5に記載の発明によれば、プログラム部分の完成を、画像を用いてユーザに通知することができる。
【0033】
請求項6に記載の発明によれば、追加された機能を、画像を用いてユーザに通知することができる。
【0034】
請求項7に記載の発明によれば、設定変更の内容が機器によって実行不可能であることがユーザに通知することができる。
【0035】
請求項8に記載の発明によれば、機器を用いて実行可能な機能をユーザに通知することができる。
【0036】
請求項9に記載の発明によれば、変更が反映されたプログラム箇所をユーザに通知することができる。
【0037】
請求項10に記載の発明によれば、処理の候補をユーザに通知することができる。
【0038】
請求項11に記載の発明によれば、プログラム箇所の候補をユーザに通知することができる。
【0039】
請求項12に記載の発明によれば、プログラム箇所の実行時にコンパイルする場合と比べて、プログラム箇所の実行までに要する時間を短縮することができる。
【0040】
請求項13に記載の発明によれば、プログラミング言語を用いて設定変更の要求を与えることができる。
【0041】
請求項14に記載の発明によれば、図形を用いて設定変更の要求を与えることができる。
【0042】
請求項15に記載の発明によれば、処理に紐付けられた図形の候補をユーザに通知することができる。
【0043】
請求項16に記載の発明によれば、プログラム箇所を送信先に送信することができる。
【0044】
請求項17に記載の発明によれば、処理の追加及び削除の中の少なくとも1つを行うことができる。
【0045】
請求項18に記載の発明によれば、設定変更の対象となるプログラム箇所を特定することができるようになる。
【0046】
請求項19,20に記載の発明によれば、矛盾を解消することが可能となる。
【図面の簡単な説明】
【0047】
【
図1】本発明の実施形態に係る情報処理システムの構成を示すブロック図である。
【発明を実施するための形態】
【0048】
図1を参照して、本発明の実施形態に係る情報処理システムについて説明する。
図1は、本実施形態に係る情報処理システムの一例を示す。
【0049】
本実施形態に係る情報処理システムは、端末装置10と1又は複数の機器12とを含む。
【0050】
端末装置10は、PC、タブレットPC、スマートフォン又は携帯電話等の機器である。端末装置10は、ウェアラブル端末(腕時計型端末、リストバンド型端末、眼鏡型端末、指輪型端末、コンタクトレンズ型端末、体内埋め込み型端末、ヒアラブル端末等)であってもよい。また、端末装置10は、表示装置としてフレキシブルディスプレイを有していてもよい。フレキシブルディスプレイとして、例えば、有機エレクトロルミネッセンス型のディスプレイ(フレキシブル有機ELディスプレイ)、電子ペーパー型のディスプレイ、又は、フレキシブル液晶ディスプレイ等が用いられる。これら以外の表示方式が採用されたフレキシブルディスプレイが用いられてもよい。フレキシブルディスプレイは、表示部分が柔軟に変形可能なディスプレイであり、例えば、曲げたり、折り畳んだり、巻いたり、捩ったり、伸ばしたりすることが可能なディスプレイである。端末装置全体がフレキシブルディスプレイによって構成されていてもよいし、フレキシブルディスプレイとそれ以外の構成とが機能的又は物理的に分かれていてもよい。
【0051】
機器12は機能を有する装置であり、例えば、画像形成機能(スキャン機能、プリント機能、コピー機能、ファクシミリ機能等)を有する画像形成装置、PC(パーソナルコンピュータ)、タブレットPC、スマートフォン、携帯電話、ロボット(人型ロボット、人以外の動物型ロボット、それら以外のロボット等)、プロジェクタ、液晶ディスプレイ等の表示装置、記録装置、再生装置、カメラ等の撮像装置、冷蔵庫、炊飯器、電子レンジ、コーヒーメーカー、掃除機、洗濯機、空調機、照明装置、時計、監視カメラ、自動車、二輪車、航空機(例えば無人航空機(いわゆるドローン))、ゲーム機、又は、各種のセンシング機器(例えば温度センサ、湿度センサ、電圧センサ、電流センサ等)等の装置である。機器12は、ユーザに対して情報を出力する機器(例えば画像形成装置やPC等)であってもよいし、ユーザに対して情報を出力しない機器(例えばセンシング機器)であってもよい。機器12の概念の範疇には機器全般が含まれてもよい。例えば、情報機器、映像機器、音響機器、その他の機器も、機器12の概念の範疇に含まれてもよい。また、各種の機能を提供するサーバ、及び、各種のサービスを提供するサーバが、機器12の概念の範疇に含まれてもよい。
【0052】
また、端末装置10と機器12は、他の装置と通信する機能を有する。その通信は、無線通信であってもよいし、有線通信であってもよい。例えば、端末装置10と機器12は、インターネット等の通信経路を介して他の装置と通信してもよいし、直接的に他の装置と通信してもよいし、ハブとして機能する中継器を介して他の装置と通信してもよいし、いわゆるクラウドやサーバを介して他の装置と通信してもよい。機器12は、いわゆるIoT(Internet of Things)機器であってもよい。
【0053】
端末装置10においては、ユーザと対話する機能を有する対話相手が用いられる。その対話相手は、ユーザの問い合わせに応答するパーソナルアシスタント(操作アシスタント)である。パーソナルアシスタントは、例えば、ユーザの発言を受け、その発言内容を解析することで、その発言に対する回答等の応答を作成してユーザに通知する。例えば、ユーザの発言は、文字入力、音声入力又は画像入力等によって行われ、応答は、文字出力、音声出力又は画像出力等によって行われる。複数種類の入力の組み合わせが用いられてもよいし、複数種類の出力の組み合わせが用いられてもよい。パーソナルアシスタントは、例えば、入力された情報に対して形態素解析等の自然言語処理を適用することで、ユーザの発言内容を解析する。パーソナルアシスタントは、例えばプログラムを実行することで実現される。パーソナルアシスタントを実行するためのプログラムは、例えば端末装置10にインストールされている。もちろん、そのプログラムは、機器12にインストールされ、パーソナルアシスタントの機能及びそのような機能を提供するサービスが、機器12から端末装置10に提供されてもよい。更に別の例として、そのプログラムは、サーバ等の装置にインストールされ、パーソナルアシスタントの機能及びそのような機能を提供するサービスが、サーバから端末装置10に提供されてもよい。
【0054】
パーソナルアシスタントは、例えば人工知能(AI)によって実現される自動応答AIによって構成されている。自動応答AIは、ユーザの発言内容を解析し、その発言内容に対する回答等の応答をユーザに通知する機能を有する。自動応答AIは、いわゆるチャットボット(chatbot)(人工知能を活用した自動会話プログラム)であってもよい。自動応答AIは、人工知能による学習機能を有し、その学習機能によって、人に近い判断を行う能力を有していてもよい。また、ニューラルネットワーク型のディープラーニングが利用されてもよいし、部分的に学習分野を強化する強化学習等が利用されてもよいし、その他、遺伝的アルゴリズム、クラスタ分析、自己組織化マップ及びアンサンブル学習等が利用されてもよい。もちろん、これら以外の人工知能に関する技術が利用されてもよい。自動応答AIは、インターネット等のネットワークを利用することで、ユーザの問い合わせに対する回答を検索し、その検索結果に基づいて応答を作成してユーザに通知してもよい。
【0055】
パーソナルアシスタントは、当該パーソナルアシスタントにログインしているユーザアカウントに紐付けられたユーザからの指示に従って動作してもよい。同一のパーソナルアシスタントであっても、当該パーソナルアシスタントにログインしているユーザアカウントに応じた応答を行ってもよい。また、同一のパーソナルアシスタントに複数のユーザアカウントがログインしてもよい。
【0056】
また、端末装置10に搭載されているパーソナルアシスタントは、当該端末装置10を構成するハードウェアを制御してもよいし、当該端末装置10にインストールされているソフトウェアを制御してもよい。また、当該パーソナルアシスタントは、端末装置10に接続されている機器12を制御してもよい。
【0057】
機器12に、ユーザを補助するためのパーソナルアシスタントが搭載されていてもよい。パーソナルアシスタントは、当該パーソナルアシスタントが搭載されている機器12を構成するハードウェアを制御してもよい、当該機器12にインストールされているソフトウェアを制御してもよい。また、パーソナルアシスタントは、当該パーソナルアシスタントが搭載されている機器12に接続されている別の機器12を制御してもよい。また、機器12に搭載されているパーソナルアシスタントは、端末装置10に搭載されているパーソナルアシスタントと同様に、ユーザの発言内容を解析し、その発言内容に対応する応答をユーザに通知してもよい。なお、端末装置10に搭載されているパーソナルアシスタントと機器12に搭載されているパーソナルアシスタントは、互いに同一種類のパーソナルアシスタントであってもよいし、互いに異なる種類のパーソナルアシスタントであってもよい。
【0058】
本実施形態においては、プログラムを編集するための技術が提供される。例えば、会話型のユーザインターフェースが端末装置10に設けられる。当該ユーザインターフェースは、ユーザと対話相手(例えばパーソナルアシスタント)との間でメッセージをやり取りするためのインターフェースである。ユーザの対話相手としてのパーソナルアシスタントは、端末装置10に搭載されているパーソナルアシスタントであってもよいし、機器12に搭載されているパーソナルアシスタントであってもよい。プログラム箇所(プログラム部分)の設定変更の要求が、当該ユーザインターフェースを介してユーザによって与えられる。この場合、設定変更の対象となるプログラム箇所の現在の設定情報がユーザに通知され、また、設定変更の要求に従ってプログラム箇所が変更される。このように、会話型のユーザインターフェースを介してプログラムの編集が行われる。プログラムの編集の概念の範疇には、プログラムの部分的な変更、プログラムへの処理の追加、プログラムの部分的な削除、プログラム全体の変更、及び、プログラム全体の削除が含まれる。また、プログラムの編集の概念の範疇には、既存のプログラムの書き換えではなく新たなプログラムの作成が含まれてもよい。なお、会話型のユーザインターフェースが機器12に設けられ、そのユーザインターフェースを介して、プログラム箇所の設定変更の要求がユーザによって与えられてもよい。
【0059】
なお、設定変更の対象となるプログラム箇所は、端末装置10に記憶されているプログラムであってもよいし、機器12に記憶されているプログラムであってもよいし、端末装置10によって実行されるプログラムであってもよいし、機器12によって実行されるプログラムであってもよいし、端末装置10を制御するためのプログラムであってもよいし、機器12を制御するためのプログラムであってもよい。
【0060】
例えば、端末装置10に搭載されているパーソナルアシスタントとユーザとの間でメッセージのやり取りが行われることで、端末装置10に記憶されているプログラム箇所の通知と設定変更が行われてもよい。また、機器12に搭載されているパーソナルアシスタントとユーザとの間でメッセージのやり取りが行われることで、機器12に記憶されているプログラム箇所の通知と設定変更が行われてもよい。もちろん、本実施形態は、これらの組み合わせに限定されるものではない。端末装置10に搭載されているパーソナルアシスタントとユーザとの間でメッセージのやり取りが行われることで、端末装置10に接続されている機器12に記憶されているプログラム箇所の通知と設定変更が行われてもよい。端末装置10に記憶されているプログラムについても同様である。また、サーバ等の外部装置に搭載されているパーソナルアシスタントとユーザとの間でメッセージのやり取りが行われることで、端末装置10又は機器12に記憶されているプログラム箇所の通知と設定変更が行われてもよい。
【0061】
なお、機器12は、本実施形態に係る情報処理システムに含まれていなくてもよい。例えば、機器12に記憶されているプログラム箇所の通知と設定変更を行うために、端末装置10が機器12に接続され、これによって、情報処理システムが構築されてもよい。また、端末装置10に記憶されているプログラム箇所の通知と設定変更が行われ、機器12に記憶されているプログラム箇所の通知と設定変更が行われない場合、当該機器12は情報処理システムに含まれていなくてもよい。
【0062】
以下、
図2を参照して、端末装置10の構成について説明する。
図2は、端末装置10の構成の一例を示す。
【0063】
通信部14は通信インターフェースであり、他の装置にデータを送信する機能、及び、他の装置からデータを受信する機能を有する。通信部14は、無線通信機能を有する通信インターフェースであってもよいし、有線通信機能を有する通信インターフェースであってもよい。通信部14は、例えば、1又は複数の種類の通信方式に対応しており、通信相手に適した通信方式(つまり、通信相手が対応している通信方式)に従って通信相手と通信してもよい。通信方式は、例えば、赤外線通信、可視光通信、Wi-Fi(登録商標)通信、又は、近接無線通信(例えばNFC(Near Field Communication)等)等である。近接無線通信としては、Felica(登録商標)、Bluetooth(ブルートゥース)(登録商標)、又は、RFID(Radio Frequency Identifier)等が用いられる。また、通信部14は、第5世代移動通信システム(5G)に対応してもよい。もちろん、別の方式の無線通信が近接無線通信として用いられてもよい。通信部14は、通信相手に応じて通信方式や周波数帯域を切り替えてもよいし、周囲の環境に応じて通信方式や周波数帯域を切り替えてもよい。周波数帯域として、例えば、2.4GHzや5GHz等が用いられてもよい
【0064】
UI部16はユーザインターフェース部であり、表示部と操作部を含む。表示部は、例えば液晶ディスプレイ等の表示装置である。表示部は、フレキシブルディスプレイであってもよい。操作部は、例えばタッチパネル又はキーボード等の入力装置である。UI部16は、表示部と操作部とを兼ねたユーザインターフェース(例えば、タッチ式のディスプレイ、及び、ディスプレイ上に電子的にキーボード等を表示する装置等を含む)であってもよい。また、UI部16は、マイク等の集音部とスピーカ等の音声発生部を含んでいてもよい。この場合、音声入力によって情報が機器12に入力されてもよいし、音声によって情報が発せられてもよい。
【0065】
記憶部18は、ハードディスク又はメモリ(例えばSSD等)等の記憶装置である。記憶部18には、例えば、各種のデータ及び各種のプログラム等が記憶されている。プログラムとして、例えば、OS(Operating System)、各種のアプリケーションプログラム、チャットボットを実現するための自動会話プログラム、及び、パーソナルアシスタントプログラム等が記憶されている。なお、パーソナルアシスタントがチャットボットの機能を有している場合、パーソナルアシスタントプログラムは自動会話プログラムを含む。また、記憶部18には、機器12のアドレスを示す機器アドレス情報(例えばIPアドレス又はMACアドレス等)、及び、サーバのアドレスを示すサーバアドレス情報(例えばIPアドレス又はMACアドレス等)等が記憶されてもよい。通知と設定変更の対象となるプログラムが、記憶部18に記憶されていてもよい。プログラムには、当該プログラムを識別するためのプログラム識別情報が紐付けられている。プログラム識別情報は、例えば、プログラムの名称又はID等である。
【0066】
変更部20は、プログラム箇所を変更するように構成されている。変更部20は、設定変更の要求に従って、プログラム箇所を自動的に変更してもよい。別の例として、設定変更の内容に対応する処理(命令、機能)の候補郡がユーザに提供され、変更部20は、当該候補群の中からユーザによって選択された処理(命令、機能)をプログラム箇所に反映させてもよい。更に別の例として、変更部20は、設定変更の要求に従った変更が反映されたプログラム箇所の候補群を作成してもよい。この場合、当該候補群がユーザに提供され、変更部20は、当該候補群の中からユーザによって選択された候補を変更後のプログラム箇所として識別する。
【0067】
制御部22は、端末装置10の各部の動作を制御するように構成されている。例えば、制御部22は、プログラムの実行、通信部14による通信の制御、UI部16を用いた情報の通知(例えば情報の表示及び音声出力等)の制御、UI部16を用いて端末装置10に入力された情報の受け付け、記憶部18への情報の書き込み、及び、記憶部18からの情報の読み出し等を行う。
【0068】
また、制御部22は、設定変更の対象となるプログラム箇所の現在の設定情報の通知を制御するように構成されている。制御部22は、プログラム箇所の設定情報を表す文字列をUI部16の表示部に表示させてもよいし、プログラム箇所の設定情報を表す図形を表示部に表示させてもよい。
【0069】
ここで、各用語の意味を定義する。プログラム箇所は、例えば、1又は複数の単位処理(単位命令、単位機能)を含む集合体であって、1又は複数の単位処理が記述された情報である。
【0070】
プログラム箇所を表す文字列は、当該プログラム箇所がプログラミング言語によって記述された文字列であり、例えばソースコードである。プログラム言語として、例えば、コンパイル言語が用いられてもよいし、スクリプト言語が用いられてもよい。コンパイル言語として、例えば、C言語、C++、Java(登録商標)又はC♯等が用いられる。スクリプト言語として、例えば、Python、Perl、PHP、Ruby又はJavaScript(登録商標)等が用いられる。
【0071】
プログラム箇所を表すブロック図は、当該プログラム箇所によって実行される処理を表す図である。例えば、単位処理(単位命令、単位機能)が予め定められて、各単位処理に図形が紐付けられている。つまり、各単位処理が図形によって表される。ブロック図は、1又は複数の単位処理の集合体を表す図であって、1又は複数の図形によって構成されている。例えば、Node-Redにおけるノードが、当該図形の一例に相当する。また、1又は複数の単位処理がパッケージ化され、そのパッケージ化された処理が1つの図形(例えば1つのノード)によって表現されてもよい。つまり、1つの図形は、1つの単位処理を表す図形であってもよいし、パッケージ化された複数の単位処理を表す図形であってもよい。ユーザによって、パッケージ化された図形が作成されてもよい。
【0072】
ソースコードと図形は互いに変換可能であってもよい。例えば、ある処理がソースコードの表現形式に従って文字列として表現されている場合に、当該文字列が、当該処理を表す図形に変換されてもよい。同様に、ある処理が図形の表現形式に従って表現されている場合に、当該処理を表す図形が、ソースコードの表現形式である文字列に変換されてもよい。例えば、処理毎に、処理(命令、機能)を示す文字列(ソースコードの表現形式に従って表現された文字列)と、当該処理を表す図形(ブロック図の表現形式に従って表現された図形)とが互いに対応付けられており、その対応付けを示す情報が予め作成されている。その対応付けを示す情報は、端末装置10に記憶されていてもよいし、機器12に記憶されていてもよいし、サーバ等の装置に記憶されていてもよい。その情報を参照することで、ソースコードの表現形式で表現された文字列と図形とを相互に変換することができる。なお、1又は複数の単位処理毎に、上記の対応付けが管理されていてもよい。
【0073】
以下、
図3を参照して、機器12の構成について説明する。
図3は、機器12の構成の一例を示す。なお、
図3は、各機器12が共通して有する構成を示しており、各機器12の特有の構成を示していない。
【0074】
通信部24は通信インターフェースであり、他の装置にデータを送信する機能、及び、他の装置からデータを受信する機能を有する。通信部24は、無線通信機能を有する通信インターフェースであってもよいし、有線通信機能を有する通信インターフェースであってもよい。通信部24は、例えば、1又は複数の種類の通信方式に対応しており、通信相手に適した通信方式(つまり、通信相手が対応している通信方式)に従って通信相手と通信してもよい。通信方式は、例えば、上述した通信方式が用いられる。通信部24は、通信相手に応じて通信方式や周波数帯域を切り替えてもよいし、周囲の環境に応じて通信方式や周波数帯域を切り替えてもよい。
【0075】
UI部26はユーザインターフェース部であり、表示部と操作部を含む。表示部は、例えば液晶ディスプレイ等の表示装置である。表示部は、フレキシブルディスプレイであってもよい。操作部は、例えばタッチパネル又はキーボード等の入力装置である。UI部26は、表示部と操作部とを兼ねたユーザインターフェースであってもよい。また、UI部26は、集音部と音声発生部を含んでいてもよい。この場合、音声入力によって情報が機器12に入力されてもよいし、音声によって情報が発せられてもよい。なお、UI部26を有していない機器12が、情報処理システムに含まれてもよい。例えば、情報をユーザに出力しないセンシング機器は、UI部26を有していなくてもよい。
【0076】
記憶部28は、ハードディスク又はメモリ等の記憶装置である。記憶部28には、例えば、各種のデータ及び各種のプログラム等が記憶されている。プログラムとして、例えば、OS、各種のアプリケーションソフトウェア、チャットボットを実現するための自動会話プログラム、及び、パーソナルアシスタントプログラム等が記憶されている。なお、パーソナルアシスタントがチャットボットの機能を有している場合、パーソナルアシスタントプログラムは自動会話プログラムを含む。なお、チャットボットの機能を有していない機器12には、自動会話プログラムは記憶されていない。また、パーソナルアシスタントを搭載していない機器12には、パーソナルアシスタントプログラムは記憶されていない。また、記憶部28には、端末装置10のアドレスを示す端末アドレス情報(例えばIPアドレス又はMACアドレス等)、他の機器12の機器アドレス情報、及び、サーバアドレス情報が記憶されてもよい。プログラムには、当該プログラムを識別するためのプログラム識別情報が紐付けられている。
【0077】
実行部30は、機能を実行するように構成されている。例えば、機器12が画像形成装置である場合、実行部30は、スキャン機能、プリント機能又はコピー機能等の画像形成機能を実行する。機器12がロボットである場合、実行部30は、ロボットが有する機能(例えば、移動機能又は持ち上げ機能等)を実行する。機器12がカメラである場合、実行部30は、撮影機能を実行する。
【0078】
変更部32は、プログラム箇所を変更するように構成されている。変更部32は、設定変更の要求に従って、プログラム箇所を自動的に変更してもよい。別の例として、設定変更の内容に対応する処理(命令、機能)の候補郡がユーザに提供され、変更部32は、当該候補群の中からユーザによって選択された処理をプログラム箇所に反映させてもよい。更に別の例として、変更部32は、設定変更の要求に従った変更が反映されたプログラム箇所の候補群を作成してもよい。この場合、当該候補群がユーザに提供され、変更部32は、当該候補群の中からユーザによって選択された候補を変更後のプログラム箇所として識別する。
【0079】
制御部34は、機器12の各部の動作を制御するように構成されている。例えば、制御部34は、プログラムの実行、通信部24による通信の制御、UI部26を用いた情報の通知(例えば情報の表示及び音声出力等)の制御、UI部26を用いて機器12に入力された情報の受け付け、記憶部28への情報の書き込み、及び、記憶部28からの情報の読み出し等を行う。
【0080】
また、制御部34は、設定変更の対象となるプログラム箇所の現在の設定情報の通知を制御するように構成されている。制御部34は、プログラム箇所の設定情報を表す文字列をUI部26の表示部に表示させてもよいし、プログラム箇所の設定情報を表す図形を表示部に表示させてもよい。
【0081】
プログラム箇所の変更処理は、端末装置10の変更部20によって行われてもよいし、機器12の変更部32によって行われてもよい。変更処理が端末装置10の変更部20によって行われる場合、機器12に変更部32は設けられていなくてもよい。同様に、変更処理は機器12の変更部32によって行われる場合、端末装置10に変更部20は設けられていなくてもよい。また、端末装置10に記憶されているプログラムに対する変更処理は、端末装置10の変更部20によって行われ、機器12に記憶されているプログラムに対する変更処理は、機器12の変更部32によって行われてもよい。
【0082】
以下、
図4を参照して、機器12の一例としてのロボットについて詳しく説明する。
図4は、ロボットの外観を示す。ロボット12Aは、機器12の一例に相当する。
【0083】
ロボット12Aは、一例として人型のロボットである。もちろん、ロボット12Aは、人型以外のロボットであってもよい。
図4に示す例では、ロボット12Aは、胴体部36と、胴体部36上に設けられた頭部38と、胴体部36の下部に設けられた脚部40と、胴体部36の両側部にそれぞれ設けられた腕部42と、各腕部42の先端に設けられた指部44と、を含む。
【0084】
ロボット12Aは、例えば、視覚センサ、聴覚センサ、触覚センサ、味覚センサ及び嗅覚センサの中の少なくとも1つのセンサを有し、人の五感に相当する視覚、聴覚、触覚、味覚及び嗅覚の中の少なくとも1つの感覚に関する能力を有していてもよい。ロボット12Aは、脳波、脈波又は指紋等の生体情報を検知する機能を有していてもよい。頭部38、腕部42及び指部44が、人のように反応して動いてもよい。
【0085】
脚部40は移動手段の一例に相当し、例えば、モータ等の駆動原からの駆動力によって駆動するように構成されている。ロボット12Aは、脚部40によって移動できる。脚部40は、人の足のような形状を有していてもよいし、ローラ又はタイヤ等であってもよいし、別の形状を有していてもよい。ロボット12Aは、脚部40以外の移動手段として、例えば、飛行するための構成(例えばプロペラ、羽、飛行用のエンジン等)を有していてもよいし、水中を移動するための構成(例えば水中移動用のエンジン等)を有していてもよい。もちろん、ロボット12Aは、移動手段を有していなくてもよい。
【0086】
ロボット12Aは、腕部42や指部44によって、物体を掴んだり操作したりする機能を有していてもよいし、物体を掴んだり抱えたりしながら移動する機能を有していてもよい。また、ロボット12Aは、音声を発生する機能を有していてもよい。ロボット12Aは、表示部48を有していてもよい。表示部48には、各種の画像及びメッセージ等が表示される。表示部48は、操作部を兼ねたユーザインターフェース(例えばタッチパネル等)であってもよい。ロボット12Aは、画像を投影する機能を有していてもよいし、画像を撮影する機能を有していてもよい。ロボット12Aは、ロボット12Aに入力された音声に基づいて、当該音声を発したユーザを識別する機能を有していてもよい。
【0087】
また、上述したパーソナルアシスタントがロボット12Aに搭載されて、当該パーソナルアシスタントがロボット12Aを制御してもよいし、ユーザとの間でメッセージをやり取りしてもよい。
【0088】
また、ロボット12Aは、他の機器12を制御してもよいし、他の機器12を操作してもよい。その制御及びその操作のために、ロボット12Aに搭載されているパーソナルアシスタントが用いられてもよい。また、ロボット12Aは、インターネット等を利用することで、各種の情報を取得してもよい。
【0089】
以下、
図5を参照して、機器12の一例としてのスピーカ装置について詳しく説明する。
図5は、スピーカ装置の外観を示す。スピーカ装置12Bは、機器12の一例に相当する。
【0090】
スピーカ装置12Bは、いわゆるスマートスピーカであり、通信機能と音声によるアシスト機能とを有する。スピーカ装置12Bは、柱状の本体部50を含む。本体部50の側面には、マイク52、スピーカ54、表示部56、及び、発光部58,60が設けられている。また、本体部50の上面には、センサ62が設けられている。なお、本体部50の形状は、
図5に示されている形状に限定されるものではない。マイク52とスピーカ54を備えたスピーカ装置であれば、その形状は、どのような形状であってもよい。また、マイク52、スピーカ54、表示部56、発光部58,60、及び、センサ62は、
図5に示されている位置以外の位置に配置されてもよい。
【0091】
マイク52は、集音装置として機能し、スピーカ装置12Bの周囲の音を集音する。例えば、ユーザの音声がマイク52によって集音される。
【0092】
パーソナルアシスタントがスピーカ装置12Bに搭載されている場合において、ユーザがパーソナルアシスタントと対話している場合、スピーカ54からパーソナルアシスタントの発言内容が音声として発せられる。また、音楽、テレビの音声及びラジオの音声等が、スピーカ54から発せられてもよい。
【0093】
表示部56は、表示装置である。表示部56には、各種の画像及びメッセージ等が表示される。表示部56は、操作部を兼ねたユーザインターフェース(例えばタッチパネル等)であってもよい。
【0094】
発光部58は、1又は複数の光源(例えば光源64,66,68)を含み、スピーカ装置12Bに搭載されているパーソナルアシスタントの設定内容に応じた発光の仕方に従って発光する。例えば、年齢、性別、職業又は性格等が、設定項目としてパーソナルアシスタントに設定される。パーソナルアシスタントは、その設定項目に従って、ユーザに対して回答したり、作業を実行したりする。例えば、職業の設定項目として医師が設定されている場合、光源64,68が青色に発光し、光源66が黄色に発光する。別の設定項目が設定された場合、発光部58は、その設定された内容に応じた発光の仕方に従って発光する。
【0095】
発光部60は、1又は複数の光源(例えば光源70,72,74)を含み、スピーカ装置12Bに搭載されているパーソナルアシスタントにログインしているユーザアカウントに応じた発光の仕方に従って発光する。例えば、あるユーザが、スピーカ装置12Bに搭載されているパーソナルアシスタントにログインしている場合、光源70,74が青色に発光し、光源72が黄色に発光する。別のユーザがパーソナルアシスタントにログインしている場合、発光部60は、そのユーザに応じた発光の仕方に従って発光する。
【0096】
なお、発光部58,60は区別されずに本体部50に設けられてもよい。例えば、発光部58,60に含まれる全光源を用いて、パーソナルアシスタントの設定内容とユーザアカウントが表現されてもよい。また、各光源の発光パターン(例えば、点滅の仕方、時間の長さ等)によって、パーソナルアシスタントの設定内容とユーザアカウントが表現されてもよい。
【0097】
センサ62は、ユーザのジェスチャーを検知する。スピーカ装置12Bは、検知されたジェスチャーに従った処理を実行する。例えば、スピーカ装置12Bは、検知されたジェスチャーに従って、自装置にて処理を実行してもよいし、他の機器12の動作を制御してもよい。
【0098】
また、スピーカ装置12Bに、他の機器12が接続されてもよい。この場合、スピーカ装置12Bは中継器として用いられてもよい。スピーカ装置12Bは、例えば、当該スピーカ装置12Bに接続されている他の機器12(例えば当該他の機器12が有するハードウェア、又は、当該他の機器12にインストールされているソフトウェア)を制御してもよい。また、スピーカ装置12Bは、インターネット等を利用することで、各種の情報を取得してもよい。スピーカ装置12Bは、サーバとして機能してもよいし、データの管理等を行ってもよい。スピーカ装置12Bは、屋内(例えば、部屋の由佳、天井又はテーブル等)に設置されてもよいし、屋外に設置されてもよい。また、スピーカ装置12Bは、移動可能な機器(例えば自動式の機器)であってもよい。
【0099】
以下、本実施形態に係る情報処理システムによる処理について詳しく説明する。本実施形態では、端末装置10に記憶されているプログラム箇所が変更されてもよいし、機器12に記憶されているプログラム箇所が変更されてもよい。端末装置10に記憶されているプログラム箇所が変更される場合、その設定変更の対象となるプログラム箇所は、端末装置10に接続されている機器12を制御するためのプログラムであってもよいし、機器12を制御するためではないプログラムであってもよい。また、機器12に記憶されているプログラム箇所が変更される場合、その設定変更の対象となるプログラム箇所は、当該機器12を制御するためのプログラムであってもよいし、当該機器12に接続されている他の機器12を制御するためのプログラムであってもよい。以下では一例として、ロボット12Aを制御するためのプログラム箇所を変更する場合の処理について説明する。また、そのプログラム箇所はロボット12Aに記憶されているものとする。
【0100】
ユーザは、端末装置10を操作することで、端末装置10とロボット12Aとの接続を指示する。端末装置10の制御部22は、その指示に従ってロボット12Aに対して接続要求を示す情報を送信することで、端末装置10とロボット12Aとの間で通信を確立させる。
【0101】
端末装置10とロボット12Aとの間で通信が確立された場合、端末装置10の制御部22は、ロボット12Aに搭載されているパーソナルアシスタントとユーザとの間でメッセージをやり取りするための画面を、端末装置10のUI部16の表示部に表示させる。
図6は、その画面の一例を示す。
【0102】
端末装置10の制御部22は、UI部16の表示部に画面76を表示させ、その画面76に各種の情報を表示させる。画面76は、ユーザがパーソナルアシスタントと対話するためのユーザインターフェース(会話型のユーザインターフェース)である。画面76には、ユーザが端末装置10に入力した情報(例えば文字列及び画像等)と、パーソナルアシスタントの発言内容を示す情報(例えば文字列及び画像等)が表示される。ユーザとパーソナルアシスタントとの間の対話は、いわゆるチャット形式の対話(つまり、ユーザとパーソナルアシスタントが互いに発言しながら対話が進む形式)である。
【0103】
例えば、ユーザが画面76上で端末装置10に情報を入力した場合、端末装置10は、その情報をロボット12Aに送信する。ロボット12Aに搭載されているパーソナルアシスタント(例えばチャットボット)は、端末装置10から送られてきた情報を解析することで、ユーザの発言内容を認識し、ユーザの発言内容に対する回答等の発言内容を作成する。ロボット12Aは、パーソナルアシスタントの発言内容を示す情報を端末装置10に送信する。端末装置10の制御部22は、その情報をパーソナルアシスタントの発言内容として画面76に表示させる。
【0104】
端末装置10の制御部22は、画面76において、ユーザに紐付けられた画像78(例えばアイコン又は写真等)をユーザ用の表示エリアに表示させる。同様に、制御部22は、ロボット12Aに搭載されているパーソナルアシスタント(例えばチャットボット)に紐付けられた画像80(例えばアイコン等)をパーソナルアシスタント用の表示エリアに表示させる。画像に代えて又は画像と共に、ユーザを識別するための文字列、及び、パーソナルアシスタントを識別するための文字列が表示されてもよい。
【0105】
画面76上にて、ユーザとパーソナルアシスタント(チャットボット)との間で対話が行われる。その対話が行われた場合、制御部22は、ユーザの発言内容を画像78に紐付けて画面76に表示させ、パーソナルアシスタントの発言内容を画像80に紐付けて画面76に表示させる。ユーザの発言内容がパーソナルアシスタントによって認識された場合、その発言内容はパーソナルアシスタントによって読まれたとして扱われ、その発言内容がパーソナルアシスタントによって読まれたことを示す情報(例えば文字列「既読」等)が、ユーザの発言内容に紐付けて表示される。また、パーソナルアシスタントの発言内容がユーザによって読まれた場合(例えば、ユーザがその発言内容を画面76上で指定した場合)、その発言内容はユーザによって読まれたとして扱われ、その発言内容がユーザによって読まれたことを示す情報が、パーソナルアシスタントの発言内容に紐付けて表示される。
【0106】
なお、ユーザとパーソナルアシスタントとの間の対話に、他のユーザが参加してもよいし、他のパーソナルアシスタントが参加してもよい。
【0107】
ユーザは、UI部16の操作部を構成するキーボード等によって情報を端末装置10に入力することで、発言内容を端末装置10に入力してもよいし、音声によって発言内容を端末装置10に入力してもよいし、ジェスチャーによって発言内容を端末装置10に入力してもよい。ジェスチャーは、例えば、端末装置10に設けられているカメラ、端末装置10の周囲に設けられているカメラ、又は、機器12に設けられているカメラ等によって撮影される。また、パーソナルアシスタントの発言内容が、端末装置10又はロボット12Aから音声によって発せられてもよいし、パーソナルアシスタントのジェスチャーによって表現されてもよい。また、パーソナルアシスタントの発言内容は画面76に表示されずに、ロボット12AのUI部26の表示部(例えば表示部48)に表示されてもよい。
【0108】
対話に音声又はジェスチャーが用いられる場合、画面76は表示されなくてもよい。もちろん、画面76がUI部16の表示部に表示され、音声の内容及びジェスチャーの内容が、画面76に表示されてもよい。
【0109】
画面76上にて、ユーザによってプログラム箇所の設定変更の要求が与えられる。例えば、発言内容82のように、ユーザがプログラム箇所の設定変更の要求を与えた場合、発言内容82を示す情報が、端末装置10からロボット12Aに送信される。ロボット12Aに搭載されているパーソナルアシスタントは、その発言内容82を解析し、回答を含む発言内容84を作成する。その発言内容84を示す情報は、ロボット12Aから端末装置10に送信され、画面76に表示される。発言内容の表示制御は、端末装置10の制御部22によって行われる。以下の対話においても同様である。
【0110】
発言内容86のように、ユーザが、設定変更の対象となるプログラム箇所を識別するためのプログラム識別情報を入力した場合、パーソナルアシスタントは、そのプログラム識別情報に紐付けられているプログラム箇所を特定する。例えば、パーソナルアシスタントは、ロボット12Aの記憶部28に記憶されているプログラム群の中から、ユーザによって指定されたプログラム識別情報が紐付けられているプログラム箇所を特定する。
図6に示す例では、「会議の司会進行の仕方」を実行するためのプログラム箇所がユーザによって指定されているため、パーソナルアシスタントは、当該プログラム箇所を特定する。なお、プログラム箇所の特定は、ロボット12Aの制御部34によって行われてもよい。
【0111】
上記のプログラム箇所の現状の設定内容を示す情報(設定情報)が、ロボット12Aから端末装置10に送信され、その情報が、ロボット12Aの発言内容88として画面76に表示される。
【0112】
また、現状の設定内容を表すブロック
図90が、ロボット12Aの発言として画面76に表示される。ブロック
図90は、プログラム箇所「会議の司会進行の仕方」の表現形式の一例であり、処理が紐付けられた図形(例えばノード)の集合である。例えば、ブロック
図90は、図形90a,90b,90c,90dを含む。図形90a,90b,90c,90dはそれぞれ別々の処理を表す図形である。図形同士は、処理の流れを表す矢印等の線によって繋げられている。
【0113】
例えば、図形90aと図形90bが、図形90aから図形90bへと向かう矢印によって繋げられている。図形90bと図形90cが、図形90bから図形90cへと向かう矢印によって繋げられている。図形90bと図形90dが、図形90bから図形90dへの向かう矢印によって繋げられている。図形90dと図形90aが、図形90dから図形90aへと向かう矢印によって繋げられている。この例では、図形90aに紐付けられた処理が実行され、その処理結果が、図形90bに紐付けられた処理に渡される。図形90bに紐付けられた処理は、その処理結果を用いて実行される処理である。同様に、図形909bに紐付けられた処理の結果が、図形90c,90dのそれぞれに紐付けられた処理に渡されて、図形90c、90dのそれぞれに紐付けられた処理が実行される。また、図形90dに紐付けられた処理の結果は、図形90aに紐付けられた処理に渡される。
【0114】
なお、プログラム箇所は、ソースコードの表現形式に従って表現されてロボット12Aに記憶されていてもよいし、ブロック図の表現形式に従って表現されてロボット12Aに記憶されていてもよい。端末装置10及び他の機器12に記憶されているプログラム箇所についても同様である。
【0115】
プログラム箇所がソースコードの表現形式に従って表現されて記憶されている場合、プログラム箇所の表現形式がソースコードからブロック図の表現形式に変換され、変換後のブロック図が画面76に表示されてもよい。同様に、プログラム箇所がブロック図の表現形式に従って表現されて記憶されている場合、プログラム箇所の表現形式がブロック図からソースコードの表現形式に変換され、変換後のソースコードが画面76に表示されてもよい。その変換処理は、端末装置10の制御部22によって行われてもよいし、ロボット12Aの制御部34によって行われてもよい。例えば、ソースコードとしての文字列によって表現された処理と、図形によって表現された処理とが互いに対応付けられており、各処理の対応関係を示す情報が、端末装置10及び機器12に記憶されている。制御部22又は制御部34は、その対応関係を示す情報を参照することで、ソースコードとブロック図とを互いに変換する。なお、対応関係を示す情報は、サーバ等の外部装置に記憶されていてもよい。この場合、制御部22又は請求項34は、当該外部装置から対応関係を示す情報を取得して変換処理を行う。
【0116】
図6に示されているブロック
図90は、ブロック図の表現形式に従って表現されてロボット12Aに記憶されていてもよいし、ソースコードの表現形式に従って表現されたプログラム箇所がブロック図の表現形式に変換されることで生成された図であってもよい。
【0117】
以下、
図7を参照して、対話の続きについて説明する。
図7は、画面の一例を示す。発言内容92のように、ユーザが、プログラム箇所「会議の司会進行の仕方」の具体的な変更内容を入力した場合、その変更内容を示す情報は、端末装置10からロボット12Aに送信される。ロボット12Aの変更部32は、その変更内容を解釈し、その解釈結果に基づいて、当該プログラム箇所を変更する。その解釈には、例えば、形態素解析等の自然言語処理が用いられる。なお、ロボット12Aに搭載されているパーソナルアシスタントが、設定内容を解釈してもよい。
【0118】
例えば、変更部32は、設定変更の要求に従って、プログラム箇所「会議の司会進行の仕方」において変更箇所を特定し、ユーザが指定した変更内容に対応する処理をその変更箇所に追加したり、その変更箇所の処理を変更したり、その変更箇所の処理を削除したりする。なお、設定内容の変更処理は、端末装置10の変更部20によって行われてもよい。
【0119】
ユーザによって設定変更の要求が与えられた場合、設定変更を実行する旨を示す情報が、パーソナルアシスタントの発言内容94として画面76に表示される。また、設定変更の要求に従った変更が反映されたプログラム箇所が画面76に表示される。
図7に示す例では、変更が反映されたプログラム箇所を表すブロック
図96が、画面76に表示されている。変更内容に対応する処理に紐付けられた図形90eが、元のブロック
図90に新たに追加されることで、ブロック
図96が作成されている。このブロック
図96は、制御部22又は請求項34によって作成される。
【0120】
図形90eは、「10分間沈黙だった場合、会話を促すように発言する」という処理に紐付けられた図形であり、その処理の流れを示す矢印がブロック
図96中に描画されている。
【0121】
パーソナルアシスタントの発言内容98のように、上書き保存を行うか否かをユーザに問い合わせるためのメッセージが画面76に表示される。その発言内容98に対して、ユーザが、発言内容100のように上書き保存を指示した場合、ロボット12Aの変更部32は、変更が反映されたプログラム箇所を、変更が反映される前のプログラム箇所に上書きして記憶部28に記憶させる。上書き保存が完了すると、その旨を示す発言内容102が画面76に表示される。もちろん、変更が反映されたプログラム箇所と、変更が反映される前のプログラム箇所が、別々に記憶部28に記憶されてもよい。
【0122】
変更が反映されたプログラム箇所は、ソースコードの表現形式で表現された状態で記憶部28に記憶されてもよいし、ブロック図の表現形式で表現された状態で記憶部28に記憶されてもよい。
【0123】
ロボット12Aは、パーソナルアシスタントによる制御の下、首振り、手振り及び発光音等によって、反応を示してもよい。例えば、ロボット12Aは、プログラム箇所の変更が可能である場合、首を縦に振り、プログラム箇所の変更が不可能である場合、首を横に振ってもよい。また、変更が反映されたプログラム箇所が上書き保存された場合、ロボット12Aは、首を縦に振ってもよい。
【0124】
なお、音声又はジェスチャーによって、ユーザとパーソナルアシスタントとの間でメッセージがやり取りされた場合、画面76は端末装置10に表示されなくてもよい。この場合においても、ユーザが指定した場合、又は、プログラム箇所の設定変更が完了した場合等に、それまでのメッセージのやり取りを示す画面76が端末装置10に表示されてもよい。
【0125】
以上のように、本実施形態によれば、会話型のユーザインターフェースを用いてプログラミングが行われる。これにより、ユーザは対話相手と対話しながら簡易にプログラミングを行うことが可能となる。
【0126】
なお、変更対象のプログラム箇所が、コンパイル言語によって記述されている場合、ロボット12Aの制御部34は、変更がプログラム箇所に反映された後、その変更が反映されたプログラム箇所が実行される前に、その変更が反映されたプログラム箇所をコンパイルすることで機械語に変換してもよい。予めコンパイルを実行しておくことで、プログラム箇所の実行時にコンパイルを実行する場合と比べて、その実行時に要する時間を短縮することができる。
【0127】
上記の例では、機器12に記憶されているプログラム箇所が変更されているが、端末装置10に記憶されているプログラム箇所が変更されてもよい。この場合、端末装置10は機器12に接続される必要はない。端末装置10に搭載されているパーソナルアシスタントとユーザとの間でメッセージがやり取りされることで、端末装置10に記憶されているプログラム箇所が変更される。画面76は、そのメッセージをやり取りするためのユーザインターフェースとして用いられる。この場合においても、音声又はジェスチャーによって、ユーザとパーソナルアシスタントとの間でメッセージのやり取りが行われてもよい。この場合、画面76は表示されてもよいし、表示されずに後になって表示されてもよい。
【0128】
設定変更の内容が、機器12(例えばロボット12A)によって実行不可能な場合、端末装置10の制御部22は、その旨を示す情報をUI部16の表示部に表示させてもよい。例えば、ロボット12Aの制御部34は、ロボット12Aが設定変更の内容に対応する機能を有しているか否かを判断する。ロボット12Aが当該機能を有していない場合、制御部34は、その旨を示す情報を端末装置10に送信する。端末装置10の制御部22は、その旨を示す情報を画面76に表示させる。例えば、ロボット12Aの記憶部28には、ロボット12Aが有する機能を示す情報が記憶されており、制御部34は、その情報を参照することで、ロボット12Aが設定変更の内容に対応する機能を有しているか否かを判断する。もちろん、端末装置10の制御部22が、上記の判断を行ってもよい。また、端末装置10に記憶されているプログラム箇所の設定変更の要求が与えられた場合において、端末装置10が設定変更の内容に対応する機能を有していない場合に、制御部22は、設定変更の内容が端末装置10によって実行不可能な旨を示す情報を、UI部16の表示部に表示させてもよい。
【0129】
以下、変形例について説明する。
【0130】
(変形例1)
変形例1について説明する。変形例1では、設定変更の内容に対応する処理の1又は複数の候補がユーザに通知される。1又は複数の候補の中からユーザによって選択された候補が、プログラム箇所に新たに追加されたり、プログラム箇所に含まれる処理が、その候補に変更されたりする。
【0131】
以下、
図8を参照して、変形例1について詳しく説明する。
図8は、画面の一例を示す。ここでは、上述した実施形態と同様に、ロボット12Aに記憶されているプログラム箇所「会議の司会進行の仕方」が変更されるものとする。
【0132】
発言内容92のように、ユーザが、プログラム箇所「会議の司会進行の仕方」の具体的な変更内容を入力した場合、その変更内容を示す情報は、端末装置10からロボット12Aに送信される。ロボット12Aの変更部32は、その変更内容を解釈し、その変更内容に対応する処理の1又は複数の候補を特定する。変更部32は、解釈結果が示す内容と同一の処理を候補として特定してもよいし、その内容と類似する処理を候補として特定してもよい。各候補は、ソースコードの表現形式に従って表現されていてもよいし、処理に紐付けられた図形(例えばノード)の表現形式に従って表現されていてもよい。その解釈には、例えば、形態素解析等の自然言語処理が用いられる。なお、ロボット12Aに搭載されているパーソナルアシスタントが、変更内容を解釈してもよい。各処理の1又は複数の候補を示す情報が、機器12に予め記憶されており、変更部32は、その情報を参照することで候補を特定する。
【0133】
各処理の候補を示す情報(ソースコード又は図形で表現された情報)が、ロボット12Aに予め記憶されている場合、変更部32は、ロボット12Aに記憶されている候補群の中から、変更内容に対応する処理の1又は複数の候補を特定する。別の例として、変更部32は、変更内容に対応する処理の候補を作成してもよい。
【0134】
例えば、「10分間沈黙だった場合、会話を促すように発言する」という処理の候補を示す情報がロボット12Aに予め記憶されている場合、変更部32は、ロボット12Aに記憶されている候補群の中から、当該候補を特定する。別の例として、変更部32は、その候補を作成してもよい。
【0135】
端末装置10の変更部20が、変更内容を解釈し、その変更内容に対応する処理の1又は複数の候補を特定してもよい。例えば、各処理の1又は複数の候補を示す情報が、端末装置10に予め記憶されており、変更部20は、その情報を参照することで候補を特定してもよい。
【0136】
特定された1又は複数の候補を示す情報(ソースコード又は図形で表現された情報)は、ロボット12Aから端末装置10に送信される。端末装置10の制御部22は、その情報を画面76に表示させる。例えば、パーソナルアシスタントの発言内容104に続けて、候補を示す情報が表示される。ここでは、図形(例えばノード)で表現された候補群106が表示されている。もちろん、ソースコードで表現された候補群が表示されてもよい。
【0137】
ユーザが、発言内容108によって候補群106の中から特定の候補(例えば図形90e)を選択し、元のブロック
図90の中の変更箇所を指定した場合、その選択及び指定を示す情報が、端末装置10からロボット12Aに送信される。変更部32は、その選択及び指定に従って、図形90eに紐付けられた処理を、元のブロック
図90によって表現されたプログラム箇所の中の変更箇所に追加する。
【0138】
画面76には、設定変更を実行する旨を示す情報が、パーソナルアシスタントの発言内容110として表示される。また、変更が反映されたプログラム箇所が画面76に表示される。例えば、変更が反映されたプログラム箇所を表すブロック
図112が、画面76に表示されている。変更内容に対応する処理に紐付けられた図形90eが、元のブロック
図90に新たに追加されることで、ブロック
図112が作成されている。このブロック
図112は、制御部22又は制御部34によって作成される。
【0139】
変形例1によれば、変更内容に対応する処理の候補がユーザに提示されるので、簡易にプログラム箇所を変更することができる。
【0140】
なお、候補を通知することができない場合(例えば、候補がロボット12Aに記憶されていない場合、及び、候補を作成することができない場合等)、ロボット12Aは、首を横に振る等して、候補を通知することができない旨をユーザに伝えてもよい。
【0141】
端末装置10に記憶されているプログラム箇所が変更される場合も、上記の例と同様に、変更内容に対応する処理の候補がユーザに提示される。
【0142】
(変形例2)
変形例2について説明する。変形例2では、設定変更の要求に従った変更が反映されたプログラム箇所の候補がユーザに通知される。1又は複数の候補の中からユーザによって選択された候補が、変更が反映されたプログラム箇所として記憶される。
【0143】
以下、
図9を参照して、変形例2について詳しく説明する。
図9は、画面の一例を示す。ここでは、上述した実施形態と同様に、ロボット12Aに記憶されているプログラム箇所「会議の司会進行の仕方」の設定内容が変更されるものする。
【0144】
発言内容92のように、ユーザが、プログラム箇所「会議の司会進行の仕方」の具体的な変更内容を入力した場合、その設定変更の内容を示す情報は、端末装置10からロボット12Aに送信される。ロボット12Aの変更部32は、その変更内容を解釈し、その解釈結果に基づいて、当該プログラム箇所の設定内容を変更することで、変更が反映されたプログラム箇所の1又は複数の候補を作成する。各候補は、ソースコードの形式で表現されていてもよいし、処理に紐付けられた図形(例えばノード)の形式で表現されていてもよい。その解釈には、例えば、形態素解析等の自然言語処理が用いられる。なお、ロボット12Aに搭載されているパーソナルアシスタントが、設定内容を解釈してもよい。
【0145】
例えば、変更部32は、変更内容の解釈結果に従って、プログラム箇所「会議の司会進行の仕方」において変更箇所を特定し、ユーザが指定した変更内容に対応する処理をその変更箇所に追加したり、その変更箇所の処理を変更したり、その変更箇所の処理を削除したりすることで、プログラム箇所の1又は複数の候補を作成する。なお、設定内容の変更処理は、端末装置10の変更部20によって行われてもよい。
【0146】
変更が反映されたプログラム箇所の1又は複数の候補を示す情報(ソースコード又は図形で表現された情報)が、ロボット12Aから端末装置10に送信されて、画面76に表示される。例えば、パーソナルアシスタントの発言内容114に続けて、候補を示す情報が表示される。ここでは、ブロック図(例えばノードの集合)で表現された候補116,118等が表示されている。もちろん、ソースコードで表現された候補群が表示されてもよい。
【0147】
ユーザが、発言内容120によって候補116,118等の中から特定の候補(例えば候補116)を選択した場合、その選択を示す情報が、端末装置10からロボット12Aに送信される。変更部32は、その選択に従って、候補116が示すプログラム箇所を、変更が反映される前のプログラム箇所に上書きして記憶部28に記憶させる。上書き保存が完了すると、その旨を示す発言内容が画面76に表示される。もちろん、変更が反映されたプログラム箇所と、変更が反映される前のプログラム箇所が、別々に記憶部28に記憶されてもよい。
【0148】
上述した実施形態と同様に、変更が反映されたプログラム箇所は、ソースコードの形式で表現された状態で記憶部28に記憶されてもよいし、ブロック図の形式で表現された状態で記憶部28に記憶されてもよい。
【0149】
変形例2によれば、変更が反映されたプログラム箇所の候補がユーザに提示されるので、簡易にプログラム箇所を変更することができる。
【0150】
なお、変形例1と同様に、候補を通知することができない場合、ロボット12Aは、首を横に振る等して、候補を通知することができない旨をユーザに伝えてもよい。
【0151】
端末装置10に記憶されているプログラム箇所が変更される場合も、上記の例と同様に、変更が反映されたプログラム箇所の1又は複数の候補がユーザに提示される
【0152】
(変形例3)
変形例3について説明する。変形例3では、設定変更の内容が、プログラミング言語を用いて記述された文字列によって与えられる。
【0153】
以下、
図10を参照して、変形例3について詳しく説明する。
図10は、画面の一例を示す。ここでは、上述した実施形態と同様に、ロボット12Aに記憶されているプログラム箇所「会議の司会進行の仕方」の設定内容が変更されるものとする。
【0154】
ユーザが、発言内容122のように、変更対象のプログラム箇所「会議の司会進行の仕方」を指定し、続けて、発言内容124のように、プログラム言語を用いて記述された設定変更の内容を入力した場合、その設定変更の内容を示す情報は、端末装置10からロボット12Aに送信される。ここでは、その設定変更の内容は、ソースコードの表現形式によって表現されている。
【0155】
ロボット12Aの変更部32は、その設定変更の内容に含まれる命令文(ソースコードで表現された文字列)に基づいて、プログラム箇所「会議の司会進行の仕方」において変更箇所を特定し、その命令文を当該プログラム箇所に追加する。
【0156】
変更部32は、ソースコードの表現形式によって表現されている元のプログラム箇所に、設定変更の内容に含まれる命令文(ソースコードで表現された文字列)を追加する。これにより、変更が反映されたプログラム箇所が、ソースコードの表現形式によって表現される。制御部34は、ソースコードの表現形式によって表現されている変更後のプログラム箇所を、図形(例えばノード)によって表現されるブロック図に変換してもよい。別の例として、変更部32は、設定変更の内容に含まれる命令文(ソースコードで表現された文字列)を図形(例えばノード)に変換し、変換後の図形を、図形の表現形式によって表現されている変更前のプログラム箇所に追加してもよい。なお、設定内容の変更処理は、端末装置10の変更部20によって行われてもよい。
【0157】
ユーザによって設定変更の要求が与えられた場合、設定変更を実行する旨を示す情報が、パーソナルアシスタントの発言内容126として画面76に表示される。また、設定変更の要求に従った変更が反映されたプログラム箇所が画面76に表示される。
図10に示す例では、変更が反映されたプログラム箇所を表すブロック
図128が、画面76に表示されている。もちろん、変更が反映されたプログラム箇所が、ソースコードの表現形式によって表現されて、画面76に表示されてもよい。
【0158】
上書き保存を行うか否かをユーザに問い合わせるための発言内容130が、画面76に表示され、ユーザが、発言内容132のように上書き保存を指示した場合、ロボット12Aの変更部32は、変更が反映されたプログラム箇所を、変更が反映される前のプログラム箇所に上書きして記憶部28に記憶させる。
【0159】
変形例3によれば、プログラム言語を用いて表現された設定変更の内容を入力することで、簡易にプログラム箇所を変更することができる。
【0160】
端末装置10に記憶されているプログラム箇所も、上記と同様にして変更されてもよい。
【0161】
(変形例4)
変形例4について説明する。変形例4では、プログラム箇所の送信指示に従って、プログラム箇所の設定内容が送信先に送信される。
【0162】
以下、
図11を参照して、変形例4について詳しく説明する。
図11は、画面の一例を示す。ここでは、上述した実施形態と同様に、ロボット12Aに記憶されているプログラム箇所「会議の司会進行の仕方」の設定内容が変更されるものとする。
【0163】
発言内容134のように、ユーザが、プログラム箇所「会議の司会進行の仕方」の表示指示を与えた場合、その指示を示す情報は、端末装置10からロボット12Aに送信される。ロボット12Aの制御部34は、ロボット12Aに記憶されているプログラム箇所群の中から、ユーザによって指定されたプログラム箇所を特定し、そのプログラム箇所を示す情報(ソースコード又は図形によって表現された情報)を端末装置10に送信する。そのプログラム箇所は、画面76に表示される。例えば、パーソナルアシスタントの発言内容136に続けて、ユーザによって指定されたプログラム箇所を表すブロック
図138が表示されている。また、当該プログラム箇所がソースコードの表現形式によって表現され、発言内容140に続けて、当該プログラム箇所を表す命令文141(ソースコードで表現された文字列)が、画面76に表示されている。
【0164】
発言内容142のように、ユーザが、送信先のアドレス(電子メールのアドレス等)を指定してプログラム箇所の送信指示を与えた場合、その送信指示を示す情報は、端末装置10からロボット12Aに送信される。ロボット12Aの制御部34は、その送信指示に従って、ユーザによって指定されたプログラム箇所を、ユーザによって指定されたアドレス宛に送信する。なお、端末装置10が、プログラム箇所を送信先に送信してもよい。
【0165】
また、ロボット12Aの制御部34は、上記の送信指示を与えたユーザアカウントとは異なるユーザアカウントが設定されている端末装置等の装置に上記のプログラム箇所を送信してもよい。例えば、ロボット12Aの制御部34は、ロボット12Aに登録されているユーザアカウントを有するユーザの端末装置にプログラム箇所を送信する。また、ロボット12Aの制御部34は、送信対象のプログラム箇所を過去に利用又は設定変更したことのあるユーザの利用履歴を管理し、そのユーザの端末装置にプログラム箇所を送信してもよい。
【0166】
図11に示す例では、パーソナルアシスタントが送信指示を受けた旨を示す発言内容144が画面76に表示され、その後、プログラム箇所が送信先に送信される。
【0167】
送信されるプログラム箇所は、ソースコードで表現されていてもよいし、ブロック図で表現されていてもよい。
【0168】
変形例4によれば、会話型のユーザインターフェースを用いて、プログラム箇所の送信指示を与えることができる。
【0169】
端末装置10に記憶されているプログラム箇所も、上記と同様に送信先に送信されてもよい。
【0170】
(変形例5)
変形例5について説明する。変形例5では、設定変更の内容が、その設定変更に係る処理に紐付けられた図形によって与えられる。
【0171】
以下、
図12を参照して、変形例5について詳しく説明する。
図12は、画面の一例を示す。ここでは、上述した実施形態と同様に、ロボット12Aに記憶されているプログラム箇所「会議の司会進行の仕方」の設定内容が変更されるものとする。
【0172】
ユーザが、発言内容146のように、変更対象のプログラム箇所「会議の司会進行の仕方」を指定し、続けて、その司会進行の判断に追加する処理として、その処理に紐付けられた図形148を入力した場合、その設定変更の内容を示す情報は、端末装置10からロボット12Aに送信される。その設定変更の内容を示す情報は、図形148を示す情報と、図形148に紐付けられた処理の追加指示を示す情報と、変更対象のプログラム箇所においてその図形148(つまり図形148に紐付けられた処理)が追加される箇所(司会進行の判断の部分)を示す情報と、を含む。
【0173】
ロボット12Aの変更部32は、処理の追加指示に従って、その設定変更の内容に含まれる図形148を、プログラム箇所「会議の司会進行の仕方」の変更箇所(司会進行の判断の部分)に追加する。変更部32は、図形の表現形式によって表現されている変更前のプログラム箇所の変更箇所に、図形148を追加する。なお、設定内容の変更処理は、端末装置10の変更部20によって行われてもよい。
【0174】
設定変更を実行する旨を示す情報が、パーソナルアシスタントの発言内容150として画面76に表示される。また、変更が反映されたプログラム箇所が画面76に表示される。
図12に示す例では、変更が反映されたプログラム箇所を表すブロック
図152が、画面76に表示されている。もちろん、変更が反映されたプログラム箇所が、ソースコードの表現形式によって表現されて画面76に表示されてもよい。
【0175】
なお、変更部32は、変更前のプログラム箇所を表すブロック図に図形148を追加し、追加された図形148と他の図形とを、処理の流れを示す矢印等によって繋げてもよい。その繋ぎ合わせは、ユーザによって行われてもよい。
【0176】
発言内容154のように、ユーザがプログラム箇所の更新(例えば上書き保存)を指示した場合、発言内容156のように、パーソナルアシスタントがその旨を承諾したことを示す情報が画面76に表示される。ロボット12Aの変更部32は、ブロック
図152によって表現されているプログラム箇所を、変更が反映される前のプログラム箇所に上書きして記憶部28に記憶させる。
【0177】
変形例5によれば、図形を用いて表現された設定変更の内容を入力することで、簡易にプログラム箇所を変更することができる。
【0178】
また、端末装置10の制御部22は、
図13に示すように、処理を表す図形(例えばノード)の一覧158を画面76に表示させてもよい。一覧158は、複数の図形(例えばノード)を含む。ユーザが、その一覧158の中から、目的の処理に紐付けられた図形148を選択すると、その図形148に紐付けられた処理が、変更対象のプログラム箇所に追加される。このように、一覧158を表示することで、ユーザは、目的の処理を簡易に選択することができる。なお、一覧158に含まれる各図形を示す情報は、端末装置10に記憶されていてもよいし、機器12に記憶されていてもよい。
【0179】
端末装置10に記憶されているプログラム箇所も、図形を用いて表現された設定変更の内容に従って変更されてもよい。
【0180】
(変形例6)
変形例6について説明する。変形例6では、変更対象のプログラム箇所の一部の処理が削除される。
【0181】
以下、
図14を参照して、変形例6について詳しく説明する。
図14は、画面の一例を示す。ここでは、上述した実施形態と同様に、ロボット12Aに記憶されているプログラム箇所「会議の司会進行の仕方」の設定内容が変更されるものとする。
【0182】
ユーザが、発言内容160のように、変更対象のプログラム箇所「会議の司会進行の仕方」を指定し、続けて、その司会進行の判断から削除する処理として、その処理に紐付けられた図形162を入力した場合、その設定変更の内容を示す情報は、端末装置10からロボット12Aに送信される。その設定変更の内容を示す情報は、図形162を示す情報と、図形162に紐付けられた処理の削除指示を示す情報と、変更対象のプログラム箇所においてその図形162(つまり図形162に紐付けられた処理)が削除される箇所(司会進行の判断の部分)を示す情報と、を含む。
【0183】
ロボット12Aの変更部32は、処理の削除指示に従って、その設定変更の内容に含まれる図形162を、プログラム箇所「会議の司会進行の仕方」の変更箇所(司会進行の判断の部分)から削除する。変更部32は、図形の表現形式によって表現されている変更前のプログラム箇所の変更箇所から、図形162を削除する。なお、設定内容の変更処理は、端末装置10の変更部20によって行われてもよい。
【0184】
設定変更を実行する旨を示す情報が、パーソナルアシスタントの発言内容164として画面76に表示される。また、変更が反映されたプログラム箇所が画面76に表示される。
図14に示す例では、変更が反映されたプログラム箇所を表すブロック
図166が、画面76に表示されている。もちろん、変更が反映されたプログラム箇所が、ソースコードの表現形式によって表現されて画面76に表示されてもよい。
【0185】
なお、変更部32は、図形162が削除された後のブロック図において、図形同士を処理の流れを示す矢印等によって繋げてもよい。その繋ぎ合わせは、ユーザによって行われてもよい。
【0186】
発言内容168のように、ユーザがプログラム箇所の更新(例えば上書き保存)を指示した場合、発言内容170のように、パーソナルアシスタントがその旨を承諾したことを示す情報が画面76に表示される。ロボット12Aの変更部32は、ブロック
図166によって表現されているプログラム箇所を、変更が反映される前のプログラム箇所に上書きして記憶部28に記憶させる。
【0187】
以上のように、変形例6によれば、図形を用いて表現された設定変更の内容を入力することで、簡易にプログラム箇所を変更することができる。
【0188】
端末装置10に記憶されているプログラム箇所も、上記の処理と同様に、図形を用いて表現された設定変更の内容によって変更されてもよい。
【0189】
(変形例7)
変形例7について説明する。変形例7では、プログラムを作成しているときに、動作可能な単位でプログラム部分が完成した場合、その旨が通知される。
【0190】
以下、
図15を参照して、変形例7について詳しく説明する。
図15は、画面の一部を示す。例えば、上述した実施形態又は変形例によってプログラム箇所が編集された場合、又は、ユーザによる指示によってプログラムが作成されている場合において、動作可能な単位でプログラム部分が完成した場合、端末装置10の制御部22は、その旨の通知を制御する。例えば、端末装置10において、処理に紐付けられた複数の図形(例えばノード)同士がユーザによって繋げられることで、動作可能なプログラム部分が完成した場合、制御部22は、その旨を通知する。
【0191】
具体例を挙げて説明する。例えば、「機器12としてのロボットによって荷物を運ぶ」という動作を実行するためのプログラム部分が完成した場合、制御部22は、そのプログラム部分によって実現される動作を、画像を用いて表現する。
図15に示す例で説明すると、画像172はロボットを表す画像であり、画像174は荷物を表す画像である。画像172,174によって、ロボットが荷物を持ち上げている様子が表現されている。画像172,174は、端末装置10の画面76に表示されており、上記の動作を実現するためのプログラム部分が完成した場合、制御部22は、画面76上にて、矢印176で示す方向に画像172,174を移動させる。
【0192】
変形例7によれば、プログラムが部分的に完成した場合に、その旨がユーザに伝えられる。また、完成した動作を画像で表現することで、プログラムが完成したことを視覚的にユーザに伝えることができる。
【0193】
なお、機器12を制御するためのプログラムが部分的に完成した場合、制御部22は、当該機器12に紐付けられた画像によって、当該プログラムによって実現される動作を表現してもよい。例えば、ロボット12Aを制御するためのプログラムが部分的に完成した場合、制御部22は、ロボット12Aに紐付けられた画像によって、当該プログラムによって実現される動作(例えば、ロボット12Aによって荷物を運ぶという動作)を表現してもよい。また、制御部22は、ロボット12Aに搭載されているパーソナルアシスタントに紐付けられた画像によって、当該プログラムによって実現される動作を表現してもよい。例えば、制御部22は、
図6等に示されている画像80の代わりに、パーソナルアシスタントの外観を表す画像を画面76に表示させ、その画像によって、プログラムによって実現される動作を表現してもよい。
【0194】
また、プログラムによって機能が追加された場合、制御部22は、その機能を、画像を用いて表現してもよい。例えば、上述した実施形態又は変形例によってプログラム箇所が編集されたことで機器12に新たな機能が追加された場合、又は、ユーザによる指示によってプログラムが作成されたことで機器12に新たな機能が追加された場合、制御部22は、その機能を、画像を用いて表現する。
【0195】
この処理について、
図16を参照して詳しく説明する。
図16は、機器に紐付く画像の一例を示す。例えば、プログラムによって、機器12としてのロボットに、空を飛ぶ機能が追加されたものとする。制御部22は、プログラムの作成前又は作成中に、
図16の(a)に示すように、ロボットを表す画像178を画面76に表示させる。そして、空を飛ぶ機能がプログラムによってロボットに追加された場合、制御部22は、
図16の(b)に示すように、その機能が追加されたロボットを表す画像180を、画像178に代えて画面76に表示させる。追加前の画像178には、空を飛ぶ機能を表す羽根は表されていないが、追加後の画像180には羽根が表されている。こうすることで、プログラムによって新たな機能がされたことを視覚的にユーザに伝えることができる。
【0196】
また、上述した実施形態のように、ロボット12Aに搭載されているパーソナルアシスタントとユーザとの間でメッセージがやり取りされる場合、制御部22は、当該パーソナルアシスタントに紐付けられた画像として、画像178を画面76に表示させてもよい。例えば、制御部22は、
図6等に示されている画像80の代わりに画像178を画面76に表示させてもよい。この場合において、ロボット12Aに対して空を飛ぶ機能が追加された場合、制御部22は、画像178に代えて画像180を画面76に表示させてもよい。
【0197】
(変形例8)
変形例8について説明する。変形例8では、ユーザの発言内容によって設定変更の対象となるプログラム箇所が特定できない場合、設定変更の対象となるプログラム箇所を特定するための情報をユーザから得るための質問が、ユーザに提示される。
【0198】
以下、
図17を参照して、変形例8について詳しく説明する。
図17は、画面の一例を示す。ここでは、端末装置10がロボット12Aに接続されて、ロボット12Aに搭載されているパーソナルアシスタントとユーザとの間でメッセージがやり取りされているものとする。
【0199】
ユーザが、パーソナルアシスタントによって設定変更の対象となるプログラム箇所を特定することができない発言内容182を入力した場合、パーソナルアシスタントは、質問を繰り返す。例えば、発言内容182には、「たまには」という表現が含まれており、この表現では、パーソナルアシスタントはプログラム箇所を特定することができない。この場合、パーソナルアシスタントは、発言内容184のように、その曖昧な表現の意味をユーザに問い合わせるためのメッセージを発する。この質問に対して、発言内容186のようにユーザが返答し、パーソナルアシスタントが、その返答の内容によってプログラム箇所を特定することができた場合、プログラム箇所が特定されたことを示す発言内容188が画面76に表示される。このように、プログラム箇所が特定されるまで、パーソナルアシスタントは質問を繰り返す。
【0200】
また、パーソナルアシスタントは、ユーザが回答すべき内容の候補の一覧を作成し、制御部22は、その一覧を画面76に表示させてもよい。別の例として、パーソナルアシスタントは、リンクによって表される回答の候補の一覧を作成し、制御部22は、その候補の一覧を画面76に表示させてもよい。別の例として、パーソナルアシスタントは、ユーザの属性(例えば、性別、職業、年齢等)、又は、機器12等の使用履歴に基づいて、回答の候補を作成してもよい。パーソナルアシスタントは、例えば、カメラによる撮影によって生成された画像、マイクによって収集された音声、又は、ユーザに紐付けられた端末装置10に記憶されている情報等からユーザの属性を示す情報を取得する。また、パーソナルアシスタントは、ユーザの生体情報(例えば、脳波、脈波、指紋等)を利用することで、ユーザの属性を示す情報を取得してもよい。
【0201】
変形例8によれば、ユーザの発言内容によってプログラム箇所が特定されない場合であっても、そのプログラム箇所を特定するための質問がユーザに提示されるので、そのプログラム箇所を特定することが可能となる。
【0202】
(変形例9)
変形例9について説明する。変形例9では、機器12を用いて実行可能な機能が端末装置10に通知される。
【0203】
例えば、あるユーザが機器12に対して機能を設定した場合、当該機器12は、当該機器12に接続されている他のユーザの端末装置10に、当該機能を示す情報を送信する。当該他のユーザの端末装置10の制御部22は、当該機能を示す情報をUI部16に表示させる。例えば、あるユーザが、機器12にて実行されるプログラムを設定することで当該機器12に機能を設定し、他のユーザの端末装置10が当該機器12に接続した場合、当該機能を示す情報が当該端末装置10に表示される。このように、あるユーザが機器12に設定した機能が、当該機器12に接続された他のユーザの端末装置10に通知される。また、あるユーザアカウントを有するユーザによって機器12に設定された機能が、他のユーザアカウントを有するユーザの端末装置10に通知されてもよい。
【0204】
例えば、あるユーザが、ロボット12Aに対して「会議の司会進行の仕方」に関するプログラムを設定することで、「会議の司会進行の仕方」という機能をロボット12Aに設定した場合、ロボット12Aに接続されている他のユーザの端末装置10に当該機能が通知される。
【0205】
また、機器12にハードウェア又はソフトウェアが追加された場合、当該機器12は、当該機器12に接続されている端末装置10に、当該機器12のスペックが向上したことを示す情報を送信してもよい。この場合、端末装置10の制御部22は、当該情報をUI部16に表示させる。例えば、機器12は、ハードウェア又はソフトウェアの追加によって実行可能になった機能を示す情報を端末装置10に送信し、制御部22は、当該機能を示す情報をUI部16に表示させる。
【0206】
例えば、飛行機能を実現するための羽がロボット12Aに追加されることで、ロボット12Aが飛行機能を有することになった場合、ロボット12Aに接続されている端末装置10に飛行機能が通知される。
【0207】
また、機器12の制御部34は、ユーザ毎に、当該機器12に設定されている機能(例えばプログラムによって設定された機能)の利用履歴を管理してもよい。当該機器12に端末装置10が接続された場合、制御部34は、当該端末装置10を利用するユーザを識別する情報を当該端末装置10から取得し、当該ユーザの利用履歴を参照することで、当該ユーザが実行指示を与えると想定される機能、又は、当該ユーザに役立つと想定される機能を予測する。機器12は、その予測結果を示す情報を端末装置10に送信する。端末装置10の制御部22は、その予測結果を示す情報をUI部16に表示させる。
【0208】
変形例9によれば、機器12を用いて実行可能な機能をユーザに通知することが可能となる。
【0209】
(変形例10)
変形例10について説明する。変形例10では、設定変更の要求に従った変更が反映されたプログラム箇所の内容が、既に設定されている別のプログラム箇所の内容と矛盾する場合、警告処理が実行される。
【0210】
以下、変形例10について詳しく説明する。例えば、「扉が開いたことがセンサによって検知された場合、照明装置を点灯させる」という点灯機能を実行するためのプログラム箇所が作成されて、機器12としての照明装置に記憶され、これにより、当該点灯機能が照明装置に設定されているものとする。この場合において、「扉が開いたことがセンサによって検知された場合、照明装置を消灯する」という消灯機能を実行するためのプログラム箇所が作成されて、同一の照明装置に記憶され、これにより、当該消灯機能が照明装置に設定されようとしているものとする。
【0211】
例えば、ユーザAが、端末装置10を用いて、点灯機能を実行するためのプログラム箇所を作成して照明装置に記憶させることで、当該点灯機能を照明装置に設定しているものとする。この場合において、ユーザA又は別のユーザBが、端末装置10を用いて、消灯機能を実行するためのプログラム箇所を作成し、当該プログラム箇所を同一の照明装置に記憶させる指示を与えたとする。
【0212】
照明装置の制御部34は、当該照明装置に既に設定されている機能と、新たに設定される機能とを比較し、それらの機能が互いに矛盾するか否かを判断する。それらの機能が互いに矛盾していない場合、制御部34は、新たな機能を実行するためのプログラム箇所を記憶部28に記憶させ、当該新たな機能を自装置である照明装置に設定する。それらの機能が互いに矛盾する場合、制御部34は、警告処理を実行する。
【0213】
例えば、ある機能Aが機器12にて実行されている最中に、別の機能Bを同一機器12にて実行することができない場合、機能A,Bは互いに矛盾する機能である。上記の例で説明すると、点灯と消灯の両方を同一の照明装置によって同時に実現することができないため、点灯機能と消灯機能は互いに矛盾する機能である。
【0214】
なお、各機能が実行される時間帯が設定されてもよい。この場合において、互いに矛盾する機能A,Bが同一機器12に設定されている場合であっても、機能A,Bのそれぞれの実行時間帯が互いに重複しなければ、制御部34は、機能A,Bは互いに矛盾しない機能であるとして識別し、警告処理を実行せずに、機能A,Bの両方を機器12に設定する。機能A,Bのそれぞれの実行時間帯が互いに重複する場合、制御部34は、警告処理を実行する。
【0215】
以下、警告処理について説明する。制御部34は、警告処理として、既に設定されているプログラム箇所(例えば機能Aを実行するためのプログラム箇所)に、新たなプログラム箇所(例えば機能Bを実行するためのプログラム箇所)を上書きして機器12に保存してもよい。これにより、機器12では、機能Aは実行されずに、機器Bが実行されることになる。
【0216】
別の警告処理として、機器12に既に機能Aを設定したユーザのアカウントと同一アカウントを有するユーザが、当該機器12への機能Bの設定を指示した場合、制御部34は、機能Aを実行するためのプログラム箇所に、機能Bを実行するためのプログラム箇所を上書きして機器12に保存する。一方、機器12に既に機能Aを設定したユーザのアカウントと異なるアカウントを有するユーザが、当該機器12への機能Bの設定を指示した場合、制御部34は、機能Aと矛盾する機能が機器12に設定されようとしている旨を示す情報を、機能Aを設定したユーザの端末装置10に送信する。その端末装置10の制御部22は、その旨を示す情報をUI部16に表示させる。なお、その旨を示す情報が音声によって端末装置10又は機器12から発せられてもよい。機能Aを設定したユーザが端末装置10を用いて、プログラム箇所の上書きを指示した場合、機器12の制御部34は、機能Aを実行するためのプログラム箇所に、機能Bを実行するためのプログラム箇所を上書きして機器12に保存する。
【0217】
更に別の警告処理として、既に設定されているプログラム箇所が、新たなプログラム箇所によって上書きされた場合、機器12の制御部34は、当該機器12にプログラム箇所を設定した他のユーザの端末装置10に、プログラム箇所が上書きされた旨を示す情報を送信してもよい。端末装置10の制御部22は、その旨を示す情報をUI部16に表示させる。その旨を示す情報は、電子メールによって端末装置10に送信されてもよい。また、他のユーザが端末装置10を用いて機器12にログインした場合に、制御部34は、その旨を示す情報を端末装置10に送信してもよい。
【0218】
以下、具体例を挙げて変形例10について説明する。例えば、ユーザAが自身の端末装置10Aを用いて、点灯機能を実行するためのプログラム箇所を作成して、機器12としての照明装置に記憶させることで、点灯機能を照明装置に設定したものとする。このように、点灯機能が照明装置に既に設定されている場合に、ユーザBが自身の端末装置10Bを用いて、消灯機能を実行するためのプログラム箇所を作成し、照明装置への消灯機能の設定を指示したものとする。点灯機能と消灯機能は互いに矛盾する機能であるため、照明装置の制御部34は、警告処理を実行する。これにより、消灯機能を有するプログラム箇所が、点灯機能を有するプログラム箇所に上書きされることで、消灯機能が照明装置に設定されてもよいし、照明装置から端末装置10Aに対して警告情報が送信されてもよい。
【0219】
同一ユーザ、又は、同一アカウントを有するユーザによって、機器12に既に設定されている機能と矛盾する機能を実行するためのプログラム箇所を当該機器12に設定する指示が与えられた場合に、警告処理が実行されてもよい。
【0220】
また、端末装置10に設定されている機能と矛盾する機能を実行するためのプログラム箇所を当該端末装置10に設定する指示がユーザによって与えられた場合、端末装置10の制御部22は警告処理を実行してもよい。
【0221】
変形例10によれば、既に設定されているプログラム箇所と矛盾するプログラム箇所の設定指示が与えられた場合に、その矛盾を解消することができる。
【0222】
上述した実施形態及び変形例においては、機器12の変更部32が、機器12に記憶されているプログラム箇所を変更しているが、ユーザが操作する端末装置10の変更部20が、機器12に記憶されているプログラム箇所を変更してもよい。
【0223】
上記の端末装置10及び機器12は、一例としてハードウェアとソフトウェアとの協働により実現される。具体的には、端末装置10及び機器12は、図示しないCPU等の1又は複数のプロセッサを備えている。当該1又は複数のプロセッサが、図示しない記憶装置に記憶されたプログラムを読み出して実行することにより、端末装置10及び機器12のそれぞれの各部の機能が実現される。上記プログラムは、CD又はDVD等の記録媒体を経由して、又は、ネットワーク等の通信経路を経由して、記憶装置に記憶される。別の例として、端末装置10及び機器12のそれぞれの各部は、例えばプロセッサ、電子回路又はASIC(Application Specific Integrated Circuit)等のハードウェア資源により実現されてもよい。その実現においてメモリ等のデバイスが利用されてもよい。更に別の例として、端末装置10及び機器12のそれぞれの各部は、DSP(Digital Signal Processor)又はFPGA(Field Programmable Gate Array)等によって実現されてもよい。
【符号の説明】
【0224】
10 端末装置、12 機器、20,32 変更部、22,34 制御部。