<P>
Takes a list of concepts, plus attributes indicating their primary keys, and joins the concepts. In <I>TheOutputConcept</I>, only one of the keys must be present. Each <TT>BaseAttribute</TT> specified in <I>TheKeys</I> must be a primary key of one of <I>TheConcepts</I>; thus, the number of entries in <I>TheConcepts</I> and <I>TheKeys</I> must be equal.

<P> If several of the input concepts contain a <TT>BaseAttribute</TT> (or a <TT>MultiColumnFeature</TT>) 
  with the same name, a special mapping mechanism is needed to relate them to 
  different features in <I>TheOutputConcept</I>. For this, the parameters <I>MapInput</I> 
  and <I>MapOutput</I> exist. Use <I>MapInput</I> to specify any feature in one 
  of <I>TheConcepts</I>, and use <I>MapOutput</I> to specify the <B>corresponding</B> 
  feature in <I>TheOutputConcept</I>. To make sure that for each <I>MapInput</I> 
  the right <I>MapOutput</I> is found by this operator, it uses the looping mechanism. 
  Although the parameter is not looped, the loop numbers in the parameter table 
  in M4 are used to ensure the correspondence between <I>MapInput</I> and <I>MapOutput</I>. 
  However, these two parameters only need to be specified for every pair of equally-named 
  features in <I>TheConcepts</I>. So there are not necessarily as many &quot;loops&quot; 
  as there are features in <I>TheOutputConcept</I>. 
<P> The field <TT>par_stloopnr</TT> in the M4 parameter table must be set to the 
  number of pairs of <I>MapInput</I>/<I>MapOutput</I> parameters (may be 0). Each 
  of these pairs gets a different loop number while all the other parameters get 
  loop number 0. 
<P>
<BR>
<BR>

<P>
PARAMETERDESCRIPTION
TheConcepts:&nbsp;
TheKeys:&nbsp;
MapInput:&nbsp;
MapOutput:&nbsp;
TheOutputConcept:inherited
