类别

版本

为您的扩展创建自定义模板

这篇文章将指导你:

  • 设计一个新的模板流程
  • 将模板与扩展绑定

设计模板

模板是自包含的文件,可以通过扩展分布或从本地文件系统加载。虽然文件格式很简单,但重要的是要符合下面描述的结构。

文件格式

模板是使用.template文件扩展名,至少包含三个文件:

my_template。模板├── icon.png ├── My Template.rmp └── template.properties

template.propertiesFiles定义模板的名称,并包含简短的描述。它必须被编码为iso - 8859 - 1-特别是,unicode编码将很可能无法工作。对于上面的例子,文件的内容可以是这样的:

Template .name=我的模板。short_description=这是我的定制模板。

模板必须包含一个RapidMiner进程(* .rmp).如果用户选择了模板,它将被加载。

模板中应该使用的图标,例如新流程菜单,必须提供便携式网络图形(* . png),名叫程序,大小应为64×64。

除了这些文件之外,您还可以捆绑任意存储库条目。例如,如果希望在模板中包含某个数据集,可以通过从本地存储库中添加相应的文件来实现。下面一节将介绍一个示例。

最后,请注意模板机制不支持子目录。RapidMiner Studio将拒绝加载包含文件夹的模板存档。

开发模板

您可以在本地加载模板流程,而无需将它们与扩展绑定。只有当您想要分发模板时,才需要绑定。

您所需要做的就是将模板存档移动到您的.RapidMiner \模板目录中。请注意,存储在该目录中的模板会覆盖绑定的模板:如果您将模板与扩展绑定在一起,并安装了模板的本地副本,则只会加载本地副本。

最小模板

让我们从一个简单的开始“你好,世界!”模板,该模板显示单个流程注释。要创建进程文件,请在RapidMiner Studio中打开一个新进程,并添加带有您喜欢的消息的注释:

“Hello, world !”RapidMiner过程

方法导出过程文件菜单(选择导出过程……),另存为你好World.rmp

接下来,我们需要一个格式正确的模板图标。如果你喜欢,你可以下载这个:

模板图标

作为最后一个文件,我们需要创建template.properties文件,其中包含模板的名称和描述。

template.name=Hello World模板。short_description=一个最小模板。

最后,我们需要创建模板存档。为此,使用您选择的存档程序创建一个包含这三个文件的新的ZIP存档。然后将文件扩展名为* . zip* .template例如,重命名hello_world.ziphello_world.template。最终的文件结构应该是这样的:

hello_world.template├── Hello World.rmp ├── icon.png └── template.properties

若要加载新创建的模板,请将模板文件复制到.RapidMiner /模板并重新启动RapidMiner Studio。在新流程菜单,您现在应该能够选择您的新模板:

模板的选择

选择新条目将打开我们在第一步中创建的流程。

包括存储库条目

现在让我们向模板添加一个自定义数据集。原则上,您可以将任何存储库条目与模板捆绑在一起。但是请记住,模板机制并不是为处理大型数据集而设计的。

在开始之前,让我们回顾一下RapidMiner如何处理引用存储库条目。这可以通过绝对路径完成,例如,/ /本地存储库/数据/例子或者通过相对路径,例如,. . /数据/例子

对于模板,我们两者都不能使用:虽然绝对路径在用于开发模板的机器上可以工作,但路径在其他机器上很可能无效。相对路径根本不起作用,因为模板机制总是创建一个没有存储库位置的新进程。

但是,RapidMiner Studio将为每个模板创建一个隐藏的示例存储库。例如,我们的内容“你好,世界!”模板可以通过绝对路径获得/ /样本/模板/ Hello World。因此,我们必须相应地调整模板流程中的存储库引用。

首先,在本地存储库中创建一个新文件夹,例如://本地存储库/Hello World。然后创建一个新进程并将根据用户规格生成数据运算符,并指定一个小数据集:

生成hello world数据集

添加一个商店操作符来保存指定的数据集。将其配置为将数据集存储在上面创建的目录中,例如,as//本地存储库/Hello World/Hello World数据

存储hello world数据集

