IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 繁縄 康彦の特許一覧

特開2024-95626情報処理プログラムの生成方法、及び生成プログラム
<>
  • 特開-情報処理プログラムの生成方法、及び生成プログラム 図1
  • 特開-情報処理プログラムの生成方法、及び生成プログラム 図2
  • 特開-情報処理プログラムの生成方法、及び生成プログラム 図3
  • 特開-情報処理プログラムの生成方法、及び生成プログラム 図4
  • 特開-情報処理プログラムの生成方法、及び生成プログラム 図5
  • 特開-情報処理プログラムの生成方法、及び生成プログラム 図6
  • 特開-情報処理プログラムの生成方法、及び生成プログラム 図7
  • 特開-情報処理プログラムの生成方法、及び生成プログラム 図8
  • 特開-情報処理プログラムの生成方法、及び生成プログラム 図9
  • 特開-情報処理プログラムの生成方法、及び生成プログラム 図10
  • 特開-情報処理プログラムの生成方法、及び生成プログラム 図11
  • 特開-情報処理プログラムの生成方法、及び生成プログラム 図12
  • 特開-情報処理プログラムの生成方法、及び生成プログラム 図13
  • 特開-情報処理プログラムの生成方法、及び生成プログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024095626
(43)【公開日】2024-07-10
(54)【発明の名称】情報処理プログラムの生成方法、及び生成プログラム
(51)【国際特許分類】
   G06F 8/34 20180101AFI20240703BHJP
【FI】
G06F8/34
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023221877
(22)【出願日】2023-12-27
(31)【優先権主張番号】P 2022212789
(32)【優先日】2022-12-28
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】523003777
【氏名又は名称】繁縄 康彦
(74)【代理人】
【識別番号】100191189
【弁理士】
【氏名又は名称】浅野 哲平
(74)【代理人】
【識別番号】100199761
【弁理士】
【氏名又は名称】福屋 好泰
(72)【発明者】
【氏名】繁縄 康彦
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC03
5B376BC32
5B376BC49
(57)【要約】
【課題】業務システムの構築過程において、プログラムの作成負担を軽減することができる情報処理プログラムの生成方法を提供する。
【解決手段】ユーザによって入力された情報を処理する情報処理プログラムの生成方法であって、複数の入力画面の各々に含まれる要素に関する情報と、当該要素に関する情報に対して定められた処理と、を教師データとする学習済みモデルを予め生成する学習ステップ、前記ユーザによる情報の入力画面に要素を配置させる配置ステップ、前記配置された要素に関する情報を前記学習済みモデルに入力し、当該学習済みモデルから前記要素に適用される処理を出力する推論ステップ、を含むことを特徴とする、情報処理プログラムの生成方法。
【選択図】図8

