


b = """number(@begin)"""
e = """number(@end)"""
single_name = """( @ntype = 'eigen' or @postag='SPEC(deeleigen)'  )"""

multi_name =  """( @cat='mwu' and node[@rel='mwp' and %single_name%] ) """

name =        """( %single_name% or %multi_name% )"""

name_phrase=  """( %name% or node[@rel="hd"  and %name%]  )"""

booster = """(@lemma="allemachtig" or @lemma="beestachtig" or @lemma="bijzonder" or @lemma="bliksems" or @lemma="bloedig" or @lemma="bovenmate" or @lemma="buitengewoon" or @lemma="buitenmate" or @lemma="buitensporig" or @lemma="crimineel" or @lemma="deerlijk" or @lemma="deksels" or @lemma="donders" or @lemma="drommels" or @lemma="eindeloos" or @lemma="enorm" or @lemma="erbarmelijk" or @lemma="fantastisch" or @lemma="formidabel" or @lemma="geweldig" or @lemma="goddeloos" or @lemma="godsjammerlijk" or @lemma="grenzeloos" or @lemma="grotelijks" or @lemma="heel" or @lemma="ijselijk" or @lemma="ijzig" or @lemma="intens" or @lemma="krankzinnig" or @lemma="machtig" or @lemma="mirakels" or @lemma="monsterachtig" or @lemma="moorddadig" or @lemma="oneindig" or @lemma="onnoemelijk" or @lemma="ontiegelijk" or @lemma="ontstellend" or @lemma="ontzaglijk" or @lemma="ontzettend" or @lemma="onuitsprekelijk" or @lemma="onvoorstelbaar" or @lemma="onwezenlijk" or @lemma="onwijs" or @lemma="overweldigend" or @lemma="peilloos" or @lemma="reusachtig" or @lemma="reuze" or @lemma="schrikkelijk" or @lemma="sterk" or @lemma="uiterst" or @lemma="verdomd" or @lemma="verdraaid" or @lemma="verduiveld" or @lemma="verduveld" or @lemma="verrekt" or @lemma="verrot" or @lemma="verschrikkelijk" or @lemma="vervloekt" or @lemma="vreselijk" or @lemma="waanzinnig" or @lemma="zeer" or @lemma="zeldzaam" or @lemma="zwaar" )"""

JO_v3 = """
      count(.//node[@pt="ww"])>=3 and
      (some $v1 in .//node[@pt="ww"],
            $v2 in .//node[@pt="ww"],
            $v3 in .//node[@pt="ww"]
       satisfies ($v1/%PQ_e% < $v2/%PQ_e% and 
                  $v2/%PQ_e% < $v3/%PQ_e% and
                  $v1/%PQ_e% < $v3/%PQ_e%
                 )
       )"""

JO_kijken_naar = """        parent::node[@cat="pp" and 
               node[@lemma="naar" and @rel= "hd"] and 
               parent::node[ node[@pt= "ww" and 
                            @rel= "hd" and 
                            @lemma= "kijken"
                            ]
                     ]
              ]
"""

PQ_e = """@end"""
PQ_b = """@begin"""

robusttopicdrop = """(@cat="sv1" and ../node[@lemma="."])"""

Tarsp_hww = """(
 (@lemma = "kunnen" or contains(@lemma,"_kunnen") or
  @lemma = "moeten" or contains(@lemma,"_moeten") or
  @lemma = "hoeven"  or contains(@lemma,"_hoeven") or
  @lemma = "blijven"  or contains(@lemma,"_blijven") or
  @lemma = "willen"  or contains(@lemma,"_willen") or
  @lemma = "zullen"  or contains(@lemma,"_zullen") or   
  @lemma = "doen"  or contains(@lemma,"_doen") or 
  @lemma = "gaan"   or contains(@lemma,"_gaan") or
  @lemma = "horen"   or contains(@lemma,"_horen") or
  @lemma = "komen"   or contains(@lemma,"_komen") or
  @lemma = "laten"  or contains(@lemma,"_laten") or
  @lemma = "liggen"  or contains(@lemma,"_liggen") or
  @lemma = "lopen" or   contains(@lemma,"_lopen") or
  @lemma = "mogen" or contains(@lemma,"_mogen") or
  @lemma = "staan" or   contains(@lemma,"_staan") or
  @lemma = "zitten" or contains(@lemma,"_zitten")) and
  not(%hwwprtverb%) and
  not(starts-with(@lemma, "mee")) and
  not(starts-with(@lemma, "samen")) 
 
 
 )"""

hebbenwordenzijn = """( 
     @lemma = "hebben" or contains(@lemma,"_hebben") or
     @lemma = "worden" or contains(@lemma,"_worden") or
     @lemma = "zijn"   or contains(@lemma,"_zijn") 
	 )""""
	 
	 
hwwprtverb = """
(
	@lemma = "aan_doen" or
	@lemma = "dicht_doen" or
	@lemma = "mee_doen" or
	@lemma = "na_doen" or
	@lemma = "om_doen" or
	@lemma = "open_doen" or
	@lemma = "over_doen" or
	@lemma = "terug_doen" or
	@lemma = "uit_doen" or
	@lemma = "voor_doen" or
	@lemma = "weg_doen" or
	@lemma = "aan_laten" or
	@lemma = "binnen_laten" or
	@lemma = "door_laten" or
	@lemma = "los_laten" or
	@lemma = "neer_laten" or
	@lemma = "op_laten" or
	@lemma = "uit_laten" or
	@lemma = "weg_laten" or
	@lemma = "aan_lopen" or
	@lemma = "binnen_lopen" or
	@lemma = "door_lopen" or
	@lemma = "leeg_lopen" or
	@lemma = "mee_lopen" or
	@lemma = "rond_lopen" or
	@lemma = "vol_lopen" or
	@lemma = "weg_lopen" or
	@lemma = "vast_zitten" or
	@lemma = "terug_komen"
)
"""
 
 
Tarsp_vc_sibling = """parent::node[ node[@rel="vc" and node[@rel="hd"]]]"""
Tarsp_predc_sibling = """parent::node[ node[@rel="predc"]]"""
Tarsp_obj1_sibling = """parent::node[ node[@rel="obj1"]]"""
Tarsp_ld_sibling = """parent::node[ node[@rel="ld"]]"""
Tarsp_onlymodR_sibling = """(parent::node[node[@rel="mod" and %Rpronoun%] and not(node[@rel="predc"])])"""
Tarsp_onlylocmod_sibling = """(parent::node[node[@rel="mod" and %locnode%] and not(node[@rel="predc"])])"""
locnode = """(%locword% or %locphrase%)"""

