declare variable $count as xs:integer := 0; for $article in doc("../../../bao2/SORTIE/planete/sortie-tt-xml_3244.xml")//article for $element in $article/element let $conc2 := if (($element/data[1]/text()="NOM") and ($element/following-sibling::element[1]/data[1]/text()="PRP") and ($element/following-sibling::element[2]/data[1]/text()="NOM") and ($element/following-sibling::element[3]/data[1]/text()="PRP")) then ( concat("NOM-PREP-NOM-PREP : ",$element/data[3]/text()," ",$element/following-sibling::element[1]/data[3]/text()," ",$element/following-sibling::element[2]/data[3]/text()," ",$element/following-sibling::element[3]/data[3]/text()) ) else if (($element/data[1]/text()="NOM") and ($element/following-sibling::element[1]/data[1]/text()="ADJ")) then ( concat("NOM-ADJ : ",$element/data[3]/text()," ",$element/following-sibling::element[1]/data[3]/text()) ) else if (($element/data[1]/text()="ADJ") and ($element/following-sibling::element[1]/data[1]/text()="NOM")) then ( concat("ADJ-NOM : ",$element/data[3]/text()," ",$element/following-sibling::element[1]/data[3]/text()) ) else if (($element/data[1]/text()="VER") and ($element/following-sibling::element[1]/data[1]/text()="DET") and ($element/following-sibling::element[2]/data[1]/text()="NOM")) then ( concat("VERBE-DET-NOM : ",$element/data[3]/text()," ",$element/following-sibling::element[1]/data[3]/text()," ",$element/following-sibling::element[2]/data[3]/text()) ) else ( " " ) where $conc2 != " " group by $g:= $conc2 order by count($conc2) descending return concat(string-join(($g,count($conc2)), " ")," ")