# To mark queries as 'not available in the specific corpus',
# prepend the string '** ' to the query.
{
  Q => {
    -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 => '[marmot/m=number:pl]',
        complexverbatim => '[orth=\'http://www.ids-mannheim.de/cosmas2/projekt/\']',
        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}))'
      }
    }
  }
};
