Watson Knowledge Studio 〜ワークスペースの環境移行手順〜

<h1>記事の目的</h1>
<p>
　著者はWatson Knowledge Studio(以降、WKSと記載)を使用した検証を行う機会がよくありますが、検証の際、よく使用する機能(または操作手順)であるけれど、日本語でわかりやすく解説された情報がないものについて幾つかQiitaに投稿していこうと思います。第一弾としてワークスペースの環境移行手順を取り上げます。<br>
既存のワークスペースの環境を新しいワークスペースに移行する動機としては下記が考えられます。
<ul>
<li>検証などの際に、複数のステップに分けて検証する場合に、明示的に環境を分けたい場合</li>
<li>環境をバックアップし、必要時にリストアしたい場合</li>
<li>本番利用のワークスペースに変更を加える場合に、一旦、別環境で試したい場合</li>
</ul>
</p>

<h1>前提知識</h1>
<p>
本記事では、WKSの概要や基本的な操作についついては記載しておりません。
必要に応じて、参考リンクに記載の情報をお読みください。
</p>

<h1>参考リンク</h1>
<ul>
<li><a href="https://qiita.com/makaishi2/items/ae83828a711d0d946011">最新版IBM Cloud ライトアカウント登録手順(2018-05-06時点)  -Qiita</a></li>
<li><a href="https://www.ibm.com/watson/jp-ja/developercloud/knowledge-studio.html">Watson Knowledge Studio - IBM</a></li>
<li><a href="https://console.bluemix.net/docs/services/watson-knowledge-studio/tutorials-create-project.html#wks_tutintro">Watson Knowledge Studio ドキュメンテーション</a></li>
<li><a href="https://qiita.com/sukusuku_watson_editorial_room/items/d8407c938af47bc5ac44">Watson Knowledge StudioのTutorialをやってみた （前編）  -Qiita</a></li>
<li><a href="https://qiita.com/sukusuku_watson_editorial_room/items/981a4383f9defc5db6f5">Watson Knowledge StudioのTutorialをやってみた （後編）  -Qiita</a></li>
<li><a href="https://qiita.com/hone/items/03f2cbfbd30c20433a98">Watson Knowledge Studioの機械学習アノテーションをWatson Explorer にデプロイする  -Qiita</a>
<li><a href="https://qiita.com/yoshiono/items/b0619c91e9315c90ef97">Watson Knowledge Studio(WKS)のアノテーション作業手順　その１  -Qiita</a></li>
<li><a href="https://qiita.com/yoshiono/items/ed6b3bf64ef783c5cf43">Watson Knowledge Studio(WKS)のアノテーション作業手順　その２  -Qiita</a></li>
<li><a href="https://qiita.com/yoshiono/items/043087b9902a9135ab5d">Watson Knowledge Studio(WKS)のアノテーション作業手順　その３  -Qiita</a></li>
</ul>

<h1>移行手順</h1>
既存のワークスペースを新規のワークスペースに移行する手順を記載します。移行元のワークスペースには、Wikipediaに登録されているサッカー選手の文書を学習用のテキストデータとして、「ポジション」と「所属」に関する表現を抽出するための定義情報(Type System)や辞書、テキストデータの「ポジション」や「所属」の情報にタグ付け(以降、ヒューマン・アノテーションと記載)した文書(ドキュメント・セット)を含んでいます。

それでは早速はじめましょう。
先ず、既存の移行元となるワークスペースのデータをダウンロードします。ダウンロードすべきデータとしては、Type Systemと辞書情報、ドキュメント・セットの３つがあります。
ワークスペースをクリックしてみましょう。
![図1.png](https://qiita-image-store.s3.amazonaws.com/0/299863/a6c48148-560f-e027-3a65-bda0fe034b64.png)


まずは、Type Systemを①②の手順でダウンロードします。このダウンロードで、EntityやRelationの両方の定義情報がダウンロードできます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/5171b671-58ab-4cad-7ea7-3ce2bba85d13.png)


次に、①②の手順で辞書情報をダウンロードします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/1c2c2331-ae5f-17ea-dcb2-0a65cdc462bd.png)


同様に①②の手順でドキュメント・セットをダウンロードします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/ac94d149-87b5-47d7-6276-9a2078dfeb43.png)


