package ILMT::URD::HIN::ComputeHead;
use strict;
use warnings;
use Dir::Self;
use Data::Dumper;
use ILMT::URD::HIN::SSFAPI::feature_filter;
use ILMT::URD::HIN::SSFAPI::shakti_tree_api;
use ILMT::URD::HIN::ComputeHead::make_chunk_name;
use ILMT::URD::HIN::ComputeHead::copy_np_head;
use ILMT::URD::HIN::ComputeHead::copy_vg_head;

sub process {
    my %args = @_;
    my $input = $args{'data'};
    utf8::encode($input);
    read_story(\$input);

    my $numBody = get_bodycount();
    my $result;
    my $body;
    for(my($bodyNum)=1;$bodyNum<=$numBody;$bodyNum++)
    {

	$body = &get_body($bodyNum,$body);

	# Count the number of Paragraphs in the story
	my($numPara) = &get_paracount($body);

	#print STDERR "Paras : $numPara\n";

	# Iterate through paragraphs in the story
	for(my($i)=1;$i<=$numPara;$i++)
	{

	    my($para);
	    # Read Paragraph
	    $para = &get_para($i);


	    # Count the number of sentences in this paragraph
	    my($numSent) = &get_sentcount($para);
	    #	print STDERR "\n $i no.of sent $numSent";

	    #print STDERR "Para Number $i, Num Sentences $numSent\n";

	    #print $numSent."\n";

	    # Iterate through sentences in the paragraph
	    for(my($j)=1;$j<=$numSent;$j++)
	    {

		#print " ... Processing sent $j\n";

		# Read the sentence which is in SSF format
		my($sent) = &get_sent($para,$j);
		#print STDERR "$sent";
		#	print "check--\n";
		#	&print_tree($sent);
		# Get the nodes of the sentence (words in our case)


		#Copy NP head
		#	&AddID($sent);
		&make_chunk_name($sent);
		&copy_np_head($sent);
		#Copy NP VG head
		&copy_vg_head($sent);

	    }
	}
    }

    open OUTFILE, '>', \$result  or die $!;
    select(OUTFILE);
    printstory();
    select(STDOUT);
    utf8::decode($result);
    return $result;
}

1;
