for $element in collection("sortie_perl_bao2_UD_conll_3208.udpipe.xml")//element (: pour tous les éléménts... :) (: à partir de la relation syntaxique, on mémorise le dépendant, sa position et la position de la tête :) where contains($element/data[6]/text(),'obj') let $forme_dep:=$element/data[2]/text() let $position_dep:=$element/data[1]/text() let $position_tete:=$element/data[5]/text() (: selon la position de la tête, on la cherche dans les preceding-siblings ou dans les following-siblings, on joint les résultats de la forme de la tête avec la forme du dépendant :) let $forme-tete:= if(number($position_tete) > number($position_dep)) then ($element/following-sibling::element[data[1]=$position_tete]/data[2]/text()) else ($element/preceding-sibling::element[data[1]=$position_tete]/data[2]/text()) let $pattern:=string-join(($forme-tete, $forme_dep)," ") (: on regroupe les résultats par fréquence en ordre décroissant :) group by $grp:=$pattern order by count($pattern) descending return string-join((count($pattern),$grp)," ")