はじめに
さて、今回で中級編を最後にしたいと思います。今回はKNIMEでの相対パスの使い方についてご説明します。相対パスを習得すれば、わざわざBrowseを押してファイルパスを取得する必要がないですし、人に共有するときも受け取った人がわざわざConfigureを変更する必要がなくなります!
今回のテーマ ~相対パス knime://等~
Workflowは下記からダウンロードできます。
覚えてほしいこと
相対パスを使えば人に共有しやすくなる
そもそも 絶対パスと相対パス とは?
絶対パスと相対パスを図を交えて説明します。例として、Intermediate_TrainingというWorkflowのフォルダの中にあるtest.txtというファイルの絶対パスと相対パスを見ていきます。
パス(Path)とは?
直訳すると、「経路、道」となります。
つまり、ファイルパスとは、目的のファイルまでの経路を示すものということになります。
ファイルパスの概念は個人的に本棚と似ていると思っています。例えば、鬼滅の刃の漫画1巻を探したいとすると、「〇〇図書館>マンガ>集英社>き行>鬼滅の刃シリーズ>鬼滅の刃1巻」というように、階層が作れますよね。
絶対パス(Absolute Path)とは?
絶対パスとは誰から見ても同じ解釈にしかならないパスです。パソコンには、ルートディレクトリという、フォルダの階層の頂点が定義されています。絶対パスは、そのルートディレクトリからの目的のファイルまでの経路を示しています。
今回の例でいうと、ルートディレクトリから、目的のテキストファイルまでこのような階層・経路をたどれば目的のファイルが見つけられました。
ここでは「¥」が階層を一段階降りるマークですね。
相対パス(Relative Path)とは?
相対パスとは、自分の視点を移動させて、相対的に見たときのファイルパスになります。例えば、自分がIntermediate_Trainingというフォルダからファイルを見たとします。すると、階層は一つ下がるだけでいいですよね。
KNIMEでは、自分の視点を移動させることができる呪文がいくつか存在します。例えば、下記のように、Workflowのフォルダを"knime://knime.workflow"という呪文を唱えることで、自動的に取得できます。変数の概念にも似てますね。
Workflowを人に共有すると、その人のパソコンによってフォルダの名前が変わってしまいます。(makkyの部分がtanakaなど)なので各Nodeの設定が絶対パスで指定しているといちいち変更する必要が出てきてしまいます。相対パスにしておけばこのような変化する部分は変数のように自動的に取得するので、Configureの変更をする必要がありません。
KNIMEでの相対パスの使い方
さて、実際にKNIMEで使用できる相対パス表現をご紹介します。大きく分けて4種類のフォルダを指定できます。表現もそれぞれ種類があるので、前回紹介したフォルダを作るNode "Create Directory"、を使用しながら確認していきたいと思います。
Workspaceとして設定したフォルダ
これは初期設定でWorkspaceとして設定するフォルダです。下記のように、KNIME Explorerで見えているフォルダでもあります。
下図が今回のフォルダパスです。このWorkspaceのフォルダを取得する方法は3つあります。
オプション1 - knime://LOCAL
まず一つ目のOptionは、knime://LOCALです。こんな風にすると、Workspaceまでの絶対パスが取得できます。
オプション2 - knime://knime.mountpoint
2つ目のオプションは knime://knime.mountpointです。LOCALの方は、Server上で実行するときなどエラーになることがあります。mountpointを使用すれば、Server上でも正しく動作します。デスクトップで実行している分には大してLOCALと違いはありません。
オプション3 - knime.workspace (Global 変数)
3つめのオプションは相対パスというか、ただのグローバル変数なのですが、この方法でも取得できるのでご紹介します。グローバル変数って覚えていますでしょうか。変数をワークフロー全体で使える変数のことです。
この、knime.workspace というグローバル変数ですが、新しいWorkflowを作成すると必ず作成されますので、わざわざ自分で作る必要はありません。
実行しているWorkflowがあるフォルダ
knime://knime.workflow
上でフライングしてカバーしてしまいましたが、knime://knime.workflowはWorkflowのフォルダを取得できます。
一時フォルダ(自動削除フォルダ)
前回自動削除フォルダを作りましたが、これはNodeを使わず相対パスでも取得できます。
knime://knime-temp-space
knime://knime-temp-spaceを使えば自動削除フォルダのパスを取得できます。
KNIMEの実行ファイル(knime.exe)があるフォルダ
最後に、実行フォルダのあるフォルダを取得するものです。これは、特別何かを指定する必要はありません。何も指定なしにフォルダの名前を書いてしまえば実行ファイルのあるフォルダになります。
実行ファイルのあるフォルダとは、下図のようにknime.exeがあるフォルダを指しています。
2階層作りたい場合
Testというフォルダの下に、6という番号のフォルダを作るには、ただ単に何も指定せずにTestとLocationの部分に書けばOKです。
1階層だけ作りたい場合
この、EXEファイルのあるフォルダのみにフォルダを作りたい場合、Locationの部分になにも書かないとErrorになってしまいますので、「./」という表現をLocationに書いてあげると、実行ファイルのあるフォルダをLocationとして設定できます。
おわりに
相対パスについて理解が深まったでしょうか。相対パスと変数をうまく使えば、人に共有する際にとても便利です。ぜひ使えるようになってみてください。また、変数を使いすぎると人が理解するのが難しくなっていくこともあるので、必ずKNIME上にメモを残しておきましょう。
さて、以上で中級編を終わりにしたいと思います。KNIME、かなり詳しくなりましたか?自分でやりたいことをKNIMEで2、3個作れるようになるとかなり楽になると思います。本気を出せば1週間かからずに習得できるのではないでしょうか。
1回習得してしまえば、あとは使うだけです。他の人がレポート作成に何時間も無駄な時間をかけている間、自分はKNIMEをポチるだけでサボることができます。
KNIMEはデータ量が膨大になればなるほど力を発揮します。元々機械学習ができるようにするために作られているためです。小さな業務自動化が、もっと大きな業務改善の土台となってくれます。(ビッグデータ解析にはここで扱ったデータクレンジングといわれている汚いデータをきれいにする作業が必須です。)ぜひ社員全員が使えるようなハイテク企業を目指してもらいたいです。
KNIMEで最低限の部分は説明できたと思うので、これからはたまにしか使わないNodeや機能、実践的な内容、KNIMEのOfficial Trainingの内容まで解説出来たらなと思っています。もし何か要望があればぜひお問い合わせいただければなと思います。
余談
今回紹介する映画は、「スタンド・バイ・ミー」です。 不朽の名作だと思います。線路をひたすら歩く光景が印象的ですよね。ペルーのマチュピチュまで行く、スタンドバイミーコースを思い出します。
海外旅行が普通に楽しめるような日々に戻れたらいいなーとつくづく思います。。
参考リンク
-
KNIME Workbench Guide(英語):
- KNIME TV(英語):