【特許請求の範囲】
【請求項1】
ユーザによって入力された情報を処理する情報処理プログラムの生成方法であって、
複数の学習用画面の各々に設定された要素に関する情報と、当該学習用画面の各々に対して定められた処理に関する情報と、を教師データとする学習済みモデルを予め生成する学習ステップ、
定義画面に対して前記ユーザによって指定された要素を設定する設定ステップ、
前記定義画面に対して設定された要素に関する情報を前記学習済みモデルに入力し、当該学習済みモデルから、前記定義画面に適用すべき処理に関する情報を出力する推論ステップ、
を含むことを特徴とする、情報処理プログラムの生成方法。
【請求項2】
前記学習用画面に設定された要素は、当該学習用画面に配置された部品であり、
前記定義画面に設定された要素は、当該定義画面に配置された部品であることを特徴とする、請求項1に記載の情報処理プログラムの生成方法。
【請求項3】
前記学習用画面に設定された要素は、当該学習用画面に入力されたデータのデータ型であり、
前記定義画面に設定された要素は、当該定義画面に入力されたデータのデータ型であることを特徴とする、請求項2に記載の情報処理プログラムの生成方法。
【請求項4】
前記学習用画面に設定された要素は、当該学習用画面に対して要求する部品の動作およびデータ操作であり、
前記定義画面に設定された要素は、当該定義画面に対して要求する部品の動作およびデータ操作であることを特徴とする、請求項3に記載の情報処理プログラムの生成方法。
【請求項5】
ユーザによって入力された情報を処理する情報処理プログラムを生成する生成プログラムであって、
コンピュータに、
複数の学習用画面の各々に設定された要素に関する情報と、当該学習用画面の各々に対して定められた処理に関する情報と、を教師データとする学習済みモデルを予め生成する学習ステップ、
定義画面に対して前記ユーザによって指定された要素を設定する設定ステップ、
前記定義画面に対して設定された要素に関する情報を前記学習済みモデルに入力し、当該学習済みモデルから、前記定義画面に適用すべき処理に関する情報を出力する推論ステップ、
を実行させる生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラムの生成方法、及び生成プログラムに関するものである。
【背景技術】
【0002】
近年、SaaS(Software as a Service)を用いた文章作成サービス、チャットサービス、web会議サービスなど様々なサービスが提供されている。また、社内における稟議書、出張報告書、旅費精算書、休暇届といった申請書のワークフローや、会計管理、在庫・品質管理、顧客管理、請求管理を行う業務システムもまたSaaSによって提供されている。これらSaaSを用いたサービスは、ウェブブラウザを用いて手軽にサービスを利用できること、及びインターネット環境があれば、場所を問わずサービスを利用できることから、その利用者が増加している。
【0003】
ところで、IT化が進む昨今において、日々の業務を遂行するにあたり業務システムは欠かせないツールとなってきている。当該業務システムの開発過程は、一般的に、業務遂行時に表示される画面の内容を定義する画面定義、業務の遂行において利用される情報を記憶管理するデータベースの設計、画面やデータベースの内容に基づいて業務の遂行に適したプログラムの設計の順に実施される。例えば、特許文献1に記載の業務システムは、画面定義において、標準画面と、利用者ごとに定められた代替画面と、が準備される。そして、特定の利用者に対する表示制御では、標準画面を表示するのではなく、代替画面を表示することとしている。当該代替画面を表示する際には、代替画面内のフィールドとデータベース内のデータ項目の関係を定義した対応表をもとに、代替画面内のフィールドの値を抽出して表示することとしている。当該特許文献1の業務システムによれば、特定の利用者に対して、業務遂行に使い勝手の良い代替画面を提供することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001-282517号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
業務システムの構築(開発)過程において、画面定義およびデータベース設計については、GUIを用いた構築技術が存在しているので、プログラミングの経験がなくとも実施することが可能となってきている。一方で、業務システムの構築過程におけるプログラムの設計・作成工程においては、プログラミングの知識や経験が必要になる場合が多く、そのため、プログラミングの知識や経験に長けたスタッフが存在しない会社においては、会社独自の業務システムを構築することが困難であった。
【0006】
そこで、本願は、業務システムの構築過程において、プログラムの作成負担を軽減することができる情報処理プログラムの生成方法及び生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明は、ユーザによって入力された情報を処理する情報処理プログラムの生成方法であって、複数の学習用画面の各々に設定された要素に関する情報と、当該学習用画面の各々に対して定められた処理に関する情報と、を教師データとする学習済みモデルを予め生成する学習ステップ、定義画面に対して前記ユーザによって指定された要素を設定する設定ステップ、前記定義画面に対して設定された要素に関する情報を前記学習済みモデルに入力し、当該学習済みモデルから、前記定義画面に適用すべき処理に関する情報を出力する推論ステップ、を含むことを特徴とする。
【0008】
また、前記学習用画面に設定された要素は、当該学習用画面に配置された部品であり、前記定義画面に設定された要素は、当該定義画面に配置された部品であることを特徴とする。
【0009】
さらに、前記学習用画面に設定された要素は、当該学習用画面に入力されたデータのデータ型であり、前記定義画面に設定された要素は、当該定義画面に入力されたデータのデータ型であることを特徴とする。
【0010】
さらにまた、前記学習用画面に設定された要素は、当該学習用画面に対して要求する部品の動作およびデータ操作であり、前記定義画面に設定された要素は、当該定義画面に対して要求する部品の動作およびデータ操作であることを特徴とする。
【0011】
上記目的を達成するため、本発明は、ユーザによって入力された情報を処理する情報処理プログラムを生成する生成プログラムであって、コンピュータに、複数の学習用画面の各々に設定された要素に関する情報と、当該学習用画面の各々に対して定められた処理に関する情報と、を教師データとする学習済みモデルを予め生成する学習ステップ、定義画面に対して前記ユーザによって指定された要素を設定する設定ステップ、前記定義画面に対して設定された要素に関する情報を前記学習済みモデルに入力し、当該学習済みモデルから、前記定義画面に適用すべき処理に関する情報を出力する推論ステップ、を実行させることを特徴とする。
【発明の効果】
【0012】
本発明によれば、業務システムの構築過程において、プログラムの作成負担を軽減することができる。
【図面の簡単な説明】
【0013】
図1】本発明の実施形態に係るシステムの概略図
図2】上記システムが備えるデータベースに設けられた給与口座テーブル
図3】上記システムが備えるプラットフォームサーバによって提供されるフォームの例を示した図
図4】上記プラットフォームサーバによって実行される構築支援機能のフロー図
図5】上記構築支援機能の画面定義処理において表示される構築画面の例を示した図
図6】部品コードの一例を示す図
図7】部品情報の一例を示す図
図8】上記システムの機能ブロック図
図9】アクションの一覧を示す図
図10】学習データセットの生成態様を示す図
図11】テーブル情報の一例を示す図
図12】要件情報の一例を示す図
図13】変形例に係るシステム構成を示す図
図14】第4実施形態におけるアクション、実センテンス、及び汎用センテンスの関係性を示す図
【発明を実施するための形態】
【0014】
[第1実施形態]
以下、各図に基づいて、本発明の第1実施形態に係るシステムを説明する。
【0015】
図1に示すように、本実施形態に係るシステム100は、業務アプリケーション(以下、「業務アプリ」という。)を構築するとともに、当該構築された業務アプリを提供するシステムであって、本システムを利用するユーザの端末10(以下、「ユーザ端末10」という。)と、業務アプリの構築および提供を行うプラットフォームとして機能するSaaS(Software as a Service)型のサーバ30(以下、「プラットフォームサーバ30」という。)と、を備えている。
【0016】
ユーザ端末10は、デスクトップ型やノート型のパソコン10a、及び/又はスマートフォンやタブレット端末などのスマートデバイス10bである。パソコン10aやスマートデバイスは、公知のハードウェアを備えている。具体的には、パソコンは、表示部として機能するディスプレイ11、テキストを入力するテキスト入力部として機能するキーボード(不図示)、座標を入力する座標入力部として機能するマウス(不図示)、ネットワーク通信部として機能するネットワークモジュール(不図示)、ウェブブラウザなどのプログラムを記憶する記憶部として機能するメモリ(不図示)、及びメモリに記憶されたプログラムを実行することで、上記ディスプレイ11、キーボード、マウス、ネットワークモジュールを制御し、演算処理を行う処理部として機能するCPU(不図示)を備えている。また、スマートデバイス10bは、ユーザが携帯可能な情報端末であり、上記パソコン10aが有するディスプレイ11、キーボード、及びマウスに変えて、タッチパネルディスプレイ12を備えている。このように構成されるユーザ端末10は、インターネット通信回線や携帯電話通信網などのネットワークNを介してプラットフォームサーバ30と通信可能となっている。
【0017】
プラットフォームサーバ30は、業務アプリの構築を支援する構築支援機能と、構築された業務アプリをユーザ端末10に対して提供するアプリ提供機能と、を有するプラットフォームが組み込まれたコンピュータである。当該プラットフォームサーバ30は、ネットワークNを介して上記ユーザ端末10と通信を行うネットワーク通信部として機能するネットワークモジュール(不図示)と、上記構築支援機能及びアプリ提供機能を発揮させるプログラムを実行して演算処理を行う処理部として機能するCPU(不図示)と、当該プログラムを記憶する記憶部として機能するメモリ(不図示)と、を備えている。プラットフォームサーバ30は、単一のコンピュータによって構成されても良いし、機能別に分離された複数のコンピュータによって構成されても構わない。プラットフォームサーバ30はデータベース31と通信可能となっている。当該データベース31は、業務アプリによって使用される情報を記憶する記憶部として機能する。
【0018】
上記プラットフォームサーバ30によって提供される業務アプリとしては、例えば、従業員の給与を管理する給与管理アプリケーション(以下、「給与管理アプリ」という。)がある。当該給与管理アプリは、プラットフォームサーバ30の構築支援機能によって構築されたアプリケーションであって、従業員の給与振込先として登録された銀行口座を変更する変更機能を有する。具体的には、各従業員の銀行口座は、図2に示すように、データベース31に設けられた給与口座テーブルに登録されており、図3に示す変更申請フォーム70に入力された情報に基づいて、給与口座テーブルに登録された情報が変更される。
【0019】
変更申請フォーム70は、申請日71、申請者72、変更後の銀行名73、銀行コード74、支店名75、支店コード76、口座種別77、口座番号78、口座名義79、口座名義のフリガナ80、及び備考81といった入力項目(入力ボックス)が配置されたフォームであって、後述の構築支援機能における画面定義処理s10(図4)において作成される。また、構築支援機能におけるテーブル生成処理s20(図4)において、変更申請フォーム70の各入力項目71~81に対応するように給与口座テーブルが生成される。また、変更申請フォーム70には、各入力項目71~81に入力された情報を給与口座テーブルに登録するアクションを実行する申請ボタン82、入力項目71~81に入力された情報を一時的にメモリに記憶させるアクションを実行する一時保存ボタン83、及び入力項目71~81に入力された情報をクリアするアクションを実行するクリアボタン84が配置されている。これらボタン82~84の各々に定められたアクションは、後述の構築支援機能におけるアクション設定処理s30(図4)において設定される。
【0020】
プラットフォームサーバ30のCPUは、ネットワークモジュールを介して申請者のユーザ端末10から受信した変更申請リクエストに基づいて、変更申請フォーム70を起動させ、当該ユーザ端末10のディスプレイ11に当該変更申請フォーム70を表示させるとともに、ユーザ端末10から操作情報を受信する。ユーザ端末10の操作情報とは、キーボードによって入力されたテキスト情報や、マウスによって入力された座標情報である。このようにプラットフォームサーバ30のCPUおよびネットワークモジュールは、ユーザ端末10からのリクエストおよび操作情報を受信する受信部、及び変更申請フォーム70などのフォームをユーザ端末10に提供するフォーム提供部として機能している。
【0021】
プラットフォームサーバ30のCPUは、受信した操作情報に含まれる座標情報に基づいて、ユーザによって指定された入力項目71~81またはボタン82~84を特定する。入力項目71~81のいずれかが指定されている場合には、当該入力項目に対して、その後に取得した操作情報に含まれるテキスト情報を入力する。このように、プラットフォームサーバ30のCPUは、フォームに対して情報を入力する入力部として機能する。また、プラットフォームサーバ30のCPUは、ボタン82~84のいずれかが押された場合には、当該ボタンについて定められたアクションを実行する。このように、プラットフォームサーバ30のCPUは、アクション実行部として機能している。最終的には、全ての入力項目71~81に対して情報が入力され、申請ボタン82が押されることで、入力された情報が給与口座テーブルに登録されることとなる。このように、プラットフォームサーバ30のCPUは、データベース31に情報を登録する登録部として機能する。
【0022】
次に、プラットフォームサーバ30によって提供される構築支援機能を説明する。構築支援機能は、業務アプリの構築を支援する機能であって、図4に示すように、画面定義処理s10、テーブル生成処理s20、及びアクション設定処理s30を含む。画面定義処理s10は、業務アプリにおいて用いられる画面を定義する処理である。テーブル生成処理s20は、業務アプリにおいて用いられるテーブルを生成する処理である。アクション設定処理s30は、業務アプリにおいて実行されるアクションを設定する処理である。以下、業務アプリにおいて用いられる入力画面であるフォームを例にして、これらの処理を説明する。
【0023】
画面定義処理s10では、プラットフォームサーバ30のCPUは、図5に示すように、定義用画面である構築画面90をユーザ端末10に表示させる。当該構築画面90は、フォームを構築するための画面であって、ツールボックス91と背景画像92を含む。ツールボックス91は、フォームに組み込み可能な複数の部品の各々がGUI化されたものである。当該複数の部品は、代表的には、テキストフィールド、テキストエリア、ラジオボタン、ボタン、チェックボックス、コンボボックス、リストボックス、データグリッド、表示用データグリッド、タブ、添付ファイル、ワークフロー、ワークフローボタン、エキストラ、ダイナミックテキスト、ライン、画像挿入、テキスト、及びダイナミック画像である。以下、各部品の機能を説明する。
【0024】
・テキストフィールドは、単一行のテキストの入力や表示を行う部品である。
・テキストエリアは、複数行のテキストの入力や表示を行う部品である。
・ラジオボタンは、複数の候補を表示するとともに、複数の候補の中から一つの候補を選択する部品である。
・ボタンは、アクションを実行するトリガとなる部品であって、当該アクションの内容を示すテキストを表示する部品である。
・チェックボックスは、2つの値を示す部品であって、チェックが入った場合には「true」の値をとり、チェックが入っていない場合には「false」の値をとる部品である。
・コンボボックスは、複数の候補をプルダウン形式で表示する部品であって、当該複数の候補の中から1つの候補を選択する部品である。
・リストボックスは、複数の候補をリスト形式で表示する部品であって、当該複数の候補の中から1又は複数の候補を選択する部品である。
・データグリッドは、表形式でテキストの入力や表示を行う部品である。
・表示用データグリッドは、表形式で情報を表示する部品である。
・添付ファイルは、ユーザ端末10に保存されている画像をアップロードする部品である。
・ワークフローは、ワークフローと承認欄を表示させる部品である。
・ワークフローボタンは、ワークフローを制御するための部品であり、ワークフローにおける申請、承認、確認の各過程において表示が切り替わる部品である。
・エキストラは、申請者の氏名や、申請日、申請部署などを表示する部品である。
・ダイナミックテキストは、印刷やPDFファイルへの出力を行う部品である。
・ライン、装飾や仕切り線を表示する部品である。
・テキストは、固定のテキスト表示として見出しや説明文に使用する部品である。
・ダイナミック画像は、サーバの所定フォルダに保存された画像を配置するための部品である。
【0025】
プラットフォームサーバ30は、ユーザ端末10に構築画面90を表示させるとともに、当該ユーザ端末10からの操作情報を受信する。プラットフォームサーバ30のCPUは、ユーザ端末10から受信した操作情報に基づいて、上記部品を背景画像92の表示エリア内に配置する。このようにプラットフォームサーバ30は、画面定義処理s10において、構築画面90を表示させる表示ステップ、操作情報を受信する受信ステップ、操作情報に基づいて部品を配置し設定する設定ステップを実行する。上記変更申請フォーム70を生成する際の画面定義処理s10では、受信した操作情報に基づいて、申請日を入力するテキストフィールド71a、申請者を入力するテキストフィールド72a、銀行名を入力するテキストフィールド73a、銀行コードを入力するテキストフィールド74a、支店名を入力するテキストフィールド75a、支店コードを入力するテキストフィールド76a、口座番号を入力するテキストフィールド78a、口座名義を入力するテキストフィールド、及びフリガナを入力するテキストフィールドが各項目に対応する所定の位置に配置し設定される。また、口座種別を選択させるラジオボタン77aが所定の位置に配置し設定される。また、申請に関するアクションを実行するためのボタン82a、一時保存に関するアクションを実行するためのボタン83a、及びクリアに関するアクションを実行するためのボタン84aが所定の位置に配置し設定される。
【0026】
ここで、プラットフォームサーバ30のCPUは、部品が配置される度に、当該部品に付与される属性を設定するためのウィンドウをユーザ端末10に表示させ、ユーザ端末10から受信した操作情報に基づいて各部品の属性を設定する。例えば、テキストフィールドが配置された場合には、当該テキストフィールドに付与される属性を設定するためのウィンドウをユーザ端末10に表示させる。当該テキストフィールドの属性は、例えば、テキストフィールドを識別するための識別情報、当該テキストフィールドに入力されるテキストのデータ型(文字列、数値、日付)、及び当該テキストボックスに入力されるテキストのデータ長さなどである。また、ラジオボタンが配置された場合には、当該ラジオボタンに付与される属性を設定するためのウィンドウをユーザ端末10に表示させる。当該ラジオボタンの属性は、ラジオボタンを識別するための識別情報、選択可能な項目を識別するための項目識別情報、選択された項目に付与される値のデータ型、及び値のデータ長さ等である。上記のようにプラットフォームサーバ30のCPUは、構築画面90を表示させる表示部、操作情報を受信する受信部、及び操作情報に基づいて部品を配置し設定する設定部を備える画面定義部として機能している。
【0027】
プラットフォームサーバ30のCPUは、画面定義処理s10を実行した後に、テーブル生成処理s20を実行する。テーブル生成処理s20は、業務アプリにおいて用いられるテーブルを生成する処理であって、画面定義処理s10においてフォームに配置された部品に関する情報(部品の属性情報)に基づいてテーブルを生成する。例えば、図3に示される給与口座テーブルを生成する際には、画面定義処理s10において配置された各テキストフィールドの属性情報およびラジオボタンの属性情報に基づいて給与口座テーブルが生成される。すなわち、各テキストフィールドやラジオボタンに付与された識別情報に対応するフィールドが生成される。各フィールドに登録される情報のデータ型は、各テキストフィールドやラジオボタンに対して設定されたデータ型に従って定められる。また、各フィールドに登録される情報のデータ長さは、各テキストフィールドやラジオボタンに対して設定されたデータ長さに従って定められる。なお、テーブル生成処理s20は、プラットフォームサーバ30のCPUが、フォームに配置された部品に関する情報に基づいてテーブルを生成する処理に加えて、生成したテーブルをユーザ端末10に表示させ、ユーザ端末10からの操作に基づいてテーブルの内容を変更、フィールドの追加を行う処理を含んでも構わない。
【0028】
上記テーブル生成処理s20が実行された後には、アクション設定処理s30が実行される。アクション設定処理s30は、フォームに組み込まれるアクションを設定する処理である。ここで、アクションとは、フォームの動作やテーブルに対する操作を定めた関数に代表されるような処理の1まとまりであって、スクリプト(プログラム)のセンテンス(1行単位の命令文)の集合であって、一のフォーム動作に対して一又は複数のアクション、一のテーブル操作に対して一又は複数のアクションが設定される。本実施形態のシステム100では、図1に示すように、機械学習を実行する学習サーバ40を備えており、当該学習サーバ40によって予め生成された学習済みモデルに推論用データを入力することで、フォーム動作やテーブル操作に関するアクションを自動生成することとしている。以下、学習サーバ40の構成と、学習サーバ40における機械学習の態様を説明し、その後にアクション設定処理s30を説明する。
【0029】
学習サーバ40は、ネットワークNに接続するネットワーク通信部として機能するネットワークモジュールと、教師ありの機械学習のプログラムを実行するCPUと、当該プログラムを記憶するメモリと、を備えている。当該機械学習では、教師データである複数の学習データセットに基づいて学習済みモデル101(図8)が生成される。このように学習サーバ40は学習済みモデルを生成する学習部102(図8)として機能している。
【0030】
ここで、機械学習に用いられる学習データセット(教師データ)は、後述する学習用画面であるフォームに組み込まれた全ての部品の部品情報を入力データとし、当該フォームに組み込まれた全てのアクション(処理)のアクション情報を正解データとしたものである。部品情報とは、フォームに組み込まれた部品の種類と、当該種類ごとに集計された部品の数である。図6に例示されるように、部品には、その種類ごとにコード(以下、「部品コード」という。)が付与されており、図7に示すように各部品コードに部品数が対応付けられて入力データが構成されている。アクション情報とは、フォームに組み込まれたアクションの種類と、種類ごとに集計されたアクションの数である。図9に示されるように、アクションは、複数のフォーム動作およびテーブル操作毎に分類されており、各々のアクションに対して識別情報(以下、「アクションコード」という。)が付与されている。当該アクションコードの各々に対して、組み込まれたアクション数が対応付けられることで正解データが構成されている。なお、アクションコードに対応するスクリプト(アクションの内容を記載したスクリプト)については、プラットフォームサーバ30に格納されており、後述の適用ステップs33において当該スクリプトが用いられる。
【0031】
複数の上記学習データセットが準備されて、機械学習が実行される。複数の学習データセットは、発明者が過去に作成した多数のフォーム(学習用画面)に基づいて準備される。ここで、本実施形態では、過去に作成した全てのフォームについて学習データセットを生成するのではなく、過去に作成したフォームをクラスタリングすることによってグループ別に分け、各グループから学習データセットを生成することとしている。当該クラスタリングは、過去に作成したフォームを、その使用部品に基づいて行うクラスタリング(以下、「部品クラスタリング」という。)と、各フォームに組み込まれたアクションに基づいて行うクラスタリング(以下、「アクションクラスタリング」という。)と、を含む。部品クラスタリングは、過去に作成されたフォームを、その部品情報に基づいてクスタリングするものである。部品情報は、上述のように、フォームに組み込まれた部品の情報であって、部品の種類の各々について集計された部品の使用数である。本実施形態では、部品種類に対応する部品コードの各々に対応付けられた使用数を部品情報としている。当該部品クラスタリングを行うことで、部品情報が共通するフォームがグルーピングされることとなる。アクションクラスタリングは、過去に作成された各フォームのアクション(アクションコード)に基づいてクラスタリングを行うものである。以下、図10に基づいて、上記部品クラスタリングおよびアクションクラスタリングを説明する。
【0032】
フォームA乃至フォームGは、過去に作成されたフォームであって、本例では、フォームA,C,Gの部品情報が共通しており、フォームB,Fの部品情報が共通しており、フォームD,Eの部品情報が共通している。当該フォームA乃至フォームGに対して部品クラスタリングが実行される。当該部品クラスタリングを実行した結果、部品情報が共通しているフォームA,C,Gが第1グループとしてグルーピングされ、フォームB,Fが第2グループとしてグルーピングされ、フォームD,Eが第3グループとしてグルーピングされる。各グループのフォームから任意のフォームが選択され、選択されたフォーム(以下「選択フォーム」という。)のアクションについてアクションクラスタリングが実行される。本例では、第1グループにおいてフォームAが選択され、第2グループにおいてフォームFが選択され、第3グループにおいてフォームDが選択される。選択フォームAのアクション{A1,A3,A4}、選択フォームFのアクション{A2,A3}、選択フォームDのアクション{A1}に対してアクションクラスタリングが実行された結果、アクション{A1,A2,A3,A4}が出力される。上記部品クラスタリングおよびアクションクラスタリングの結果に基づいて、学習用データセットが生成される。具体的には、部品クラスタリングによって形成された各グループの選択フォームA,F,Dの部品情報が入力データとなり、各選択フォームA,F,Dに対応するアクション情報が正解データとなる。
【0033】
上記学習処理によって生成された学習済みモデル101は、プラットフォームサーバ30に組み込まれている。当該プラットフォームサーバ30のCPUは、アクション設定処理s30において、推論用データ生成処理s31、推論処理s32、及び適用処理s33をこの順に実行する。推論用データ生成処理s31は、推論用データを生成する処理であって、本実施形態では、画面定義処理s10において作成されたフォーム(定義用画面)に対してユーザが指定した部品の部品情報である。当該部品情報は、上記学習用データセットに含まれる部品情報と同様に生成される。すなわち、プラットフォームサーバ30は、フォームに配置された部品の種類ごとにその配置数をカウントし、部品の種類(部品コード)に配置数を対応付けてメモリに記憶させる。このようにプラットフォームサーバ30のCPUは、推論用データの生成部103として機能している。
【0034】
推論処理s32は、推論用データを学習済みモデルに入力する入力ステップと、学習済みモデルから出力されたアクション情報を取得する取得ステップを含む。このようにプラットフォームサーバ30のCPUは推論部104(図8)として機能している。当該アクション情報は、アクションコードであって、一のフォームを動作させるための一または複数のアクションのアクションコード、及び/又は一のテーブルを操作するための一または複数のアクションのアクションコードが出力される。
【0035】
適用処理s33は、推論処理s32において取得したアクションをフォームに対して適用する処理である。ここで、プラットフォームサーバ30は、全てのアクション情報(アクションコード)に対応付けて、アクション情報の各々に対応するアクションのスクリプトが、予めメモリに格納されている。よって、本適用処理s33では、プラットフォームサーバ30のCPUは、取得したアクションコードに対応するアクションのスクリプトを抽出し、抽出したスクリプトをフォームに対して適用する。このように、プラットフォームサーバ30のCPUおよびメモリは、推論結果であるアクション情報をフォームに対して適用する適用部として機能している。
【0036】
本実施形態のシステム100によれば、業務アプリの構築過程において、画面定義処理s10において配置された部品の部品情報に基づいてアクション情報が自動的に生成されるので、アクションに関するプログラムの作成負担を軽減することができる。
【0037】
[第2実施形態]
【0038】
第2実施形態に係るシステムは、第1実施形態と同様の構成を備える。すなわち、ユーザ端末10、プラットフォームサーバ30、及び学習サーバ40がネットワークNを介して通信可能に構成されている。本実施形態のプラットフォームサーバ30は、第1実施形態と同様にSaaS型のサーバであり、業務アプリの構築支援、及び構築された業務アプリを提供するものである。
【0039】
本実施形態の学習サーバ40は、第1実施形態と同様に、教師ありの機械学習を実行するものである。本実施形態の学習データセットは、過去に作成されたフォーム(学習用画面)に配置されている部品の部品情報を入力データとし、当該フォームに組み込まれたアクション情報を正解データとしている点で上記第1実施形態と共通している。しかし、本実施形態では、部品情報に加えて当該フォーム(学習用画面)に対応するよう構成されたテーブルのテーブル情報を入力データに含む点で、上記第1実施形態と異なっている。ここで、テーブル情報とは、テーブルの各フィールドに定められたデータ型をその種類別に集計した情報であって、データ型の各々について集計されたデータ型の使用数である。ここで、フォームに対応するテーブルが複数存在する場合には、図11に示すように、テーブル毎にデータ型が集計される。例えば、フォームに対応して第1テーブル(メインテーブル)と第2テーブル(サブテーブル)が存在する場合には、先ず、第1テーブルにおけるフィールドのデータ型が集計され、第2テーブルにおけるフィールドのデータ型が集計される。なお、図11に示すようにサブテーブルが2つ存在する場合には、上記第2テーブルに続いて第3テーブルにおけるフィールドのデータ型が集計される。図10に示すように、このようなテーブル情報が、部品クラスタリングに基づく各グループの選択フォームに対応して生成される。学習サーバ40は、当該学習用データセットに基づいて機械学習を実施して学習済みモデルを生成する。当該学習済みモデルは、第1実施形態と同様にプラットフォームサーバ30に組み込まれる。
【0040】
本実施形態のアクション設定ステップs30では、上記学習済みモデルに対して推論用データセットが入力される。当該推論用データセットは、画面定義処理s10において配置された部品の部品情報に加えて、テーブル生成処理s20において生成されたテーブルのテーブル情報が含まれる。推論処理s32において、当該推論用データセットが学習済みモデルへと入力されて、アクション情報が出力される。そして、適用処理s33において、アクション情報に対応するスクリプトがフォームに適用される。このように、第2実施形態のシステムによれば、部品情報だけでなくテーブル情報に基づいて学習済みモデルが生成されているので、当該学習済みモデルによって出力されるアクション情報の精度を向上させることができる。
【0041】
[第3実施形態]
【0042】
第3実施形態に係るシステムは、第1実施形態および第2実施形態と同様の構成を備える。すなわち、ユーザ端末10、プラットフォームサーバ30、及び学習サーバ40がネットワークNを介して通信可能に構成されている。本実施形態のプラットフォームサーバ30は、第1実施形態および第2実施形態と同様にSaaS型のサーバであり、業務アプリの構築を支援し、構築された業務アプリを提供するものである。
【0043】
本実施形態の学習サーバ40は、第1実施形態および第2実施形態と同様に、教師ありの機械学習を実行するものである。本実施形態の学習用データセットは、過去に作成されたフォームに配置されている部品の部品情報および当該フォームに対応するよう構成されたテーブルのテーブル情報を入力データセットとし、当該フォームに組み込まれたアクション情報を正解データとしている点で第2実施形態と同様である。しかし、本実施形態では、当該フォームやテーブルに対する要件情報を入力データセットに含む点で第2実施形態とは異なっている。
【0044】
要件情報は、フォームやテーブルに対して実行すべき動作や操作(要件)を、要件別に集計した情報である。この要件に基づいてプログラミングされたものがアクションである。過去に作成されたフォームやテーブルにおいては、先ずユーザ(構築者)によってフォーム動作やテーブル操作に関する要件が定義され、当該要件を満たすためのアクションがプログラミングされている。図12に示すように、本実施形態では複数種類の要件が定められており、当該要件の各々に対して識別コード(以下、「要件コード」という。)が付与されている。そして、図10に示すように、上記部品クラスタリングに基づく各グループの選択フォームに対して指定された要件の要件コードとその使用数(要件情報)が入力データセットに含められる。
【0045】
学習用データの正解データは、上記第1実施形態および第2実施形態と同様に、過去に作成されたフォームやテーブルに用いられたアクションのアクション情報である。当該入力データセットと正解データを学習用データのデータセットとし、学習サーバ40にて機械学習が実施され、学習済みモデルが生成される。生成された学習済みモデルは、プラットフォームサーバ30に組み込まれる。
【0046】
プラットフォームサーバ30のCPUは、画面定義処理s10およびテーブル生成処理s20を実行する点で第1実施形態および第2実施形態と共通しているが、本実施形態では、更に、ユーザ要件定義処理を実行する点で第1実施形態および第2実施形態とは異なっている。ユーザ要件定義処理は、ユーザ(構築者)が要件を定義する処理である。当該ユーザ要件定義処理では、プラットフォームサーバ30は、構築者のユーザ端末10に対して、要件リストを表示させる。構築者は、表示された要件リストからフォーム操作およびテーブル操作に必要と考える一または複数の要件を選択する。プラットフォームサーバ30は、選択された要件に対応する要件コード(要件情報)を特定する。
【0047】
プラットフォームサーバ30は、画面定義処理s10,テーブル生成処理s20,及びユーザ要件定義処理が実行された後に、アクション設定ステップs30を実行する。アクション設定ステップs30では、推論用データ生成処理s31が実行される。推論用データ生成処理s31では、画面定義処理s10にて用いられた部品の部品情報、テーブル生成処理s20で生成されたテーブルのテーブル情報、及びユーザ要件定義処理によって特定された要件情報を含む推論用データセットを生成する。
【0048】
上記推論データセットを学習済みモデルに入力し、学習済みモデルから出力されたアクション情報に対応するスクリプトがフォームに組み込まれる。本実施形態のシステムによれば、部品情報、テーブル情報、及び要件を学習データセットとしているので、学習済みモデルの精度が向上しており、当該学習済みモデルから出力されたアクション情報の精度も向上している。
【0049】
[第4実施形態]
【0050】
第4実施形態に係るシステムは、第1実施形態乃至第3実施形態と同様の構成を備える。すなわち、ユーザ端末10、プラットフォームサーバ30、及び学習サーバ40がネットワークNを介して通信可能に構成されている。本実施形態のプラットフォームサーバ30は、第1実施形態乃至第3実施形態と同様にSaaS型のサーバであり、業務アプリの構築を支援し、構築された業務アプリを提供するものである。
【0051】
第4実施形態の学習サーバ40は、第1実施形態乃至第3実施形態と同様に、教師ありの機械学習を実行するものである。本実施形態の学習用データセットは、過去に作成されたフォーム(学習用画面)に配置されている部品の部品情報、当該フォームに対応するように構成されたテーブルのテーブル情報、及び当該フォームやテーブルに対して設定された要件情報を入力データセットとしており、当該フォーム(学習用画面)に組み込まれたアクション情報を正解データとしている点で第3実施形態と同様である。しかし、本実施形態では、上記学習用データセットの生成態様が第3実施形態と異なっている。以下、具体的に説明する。
【0052】
学習用データセットの生成は、フォーム抽出ステップ、入力データ生成ステップ、及び正解データ生成ステップを含む。
【0053】
フォーム抽出ステップは、過去に作成された多数のフォームを、当該フォームごとに設定された要素情報に基づいてクラスタリングするステップである。当該要素情報は部品情報、データ情報、及び要件情報である。当該フォーム抽出ステップにより、要素情報の類似度に基づいて上記多数のフォームが複数のグループにグルーピングされ、各グループから一の代表的なフォームが抽出される。すなわち、当該フォーム抽出ステップによって、過去に作成された多数のフォームから代表的な複数のフォーム(以下、「複数の代表フォーム(複数の学習用画面)」という。)が抽出され、これら複数の代表フォーム(複数の学習用画面)が、学習用データセットの生成対象となる。
【0054】
なお、上記要件情報には、フォームの用途情報、画面パターン情報、及び/又はデータグリッドの数情報を含めても構わない。フォームの用途情報とは、フォームの用途を指標する情報であって、例えば、フォームが有給申請や旅費申請などの申請フォームであるか、申請フォーム以外であるかを示す情報である。また、画面パターン情報とは、フォームを構成する画面のパターンを指標する情報であって、例えば、操作メニュー画面であるか、データ入力画面であるか、データ検索画面であるか、データ更新画面であるか、データ削除画面であるかなどを示す情報である。また、データグリッドの数情報とは、フォームにおけるデータグリッド(データを入力する表)の数を指標する情報である。このようにフォーム用途情報、画面パターン情報、及び/又はデータグリッドの数情報を要件情報に含めることで、クラスタリングの精度を向上させることができる。
【0055】
入力データ生成ステップは、機械学習における入力データを生成するステップであって、上記複数の代表フォーム(学習用画面)の各々に組み込まれた要素情報(部品情報、データ情報、及び要件情報)を入力データとするステップである。
【0056】
正解データ生成ステップは、機械学習における正解データ(アクション情報)を生成するステップである。当該正解データ生成ステップは、代表フォームの画面動作に関するアクション(以下「動作アクション」という。)のクラスタリング(以下、「動作アクションクラスタリング」という。)と、代表フォームのテーブルのデータ操作に関するアクション(以下「操作アクション」という。)のクラスタリング(以下、「操作アクションクラスタリング」という。)と、動作アクションおよび操作アクションに関するアクション情報を生成する生成ステップと、を含む。以下、各ステップを具体的に説明する。
【0057】
動作アクションクラスタリングは、代表フォームの画面動作において標準的に用いられている動作アクション(以下、「標準動作アクション」という。)を特定するクラスタリングであり、第1クラスタリング、及び第2クラスタリングを含む。
第1クラスタリングは、動作アクションを実行するためのセンテンス(以下「実センテンス」という。)をクラスタリングするものである。なお、実センテンスとは、アクション(関数に代表されるような処理の1まとまり)を構成する1行単位の命令文である。当該第1クラスタリングでは、次のステップが実施される。
(1)上記フォーム抽出ステップによって抽出された複数の代表フォームにおいて、組み込まれた全ての動作アクションを抽出し、抽出した動作アクションを実行するための実センテンスを特定する。
(2)上記特定した全ての実センテンスを汎用センテンスへと変換する。汎用センテンスは、実センテンスを汎用的に表現したセンテンスである。具体的には、図14に示すように、各実センテンスに用いられている変数や引数を共通の文字列に変換することで汎用化されたセンテンスが汎用センテンスである。
(3)汎用センテンスをクラスタリング(第1クラスタリング)する。
当該(1)乃至(3)によって、複数の代表フォームの動作アクションにおいて用いられている標準的な汎用センテンスを特定することができる。
【0058】
第2クラスタリングは、上記(1)によって抽出した全ての動作アクションにおいて使用されている上記標準的な汎用センテンスの種類と、当該種類ごとの使用数と、を特定し、特定した汎用センテンスの種類および使用数に基づいて、上記(1)によって抽出した全ての動作アクションをクラスタリングするものである。当該第2クラスタリングによって、代表フォームの画面動作において標準的に用いられている動作アクションが特定される。
【0059】
操作アクションクラスタリングは、テーブルのデータ操作(SQL処理)として標準的に用いられている操作アクション(「標準操作アクション」という。)を特定するクラスタリングである。具体的には次のステップが実施される。
(1)上記フォーム抽出ステップによって抽出された複数のフォームにおいて、組み込まれた全ての操作アクションを抽出し、抽出した操作アクションにおける実センテンスを特定する。
(2)特定した全ての実センテンスを汎用センテンスへと変換する。
(3)上記複数の代表フォームの各々において使用されている汎用センテンスの種類と、種類ごとの使用数と、を特定し、特定した汎用センテンスの種類および使用数に基づいて、当該複数の代表フォームをクラスタリングする。
【0060】
生成ステップは、動作アクションおよび操作アクションに関するアクション情報を生成するステップである。具体的には、上記フォーム抽出ステップによって抽出された代表フォームの各々について、代表フォームにおいて使用されている標準動作アクションの種類および標準操作アクションの種類を特定し、種類ごとの使用数を特定する。これら標準動作アクションの種類および標準操作アクションの種類、並びに種類ごとの使用数がアクション情報である。したがって、フォーム抽出ステップによって抽出された代表フォームの各々に対応するアクション情報が生成される。
【0061】
上記のステップによって学習用データが生成され、当該学習用データに基づいて機械学習が実施され、学習済みモデルが生成される。当該学習済みモデルは、第1実施形態乃至第3実施形態と同様に、プラットフォームサーバ30に組み込まれる。
【0062】
プラットフォームサーバ30のCPUは、画面定義処理s10、テーブル生成処理s20、及びユーザ要件定義処理を実行する点で第3実施形態と共通している。プラットフォームサーバは、これらの処理を実行した後に、アクション設定ステップs30を実行する。アクション実行ステップs30では、推論用データ生成処理s31、上記学習済みモデルを用いた推論処理s32、及び適用処理s33がこの順に実行される。
【0063】
推論用データ生成処理s31では、画面定義処理s10において設定された部品の部品情報、テーブル生成処理s20において設定されたテーブルのテーブル情報、及びユーザ要件定義処理において設定された要件情報を含む推論用データセットが生成される。
【0064】
推論処理s32では、上記の推論用データセットが学習済みモデルに入力され、学習済みモデルからアクション情報(標準動作アクション及び/又は標準操作アクション)、及びその使用数が出力される。ここで、アクション情報(標準動作アクションおよび標準操作アクション)と汎用センテンスの対応関係がプラットフォームサーバ30に記憶されている。当該対応関係は、図14に示すように、上記動作アクションクラスタリングおよび操作アクションクラスタリングにおいて特定されたものである。従って、適用処理s33では、出力されたアクション情報に基づいて、当該アクション情報に対応する汎用センテンスを抽出し、抽出した汎用センテンスを画面定義されたフォームに適用することが可能となる。
【0065】
上記本発明の実施形態を説明したが、本発明は実施形態に限定されず、当業者の知識に基づいて種々の変更を加えても構わない。
【0066】
[変形例1]
プラットフォームサーバ30と学習サーバ40が共通のサーバにより構成されても構わない。
【0067】
[変形例2]
変形例2に係るシステムは、図13に示すように、プラットフォームサーバ30およびアップロードサーバ50が、インターネット通信回線を介して、ユーザ端末10と通信可能に接続されている。また、アップロードサーバ50、学習サーバ40、及び複数の推論サーバ60a,60bが、ローカルネットワークを介して、互いに通信可能に接続されている。
【0068】
本変形例2では、プラットフォームサーバ30のCPUは、アクセス元のユーザ端末10に対して、上記画面定義処理s10、テーブル生成処理s20、及びユーザ要件定義処理を実行する。そして、プラットフォームサーバ30のCPUは、推論用データセットである部品情報、テーブル情報、及び要件情報を含む推論用ファイルを生成し、当該推論用ファイルをユーザ端末10に送信する。
【0069】
ユーザ端末10は、インターネット通信回線を介して、推論用ファイルを受信し、受信した推論用ファイルをアップロードサーバ50に送信する。アップロードサーバ50は、推論用ファイルを受信すると、その時点で処理負荷の少ない推論サーバ60a,60bを選択し、選択した推論サーバ60a,60bに対して推論用ファイルを送信する。
【0070】
推論サーバ60a,60bは、推論処理を実行するサーバであって、学習サーバ40によって生成された学習済みモデルを備える。推論サーバ60a,60bのCPUは、推論用ファイルを受信すると、当該推論用ファイルを学習済みモデルに入力し、学習済みモデルから出力されたアクション情報を取得する。そして、推論サーバ60a,60bはアクション情報を含むアクションファイルを生成する。推論サーバ60a,60bは、生成したアクションファイルをアップロードサーバ50へと送信する。アップロードサーバ50は、アクションファイルを受信すると、受信したアクションファイルをユーザに対して電子メールにて送信する。
【0071】
ユーザ端末10のCPUは、アクションファイルを受信し、受信したアクションファイルをプラットフォームサーバ30へと送信する。プラットフォームサーバ30は、アクションファイルを受信し、受信したアクションファイルに含まれるアクション情報に対応するスクリプトをフォームに適用する。
【0072】
なお、推論サーバ60a,60bによる推論処理によって出力されたアクション情報が不適切である場合には、推論処理において用いられた推論用ファイルを入力データとして学習サーバ40にフィードバックされる。この際、システム管理者によって生成されたアクション情報が正解データとして学習サーバ40に入力され、学習サーバ40において学習処理が実行される。当該学習処理によって生成された学習済みモデルは、推論サーバ60a,60bへと送信されて、推論サーバ60a,60bに組み込まれ更新される。
【0073】
[変形例3]
上記実施形態では、プラットフォームサーバ30および学習サーバ40が、ネットワークNを介して、ユーザ端末10に対してサービスを提供しているが、プラットフォームサーバ30および学習サーバ40の機能および処理をユーザ端末10や、ユーザのローカルネットワークに配置されたサーバに備えても構わない。
【0074】
[変形例4]
上記実施形態では、フォームに配置される部品の部品情報、テーブルのテーブル情報、及び/又は要件情報に基づいて推論用データや学習データが構成されているが、例えば、フォームに含まれる項目情報に基づいて推論用データや学習データが構成されてもかまわない。すなわち、フォームに関する要素に基づいて推論用データや学習データが構成されても構わない。
【0075】
[変形例5]
上記実施形態では、クラスタリングを実施することで学習データセットを生成しているが、当該クラスタリングは必須の処理ではなく、過去に作成された多数のフォームから所定数のフォームを任意に抽出し、抽出したフォームの各々に基づいて、学習データセットを生成しても構わない。
【符号の説明】
【0076】
100 システム
10 ユーザ端末
30 プラットフォームサーバ
31 データベース
40 学習サーバ
s10 画面定義処理
s20 テーブル生成処理
s30 アクション設定処理

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14