locword = """(starts-with(@frame,"loc_adverb") or starts-with(@frame,"er_adverb") or %Rpronoun% ) """
locphrase = """(%locpp% or %locadvp%)""" 
locpp = """(@cat="pp")"""
locadvp = """(@cat="advp" and node[@rel="hd" and %locword%])"""


old_Tarsp_HwwZ = """(not(%Tarsp_Hwwi%) and (@pt="ww" and @rel="hd" and @wvorm="pv" and @pvagr!="mv" and @pvtijd!="verl" and
 ((
   %Tarsp_hww% or
   @lemma = "hebben" 
   ) and 
   not(%Tarsp_vc_sibling%)) or
   (@lemma="zijn" and not(%Tarsp_vc_sibling%) and %Tarsp_ld_sibling% )

 )  and @wvorm="pv"
 )
"""

bvbvraagwoord = """((@pt="vnw" and @lemma="waar") or (@pt="bw" and (@lemma="wanneer" or @lemma="hoe" or contains(@frame, "waar_adverb"))))"""

ahi_sibling = """../node[@rel="vc" and @cat="ahi"]"""

nomvttorverl = """(@wvorm!="pv" or (not(%MvTT%) and @pvtijd!="verl"))"""

basic_hww = """(%Tarsp_hww% or @lemma = "hebben" or @lemma = "zijn")"""

Tarsp_HwwZ = """(not(%Tarsp_Hwwi%) and 
                 not(%Tarsp_Hwwvd%) and 
				 not(%ahi_sibling%) and 
				 @pt="ww" and 
				 @rel="hd" and 
				 %nomvttorverl%  and
                 %basic_hww% and
                 not(%Tarsp_vc_sibling%) and 
				 @wvorm="pv" and
                 not(%Tarsp_Kop%)
                )
            """

lonelynonfinww = """(@wvorm!="pv" and not(ancestor::node[@cat="top"]/descendant::node[@pt="ww" and @wvorm="pv"]))"""

MvTT = """(@pt="ww" and @pvagr="mv" and @pvtijd="tgw" and ../node[@rel="su"])"""


vdhwws = """(@lemma="hebben" or @lemma="zijn" or @lemma="worden" or @lemma="komen")
"""

Tarsp_Hwwvd = """((@pt="ww" and @rel="hd" and 
           %vdhwws% and
       parent::node[node[@rel="vc" and ((@cat="ppart" and node[@rel="hd"]) or (@pt="ww" and @wvorm="vd"))]
       ]) or %robusthwwvd%)""""

Tarsp_Kop = """
 (   @pt="ww" and @wvorm="pv" and @pvtijd="tgw" and @rel="hd" and not(%Tarsp_hww%) and

    ((%Tarsp_predc_sibling% and not(%Tarsp_obj1_sibling%)) or

     (@lemma="zijn" and not(%Tarsp_vc_sibling%)  and (%Tarsp_ld_sibling% or %Tarsp_onlylocmod_sibling% or parent::node[%vrwondplus%] or %pc_sibling% )) or
	 (contains(@lemma, "_zijn") and %svp_sibling%)
    )
 )
"""

pc_sibling = """../node[@rel="pc"]"""
svp_sibling = """../node[@rel="svp"] """


old_Tarsp_Kop = """
 (   @pt="ww" and @rel="hd" and not(%Tarsp_hww%) and

    ((%Tarsp_predc_sibling% and not(%Tarsp_obj1_sibling%)) or

     (@lemma="zijn" and not(%Tarsp_vc_sibling%) and not(%Tarsp_ld_sibling%) and not(%Tarsp_onlymodR_sibling%))
    )
 )
"""

robusthwwvd = """ (@cat="top" and 
                  .//node[@pt="ww" and %vdhwws% and @wvorm="pv" and (@rel="--" or @rel="dp")] and
				  .//node[@pt="ww" and @wvorm="vd" and (@rel="--" or @rel="dp")]
				  )
				  
"""


robustinversion = """(@cat="top" and 
       .//node[@pt="ww"  and @wvorm="pv" and  @rel!="hd" and (not(@stype) or @stype!="imparative")] and 
       .//node[@pt="vnw" and @naamval="nomin" and @rel!="su" and
               @end>..//node[@pt="ww" and @wvorm="pv"]/@end])
			   """

locverb = """(@lemma="staan" or @lemma="zitten" or @lemma="rijden" or @lemma="vallen" or @lemma="af_vallen" or @lemma="doen" or @lemma="gaan" or @lemma="komen" or @lemma="zijn"  or %locmodalverb% )
"""

locmodalverb = """ (@lemma="kunnen" or @lemma="moeten" or @lemma="hoeven" or @lemma="willen" or @lemma="mogen")"""


adjoradv = """(@pt="bw" or @pt="adj" or (@pt="vnw" and (@pos="adj" or @pos="adv")))"""

adjadv = """
(@pt='adj' and (@lemma='wel'))
"""


bbvb = """((@cat="ap" or @cat="advp" or @cat="np") and (node[@rel="mod" and %adjoradv%] and
       node[@rel="hd"  and %adjoradv% and not(@positie="nom")])     
   )"""


realnode = """((not(@pt) or (@pt!="let" and @pt!="tsw")) and (not(@postag) or @postag!="NA()"))"""
notonlyrealnode = """(parent::node[count(node[%realnode%])>1])"""

Rpronoun = """(@pt='vnw' and (@lemma='er' or @lemma='hier' or @lemma='daar' or @lemma='waar' or @lemma='ergens' or @lemma='nergens' or @lemma='overal'))
"""

pv = """(@pt="ww" and @wvorm="pv" )"""

