# To mark queries as 'not available in the specific corpus',
# prepend the string '** ' to the query.
{
  Q => {
    _ => sub { shift->config('Kalamar')->{'examplecorpus'} },
    -dereko => {
      poliqarp => {
        simple => 'Baum',
        simpleseq => 'der Baum',
        simpleci => 'laufen/i',
        complexpos => '[pos=ADJA]',
        re => '"l(au|ie)fen"',
        rex => '"l(au|ie)fen"/x',
        recontext => '".*?l(au|ie)fen.*?"',
        simplex => 'trenn/xi',
        rexi => '"l(au|ie)fen"/xi',
        complexorth => '[orth=Baum]',
        complexre => '[orth="l(au|ie)fen"/xi]',
        complexlemma => '[base=Baum]',
        complexplural => '[mate/m=number:pl]',
        neg1 => '[pos!=ADJA]',
        neg2 => '[!pos=ADJA]',
        span => '<corenlp/c=NP>',
        and => '[orth=laufe/i & base=Lauf]',
        andneg1 => '[orth=laufe/i & base!=Lauf]',
        andneg2 => '[orth=laufe/i & !base=Lauf]',
        or => '[base=laufen | base=gehen]',
        group => '[(base=laufen | base=gehen) & tt/pos=VVFIN]',
        seq => 'der alte Mann',
        seqcomplex => '[orth=der][orth=alte][orth=Mann]',
        seqcomplexempty => '[orth=der][][orth=Mann]',
        seqspan => '<base/s=s>[orth=Der]',
        seqor => 'der [orth=alte | orth=junge] Mann',
        seqorgroup1 => '(dem jungen | der alte) Mann',
        seqorgroup2 => 'der (junge | alte) Mann',
        repmanual => 'der der der',
        repsimple => 'der{3}',
        repcomplex => '[orth=der]{3}',
        repre => '"la.*?"/i{3}',
        repanno => '[base=ein][tt/p=ADJA]{3,4}[corenlp/p=NN]',
        seqopt1 => '[base=die][tt/pos=ADJA]?[base=Baum]',
        seqopt2 => '[base=die][tt/pos=ADJA]{,1}[base=Baum]',
        seqstar => '[base=die][tt/pos=ADJA]*[base=Baum]',
        seqplus1 => '[base=die][tt/pos=ADJA]+[base=Baum]',
        seqplus2 => '[base=die][tt/pos=ADJA]{1,}[base=Baum]',
        seqplus3 => '[base=die][tt/pos=ADJA][tt/pos=ADJA]*[base=Baum]',
        seqdistance1 => '[base=die][][base=Baum]',
        seqdistance2 => '[base=die][]{2}[base=Baum]',
        seqdistance3 => '[base=die][]{2,}[base=Baum]',
        seqdistance4 => '[base=die][]{,3}[base=Baum]',
        seqdistanceopt => '[base=die][]?[base=Baum]',
        seqdistancestar => '[base=die][]*[base=Baum]',
        seqdistanceplus => '[base=die][]+[base=Baum]',
        poscontains => 'contains(<base/s=s>, [tt/p=KOUS])',
        posstartswith => 'startsWith(<base/s=s>, [tt/p=KOUS])',
        posendswith => 'endsWith(<base/s=s>, [opennlp/p=NN])',
        posmatches => 'matches(<base/s=s>,[tt/p=CARD][tt/p="N.*"])',
        posoverlaps => 'overlaps([][tt/p=ADJA],{1:[tt/p=ADJA]}[])',
        classes => 'der {1:{2:[]} Mann}',
        focus => 'focus(der {Baum})',
        focusempty => 'focus(der {[]} Mann)',
        focusextension => 'focus(der alte und {[]})',
        focusrelevance => 'focus(contains(er []{,10} sagte, {Baum}))'
      }
    }
  }
};