运行该流程一次以创建存储器条目。

创建一个新进程,并将其存储在与数据集相同的目录中,例如as//本地存储库/Hello World/Hello World。将数据集拖到空白进程中,并连接检索结果端口的操作符:

Hello world from data

保存流程后,存储库条目将通过相对路径引用:

相对存储库路径

将其更改为//样本/模板/Hello World/Hello World数据(这里假设我们继续使用模板名你好世界):

绝对存储库路径

由于模板尚未加载,RapidMiner Studio可能会警告您路径无效。忽略警告并保存进程。

你的本地存储库现在应该有一个类似这样的结构:

Local Repository├─data├──processes├──…├──Hello World│├──Hello World data│├──Hello World├─…

如果您使用操作系统的文件浏览器浏览存储库,您将看到稍微不同的画面。为此,单击存储库并进行选择在文件中打开浏览器

. rapidminer /repositories/Local Repository├──…ioo│├──Hello World Data。md│├──Hello World Data。│├──Hello World。│├──Hello World。RMP├──…

如您所见,生成的数据集被分割为三个文件。重要的是,我们把两者结合起来* .ioo(实际数据)和*。海事(元数据)与模板。然而,我们可以忽略* . properties文件。

更新前一节中创建的模板存档,并添加生成的数据集。存档现在应该是这样的:

hello_world.template├── Hello World Data.ioo ├── Hello World Data.md ├── Hello World.rmp (updated process) ├── icon.png └── template.properties

重新启动RapidMiner Studio以加载更新后的模板。您应该能够在不修改流程的情况下运行模板。

捆绑的模板

将模板与扩展绑定是一个简单的过程。您所要做的就是将模板存档作为资源添加,并在扩展的初始化代码中注册它们。乐鱼体育安装

如果你还没有编写扩展的经验,请参考我们的指南创建自己的扩展。第1-3节涵盖了构建用于分发模板的扩展所需的所有知识。

添加模板作为资源乐鱼体育安装

按照惯例,构建工具(如Maven和Gradle)会在乐鱼体育安装src / mai乐鱼体育安装n /资源目录中。我们建议在RapidMiner扩展中也使用这种结构。

让我们假设你选择了org.myorg.myextension作为组id。那么你的资源应该在乐鱼体育安装src / mai乐鱼体育安装n /资源/ org/myorg/myextension。注意,RapidMiner将添加模板目录自动转换到路径。因此,您可以将上面创建的模板捆绑为…/ org/myorg/myextension/template/hello_world.template

my_extension├──README。Md├──build。gradle├──…├──src│└──主要│├──java││└──…│└──资源│├──org││└──myorg乐鱼体育安装││└──myextension││└──模板││└──hello_world。│├──……

但是,RapidMiner将不会搜索该目录中的资源,除非您将该位置注册为资源源。乐鱼体育安装这可以在扩展的初始化代码中轻松完成。所需要做的就是将下面的行添加到initPlugin ()方法:

/** *该方法将在扩展初始化后直接调用。这是启动过程中的第一个钩子。调用* this时,操作符或呈现器没有初始化。*/ public static void initPlugin(){//注册扩展资源工具。乐鱼体育安装add乐鱼体育安装ResourceSource(new ResourceSource(PluginInitMyExtension.class.getClassLoader(), "org/myorg/myextension/"));}

现在您可以通过所谓的模板管理器注册扩展。要注册上面设计的模板,你可以在插件初始化代码中添加另一行:

public static void initPlugin(){//注册扩展资源工具。乐鱼体育安装add乐鱼体育安装ResourceSource(new ResourceSource(PluginInitMyExtension.class.getClassLoader(), "org/myorg/myextension/"));//注册hello world模板TemplateManager.INSTANCE.registerTemplate("hello_world");}

测试模板

在测试捆绑的模板时,没有进一步的特殊步骤。所有你需要做的是建立一个新的扩展版本,例如,通过命令gradle清洁安装扩展

但请记住,模板存储在您的.RapidMiner目录覆盖同名绑定模板。因此,请确保在启动RapidMiner Studio之前删除模板的所有工作副本。