bxnp1 = """(@cat="np" and count(node)=2 and node[@rel="hd" and @pt="ww"] and node[@rel="mod" and @pt])"""
bxnp2 = """(@cat="np" and count(node)=2 and node[@rel="hd"] and node[@rel="mod" and %singlewordbw%])"""

subjantecedent = """(parent::node/parent::node/node[@rel="su"])"""

independentobj1 = """(@rel="obj1" and 
       (not(@index)  or 
	    ((not(%subjantecedent%) or 
		  @index != %subjantecedent%/@index
		 )
		)
	   )
	  )"""

countin = """(@pt or @cat or %abarboundtrace%)"""

Tarsp_Basic_VC = """((@rel="obj1" or @rel="pc"  or @rel="predc" or @rel="ld" or @rel="obj2" or %Tarsp_finvc% or %Tarsp_vcvnw% ) and %countin% and not(%Tarsp_Basic_B%) )"""


Tarsp_Basic_B = """(@rel="mod" or @rel="ld" or @rel="predm"  or %Tarsp_B_predc%) """

Tarsp_B_predc = """(@rel=predc and (@pt="vz" or @pt="bw" or @cat="pp" or @cat="advp" or %Rpronoun%))"""

Tarsp_B = """( not(%adjacentnogeen%) and 
              not(%aanloopzo%) and
			  not(%Tarsp_ofmod%)and
			  not(%extragrammaticalvuword%) and
       (((((@rel="mod" or @rel="ld" or @rel="predm") and
          (not(@cat) or @cat!="conj") and
		  (not(@pt) or @pt!="tsw") and
		  not(%Tarsp_ofmod%)
         )or 
         (%predcB%
         )
         ) and 
         ((../node[@pt="ww" and @rel="hd"]) or parent::node[(@cat="smain") or @cat="inf" or @cat="ppart"])
        ) or
        ((@pt="vz" or @pt="bw" or %Rpronoun%) and (@lemma!="kijk") and (@rel="dp" or @rel="--" or @rel="nucl" or @rel="body") and %notonlyrealnode%) or
        (@cat="pp" and (@rel="--" or @rel="dp") and %notonlyrealnode%) or
		(@rel="pc" and ../node[@rel="hd" and %locverb%]) or
        (@rel="cnj" and parent::node[@rel="mod" or @rel="ld" or @rel="predm"]) or
        (@rel="mod" and @pt="bw" and @lemma!="nog" and parent::node[@cat="np"] ) or
		%Tarsp_nonmodadvcp% or
		%Tarsp_pc_vc_exception% or
        %vzdisguisedasadj% or
		%svpofhww% 
		)
		)
     
"""

svpofhww = """ (@rel="svp" and @lemma!="mee" and ../node[%hwwwithsvp% and not(%hwwwithsvpexception%)])"""

hwwwithsvp = """(contains(@lemma,"_kunnen") or
                 contains(@lemma,"_moeten") or
                 contains(@lemma,"_hoeven") or
                 contains(@lemma,"_blijven") or
                 contains(@lemma,"_willen") or
                 contains(@lemma,"_zullen") or   
                 contains(@lemma,"_doen") or 
                 contains(@lemma,"_gaan") or
                 contains(@lemma,"_horen") or
                 contains(@lemma,"_komen") or
                 contains(@lemma,"_laten") or
                 contains(@lemma,"_liggen") or
                 contains(@lemma,"_lopen") or
                 contains(@lemma,"_mogen") or
                 contains(@lemma,"_staan") or
                 contains(@lemma,"_zitten") or
                 contains(@lemma,"_hebben") or
                 contains(@lemma,"_zijn") 
				) """

hwwwithsvpexception = """(@lemma="terug_komen" or @lemma="vast_zitten" or @lemma="weg_gaan" or @lemma="aan_hebben" or @lemma="op_hebben" or @lemma="open_doen" or @lemma="aan_staan" or @lemma="weg_doen")""" 

complement = """((@rel="obj1" or @rel="obj2") or 
                 (@rel="predc" and not(%predcB%)) or
		         (@rel="pobj1" and not(%pobj1B%) ) or
				 %verbalcomplement%
                )"""
				
verbalcomplement = """(@rel="vc" and (@cat="cp" or @cat="whq" or @cat="whsub"))"""
		 
predcB1 = """(@rel="predc" and 
           (@pt="adj" or @cat="ap" ) and
           ../node[@rel="obj1"]
         )"""

predcB2 = """(@rel="predc" and 
           (@pt="bw"  or @cat="advp" or @cat="pp" or @pt="vz"  or %dimadj%  or 
		   node[@cat="ap" and node[@rel="hd" and %dimadj%]])  
         )"""
		 
predcB = """(%predcB1% or %predcB2%)"""

dimadj = """(@pt="adj" and @graad="dim")""""
		 
pobj1B = """(@rel="pc" and ../node[@rel="hd" and %locverb%])"""
 


singlewordbw = """ (@pt="bw" or %Rpronoun% or %adjadv%)
"""


diedatrel = """(@pt="vnw" and @vwtype="betr" and @rel="rhd" and (@lemma="die" or @lemma="dat"))"""

avnrel = """(%diedatrel% and parent::node[@cat="rel" and @rel!="mod"])"""

v2problem = """//node[@pt="ww" and @wvorm="pv" and 
       @begin != parent::node[@cat="ssub"]/parent::node[@cat="rel" and @rel!="mod"]/node[%diedatrel% ]/@end
      ]"""

coreavn = """(@pt="vnw"  and @vwtype="aanw" and @lemma!="hier" and @lemma!="daar" and @lemma!="er" and @rel!="det" and (not(@positie) or @positie!="prenom") )"""
betravn = """(@pt="vnw" and @vwtype="betr" and @rel!="rhd" and (@lemma="die" or @lemma="dat"))""" 

dittedatte = """(@word = "ditte" or @word="datte") """

AVn = """(%coreavn% or %avnrel% or %dittedatte% or %betravn%)"""" 

corephrase = """(@cat="np" or @cat="pp" or @cat="advp" or @cat="ap")"""

basicBsyncat = """(@pt="bw" or @pt="vz" or @cat="advp" or @cat="pp" or %Rpronoun%)"""

conjB = """(@cat="conj" and node[@rel="cnj" and %basicBsyncat%] )"""

