#/usr/bin/perl
#FAZLIU Doruntina
#BAO2 - « extraction du texte » : parcourir toute l'arborescence et extraire les contenus textuels de tous les fils (classement des #		textes extraits par RUBRIQUE)
#-----------------------------------------------------------
#use warnings;
use strict;
use utf8;
binmode STDOUT, ':utf8';

my $file="$ARGV[0]";
my $relation="$ARGV[1]";
my %dicoRelation=();

$/="</p>";
#-----------------------------------------------------------
open my $input ,"<:encoding(utf8)",$file;
# On parcourt chaque phrase
while (my $phrase=<$input>) {
	# Pour chaque ligne qui contient de contenu textuel étiqueté
	my @LIGNES=split(/\n/,$phrase);
	# On fait le parcourt la liste de lignes jusqu'a la fin
		for (my $i=0;$i<=$
		# Si nous trouve=ons  la relation qu'on cherche dans la ligne du dépendant, on prend la position du dépendant et de la tête, du lemme du dépendant et aussi, le nom complet de la relation.
		if ($LIGNES[$i]=~/<item><a>([^<]+)<\/a><a>([^<]+)<\/a><a>[^<]+<\/a><a>[^<]+<\/a><a>[^<]+<\/a><a>[^<]+<\/a><a>([^<]+)<\/a><a>[^<]*$relation[^<]*<\/a><a>[^<]+<\/a><a>[^<]+<\/a><\/item>/i) {	
			my $posDep=$1;
			my $posGouv=$3;
			my $formeDep=$2;
			# si la tête se trouve après le dépendant, on parcourt les lignes suivantes pour trouver le lemme de la tête syntaxique
			if ($posDep > $posGouv) {
				for (my $k=0;$k<$i;$k++) {
				
					if ($LIGNES[$k]=~/<item><a>$posGouv<\/a><a>([^<]+)<\/a><a>[^<]+<\/a><a>[^<]+<\/a><a>[^<]+<\/a><a>[^<]+<\/a><a>[^<]+<\/a><a>[^<]+<\/a><a>[^<]+<\/a><a>[^<]+<\/a><\/item>/) {
						my $formeGouv=$1;
						$dicoRelation{"$formeGouv $formeDep"}++;
					}
				}
			}	
			#sinon
			else {
				#si la tête se trouve avant le dépendant, on parcourt les lignes d'avant pour trouver le lemme de la tête syntaxique
				for (my $k=$i+1;$k<=$
				
					if ($LIGNES[$k]=~/<item><a>$posGouv<\/a><a>([^<]+)<\/a><a>[^<]+<\/a><a>[^<]+<\/a><a>[^<]+<\/a><a>[^<]+<\/a><a>[^<]+<\/a><a>[^<]+<\/a><a>[^<]+<\/a><a>[^<]+<\/a><\/item>/) {
						
						my $formeGouv=$1;
					
						$dicoRelation{"$formeGouv $formeDep"}++;
					}
				}
			}
		}
	}
}


close ($input);
# On trie zn descendant le contenu du dictionnaire.
foreach my $relation (sort {$dicoRelation{$b}<=>$dicoRelation{$a}} (keys %dicoRelation)) {
	print "$relation\t$dicoRelation{$relation}\n";
}
