• 検索結果がありません。

ILE RPGからWatson APIを使用_1.0

N/A
N/A
Protected

Academic year: 2021

シェア "ILE RPGからWatson APIを使用_1.0"

Copied!
17
0
0

読み込み中.... (全文を見る)

全文

(1)

IBM i におけるコグニティブ・ソリューションの活⽤

ILE RPGからWatson APIを使⽤

-⽇本アイ・ビー・エム株式会社

IBM システムズ・ハードウェア事業本部

Power Systems Technical Sales

(2)

© 2017 IBM Corporation

2

当資料では、IBM i におけるコグニティブ・システムの実現を⽬的とし、IBM i のILE RPGから

Watson APIを使⽤する⽅法についてご紹介します。

当資料は、下記リンク先の内容、サンプル・プログラムを引⽤しています。

Paul Tuohy 著 「RPG TALKS TO WATSON」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

(3)

加速するユーザーの要求に

タイムリーに対応

データ・セキュリティーと

オープン・テクノロジーが

IBM i で実現するコグニティブ時代のIT活⽤

堅牢かつオープンなIBM i

クラウド・テクノロジー

IoT

Social

Web

API

補完・連携

(4)

© 2017 IBM Corporation

4

Watson Developer CloudでWatson APIサービスを提供

2017年3⽉31⽇現在の提供サービスは以下の通りとなります。

Watson API 概要

Personality Insights テキストから筆者の性格を推定する Language Translator(⼀部⽇本語未対応) ※1 ⾃然⾔語テキストについて他⾔語へ翻訳を⾏う Conversation アプリケーションに⾃然⾔語インターフェ ースを追加してエンドユーザとのやり取り

を⾃動化 Natural Language Understanding(⽇本語未対応)

⾃然⾔語処理を通じてキーワード抽出、エンティティー抽出、⼼情 分析、感情分析、概念タグ付け、関係抽出、分類法種別、作成者抽 出などを⾏う Text to Speech テキスト⽂章を⾳声に変換する Speech to Text ⾳声をテキスト⽂章に変換する Tradeoff Analytics(⽇本語未対応) 複数の競合する選択肢の中から、選択を⾏う過程を⽀援する Visual Recognition 画像コンテンツに含まれる意味を検出する Natural Language Classifier

テキスト⽂章の分類を⾏う(質問の意図推定など)

Tone Analyzer(⽇本語未対応)

テキストの感情、社交性、⽂体を解析する

Retrieve and Rank

⾃然⾔語の質問に対して回答の候補を返す

分析系

⾳声系

画像系

⾔語系

Document Conversion ⽂書を新しい形式に変換する Discovery(⽇本語未対応) 認知検索およびコンテンツ分析エンジンをアプリケーションに追加して、優れた意思決定を⾏うのに 役⽴つパターン、傾向、およびアクション可能な洞察を識別する https://www.ibm.com/watson/developercloud/services-catalog.html ※1 Language Translatorに関してはニュースドメインのみ⽇本語対応をしています。

(5)

Watson APIの使い⽅を習得・テストできるように⽤意されているサイト

Watson API Explorer:

https://watson-api-explorer.mybluemix.net/

ILE RPGからAPI呼び出しのテストとしてWatson API Explorerの「Language Translator」を使⽤してい

ます。

(6)

© 2017 IBM Corporation

6

traslateのGETの横の「/v2/translate」をク

リックしますとパラメータ⼊⼒画⾯が表⽰さ

れます。

下記を⼊⼒し、

をクリック

model_id : 例) ja-en

text : 例)This is a test.

「Request URL」が表⽰されます。

https://watson-api-

explorer.mybluemix.net/language-translator/api/v2/translate?model_id=

en

-ja

&text=

This%20is%20a%20test.

上記URLの⻘太字部分をILE RPGアプリ

ケーション内で3つのパラメータとして

、REST呼び出しをします。

Language Translator

Watson APIのURL構成

(7)

-■

REpresentational State Transfer