coreB = """( ((%basicBsyncat% or %conjB%) and
              (@rel="mod" or @rel="predm" or @rel="dp" or @rel="--" or @rel="ld" or 
			   @rel="tag" or @rel="nucl" or @rel="predc"  or 
			   (@pt!="vz" and @rel="svp" and not(../node[@pt="ww" and @rel="hd"])) or
			   %vzdisguisedasadj% or
			   %svpofhww%
			  ) or
			  (@pt="adj" and @buiging="met-s")
			 )
			  and
			 not(%verbal_VU%) and 
			 not((@lemma="nou" or @lemma="zo") and (@rel="tag" or @rel="--") and count(allbxrealwordnodes) > 1) and
			 not(%ahiaspp%) and
			 not(@frame="adv_tag") and 
			 not(%aanloopzo%) and
			 not(%extragrammaticalvuword%)
           )"""

ahiaspp = """(@cat="pp" and node[@rel="hd" and @lemma="aan"] and node[@cat="np" and node[@lemma="het" and @pt="lid"] and node[@rel="hd" and @pt="ww" and @wvorm="inf"]]) """

oldcoreBX = """((node[@cat="du" and node[%singlewordbw% and @lemma!="niet" ] and node[(%corephrase% or (@pt and not(%pv%))) and @begin!=../node[%singlewordbw% and @lemma!="niet"]/@begin ]]) )"""

nonominorsubj = """(not(node[@naamval="nomin"]) and not(node[@cat and node[@rel="hd" and @naamval="nomin"]]) and not(node[@rel="su"]))"""


coreBX1 = """(@cat and 
             count(node[%bxrealnode%]) = 2 and 
			 node[%corebnode%]  and
			 %nonominorsubj% and
			 %onlythesearerealwords% and		
             (count(.//node[%corebnode%]) = 1 or count(.//node[%BvBepZn%]) = 1)				
 
			)""" 

coreBX2 = """(@cat and 
             count(node[%bxrealnode%]) = 2 and 
			 count(node[%corebnode%]) =2  and
			 %nonominorsubj% and
			 %onlythesearerealwords% and		
             count(.//node[%corebnode%]) = 2				
			)""" 

tagnuclBX = """(@cat="du" and node[@pt="bw" and @rel="tag"] and .//node[@rel="nucl" and %realwordnode%] and %onlythesearerealwords%)"""

coreBX = """(%coreBX1% or %coreBX2% or %tagnuclBX%)"""


corebnode = """(%coreB% and 
			      not(%verbal_VU%) and  
				  (not(@lemma) or @lemma!="niet") and 
				  %corebnodesibling% and
				  @id != %corebnodesibling%/@id and 
				  not(node[%ooknogmod%])
				 )"""

corebnodesibling = """../node[not(%clausecat%) and 
				              (not(@lemma) or @lemma!="niet") and 
						      count(.//node[@lemma="niet"]) = 0 
							 ]
"""

ooknogmod = """(@rel="mod" and (@lemma="ook" or @lemma="nog"))"""
ookXP = """(((@cat="np"  and count(node) = 2) or  @cat="pp") and node[%ooknogmod%]  and %nonominorsubj% and %onlythesearerealwords% )"""


bxrealnode = """(%bxrealwordnode% or count(.//node[%bxrealwordnode%]) > 0)"""

allrealwordnodes = """(./ancestor::alpino_ds/descendant::node[%realwordnode%])"""

allbxrealwordnodes = """(./ancestor::alpino_ds/descendant::node[%bxrealwordnode%])"""

bxrealwordnode = """(%realwordnode% and not(%dlinkvg%) and not(%svp_verb_part%)) """

svp_verb_part = """(@rel="svp" and @pt and ../node[@rel="hd" and @pt="ww" and contains(@lemma,"_")] and not %svpofhww%)"""

dlinkvg = """(@pt="vg" and (@rel="dlink" or @rel="--"))"""

clausalbx1 = """((@cat="smain" or @cat="sv1" or @cat="inf" or @cat="ppart") and 
       node[%Tarsp_B% and @lemma!="niet" and @rel!="svp" and not(%verbal_VU%)] and 
       count(node) = 2 and 
	   %nonominorsubj% and
       %onlythesearerealwords% and		
       count(.//node[%corebnode%]) = 1				
 
)
"""

clausalbx2 = """((@cat="smain" or @cat="sv1") and 
                 node[@rel="hd" and @pt="ww"] and
                 node[@rel="vc" and
                      node[@rel="hd" and @pt="ww"] and
                      node[%Tarsp_B% and @lemma!="niet" and @rel!="svp"] and 
                      count(node[@word or @cat]) = 2
                     ] and
                 count(node) = 2 and
                 %onlythesearerealwords% and		
                count(.//node[%corebnode%]) = 1				
 
     )
"""

adjacentnogeen = """(@lemma="nog" and @end=ancestor::node[@cat="top"]/descendant::node[@lemma="een"]/@begin)"""

old_rebx """((@cat="top" and 
                not(.//node[%pv%]) and 
				not(.//node[@lemma="niet"]) and not(.//node[@rel="dlink"]) and
                (
                   (count(.//node[@cat="du" and count(node[%realnode%])=2  and node[%singlewordbw%] and node[(@pt or %corephrase%) ]])=1 ) or
	               (node[%bxnp1%]) or
	               (node[@cat="du" and count(node[%realnode%])=1 and node[%bxnp1%]]) or
	               (node[%bxnp2%]) or
	               (node[@cat="du" and count(node[%realnode%])=1 and node[%bxnp2%]])
                )
			   ) or %Tarsp_bnonfin% or
			   %clausalbx1% or
			   %clausalbx2%
	  
)
"""

Tarsp_BX = """( (%coreBX% or
                 %Tarsp_bnonfin% or
			    %clausalbx1% or
			    %clausalbx2% or
				%ookXP%) and
                not(%Xneg%) and 
				not(@cat="smain" and count(node) = 1 and node[@rel="vc" and %Xneg%]) and
				not(%wx%) and
				not(%bbvb%)
			)"""

Tarsp_bnonfin = """((@cat="inf" or @cat="ppart") and @rel="vc" and parent::node[@cat="smain" and count(node)=1] and node[%Tarsp_B%] and node[@pt="ww" and @rel="hd"] and count(node[%realcomplormod%])=1 )"""