次に移行先となるワークスペースを作成します。ワークスペースの名前は任意ですが、ここでは「soccer_dst」として、言語は「Japanese」を選択してください。「Create」を押すと、空のワークスペースが作成されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/60d174e0-1eae-f819-a846-b710cacdc7b9.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/2da353b5-3d18-e7b3-a044-f1f59af9ffd8.png)


それでは、上記でダウンロードしたデータを復元していきましょう。
まず最初に、Type Systemを下記の①②の手順で復元します。②の「Upload」をクリックすると、ファイルの入力ダイアログ画面が表示されますので、「types-」で始まるjsonファイルを選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/76a5da3c-516d-f814-386e-9665f6bff94d.png)


下記の画面があらわれるので「Upload」をクリックしてアップロードします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/8314ebd2-e4a0-c3ef-f547-9c273207d2a7.png)


Type Systemが復元されたことを確認します。
下記は、Entityの定義情報です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/d644c26d-9ae1-2692-d51d-a19779e0ffc3.png)


同様にRelationの定義情報が復元されていることを確認します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/293e7136-dfac-9d64-4859-70b6dbc13e82.png)


次に手順①②の手順で、辞書情報を復元します。②をクリックすると、ファイルの入力ダイアログ画面が表示されますので、移行元のワークスペース名(ここでは「soccer_src」)から始まるzipファイルを選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/e2ca6a6b-4a78-25a6-83f5-3333e1bbd772.png)


下記の画面があらわれるので「Upload」をクリックしてアップロードします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/e2f188a0-5e30-6b93-6efe-879624e35c90.png)


辞書情報が復元されていることを確認します。復元後、Entityと、対応する辞書との紐付け作業をする必要があります。下記は、Entityの「position_name」と辞書の「position_name」とを紐付けている画面です。この紐付けを全ての辞書に対して実施します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/50da909e-18aa-e1fa-8be5-54f497661ed3.png)


次に、下記の①②の手順でドキュメント・セットを復元します。②の「Upload Document Sets」をクリックすると、ファイルの入力ダイアログ画面が表示されますので、「corpus-」で始まるzipファイルを選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/845c1d98-2945-c856-d52e-af3ccbf4f467.png)


下記の画面があらわれるので「Upload」をクリックしてアップロードします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/1b1e153d-5997-93d6-6f67-23eae9819b00.png)


ドキュメント・セットが復元されていることを確認します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/be6958bc-14da-62f9-339a-d68b2aff947b.png)


それでは実際に、ヒューマン・アノテーションの情報が復元されていることを確認してみましょう。
ドキュメント・セットの各文書のヒューマン・アノテーションの状態を確認するためにはアノテーション・セットを作成し、タスクを作成する必要があります。
最初に、下記の①〜⑤の手順でアノテーション・セットを作成します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/0bf599c3-c157-6851-4cb4-68172a896d42.png)


次に、下記の①〜④の手順でタスクを作成します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/45395606-ec17-0976-d557-e26a0fc110bd.png)


タスクの作成で、「Create」をクリックし上記で作成したアノテーション・セットを選択し「Create Task」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/3c09c1b2-de3d-f89a-9fb2-9eec77278d7a.png)



タスクができましたので、当該タスクをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/b3407cc3-0537-f175-9790-5b12def8c863.png)


「Annotate」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/393bb742-9b7b-f8b1-e61f-97c9abcf3270.png)


任意の文書の「Open」を選択して文書を開きます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/8d3f29bf-834c-ce98-0249-8c8380476a58.png)


移行元の環境でこの文書にヒューマン・アノテーションを実施した状態が復元されていることを確認できました。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/299863/08a506ed-17e1-1fe6-da8d-716e4eecf7a1.png)

<h1>おわりに</h1>
　著者はWatson Knowledge Studioを使用する機会が多いですが、日本語でわかりやすく解説された記事は少ないと感じており、今後、少しずつ発信していこうと考えています。この記事もWatson Knowledge Studioで必要な操作手順のごく一部であり、必要となる操作全体を理解していないとわかりにくい箇所もあると思いますが、今後、その部分も補完する記事を投稿していこうと思います。