(57)【要約】【課題】アプリケーションプログラム作成装置およびネットワーク制御システムを提供すること【解決手段】本発明に係るアプリケーションプログラム作成装置は、ネットワーク制御システムのアプリケーションプログラムを作成するための装置であって、前記機器における制御条件を取得する条件取得手段と、前記条件取得手段によって取得された制御条件の範囲内で指令可能な指令情報を記憶する記憶手段と、特定の環境条件に応じて指令情報を選択し、該指令情報によって前記機器を作動させるための制御プログラムを作成するプログラム作成手段とを備え、前記プログラム作成手段は、ＥＣＡルールに基づき、前記環境条件をイベントとし、前記機器の作動状態をコンディションとして、該作動状態に応じた該機器の作動指令をアクションとして設定するように、該制御プログラムを作成するものであることを特徴とする。【選択図】図４
2017111691.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワーク上に接続される機器を制御する制御システムにおいて、該制御システムのアプリケーションプログラムを作成するための装置であって、
前記機器における制御条件を取得する条件取得手段と、
前記条件取得手段によって取得された制御条件の範囲内で指令可能な指令情報を記憶する記憶手段と、
特定の環境条件に応じて指令情報を選択し、該指令情報によって前記機器を作動させるための制御プログラムを作成するプログラム作成手段とを備え、
前記プログラム作成手段は、少なくとも前記環境条件をイベントとし、前記機器の作動指令をアクションとして設定するように、制御プログラムを作成するものである
ことを特徴とするアプリケーションプログラム作成装置。
【請求項２】
前記プログラム作成手段は、さらに前記機器の作動状態をコンディションとし、前記作動指令は該作動状態に応じた内容をアクションとして設定するように、制御プログラムを作成するものである請求項１に記載のアプリケーションプログラム作成装置。
【請求項３】
前記イベントおよび前記アクションは、ＥＣＡルールの一部として、または前記イベント、前記アクションおよび前記コンディションは、ＥＣＡルールに基づいて、前記プログラム作成手段によって制御プログラムが作成されるものである請求項１または２に記載のアプリケーションプログラム作成装置。
【請求項４】
さらに、前記機器の作動条件にかかる任意の情報を入力するためのユーザインターフェースと、該ユーザインターフェースから任意に入力される情報に基づいて、ＥＣＡルールの一部としてイベントおよびアクションを特定し、またはＥＣＡルールに沿ったイベント、コンディションおよびアクションを特定するＥＣＡ化処理手段とを備え、
前記プログラム作成手段は、前記ＥＣＡ化処理手段によって特定されたイベントおよびアクションに従って前記環境条件および作動指令を設定することにより、またはイベント、コンディションおよびアクションに従って前記環境条件、前記機器の作動状態および作動指令を設定することにより、制御プログラムを作成するものである請求項１ないし３のいずれかに記載のアプリケーションプログラム作成装置。
【請求項５】
前記環境条件は、前記ユーザインターフェースから入力される条件であって、前記通信ネットワーク上に接続されるセンサノードから入手可能な情報の中から選択されるものであることを特徴とする請求項４に記載のアプリケーションプログラム作成装置。
【請求項６】
さらに、少なくとも前記環境条件および前記作動指令の選択例を表示する表示手段を備え、
前記プログラム作成手段は、前記表示手段に表示される少なくとも前記環境条件および前記作動指令の選択例から任意に選択された内容に応じて、ＥＣＡルールに従った制御プログラムを作成するものであることを特徴とする請求項１ないし３のいずれかに記載のアプリケーションプログラム作成装置。
【請求項７】
さらに、前記ＥＣＡ化処理手段によって特定された少なくともイベントおよびアクションに従って、前記プログラム作成手段によって設定される少なくとも前記環境条件および作動指令を表示する表示手段を備え、
前記表示手段に表示される少なくとも前記環境条件および前記作動指令は、前記ユーザインターフェースによって、任意に変更可能な情報であり、前記プログラム作成手段は、前記ユーザインターフェースによって変更された少なくとも前記環境条件および前記作動指令によって制御プログラムを作成するものであることを特徴とする請求項４に記載のアプリケーションプログラム作成装置。
【請求項８】
前記表示手段は、前記機器を擬人化して表示するとともに、少なくとも前記前記環境条件および前記作動指令の設定範囲をプルトップ方式で表示してなることを特徴とする請求項６または７に記載のアプリケーションプログラム作成装置。
【請求項９】
前記表示手段は、前記環境条件を提供する機器から前記作動指令がなされる機器に対する指令の内容が擬人化された人物による依頼文の形式で表示するものであり、該依頼文がＥＣＡルールの一部を完成し、またはＥＣＡルールの全体を完成するように、条件付きで選択可能に表示するものであることを特徴とする請求項８に記載のアプリケーションプログラム作成装置。
【請求項１０】
前記表示手段は、前記環境情報を提供する機器と前記作動指令がなされる機器とが擬人化された二人の登場人物により、一話完結型の物語形式で表示するものであり、両登場人物による物語がＥＣＡルールに合致するために、物語の一部を条件付きで選択可能に表示するものであることを特徴とする請求項８に記載のアプリケーションプログラム作成装置。
【請求項１１】
前記プログラム作成手段は、制御対象となる前記機器ごとに区分して、前記ＥＣＡルールの一部または全部を完結させる制御プロクラムを作成するものであることを特徴とする請求項１ないし１０のいずれかに記載のアプリケーションプログラム作成装置。
【請求項１２】
請求項１ないし１１のいずれかに記載のアプリケーションプログラム作成装置によって作成されたアプリケーションプログラムを使用するネットワーク制御システムであって、
通信ネットワーク上に接続される中継ノードを備え、
前記機器は、前記プログラム作成手段で作成されたアプリケーションプログラムのうち、該機器に関する制御プログラムを記憶する記憶装置をそれぞれ備え、
前記中継ノードは、前記環境条件について入力された情報を前記機器に送信するものであることを特徴とするネットワーク制御システム。
【請求項１３】
前記中継ノードは、ウェブサイトにインターネット回線で接続され、環境条件について入力を受けるべき情報を該ウェブサイトから取得するものであることを特徴とする請求項１２に記載のネットワーク制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、個人宅などに設置された通信ネットワークに接続されている機器あるいはデバイス上で動作させるアプリケーションプログラム作成装置およびネットワーク制御システムに関するものである。
【０００２】
とくに、個人宅内の家庭用電気機器やセンサーなどの機器がノードとして機能する通信ネットワークにおいて、各機器の動作および機器間の連携を定義して作用するものに関する。
【背景技術】
【０００３】
個人宅などに設置された小規模の通信ネットワーク（以下、ホームネットワークということがある。）に接続された機器の動作と機器間の連携を容易に行えるようにする技術としてＥＣＡ(Event, Condition, Action)ルールを前記動作および連携に適用して記述する手法が提案されている（例えば、特許文献１を参照）。
【０００４】
また、非特許文献１では、ＥＣＡルールを活用するとともに、Twitter（登録商標）やLINE（登録商標）などのショートメッセージシステム（以下、ＳＭＳということがある。）を利用して、ホームネットワークに接続された機器およびデバイスなどを擬人化することにより、機器およびデバイス同士の会話として機器およびデバイス間の連携をするアプリケーション実行環境を実現している。
【０００５】
さらに、非特許文献２では、わかりやすい視覚的効果を有し、機器およびデバイス同士、あるいはユーザーを含めたストーリー形式（以下、お話ということがある。）を用いて、複数機器およびデバイスの一連の連携と動作を記述するアプリケーション開発環境が実現されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2009-218776号公報
【非特許文献】
【０００７】
【非特許文献１】大村廉，佐々木遼平，TwitterとECAルールによるセンサネットワークアプリケーション基盤の構築，情報処理学会DICOMO2012，7月，2012年
【非特許文献２】小出ら，“服の色・身長・歩容特徴を用いた付き添いロボットのための人物識別”，第32回日本ロボット学会学術講演会，2014 年9月．
【非特許文献３】吉澤実，物語記述によるセンサネットワークアプリケーション開発環境の提案，2014年度豊橋技術科学大学修士論文
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１のように、これまでに通信ネットワークに接続された機器の連携や動作を簡単に記述しアプリケーションを開発できるようにする装置あるいはシステムがあったが、アプリケーション作成者には、通信ネットワークや、接続機器およびデバイスの機能あるいは仕組みに関する知識およびアプリケーションプログラムの作成経験が前提であり、知識や経験を有しない者には、一定の効果をもたらすように有効なアルゴリズムを構築して、アプリケーションプログラムを作成することが困難であった。とくに、ホームネットワークに接続される機器は多種多用であり、機器ごとにその機能と、開発環境上で使用される語句の対応を定義しなければならない。しかし、これらの対応を開発環境に個別に設定することは非常に困難である。
【０００９】
それに対し、非特許文献２のように、知識や経験を持たない者、とくに個人宅においては母親や子供などのような情報技術に不慣れなユーザーであっても、自然言語を用いたお話をつくる感覚で、一定の効果をもたらすことが可能なアプリケーションプログラムを開発できる。しかし、ＥＣＡルールに基づいた記述要素の決定や、機器およびデバイスのハードウェアや動作との対応関係の決定、通信ネットワークを介したアプリケーション開発環境と機器およびデバイスとの記述に関する情報の授受に関するネットワーク制御システムについて明確でなかった。
【００１０】
本発明は、上記の課題を明確にし、非特許文献２に示されるようなアプリケーションプログラム作成装置において、機器およびデバイスのハードウェアや動作における記述、当該記述と機器およびデバイスの動作を対応づける情報、すなわちコマンドの関する記述、さらに、当該情報つまりコマンドの授受を自動で実行するアプリケーションプログラム作成装置およびネットワーク制御システムを提供する。
【課題を解決するための手段】
【００１１】
請求項１に記載のアプリケーションプログラム作成装置は、通信ネットワーク上に接続される機器を制御する制御システムにおいて、該制御システムのアプリケーションプログラムを作成するための装置であって、
前記機器における制御条件を取得する条件取得手段と、
前記条件取得手段によって取得された制御条件の範囲内で指令可能な指令情報を記憶する記憶手段と、
特定の環境条件に応じて指令情報を選択し、該指令情報によって前記機器を作動させるための制御プログラムを作成するプログラム作成手段とを備え、
前記プログラム作成手段は、少なくとも前記環境条件をイベントとし、前記作動状態に応じた該機器の作動指令をアクションとして設定するように、制御プログラムを作成するものである
ことを特徴とする。
【００１２】
請求項２に記載のアプリケーションプログラム作成装置は、前記請求項１に記載のアプリケーションプログラム作成装置であって、前記プログラム作成手段は、さらに前記機器の作動状態をコンディションとし、前記作動指令は該作動状態に応じた内容をアクションとして設定するように、制御プログラムを作成するものである。
【００１３】
請求項３に記載のアプリケーションプログラム作成装置は、前記請求項１または２に記載のアプリケーションプログラム作成装置であって、前記イベントおよび前記アクションは、ＥＣＡルールの一部として、または前記イベント、前記アクションおよび前記コンディションは、ＥＣＡルールに基づいて、前記プログラム作成手段によって制御プログラムが作成されるものである。
【００１４】
さらに、請求項４に記載のアプリケーションプログラム作成装置は、前記請求項１ないし３のいずれかに記載のアプリケーションプログラム作成装置であって、前記機器の作動条件にかかる任意の情報を入力するためのユーザインターフェースと、該ユーザインターフェースから任意に入力される情報に基づいて、ＥＣＡルールの一部としてイベントおよびアクションを特定し、またはＥＣＡルールに沿ったイベント、コンディションおよびアクションを特定するＥＣＡ化処理手段を備え、前記プログラム作成手段は、前記ＥＣＡ化処理手段によって特定されたイベントおよびアクションに従って前記環境条件および作動指令を設定することにより、またはイベント、コンディションおよびアクションに従って前記環境条件、前記機器の作動状態および作動指令を設定することにより、制御プログラムを作成するものである。
【００１５】
請求項５に記載のアプリケーションプログラム作成装置は、前期請求項４に記載のアプリケーションプログラム作成装置であって、前記環境条件は、前記ユーザインターフェースから入力される条件であって、前記通信ネットワーク上に接続されるセンサノードから入手可能な情報の中から選択されるものであることを特徴とする。
【００１６】
さらに、請求項６に記載のアプリケーション作成装置、前記請求項１ないし３のいずれかに記載のアプリケーションプログラム作成装置であって、少なくとも前記環境条件および前記作動指令の選択例を表示する表示手段を備え、
前記プログラム作成手段は、前記表示手段に表示される少なくとも前記環境条件および前記作動指令の選択例から任意に選択された内容に応じて、ＥＣＡルールに従った制御プログラムを作成するものであることを特徴とする。
【００１７】
さらに、請求項７に記載のアプリケーションプログラム作成装置は、前記請求項４に記載のアプリケーションプログラム作成装置であって、前記ＥＣＡ化処理手段によって特定された少なくともイベントおよびアクションに従って、前記プログラム作成手段によって設定される少なくとも前記環境条件および作動指令を表示する表示手段を備え、
前記表示手段に表示される少なくとも前記環境条件および前記作動指令は、前記ユーザインターフェースによって、任意に変更可能な情報であり、前記プログラム作成手段は、前記ユーザインターフェースによって変更された少なくとも前記環境条件および前記作動指令によって制御プログラムを作成するものであることを特徴とする。
【００１８】
請求項８に記載のアプリケーションプログラム作成装置は、前記請求項６または７に記載のアプリケーションプログラム作成装置であって、前記表示手段は、前記機器を擬人化して表示するとともに、少なくとも前記前記環境条件および前記作動指令の設定範囲をプルトップ方式で表示してなることを特徴とする。
【００１９】
請求項９に記載のアプリケーションプログラム作成装置は、前記請求項８に記載のアプリケーションプログラム作成装置であって、前記表示手段は、前記環境条件を提供する機器から前記作動指令がなされる機器に対する指令の内容が擬人化された人物による依頼文の形式で表示するものであり、該依頼文がＥＣＡルールの一部を完成し、またはＥＣＡルールの全体を完成するように、条件付きで選択可能に表示するものであることを特徴とする。
【００２０】
請求項１０に記載のアプリケーションプログラム作成装置は、前記請求項８に記載のアプリケーションプログラム作成装置であって、前記表示手段は、前記環境情報を提供する機器と前記作動指令がなされる機器とが擬人化された二人の登場人物により、一話完結型の物語形式で表示するものであり、両登場人物による物語がＥＣＡルールに合致するために、物語の一部を条件付きで選択可能に表示するものであることを特徴とする。
【００２１】
請求項１１に記載のアプリケーションプログラム作成装置は、前記請求項１ないし１０のいずれかに記載のアプリケーションプログラム作成装置であって、前記プログラム作成手段は、制御対象となる前記機器ごとに区分して、前記ＥＣＡルールの一部または全部を完結させる制御プロクラムを作成するものであることを特徴とする。
【００２２】
請求項１２に記載のネットワーク制御システムは、前記請求項１ないし１１のいずれかに記載のアプリケーションプログラム作成装置によって作成されたアプリケーションプログラムを使用するネットワーク制御システムであって、
通信ネットワーク上に接続される中継ノードを備え、
前記機器は、前記プログラム作成手段で作成されたアプリケーションプログラムのうち、該機器に関する制御プログラムを記憶する記憶装置をそれぞれ備え、
前記中継ノードは、前記環境条件について入力された情報を前記機器に送信するものであることを特徴とする。
【００２３】
請求項１３に記載のネットワーク制御システムは、前期請求項１２に記載のネットワーク制御システムであって、前記中継ノードは、ウェブサイトにインターネット回線で接続され、環境情報について入力を受けるべき情報を該ウェブサイトから取得するものであることを特徴とする。
【発明の効果】
【００２４】
本発明に係るアプリケーションプログラム作成装置およびネットワーク制御システムによれば、通信ネットワーク上の作動させるべきノード機器を自動で制御でき、ユーザーは使用する通信ネットワーク上に所望の機器を通信的に接続するのみで、物語記述形式や簡単な依頼文により簡便に制御可能となる。
【図面の簡単な説明】
【００２５】
【図１】本発明に係るアプリケーションプログラム作成装置およびネットワーク制御システムの概要を示す図である。アプリケーションプログラム作成装置および複数のネットワークノード機器がネットワークを介し接続されている。
【図２】本発明係るアプリケーションプログラム作成装置のハードウェア構成の例を示す模式図である。
【図３】本発明に係るネットワークノード機器のハードウェア構成の例を示す模式図である。
【図４】本発明に係るアプリケーションプログラム作成装置およびネットワーク制御システムの制御フローを示す図である。
【図５】本発明係るアプリケーションプログラム作成装置に提示される入力時のインターフェースの例を示す図である。
【図６】本発明係るアプリケーションプログラム作成装置に提示される日本語選択時のインターフェースの例を示す図である。
【図７】本発明係るアプリケーションプログラム作成装置に提示されるネットワーク機器間の補完の動作例を示す図である。
【図８】本発明の実施例に係るアプリケーションプログラム作成装置により作成されたＥＣＡルールに基づいて記述された動作ルール（アプリケーション）を示す図である。
【図９】本発明の実施例に係るアプリケーションプログラム作成装置による、ネットワークノード機器の制御情報の要求に関する模式図である。
【図１０】本発明の実施例に係るネットワーク制御システムにおいて、ネットワークノード機器からアプリケーションプログラム作成装置へ該ネットワークノード機器が保持する制御情報の送付に関する模式図である。
【図１１】本発明の実施例に係るアプリケーションプログラム作成装置による、受け取った制御情報の読込みおよびアプリケーション作成者のネットワークノード機器の選択に応じた動作ルールの提示に関する模式図である。
【図１２】本発明の実施例に係るアプリケーションプログラム作成装置による、ネットワークノード機器ごとにプログラム（動作ルール）の送付を示す概要図である。
【発明を実施するための形態】
【００２６】
本発明を実施するための形態について、図を参照しながら、以下に説明する。なお、コマンドはアプリケーション作成者からの指定、あるいは装置内または装置間で相互に送受信され、実行される制御に関する動作を規定するものであり、一方、ＡＰＩ（Application Programming Interface）は、アプリケーション作成装置において、ソフトウェア・システムを構成するものであって、アプリケーション作成者に有用なプログラミング環境を提供するものであるが、以下の説明において、コマンドとＡＰＩを、同じ意味で用いることがある。
【００２７】
まず、図１に本発明に係るアプリケーションプログラム作成装置およびネットワーク制御システムの概要を示す。
【００２８】
図１中のアプリケーションプログラム作成装置のハードウェア構成例を図２に、ネットワークノード機器のハードウェア構成例を図３に、それぞれ示す。アプリケーションプログラム作成装置は、演算処理を行うことができる中央演算装置、ＲＡＭなどの主記憶装置、タッチパネルスクリーンなどの情報提示・入力装置、無線ＬＡＮなどのネットワークインターフェース装置がバスなどにより電気的に接続されており、任意にソフトウェアプログラムを動作させることができる。また、ネットワークノード機器は、家庭用電気器などの制御対象装置、演算処理を行うことができる中央演算装置、ＲＡＭなどの主記憶装置、フラッシュメモリなどの二次記憶装置がバスなどにより電気的に接続されており、任意のソフトウェアプログラムを動作させ、該制御対象装置を制御することができる。
【００２９】
ネットワークノード機器は、図３に示すように二次記憶装置に、それぞれの機器制御情報を持っている。機器制御情報では、ネットワークノード機器の名前などの基本的な情報と共に、ネットワークノード機器における動作コマンドとアプリケーションプログラム作成装置上での表示文字列との対応関係を保持している。例えば、機器の電源をONにすることを、アプリケーションプログラム作成装置上で「動作を開始する」と表現するのであれば、当該動作を行うコマンドである「turnOn」というコマンド名と、アプリケーションプログラム作成装置上で表示される「動作を開始」という文字列との対応を保持する。また、制御機器情報は、必要に応じて動作コマンドに与える引数や得られるべき戻り値、また、その動作がＥＣＡルールにおいてイベント（Ｅ）、コンディション（Ｃ）、アクション（Ａ）のいずれに相当するか、などの付随情報を保持している。
【００３０】
以下に、図４に示すフローにしたがって、本発明に係るアプリケーションプログラム作成装置およびネットワーク制御システムについて説明する。
【００３１】
アプリケーションプログラム作成装置の起動後、ネットワークノード機器は制御機器情報をアプリケーションプログラム作成装置に渡す。制御機器情報を渡す方法にはいくつかの手段があり、例えば、アプリケーションプログラム作成装置からの要求に応じて制御機器情報をアプリケーションプログラム作成装置に送信して渡したり、ネットワークノード機器がネットワークに参加するときにアプリケーションプログラム作成装置に送信して渡す。あるいは、ネットワークノード機器から定期的にアプリケーションプログラム作成装置に送信して渡す、などの方法がとられる。あるいは、メモリカードなどの物理的な外部記憶装置を介して、人手でアプリケーションプログラム作成装置にインストールする、という方法でも良い。さらには、特定機器の情報について、インターネット回線を介して機器メーカの情報サイトから取得する方法もあり得る。
【００３２】
アプリケーションプログラム作成装置上では、ネットワークノード機器からの制御情報をもとに、制御情情報上に記載されている言葉を用いて、アプリケーション作成者がネットワークノード機器に依頼、あるいは、ネットワークノード機器と対話するように、各ネットワークノード機器の動作の流れを物語や依頼文として記述することを許す。そして、作成された記述を、やはり制御情報をもとに具体的なネットワークノード機器のコマンドに変換してＥＣＡルールに変換する。そして、各ネットワークノード機器に変換されたＥＣＡルールを送信して渡す。あるいは、自然言語で記述された節あるいは文を、対応するネットワークノード機器に送り、それぞれのネットワークノード機器上でＥＣＡルールに変換しても良い。あるいは、ネットワークノード機器を集中管理する計算機上で解釈し、その計算機がＥＣＡルールの実行の制御やネットワークノード機器へのコマンドの発行を行なっても良い。
【００３３】
次に、アプリケーションプログラム作成装置は、各ネットワークノード機器から制御情報を取得した後、ユーザーに対して動作ルールを設定する画面を提示する。例えば、図５に示すように、該画面では、ＳＭＳと同様に、せいぜい十行程度までの短い文章を入力するインターフェースである。
【００３４】
前記アプリケーションプログラム作成装置は、各ネットワークノード機器のEventに対応する日本語、Conditionに対応する日本語、Actionに対応する日本語をそれぞれまとめて管理する。
【００３５】
ユーザーが何も入力せずに文字入力部（テキストボックス）をクリックした場合は、図６に示すように、Eventの日本語群に存在する候補を一覧表示する。続いて、ユーザーが提示された候補から選択を行なった場合、選択された日本語がルールを定義するための日本語として選ばれ、実際には、対応するＡＰＩがＥＣＡルールとして定義される。
【００３６】
一方、前記候補から選ばず、ユーザーが文字入力を開始した場合、Eventの日本語群から入力された文字列を含むものを検索して得られた日本語を候補として提示する。該候補から選んだ場合は、前述のように、選択された日本語を、動作ルールを定義するための日本語として選択され、実際には、対応するＡＰＩがＥＣＡルールとして定義される。
【００３７】
なお、文字入力を続けた場合は、先に入力された文字列を含めて全候補から検索を行い、提示数を絞ってユーザーに候補が提示される。
【００３８】
以上を繰り返し、Eventに対応する日本語を設定する。
【００３９】
前記Eventに対応する日本語の設定後に、Condition、Actionに対して同様に行い、それぞれEventの内容とCondition、Actionに設定される日本語を設定する。ただし、Conditionは省略可能である。
【００４０】
Event、Condition、Actionに対応する日本語がそろったら、Event、Condition、Actionの日本語に対応するネットワークノード機器および対応するＡＰＩを実行するようにＥＣＡルールを定義する。このとき、Event、Condition、Actionがそれぞれ別々のネットワークノード機器となる可能性がある。その場合には、アプリケーションプログラム作成装置は別のデバイスで実行される動作ルール、例えば、EventとCondition、ConditionとAction、Conditionが存在しない場合はEventとActionの間に、それぞれ実行されるネットワークノード機器間で適当なメッセージのやりとりがそれぞれのデバイスのActionおよびEventとして挿入されるように動作ルールを補完する。
【００４１】
例えば、図７に示すように、「誰かが椅子に座ったら、２８度で暖房をつけて」という日本語が設定されたとする。椅子に対してはEventとして「誰かが椅子に座る」という言葉に対応するＡＰＩが設定される。と同時に「２８度で暖房をつける」のActionは空調機によって行なわれるため、椅子の動作ルールとして、『だれかが椅子にすわりました』というメッセージを送信する、というＡＰＩが椅子のActionのルールとして設定される。また、空調機の動作ルールはこれを受け、まず『だれかが椅子に座りました』というメッセージを受信する、というＡＰＩがEventとして設定され、そして「２８度で暖房をつける」というＡＰＩがActionとして定義される。最後に、椅子の動作ルール、空調機の動作ルールはそれぞれ椅子、あるいは空調機に対して設定される。
【００４２】
上記のようにＥＣＡルールに基づいて記述された動作ルール（アプリケーション）を受け取ったネットワークノード機器は、図３に示すように主記憶装置に格納し、該動作ルール（アプリケーション）にしたがって動作を開始する。
【実施例】
【００４３】
実施例として、アプリケーションプログラム作成装置として、スマートフォン（モトローラ社製Nexus（商標）6）を用いて、ネットワークノード機器として、居間に設置されたテレビ（Sony社製KDL-40EX720）を操作するアプリケーション作成の事例を説明する。なお、前記テレビには、動作ルールにしたがって動作可能なシングルボード・コンピューターが電気的に接続され、かつ前記スマートフォンが接続しているネットワーク上に接続されている。図８は制御情報をＸＭＬ（eXtensible Markup Language）を用いて記述したものである。まず、名前(<name>タグ)やその詳細(<description>タグ)などの定義や、開発環境での表示名(<nickname>タグ)、アイコン(<icon>)や場所などの一般的な情報が定義された後、前述の制御情報が定義されている。Eventタグ内はＥＣＡルールのEventに相当する制御情報を与える。また、Conditionタグ内はＥＣＡルールのConditionに相当する制御情報を与える。最後にActionタグはＥＣＡルールのActionに相当する制御情報を与えている。
【００４４】
<Event>タグでは、テレビのチャンネルが変更されたときの動作を定義できるように、自然な言語表現としての「チャンネルが変更されたとき」という言葉と、これに対応する動作をするデバイスＡＰＩとしてOnChangeChannelというＡＰＩが関連付けられている。これらは、<Phrase>タグでアプリケーションプログラム作成装置上に表示する日本語（自然言語。場合によっては英語や別の言語でも構わない）を定義し、その時呼び出されるＡＰＩ（Eventの場合は処理対象となるイベントメッセージ。この場合は”OnChangeChannel”）を<API>タグを用いて対応付けている。
【００４５】
次に、<Condition>タグでは、<Phrase>タグにおいて「電源がついていたので」および「電源はついていなかったので」という日本語に対し、それぞれ、”isOn”というＡＰＩの結果の”true”と”False”がそれぞれ割り当てられている。このように、ＡＰＩの戻り値によって対応する日本語を変更することも考えられる。
【００４６】
さらに、<Action>タグでは、「といいました」という日本語の中に” <var id="msg" type="string"/>”というタグが含まれる形となっている。これは、開発環境で表示する日本語に、ＡＰＩ（この例では”sendMessage”）への引数を混入できるようにしている。ここでは、<var>タグの属性idでその引数の名前を指定し、<API>タグの中のargタグでこれを指定している。この時、argタグの属性numは、<command>タグで指定したＡＰＩのnum番目の引数（argタグでnum=”1”と指定された場合は<command>タグに記載されるＡＰＩの1番目の引数）として使用される。その他、「テレビをつけました」、「テレビを消しました」は同様にturnOn、turnOffのＡＰＩと関連付けが行われている。
【００４７】
以下、制御情報の取得からアプリケーションプログラム作成装置の開発環境に反映するまでの流れを説明する。上記のように、制御情報の取得からアプリケーションプログラム作成装置の関発環境に反映する方法には様々な手段が考えられるが、ここでは例として、アプリケーションプログラム作成装置からのリクエストに対して各デバイスが制御情報を返送する形態をもとに説明する。
【００４８】
まず、アプリケーションプログラム作成装置は、図９に示すように、定期的あるいは必要に応じて自分が存在するネットワーク内に制御情報を要求するためのパケット（REQUESTパケット）を１度から数度にわたってブロードキャストする。該REQUESTパケット受け取ったネットワークノード機器は、図１０に示すように、図８に示したような各ネットワークノード機器内に保持している制御情報を送付する。
【００４９】
制御情報を受け取ったアプリケーションプログラム作成装置は、図１１に示すように、該制御情報を読み込み、各デバイスおよび各デバイスが保持する日本語表現（図８の「チャネルが変更されたとき」、「電源がついていたので」「電源がついていなかったので」「といいました」「テレビをつけました」「テレビを消しました」など）を取得する。アプリケーションプログラム作成装置の開発環境上では、ユーザーからのデバイスの選択に応じて適宜この日本語表現のリストをユーザーに提示する。ユーザーがその日本語表現を選択すると、図１２に示すように、該日本語表現に対応するＡＰＩが選択され、実際のデバイスの動作プログラム（ＥＣＡルールにより記述される）を作成して、該動作プログラムを各ネットワークノード機器に送付する。
【００５０】
各ネットワークノード機器は前記動作プログラムをもとに、指示された動作を開始する。
【図１】
2017111691.tif 000003
【図２】
2017111691.tif 000004
【図３】
2017111691.tif 000005
【図４】
2017111691.tif 000006
【図５】
2017111691.tif 000007
【図６】
2017111691.tif 000008
【図７】
2017111691.tif 000009
【図８】
2017111691.tif 000010
【図９】
2017111691.tif 000011
【図１０】
2017111691.tif 000012
【図１１】
2017111691.tif 000013
【図１２】
2017111691.tif 000014