ASTA_pred =  """(@rel="predc" or @rel="predm" or (@rel="hd" and parent::node[@rel="predc" or @rel="predm"]))"""

ASTA_attr =  """((@rel="mod" and parent::node[node[@rel="hd" and (@pt="n" or @pt="vnw")]] )  or
       (@rel="hd" and parent::node[@rel="mod" and parent::node[node[@rel="hd" and (@pt="n" or @pt="vnw")]]]))"""


ASTA_adverbial = """  
      ((@rel="mod" and parent::node[node[@rel="hd" and not(@pt="n" or @pt="vnw")]] )  or
       (@rel="hd" and parent::node[@rel="mod" and parent::node[node[@rel="hd" and not(@pt="n" or @pt="vnw")]]]))
     """

 
ASTA_modalww = """  (@lemma="zullen" or @lemma="willen" or @lemma="moeten" or @lemma="mogen" or @lemma="kunnen" or @lemma="hoeven") """

CHAT_unintelligible_speech = """(@name="Unintelligible Speech")"""
CHAT_phonological_coding = """(@name="Phonological Coding")"""
CHAT_untranscribed_material = """(@name="Untranscribed Material")"""

xxxcondition = """(%CHAT_unintelligible_speech%  or 
                   %CHAT_phonological_coding% or 
				   %CHAT_untranscribed_material%)"""

ASTA_XXX = """ancestor::alpino_ds/descendant::xmeta[%xxxcondition%]"""

ASTA_kopww = """ (( %ASTA_basickopww% or %ASTA_geboren_kopww% ) and
                   not(%ASTA_XXX%) 
                 )"""

ASTA_basickopww = """ (@pt="ww" and @rel="hd" and @lemma!="uit_zien" and @lemma!="heten" and @lemma!="gaan" and @lemma!="zitten" and (contains(@frame, "copula") or not(@stype="topic_drop")) and parent::node[node[@rel="predc"] and not(node[@rel="obj1"]) ] )""" 

ASTA_geboren_kopww = """

(@rel="hd" and @pt="ww" and (@lemma="zijn" or @lemma="worden") and
         (../node[@cat="ppart" and @rel="vc" and node[ @word="geboren" and @rel="hd"]] or
		  ../node[@rel="vc" and @word="geboren"]
		 )
)
	"""

ASTA_wantmaarbijzin = """
       ((@word="want" or @word="maar") and @rel="crd" and @pt="vg" and
        ../node[((@cat="smain" or @cat="ssub" or (@cat="du" and node[@cat="smain" and @rel="nucl"]))) and 
	    @begin  >=../node[(@word="want" or @word="maar")]/@end]
	   )
"""

ASTA_wantmaarbijzinzin = """
       ( (@cat="smain" or @cat= "ssub" or (@cat="du" and node[@cat="smain" and @rel="nucl"])) and
	     ../node[(@word="want" or @word="maar") and @rel="crd" and @pt="vg"] and 
		 @begin  >=../node[(@word="want" or @word="maar")]/@end
	   )
"""


ASTA_dusbijzin = """
(@lemma="dus" and parent::node[@cat="smain"] and  @begin=parent::node/@begin and @pt="bw" and @rel="mod")
"""

ASTA_dusbijzinzin = """
(@cat="smain" and node[@lemma="dus"  and  @begin=parent::node/@begin and @pt="bw" and @rel="mod"])
"""


 
ASTA_detadjs = """
 (@pt="vnw" and (@rel="mod" or @rel="det") and @vwtype="onbep" and parent::node[@cat="np"] and
(@lemma="al" or @lemma="beide" or @lemma="elk" or @lemma="enig" or @lemma="enkel" or @lemma="geen" or @lemma="ieder" or
 @lemma="meer" or @lemma="meerdere" or @lemma="meest" or @lemma="menig" or @lemma="minder" or 
 @lemma="minst" or @lemma="sommige" or @lemma="veel" or @lemma="weinig"))

"""

Tarsp_kijkeens = """
(@cat="sv1" and @rel != "--" and
    node[@pt="ww" and @lemma="kijken" and @rel="hd"  and @pvagr="ev" and @pvtijd="tgw" ] and
    node[@lemma="eens" and @rel="mod" and @pt="bw"] and count(node)=2) 
"""

ASTA_numeral = """
(@lemma="twee" or @lemma="drie" or @lemma="vier" or @lemma="vijf" or @lemma="zes" or @lemma="zeven" or @lemma="acht" or @lemma="negen" or @lemma="tien" or @lemma="elf" or @lemma="twaalf" or @lemma="dertien" or @lemma="veertien" or @lemma="vijftien" or @lemma="zestien" or @lemma="zeventien" or @lemma="achttien" or @lemma="negentien" or @lemma="twintig" or @lemma="eentje" or  @lemma="tweetjes" or @lemma="drietjes" or @lemma="viertjes" or @lemma="vijfjes" or @lemma="zesjes") 
""" 

ASTA_filled_pause = """
(@lemma= "uh" or @lemma ="Uh" or @lemma="Uhm" or @lemma= "uhm" or  @lemma = "euh" or @lemma = "eh" or @lemma = "goh" or @word="xxx" or @word="XXX" or @lemma="gg" or 
  @lemma="buh" or @lemma="sss" or @lemma="pf" or @lemma='tablaa' )
"""

ASTA_geboren = """ (@word="geboren") """

BvZn = """ (count(node)=2 and
            (  (%headn% and (%coreadjmod% or %corevnwmod% or %corebwmod%)) 

		    )
		   )	
"""

qbwlemma = """ (@lemma="nog" ) """


ietsadjs = """(node[@rel="hd" and @pt="vnw"] and node[@rel="mod" and %adjs%])
"""

adjs = """ (@pt="adj" and @buiging="met-s") """

aps = """ (@cat="ap" and node[@rel="hd" and %adjs%]) """

headn = """ ( node[@rel="hd" and @pt="n"] )"""

coreadjmod = """ (node[@rel="mod" and ( @pt="adj" or @pt="tw")] and not(node[@rel="det"])) """

