#!/usr/bin/perl

my $inputfile = $ARGV[0];

print "Now splitting file $inputfile\n";
open(IN, "<$inputfile") or die "Error opening file $inputfile";
my $where;
while(($where = <IN>) && not ($where =~ /<h:Object/)) {}
chomp($where);
$where =~ s/^[^"]*"([^"]*)">$/$1/;
while(($line1 = <IN>) && not ($line1 =~ /<\/h:Object>/)) { # <h:refObj
  $line2 = <IN>; # <h:position rdf:resource="&hns;value"/>
  $position = $line2;
  chomp($position);
  $position =~ s/^[ \t]*[^"]*"&hns;([^"]*)"\/>/$1/;
  if ($position eq 'MainHypothesis' || $position eq 'MainConclusion') {
     $line3 = <IN>; # <h:depth>value</h:depth>
  }
  $line4 = <IN>; # <h:occurrence><h:Object rdf:about="value"/></h:occurrence>
  $line5 = <IN>; # </h:refObj>
  $uri = $line4;
  chomp($uri);
  $uri =~ s/^[ \t]*<h:occurrence><h:Object rdf:about="([^"]*)"\/><\/h:occurrence>$/$1/;
  $who = $uri;
  $who =~ s/^cic:/backward/;
  $who =~ s/#xpointer\(1\/([^\/]*)\/([^\/]*)\)/,$1,$2/;
  $who =~ s/#xpointer\(1\/([^\/]*)\)/,$1/;
  $line4 =~ s/\Q$uri\E/$where/;
   
  open(OUT, ">>$who") or die "Error opening file $who";
  print OUT "\t\t<h:backPointer>\n";
  print OUT $line2;
  if ($position eq 'MainHypothesis' || $position eq 'MainConclusion') {
     print OUT $line3;
  }
  print OUT $line4;
  print OUT "\t\t</h:backPointer>\n";
  close(OUT);
}
close(IN);