「ウェブのような分散ハイパーメディアシステムのためのソフトウェアアーキテクチャのスタイルの

ひとつ」

(wikipedia

https://ja.wikipedia.org/wiki/REST

より)

ネットワーク上のリソース (URI) に対する各種操作をHTTPのGET, POST, PUT,DELETEメソッド

で出来るだけ簡潔に表現、実装

クラウド上のサービス/アプリケーションとの⾼い親和性

ご参考)RESTとは

/customers

/orders

warehouses/tokyo/stocks

リソースを取得する

リソースを更新する

リソースを登録する

リソースを削除する

HTTP GETリクエスト

HTTP POSTリクエスト

HTTP PUTリクエスト

HTTP

DELETEリクエスト

etc.

アプリケーション, サービス・リクエスター

リソース

Network

(8)

© 2017 IBM Corporation

8

このILE RPG サンプル・アプリケーションでは、Watson APIの「Language Translator」

(翻訳機能)を使⽤

5250画⾯で⼊⼒した原⽂を「Language Translator」で翻訳し、5250画⾯に結果を出⼒します。

Watson API を使った RPG サンプル・アプリケーション

※5250画面のアプリケーション開発

を推奨しているわけではありません。

ここでは、Webの設定などが不要であ

ることを証明するために

5250画面を

使用しています。

(9)

Watson API を使った RPG サンプル・アプリケーション

ILE RPG と Watson APIの連携イメージ

-■

IBM i 7.1以降で使⽤可能なDB2 for i のHTTPメソッド機能を使⽤

「SYSTOOLS」スキーマでRESTのHTTPメソッドのサンプルSQLプロシージャー(関数)を提供

ILE RPGの組み込みSQLを使って、HTTPGETBLOB関数でWatson APIをGETリクエストし、リソースを取得

IBM i

Language Translator

TOWATSON.SQLRPGLE

SYSTOOLS.HTTPGETBLOB

(:https://watson-api-explorer.mybluemix.net/language- translator/api/v2/translate?model_id=en-ja&text=This%20is%20a%20test. ,ʼʼ)

CLOB

DB2

for i

HTTP GETリクエスト

TOWATSOND.DSPF

リソースを取得

原文の

言語

訳文の

言語

言語

訳文

(10)

© 2017 IBM Corporation

10

Watson API を使った RPG サンプル・アプリケーション

表⽰装置ファイル

A

INDARA

A

DSPSIZ(24 80 *DS3)

A

CF03(03)

A

R DATAR

A

1 27

'Watson翻訳'

A

COLOR(BLU)

A

3 1

'言語 (1=英語, 2=スペイン語,'

A

3 35

'3=フランス語, 4=イタリア語,'

A

3 67

' 5=日本語)'

A

4 1

'原文の言語:'

A

FROMLANG

1 0

B

4 15

VALUES(1 2 3 4 5)

A

EDTCDE(X)

A

4 20

'訳文の言語:'

A

TOLANG

1 0

B

4 34

VALUES(1 2 3 4 5)

A

EDTCDE(X)

A

6 1

'原文:'

A

FROMTEXT

320

O

B

8 1

CHECK(LC)

A

13 1

'訳文'

A

TOTEXT

320

A

O

14 1

A

19 1

'SQLCode:'

A

SQLCODEO

5 0

O

19 10

A

24 2

'F3=Exit'

A

COLOR(BLU)

表⽰装置ファイル「TOWATSOND.DSPF」のサンプル・ソース

⼊⼒フィールド

FROMLANG:原⽂の⾔語

TOLANG:訳⽂の⾔語

FROMTEXT:原⽂

出⼒フィールド

TOTEXT:訳⽂

SQLCODEO :エラー時の

SQLコード

F3キー:プログラム終了

(11)

A) データ構造は⾔語コードの配列を

定義(コードは、画⾯上の原⽂/

訳⽂⾔語(1 =英語(en)、2 =ス

ペイン語(es)など)に⼊⼒された

番号に対応)

B) F3が押されるまで画⾯を表⽰しな