corevnwmod = """ (node[@rel="det" and (@pt="tw" or (@pt="vnw" and @vwtype="onbep" and @naamval!="gen" and @lemma!="geen"))] )"""


corebwmod = """ (node[@rel="mod" and @pt="bw" and %qbwlemma%]) """


spec_proper_name = """ (@pt="spec" and 
                        (@pos="name" or starts-with(@frame,"proper_name")) and
                        (contains("ABCDEFGHIJKLMNOPQRSTUVWXYZ", substring(@word,1,1)))
                       ) """	

spec_noun = """ (@pt="spec" and (@pos="name" or starts-with(@frame,"proper_name")) )"""					   
 
 
 ASTA_LEX = """ (
       not(%ASTA_geboren%) and
	   not(%asta_adj%) and
       @pt="ww" and 
       not(%ASTA_kopww%)   and 
	   not(%ASTA_modalww%) and 
	   not(@lemma="zijn") and 
	   not(contains(@lemma, "_zijn")) and 
	   not(@positie="nom") and
	   (not(@lemma="hebben") or ../node[@rel="obj1"] ) and
       not(  ( @lemma="hebben" or @lemma="zijn" or @lemma="worden"  ) and parent::node[node[@rel="vc"]] )
      )
 
 """
 
 asta_numvrij = """(@pt="tw" and @positie="vrij" and @rel!="mwp" and @rel!="det" and @rel!="mod" )"""
 
 asta_noun = """ ((@pt="n" and not(%ASTA_filled_pause%) and not(%ASTA_numeral%)) or 
                   (@lemma="112") or
                  (@pt="ww" and @positie="nom") or 
				  (%monthname%) or 
				  @pos="name" )
 """


asta_adj = """
    (%ASTA_geboren% or
     %attributive_adj% or
     %attributive_adjinadjp% or
     %rangtw% or
     %substantivisedadj% or
     %substantivisedrangtw% or
	 %attributive_pastp% or
	 %attributive_presp% or
	 %simplepredicative_adj% or
	 %simplepredicative_adjinadjp% or
	 %indefdet% 
	)
"""

adjpastpart = """(@pt="ww" and @wvorm="vd" and @pos="adj" and @rel="predc" )"""

attributive_adj = """ 
    (@pt="adj" and 
     (@rel="mod" and 
      parent::node[@cat="np"] and 
      ../node[@rel="hd" and (@pt="n" or @pt="vnw" or @cat="mwu")] and
	  (not(@begin < ../node[@rel="det" and (@pt="lid" or @pt="vnw")]/@begin) or @lemma='heel' or @lemma='geheel')
	 )
	)
"""

attributive_adjinadjp = """
   (@pt="adj" and
    (@rel="hd" and
     parent::node[@cat="ap" and parent::node[@cat="np"] and 
     ../node[@rel="hd" and (@pt="n" or @pt="vnw" or @cat="mwu")]]
	 )
	)
"""

rangtw = """
   (@pt="tw" and @numtype="rang")
"""

substantivisedadj = """ 
   (@pt="adj" and @rel="hd" and parent::node[@cat="np"])
"""

substantivisedrangtw = """
    (%rangtw% and @positie = "nom" )
"""

attributive_pastp = """
   (@pt="ww" and @wvorm="vd" and @rel="mod" and parent::node[@cat="np"])
"""

attributive_presp = """
   (@pt="ww" and @wvorm="od" and @rel="mod" and parent::node[@cat="np"])
"""

predicative = """ (@rel="predc" or @rel="predm" ) """

simplepredicative = """ (%predicative% and ../node[%ASTA_basickopww%])
"""

simplepredicative_adj = """
     (@pt="adj" and %simplepredicative%)
"""
	 
simplepredicative_adjinadjp = """
     (@pt="adj" and @rel="hd" and parent::node[@cat="ap" and %simplepredicative%])
"""

indefdet = """ (@rel="det" and @pt="vnw" and @vwtype="onbep")
"""


ASTA_CBijzin = """
         (%ASTA_wantmaarbijzin% or
		  %ASTA_dusbijzin%)
"""

ASTA_CBijzinzin = """
( %ASTA_wantmaarbijzinzin% or
  %ASTA_dusbijzinzin%
)
"""

ASTA_oldBijzin = """
  ((node[@cat="ssub"] or (@cat="sv1" and @rel="mod" )) or 
         %ASTA_wantmaarbijzin% or
		 %ASTA_dusbijzin%
  )
	
"""


old2ASTA_Bijzin = """
 (       (ancestor::node[@cat="top" and 
                         count(.//node[@cat="smain" or @cat="sv1" or 
						              (@cat="ssub" and @rel="cnj") or 
									  @cat="whrel" or 
									  @cat="rel" or 
									  @cat="whsub" or 
									  @cat="cp"]) > 1 ]) and 
         ((@cat="ssub" and @rel="cnj") or
          (@cat="whrel" or @cat="rel" or @cat="whsub") or
          (@cat="cp" and node[@cat="ssub"])	or	  
		  (@cat="sv1" and (@rel="mod" or @rel="cnj") ) or 
		  (@cat="smain" and (@rel="cnj" or @rel="body" or @rel="nucl") and not(%ASTA_CBijzinzin%)) or
		  (@cat="oti") or
		   %ASTA_CBijzin% 
		  )
 
 )
"""

ASTA_Bijzin = """
 (        
         ((@cat="ssub" and @rel="cnj" and not(%firstssubconjunct%) and not(%ASTA_CBijzinzin%)) or
          (@cat="whrel" or @cat="rel" or @cat="whsub") or
		  ((@cat="smain" or @cat="sv1")and @rel="--") or
          (@cat="cp" and node[@cat="ssub" or @cat="conj"])	or	  
		  (@cat="sv1" and (@rel="mod" or @rel="cnj") ) or 
		  (@cat="smain" and (@rel="cnj" or @rel="body" or @rel="nucl" or @rel="dp") and not(%ASTA_CBijzinzin%)) or
		  (@cat="oti") or
		   %ASTA_CBijzin% or
		   %directerede_vcbijzin% or
		   (@pt="vg" and @conjtype="onder" and @rel="--"  ) or
		   ((@pt="bw" or @pt="vnw") and @rel="vc" and @wh="ywh")
		  )
 
 )
"""

