for $phrase in collection("total-udpipe.xml")//p for $item in $phrase/item let $frere:= $item/following-sibling::item[1] let $frere2:=$frere/following-sibling::item[1] let $frere3:=$frere2/following-sibling::item[1] let$ok:=if (($item/a[4]="NOUN") and (contains($frere/a[4],"ADP")) and ($frere2/a[4]="NOUN") and ($frere3/a[4]="ADP") ) then ( concat($item/a[2]/text()," ",$frere/a[2]/text()," ",$frere2/a[2]/text()," ",$frere3/a[2]/text(), " /NOM PREP NOM PREP") ) else if (($item/a[4]="VERB") and (contains($frere/a[4],"DET")) and ($frere2/a[4]="NOUN")) then ( concat($item/a[2]/text()," ",$frere/a[2]/text()," ",$frere2/a[2]/text(), " /VERB DET NOM") ) else if (($item/a[4]="NUM") and (contains($frere/a[4],"NOUN")) and ($frere2/a[4]="ADJ")) then ( concat($item/a[2]/text()," ",$frere/a[2]/text()," ",$frere2/a[2]/text(), " /VERB DET NOM") ) else if (($item/a[4]="NOUN") and ($frere/a[4]="ADJ") )then ( concat($item/a[2]/text()," ",$frere/a[2]/text(), " /NOM ADJ") ) else if (($item/a[4]="ADJ") and ($frere/a[4]="NOUN") )then ( concat($item/a[2]/text()," ",$frere/a[2]/text(), " /ADJ NOM") ) else if (($item/a[4]="NOUN") and ($frere/a[4]="AUX") )then ( concat($item/a[2]/text()," ",$frere/a[2]/text(), " /NOM AUX") ) else ( "ça matche pas" ) where $ok!= "ça matche pas" group by $doublons:=$ok order by count($ok) descending return string-join((count($ok),$doublons)," ")