declare variable $count as xs:integer := 0; for $art in collection("BAO2-SORTIE-3476-TREETAGGER.xml")//article for $elt in $art/element let $conc2 := if (($elt/data[1]/text()="NOM") and ($elt/following-sibling::element[1]/data[1][contains(text(),"PRP")]) and ($elt/following-sibling::element[2]/data[1]/text()="NOM") and ($elt/following-sibling::element[3]/data[1][contains(text(),"PRP")]) and ($elt/following-sibling::element[4]/data[1]/text()="NOM")) then ( concat("NOM-PREP-NOM-PREP-NOM: ", $elt/data[3]/text()," ",$elt/following-sibling::element[1]/data[3]/text()," ",$elt/following-sibling::element[2]/data[3]/text()," ",$elt/following-sibling::elementem[3]/data[3]/text()," ",$elt/following-sibling::element[4]/data[3]/text()) ) else if (($elt/data[1]/text()="NOM") and ($elt/following-sibling::element[1]/data[1]/text()="ADJ")) then ( concat("NOM-ADJ: ", $elt/data[3]/text()," ",$elt/following-sibling::element[1]/data[3]/text()) ) else if (($elt/data[1]/text()="ADJ") and ($elt/following-sibling::element[1]/data[1]/text()="NOM")) then ( concat("ADJ-NOM: ", $elt/data[3]/text()," ",$elt/following-sibling::element[1]/data[3]/text()) ) else if (($elt/data[1][contains(text(),"VER")]) and ($elt/following-sibling::element[1]/data[1][contains(text(),"DET")]) and ($elt/following-sibling::element[2]/data[1]/text()="NOM")) then ( concat("V-DET-NOM: ", $elt/data[3]/text()," ",$elt/following-sibling::element[1]/data[3]/text()," ",$elt/following-sibling::element[2]/data[3]/text()) ) else ( " " ) where $conc2 != " " group by $g:= $conc2 order by count($conc2) descending return string-join(($g,count($conc2)), " ")