firstssubconjunct = """(%firstssubconjuncta% or %firstssubconjunctb%)"""
firstssubconjuncta = """(@cat="ssub" and @begin=node[@cat or @pt]/@begin and @begin=parent::node[@cat="conj"]/parent::node[@cat="cp"]/node[@pt="vg"]/@end )"""
firstssubconjunctb = """(@cat="ssub" and @begin=node[@cat or @pt]/@begin and @begin=parent::node[@cat="conj"]/parent::node[@cat="rel"]/node[@rel="rhd"]/@end )"""

bijzincat = """( @cat="smain" or @cat="sv1" or 
						              (@cat="ssub" and @rel="cnj") or 
									  @cat="whrel" or 
									  @cat="rel" or 
									  @cat="whsub" or 
									  @cat="cp")"""

bijzinnode = """ (ancestor::node[@cat="top" and 
                         .//node[%bijzincat%]  ])"""
									  
									  
notfirstbijzin = """(%bijzincat% and count(%bijzinnode%) > 1  and @begin[not( . > %bijzinnode%/@begin)][1])""" 			


Tarsp_nonmodadvcp = """(@cat="cp" and (@rel="dp" or @rel="--") and node[@pt="vg" and @conjtype="onder" and @lemma!="dat" and @lemma!="of" ] )"""



directerede_vcbijzin = """( %clausecat% and not(@rel="cnj") and (preceding-sibling::node[%metasmain%] or following-sibling::node[%metasv1%]))"""

maarvg = """(@lemma="maar" and @begin=ancestor::node[%clausecat%]/@begin and not(../node[@rel="nucl"]))""" 

clausecat = """(@cat="smain" or @cat="whq" or %baresv1% )"""
metaverb = """(@lemma="zeggen" or @lemma="denken" or @lemma="vinden" or @lemma="vragen" or @lemma="schreeuwen" or @lemma="fluisteren" )"""
metasmain = """(@cat="smain" and not(@rel="cnj") and node[@rel="hd" and %metaverb%]) """
metasv1 = """(@cat="sv1" and not(@rel="cnj") and node[@rel="hd" and %metaverb%]) """

baresv1 = """( @cat="sv1" and not(parent::node[(@cat="whq" or @cat="whrel")]))"""


delpv_nonfincat = """(@cat="ppres" or @cat="ppart" or @cat="ti" or @cat="oti" or @cat="ahi" or (@cat="inf" and @positie!="nom") ) """
delpv_clausecat = """(@cat="smain" or @cat="ssub" or @cat="sv1" or @cat="ppres" or @cat="ppart" or @cat="ti" or @cat="oti" or @cat="ahi" or @cat="inf")"""
delpv_nonfinww = """(@pt="ww" and (@wvorm="td" or (@wvorm="inf" and @positie!="nom") or @wvorm="vd") )"""

coredelpv = """(@cat="top" and not(.//node[@wvorm="pv"]) and .//node[((%delpv_nonfincat% or %delpv_nonfinww% ) and not(ancestor::node[%delpv_clausecat%]) )])"""

robustdelpv = """(not(@rel="dp" and @begin > ancestor::node[@cat="top"]/descendant::node[@rel="dp"]/descendant::node[@pt="ww" and @wvorm="pv"]/@begin))"""

delpv = """(%coredelpv% and %robustdelpv%)"""

Vobij = """(@pt="bw" and (contains(@frame,"er_adverb" ) or contains(@frame, "tmp_adverb") or contains(@frame, "waar_adverb")) and 
@lemma!="er" and @lemma!="daar" and @lemma!="hier" and @lemma!="waar" and @lemma!="waarom" and @lemma!="waarvoor" and @lemma!="daarom" and @lemma!="daarvoor" and (starts-with(@lemma, 'er') or starts-with(@lemma, 'daar') or starts-with(@lemma, 'hier') or starts-with(@lemma, 'waar')))"""

Tarsp_VzN = """(%vzn1xpath% or %vzn2xpath% or %vzn4xpath%) """

vzn1xpath = """(@cat="pp" and (node[@pt="vz"] and node[(@pt="n" or @pt="vnw") and not (%Rpronoun%) and @rel="obj1"] and not(node[@pt="vz" and @vztype="fin"])))"""
vzn2xpath = """(node[@lemma="in" and @rel="mwp"] and node[@lemma="deze" and @rel="mwp"])"""
vzn3xpath = """(@pt="vz" and ../node[(@lemma="dit" or @lemma="dat")  and @begin>=../node[@pt="vz"]/@end and count(node)<=3] )"""
vzn4xpath = """(@cat="pp" and (node[@pt="vz"] and node[@cat="np" and @rel="obj1" and count(node)=1] and not(node[@pt="vz" and @vztype="fin"])))"""

noRpronounx = """not(ancestor::node[@cat="top"]/descendant::node[%Rpronounx%])"""

transitivevz = """( @lemma='aan' or @lemma='bij' or @lemma='door' or @lemma='in' or @lemma='naar' or @lemma='naartoe'  or 
                    @lemma='op' or  @lemma='over' or   @lemma='tegen' or @lemma='toe' or  @lemma='tussen' or @lemma='uit' or
					@lemma='van' or  @lemma='voor'
					)"""

Rpronounx = """(%Rpronoun% or @lemma="daarzo" or @lemma="hierzo") """

followedbydet = """(@end=ancestor::node[@cat="top"]/descendant::node[%det%]/@begin)"""

det = """(@pt="lid" or @lemma="dit" or @lemma="deze" or @lemma="die" or @lemma="dat" or (@pt="vnw" and @vwtype="bez") ) """


vrwondplus = """(%whqsv1% or %basicvrwondplus% or %basicvrwondplusnosubj%)"""

whqsv1 = """(@cat="whq") and node[@cat="sv1" and @rel="body"] and count(node)=1"""

