for $item in collection("sortie-udpipe_3208")//item where contains($item/a[8]/text(),'ob') (:À partir de la relation syntaxique subj, on mémorise le dépendant, sa position et la position de la tête:) let $forme_dep:=$item/a[2]/text() let $position_dep:=$item/a[1]/text() let $position_tete:=$item/a[7]/text() (:Selon la position de la tête, on la cherche dans les preceding-siblings ou dans le following-siblings :) let $forme-tete:=if(number($position_tete) > number($position_dep)) then ($item/following-sibling::item[a[1]=$position_tete]/a[2]/text()) else ($item/preceding-sibling::item[a[1]=$position_tete]/a[2]/text()) let $pattern:=string-join(($forme-tete, $forme_dep)," ") (:On régroupe 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)," ")