IBM i におけるコグニティブ ソリューションの活 - ILE RPG から Watson PI を使 - 本アイ ビー エム株式会社 IBM システムズ ハードウェア事業本部 Power Systems Technical Sales 2017 年 4
はじめに 当資料では IBM i におけるコグニティブ システムの実現を 的とし IBM i の ILE RPG から Watson PI を使 する 法についてご紹介します 当資料は 下記リンク先の内容 サンプル プログラムを引 しています Paul Tuohy 著 RPG TLKS TO WTSON Copyright 2017 IT Jungle https://www.itjungle.com/2016/09/27/fhg092716-story01/ ご参考 ) この記事は e-bellnet.com でも 本語で翻訳されています IBM Watosonと話すRPG e-bellnet.com https://www.e-bellnet.com/category/technology/1611/1611-2.html 2
IBM i で実現するコグニティブ時代の IT 活 IoT Social Web PI 補完 連携 堅牢かつオープンな IBM i クラウド テクノロジー 3 データ セキュリティーとオープン テクノロジーがオールインワン 加速するユーザーの要求にタイムリーに対応
Watson PI 概要 Watson Developer Cloud で Watson PI サービスを提供 2017 年 3 31 現在の提供サービスは以下の通りとなります Natural Language Classifier テキスト 章の分類を う ( 質問の意図推定など ) Retrieve and Rank 然 語の質問に対して回答の候補を返す 語系 Conversation アプリケーションに 然 語インターフェースを追加してエンドユーザとのやり取り を 動化 Natural Language Understanding( 本語未対応 ) 然 語処理を通じてキーワード抽出 エンティティー抽出 情 Personality Insights テキストから筆者の性格を推定する分析 感情分析 概念タグ付け 関係抽出 分類法種別 作成者抽 Tone nalyzer( 本語未対応 ) テキストの感情 社交性 体を解析する Document Conversion 書を新しい形式に変換する 出などを う Language Translator( 部 本語未対応 ) 1 然 語テキストについて他 語へ翻訳を う 画像系 Visual Recognition 画像コンテンツに含まれる意味を検出する 声系 Speech to Text 声をテキスト 章に変換する Text to Speech テキスト 章を 声に変換する 分析系 Discovery( 本語未対応 ) 認知検索およびコンテンツ分析エンジンをアプリケーションに追加して 優れた意思決定を うのに役 つパターン 傾向 およびアクション可能な洞察を識別する Tradeoff nalytics( 本語未対応 ) 複数の競合する選択肢の中から 選択を う過程を 援する 4 https://www.ibm.com/watson/developercloud/services-catalog.html 1 Language Translator に関してはニュースドメインのみ 本語対応をしています
Watson PI Explorer 概要 Watson PI の使い を習得 テストできるように 意されているサイト Watson PI Explorer:https://watson-api-explorer.mybluemix.net/ ILE RPGからPI 呼び出しのテストとしてWatson PI Explorerの Language Translator を使 しています 5
Language Translator - Watson PI の URL 構成 - traslate の GET の横の /v2/translate をクリックしますとパラメータ 画 が表 されます 下記を し をクリック model_id : 例 ) ja-en text : 例 )This is a test. Request URL が表 されます https://watson-apiexplorer.mybluemix.net/languagetranslator/api/v2/translate?model_id=enja&text=this%20is%20a%20test. 上記 URL の 太字部分を ILE RPG アプリケーション内で 3 つのパラメータとして REST 呼び出しをします 6
ご参考 )REST とは REpresentational State Transfer ウェブのような分散ハイパーメディアシステムのためのソフトウェアアーキテクチャのスタイルのひとつ (wikipedia https://ja.wikipedia.org/wiki/rest より ) ネットワーク上のリソース (URI) に対する各種操作を HTTP の GET, POST, PUT,DELETE メソッドで出来るだけ簡潔に表現 実装 クラウド上のサービス / アプリケーションとの い親和性 アプリケーション, サービス リクエスター リソースを取得する リソースを登録する リソースを更新する リソースを削除する HTTP GET リクエスト HTTP POST リクエスト HTTP PUT リクエスト HTTP DELETE リクエスト Network リソース warehouses/tokyo/stocks /customers /orders etc. 7
Watson PI を使った RPG サンプル アプリケーション この ILE RPG サンプル アプリケーションでは Watson PI の Language Translator ( 翻訳機能 ) を使 5250 画 で した原 を Language Translator で翻訳し 5250 画 に結果を出 します 5250 画面のアプリケーション開発を推奨しているわけではありません ここでは Web の設定などが不要であることを証明するために 5250 画面を使用しています 8
Watson PI を使った RPG サンプル アプリケーション - ILE RPG と Watson PI の連携イメージ - IBM i 7.1 以降で使 可能な DB2 for i の HTTP メソッド機能を使 SYSTOOLS スキーマで REST の HTTP メソッドのサンプル SQL プロシージャー ( 関数 ) を提供 ILE RPG の組み込み SQL を使って HTTPGETBLOB 関数で Watson PI を GET リクエストし リソースを取得 TOWTSOND.DSPF TOWTSON.SQLRPGLE SYSTOOLS.HTTPGETBLOB (:https://watson-api-explorer.mybluemix.net/languagetranslator/api/v2/translate?model_id=enja&text=this%20is%20a%20test.,ʼʼ) 原文の言語 訳文の言語 言語 HTTP GET リクエスト Language Translator CLOB リソースを取得 訳文 DB2 for i IBM i 9 Power Systems
Watson PI を使った RPG サンプル アプリケーション - 表 装置ファイル - 表 装置ファイル TOWTSOND.DSPF のサンプル ソース フィールド FROMLNG: 原 の 語 TOLNG: 訳 の 語 FROMTEXT: 原 出 フィールド TOTEXT: 訳 SQLCODEO : エラー時の SQL コード F3 キー : プログラム終了 INDR DSPSIZ(24 80 *DS3) CF03(03) R DTR 1 27'Watson 翻訳 ' COLOR(BLU) 3 1' 言語 (1= 英語, 2= スペイン語,' 3 35'3= フランス語, 4= イタリア語,' 3 67' 5= 日本語 )' 4 1' 原文の言語 :' FROMLNG 1 0B 4 15VLUES(1 2 3 4 5) EDTCDE(X) 4 20' 訳文の言語 :' TOLNG 1 0B 4 34VLUES(1 2 3 4 5) EDTCDE(X) 6 1' 原文 :' FROMTEXT 320O B 8 1CHECK(LC) 13 1' 訳文 ' TOTEXT 320 O 14 1 19 1'SQLCode:' SQLCODEO 5 0O 19 10 24 2'F3=Exit' COLOR(BLU) 10
Watson PI を使った RPG サンプル アプリケーション - メイン プロシージャ - ILERPG TOWTSON.SQLRPGLE のサンプル ソース (1/3) ) データ構造は 語コードの配列を定義 ( コードは 画 上の原 / 訳 語 (1 = 英語 (en) 2 = スペイン語 (es) など ) に された番号に対応 ) B) F3 が押されるまで画 を表 しながらループ C) translate_text() サブプロシージャを呼び出し 原 語コード 訳 語コード 原 および 訳 のパラメータを渡す B C **free ctl-opt option(*srcstmt: *nodebugio) dftactgrp(*no); dcl-f towatsond workstn(*ext) usage(*input: *output) indds(wsi); dcl-ds WSI qualified; F3Exit ind pos(3); end-ds; dcl-ds *n; *n char(10) inz('enesfritja'); lang char(2) dim(5) pos(1); end-ds; exec SQL set option naming = *SQL; exfmt datar; dow not WSI.F3Exit; translate_text(lang(fromlang) : lang(tolang) : fromtext : totext); SQLCodeO = SQLCODE; exfmt datar; enddo; *inlr = *on; 11
Watson PI を使った RPG サンプル アプリケーション - translate_text() サブプロシージャ - 12 ILERPG TOWTSON.SQLRPGLE のサンプル ソース (2/3) ) RPGはCLOBデータ型を認識しないため textbackをsqltypeの CLOB 変数として定義 この定義はコンパイル後 2つのサブフィールド textback-len ( データの さ ) と textback_data( データ ) を持つデータ構造になる systools.httpgetclob はデータタイプ CLOB で返す B) systools.urlencode を使 して されたテキストをエンコード 問題の原因となる特殊 字 (& や < など ) を同等のものに変換 B dcl-proc translate_text; dcl-pi *n; fromlang char(2) const; tolang char(2) const; fromtext char(320) const; totext char(320); end-pi; dcl-s str1 varchar(1000); dcl-s str2 varchar(1000); dcl-s textback SQLType(CLOB: 320); if (fromlang =tolang); totext = fromtext; return; endif; str1 =%trimr(fromtext); exec SQL values trim(systools.urlencode(:str1, '')) into :str2;
Watson PI を使った RPG サンプル アプリケーション - translate_text() サブプロシージャ続き - ILERPG TOWTSON.SQLRPGLE のサンプル ソース (3/3) C) Watson PI を REST 呼び出しし 翻訳を実 する URL を 成 D) systools.httpgetclob を使 して Watson PI を REST 呼び出し 戻り値は 先に定義したtextBackに格納される E) 結果が返された場合は データの さ (textback_len) 分のデータ (textback_data) を戻り値に代 C str1 ='https://watson-api-explorer.mybluemix.net/' + D E 'language-translator/api/v2/translate?model_id=' + fromlang + '-' + tolang + '&text='+ str2; exec SQL values char(systools.httpgetclob(:str1, ''), 256) into :textback; totext = *blanks; if (textback_len >0); totext =%subst(textback_data: 1: textback_len); endif; return; end-proc; 13
Watson PI を使った RPG サンプル アプリケーション - プログラム実 - CLL TOWTSON 原 の 語 訳 の 語 原 のパラメータを し 実 14
ご参考 )IBM i の SYSTOOLS について SYSTOOLS は DB2 for i の提供する SQL ツールやサンプルです IBM i 7.1 以降で提供されており OS バージョン アップや PTF により機能が追加されています 参考リンク : IBM Knowledge Center IBM i 7.3 SYSTOOLS https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_73/rzajq/rzajqsystools.htm New HTTP functions added to SYSTOOLS https://www.ibm.com/developerworks/community/wikis/home?lang=ja#!/wiki/ibm%20i%20tec hnology%20updates/page/new%20http%20functions%20added%20to%20systools SYSTOOLS で提供される SQL ツールやサンプルは SWM の対象外です 15
まとめ - IBM i を Watson PI と連携し 新しいユーザー体験を提供 - 既存の IBM i 基幹業務アプリケーション / データと Watson PI の連携が実現可能 Watson PI の活 例 結果を 声で知らせる Text to Speech で既存のアプリケーションの UX を向上 然 語インターフェースを追加してユーザとのやり取りを 動化する Conversation で新しいサービスを提供 基幹業務データ DB2 for i REST PI スマートフォンタブレット PC など HTTP GET リクエスト リソースを取得 Watson PI ユーザー Power Systems オンプレミス パブリック クラウドサービスまたはお客様プライベート クラウドサービス 16
ワークショップ セッション および資料は IBM またはセッション発表者によって準備され それぞれ独自の見解を反映したものです それらは情報提供の目的のみで提供されており いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく またそのような結果を生むものでもありません 本講演資料に含まれている情報については 完全性と正確性を期するよう努力しましたが 現状のまま 提供され 明示または暗示にかかわらずいかなる保証も伴わないものとします 本講演資料またはその他の資料の使用によって あるいはその他の関連によって いかなる損害が生じた場合も IBM は責任を負わないものとします 本講演資料に含まれている内容は IBM またはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも IBM ソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく またそのような結果を生むものでもありません 本講演資料で IBM 製品 プログラム またはサービスに言及していても IBM が営業活動を行っているすべての国でそれらが使用可能であることを暗示するものではありません 本講演資料で言及している製品リリース日付や製品機能は 市場機会またはその他の要因に基づいて IBM 独自の決定権をもっていつでも変更できるものとし いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません 本講演資料に含まれている内容は 参加者が開始する活動によって特定の販売 売上高の向上 またはその他の結果が生じると述べる または暗示することを意図したものでも またそのような結果を生むものでもありません パフォーマンスは 管理された環境において標準的な IBM ベンチマークを使用した測定と予測に基づいています ユーザーが経験する実際のスループットやパフォーマンスは ユーザーのジョブ ストリームにおけるマルチプログラミングの量 入出力構成 ストレージ構成 および処理されるワークロードなどの考慮事項を含む 数多くの要因に応じて変化します したがって 個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません 記述されているすべてのお客様事例は それらのお客様がどのように IBM 製品を使用したか またそれらのお客様が達成した結果の実例として示されたものです 実際の環境コストおよびパフォーマンス特性は お客様ごとに異なる場合があります IBM IBM ロゴ ibm.com DB2 Power Systems POWER6 POWER6+ POWER7 POWER7+ POWER8 は 世界の多くの国で登録された International Business Machines Corporation の商標です 他の製品名およびサービス名等は それぞれ IBM または各社の商標である場合があります 現時点での IBM の商標リストについては www.ibm.com/legal/copytrade.shtml をご覧ください Linux は Linus Torvalds の米国およびその他の国における登録商標です Microsoft, Windows, Windows NT および Windows ロゴは Microsoft Corporation の米国およびその他の国における商標です UNIX は The Open Group の米国およびその他の国における登録商標です Java およびすべての Java 関連の商標およびロゴは Oracle やその関連会社の米国およびその他の国における商標または登録商標です 17