basicvrwondplus = """(
 @cat="sv1" and @rel="--" and ancestor::node[@cat="top" and node[@lemma="?"]] and
        node[@rel="hd" and (@lemma="zijn" or @lemma="doen" or @lemma="heten" or @lemma="moeten")] and 
        node[@rel="su" ] and
        not(node[@rel="su" and node[@rel="mod"]]) and
        not(node[(@rel="obj1" or @rel="predc" or @rel="obj2" or 
                  @rel="vc" or @rel="ld" or @rel="pc" or @rel="se")]) and
        not(node[@rel="hd" and @lemma="zijn"] and node[@rel="mod" and (@cat="pp" or @cat="cp")]) and
        not(node[@rel="hd" and @lemma="zijn"] and node[@rel="mod" and %Rpronoun%]) and
		not(node[@rel="mod" and @lemma="niet"] and
		not(node[@rel="mod" and @lemma!="dan" and @lemma!="nou" and @lemma!="weer"])
		)
)"""

basicvrwondplusnosubj = """
( 
 @cat="sv1" and @rel="--" and ancestor::node[@cat="top" and node[@lemma="?"]] and
        node[@rel="hd" and @pt="ww" and @wvorm="pv" and @stype!="imparative"] and 
        not(node[@rel="vc"]) and
        not(node[@cat="np" and node[@rel="mod"]]) and
        not(node[@cat="np" and node[@rel="det" and 
              (@lemma = "dit" or @lemma="dat" or @lemma="die" or @lemma="het" or @lemma="de") ]]) and
		not(node[@cat="conj"]) and
        not(node[@rel="mod" and @cat="sv1"]) and
        not(node[@rel="su" ]) and
		not(node[@rel="mod" and @lemma!="dan" and @lemma!="nou" and @lemma!="weer" and @lemma!="er"]) and
		(not(node[%intrmodalverb%] and node[@rel="obj1"]))
		and count(node) <= 3
)
"""

intrmodalverb = """( @pt="ww" and 
                       (@lemma="kunnen" or
					   @lemma="moeten" or
					   @lemma="mogen" or
					   @lemma="gaan" 
					   )

) """ 


nodimlemma = """(@lemma="meisje" or @lemma="koek" or @lemma="beet")"""  

hequery = """((@lemma="hè" or @lemma="he") and @end != 1 and
       ( (@end = ancestor::node[@cat="top"]/@end) or
         (@end = ancestor::node[@cat="top"]/@end-1 )
       )
      )"""
	  
aanloopzo = """(@lemma="zo" and 
                @begin = ancestor::node[@cat="top"]/@begin and
                starts-with(ancestor::alpino_ds/descendant::sentence, "zo ,")) """
				
bwwithkijk = """(@pt="bw" and ../node[@lemma="kijken" and @wvorm="pv" and @pvagr="ev" and @pvtijd="tgw"] and ancestor::node[@cat="top" and count(.//node[@pt]) = 2]) """ 
				
bvb = """(not(%bvbvraagwoord%) and 
                         (@pt='adj' or @pt='bw' or @pt='vz' or %Rpronounx%) and  
                         @lemma!="kijk" and   
						 not(%bwwithkijk%) and
                         %thisistheonlyrealword%
                         )"""

thisistheonlyrealword = """(count(ancestor::alpino_ds/descendant::node[@word and %realwordnode%]) = 1)"""

covertnonfinsubj = """(@rel="su" and not(@pt) and not(@cat) and @index and parent::node[@cat="inf" or @cat="ppart"])"""

abarboundtrace = """(not(%aboundtrace%) and not(@rel="su"  and parent::node[@cat="inf" or @cat="ppart"]) and not(@pt) and not(@cat) and @index = ancestor::node/node[@rel="rhd" or @rel="whd"]/@index)"""

aboundtrace = """((@rel="obj1" or @rel="obj2") and not(@pt) and not(@cat) and @index = parent::node/parent::node/node[@rel="su"]/@index)""" 

ellipticgap = """(not(@pt) and not(@cat) and not(@pos) and not(%covertnonfinsubj%) and not(%abarboundtrace%) and not(%aboundtrace%) and %hasantecedent%)"""

hasantecedent = """(@index = ancestor::node[@cat="top"]/descendant::node[@cat or @word]/@index)"""

unboundtrace = """(not(%hasantecedent%))"""
bigpro = """(@rel="su" and not(@cat) and not(@pt) and not(@word) and not(@pos) and parent::node[@cat="inf" or @cat="ppart"])"""

BvBepZn = """((@cat="np" and node[@rel="det"] and node[@rel="mod" and @pt="bw" and (not(@special) or @special!="er")] and count(node)=3))"""

BepBvZn = """(@cat="np" and
    node[@rel="det" ] and
    node[@rel="mod" and @pt="adj"] and
    node[@rel="hd" and @pt="n"])"""

OvWG4 = """((@cat="np" or @cat="ap") and count(.//node[@word and @rel!="mwp"]) + count(.//node[@cat="mwu"]) =3 and not(%BvBepZn%) and not(%BepBvZn%) and not(node[@rel="hd" and @pt="ww"]) and not(.//node[@rel="cnj"]))"""

BezZn = """(@cat="np" and
            node[@pdtype="det" and @rel="det" and @positie="prenom"  and @vwtype="bez" and @pt="vnw" ] and
            node[((@pt="n"  or ((@pt="adj" or pt="vnw") and @positie="nom") or @cat="mwu") )and @rel="hd"])""" 
			
VzBepBvZn = """(@cat="pp" and node[@cat="np" and @rel="obj1" and 
                          node[@rel="hd" and @pt="n"] and 
                          node[@rel="det" and @pt] and
                          node[@rel="mod" and @pt]  
                          ] and
                          count(.//node[@pt]) = 4) """
						  
dankje_VU = """
(@rel="hd" and @lemma="danken" and @wvorm="pv" and @pvagr="ev" and @pvtijd="tgw" and
     parent::node[@cat="sv1" and
          node[(@rel="su" or @rel="obj1") and @pt="vnw" and (@lemma="u" or @lemma="je")] and
          (count(node) = 2 or
           (count(node) = 3 and node[@rel="mod" and @lemma="wel"])
          )
         ]
      )"""
	  
verbal_VU = """(%dankje_VU% or %Tarsp_kijkVU%)"""

zelfst_wat = """(@lemma="wat" and @vwtype= "onbep" and @rel!="det" and not(@rel="hd" and parent::node[@rel="det"]))"""