how to add process speficic parameters

0xflarion
0xflarion New Altair Community Member
edited November 5 in Community Q&A
Hey guys,

Actually, i'm developing a plugin for RapidMiner.
My problem is, i'm trying to add some parameters that should only be valid for one process and also persistent (e.g. some directories,...)
At first, i thought it would be possible to add some functionality to the ProcessRootOperator (there are already some parameters like the verosity level, logfile, resultfile, sendmail and so on). But i didn't find a solution that works.
I would be glad, if you could give me a hint :)

Greets,
flarion

Answers

  • MariusHelf
    MariusHelf New Altair Community Member
    Hi flarion,

    maybe you can use Macros to configure process wide parameters?

    Best,
    Marius
  • 0xflarion
    0xflarion New Altair Community Member
    Hi Marius,

    i don't know how to use the macros.
    In the documentation of rapidminer and this forum, i cant find any information. Do you know a source/example where i can get more information?

    (What i want to do exactly is, after opening/importing a process file some paths of my plugin shall be set.)

    greets,
    flarion
  • MariusHelf
    MariusHelf New Altair Community Member
    You can use macros as a kind of global process variables. On execution of an operator, the macros will be evaluated and replaced by their current value. Please have a look at the attached process.
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <process version="5.2.002">
      <context>
        <input/>
        <output/>
        <macros/>
      </context>
      <operator activated="true" class="process" compatibility="5.2.002" expanded="true" name="Process">
        <process expanded="true" height="620" width="698">
          <operator activated="true" class="generate_data" compatibility="5.2.002" expanded="true" height="60" name="Generate Data" width="90" x="45" y="30"/>
          <operator activated="true" class="set_macro" compatibility="5.2.002" expanded="true" height="76" name="Set Macro (2)" width="90" x="179" y="30">
            <parameter key="macro" value="numClusters"/>
            <parameter key="value" value="5"/>
          </operator>
          <operator activated="true" class="set_macro" compatibility="5.2.002" expanded="true" height="76" name="Set Macro" width="90" x="313" y="30">
            <parameter key="macro" value="%{newName}"/>
            <parameter key="value" value="a new attribute name"/>
          </operator>
          <operator activated="true" class="k_means" compatibility="5.2.002" expanded="true" height="76" name="Clustering" width="90" x="447" y="30">
            <parameter key="k" value="%{numClusters}"/>
          </operator>
          <operator activated="true" class="rename" compatibility="5.2.002" expanded="true" height="76" name="Rename" width="90" x="581" y="30">
            <parameter key="old_name" value="att1"/>
            <parameter key="new_name" value="%{newName}"/>
            <list key="rename_additional_attributes"/>
          </operator>
          <connect from_op="Generate Data" from_port="output" to_op="Set Macro (2)" to_port="through 1"/>
          <connect from_op="Set Macro (2)" from_port="through 1" to_op="Set Macro" to_port="through 1"/>
          <connect from_op="Set Macro" from_port="through 1" to_op="Clustering" to_port="example set"/>
          <connect from_op="Clustering" from_port="clustered set" to_op="Rename" to_port="example set input"/>
          <connect from_op="Rename" from_port="example set output" to_port="result 1"/>
          <portSpacing port="source_input 1" spacing="0"/>
          <portSpacing port="sink_result 1" spacing="0"/>
          <portSpacing port="sink_result 2" spacing="0"/>
        </process>
      </operator>
    </process>