がらループ

C) transLate_Text()サブプロシージ

ャを呼び出し、原⽂⾔語コード、

訳⽂⾔語コード、原⽂、および、

訳⽂のパラメータを渡す。

Watson API を使った RPG サンプル・アプリケーション

メイン・プロシージャ

-**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;

ILERPG「TOWATSON.SQLRPGLE」のサンプル・ソース (1/3)

A

B

C

(12)

© 2017 IBM Corporation

12

A) RPGはCLOBデータ型を認識しな

いため、textBackをSQLTypeの

CLOB変数として定義

この定義はコンパイル後2つの

サブフィールド textBack-Len

(データの⻑さ)と

textBack_Data(データ)を持

つデータ構造になる

※「systools.httpgetclob」は

データタイプ「CLOB」で返す

B) 「systools.urlencode」を使⽤し

て、⼊⼒されたテキストをエンコ

ード

問題の原因となる特殊⽂字(&

や<など)を同等のものに変換

Watson API を使った RPG サンプル・アプリケーション

transLate_Text()サブプロシージャ

-■

ILERPG「TOWATSON.SQLRPGLE」のサンプル・ソース (2/3)

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;

A

(13)

C) Watson APIをREST呼び出しし、翻訳を実⾏するURLを⽣成

D) 「systools.httpgetclob」を使⽤して、Watson APIをREST呼び出し。

戻り値は、先に定義したtextBackに格納される

E) 結果が返された場合は、データの⻑さ(textBack_Len)分のデータ(textBack_Data)

を戻り値に代⼊

Watson API を使った RPG サンプル・アプリケーション

- transLate_Text()サブプロシージャ

続き-■

ILERPG「TOWATSON.SQLRPGLE」のサンプル・ソース (3/3)

str1

=

'https://watson-api-explorer.mybluemix.net/'

+

'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;

C

D

E

(14)

© 2017 IBM Corporation

14

CALL TOWATSON

「原⽂の⾔語」、「訳⽂の⾔語」、「原⽂」のパラメータを⼊⼒し、実⾏

Watson API を使った RPG サンプル・アプリケーション

プログラム実⾏

(15)

-■

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ツールやサンプルはSWMAの対象外です

(16)

© 2017 IBM Corporation

16

既存のIBM i 基幹業務アプリケーション / データとWatson APIの連携が実現可能

Watson APIの活⽤例

結果を⾳声で知らせる

Text to Speech で既存のアプリケーションのUXを向上

⾃然⾔語インターフェースを追加してユーザとのやり取りを⾃動化する

Conversation で新しいサー

ビスを提供

まとめ

IBM i をWatson APIと連携し、新しいユーザー体験を提供

-DB2

for i

パブリック・クラウドサービス

またはお客様プライベート・クラウドサービス

Power Systems

オンプレミス

基幹業務データ

ユーザー

スマートフォン

タブレット

PC

など

Watson API

HTTP GETリクエスト リソースを取得

REST API

(17)

ワークショップ、セッション、および資料は、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の米国およびその他の国における登録商標です。

参照

関連したドキュメント

この課題のパート 2 では、 Packet Tracer のシミュレーション モードを使用して、ローカル

Windows Hell は、指紋または顔認証を使って Windows 10 デバイスにアクセスできる、よ

日本語で書かれた解説がほとんどないので , 専門用 語の訳出を独自に試みた ( たとえば variety を「多様クラス」と訳したり , subdirect

QRコード読込画面 が表示されたら、表 示された画面を選択 してウインドウをアク ティブな状態にした 上で、QRコードリー

EUで非原産材料の糸から製織した綿製織物(第 52.08 項)を使用し、英国で生産した 男子用シャツ(第 62.05

創業当時、日本では機械のオイル漏れを 防ぐために革製パッキンが使われていま

 模擬授業では, 「防災と市民」をテーマにして,防災カードゲームを使用し

ユースカフェを利用して助産師に相談をした方に、 SRHR やユースカフェ等に関するアンケ