#! /usr/bin/env perl

use strict;
use warnings;
use File::Basename;
use File::Path;
use Cwd 'getcwd';

my $go_obo = $ARGV[0];
use Cwd 'abs_path';
$go_obo = abs_path($go_obo);

my $CWD=dirname(${0});
my $DB=basename(${0}, '.pl');
chdir $CWD;
$CWD=getcwd;
my $PWD=dirname($CWD);
my $ESROOT=$PWD;

my @URI=();
my @ENTRY=();

my $URL="http://identifiers.org/go";
$URI[0]="http://www.ebi.ac.uk/QuickGO/GTerm?id=";
$URI[1]="http://amigo.geneontology.org/amigo/term/";
$URI[2]="http://www.informatics.jax.org/searches/GO.cgi?id=";
$URI[3]="http://purl.bioontology.org/ontology/GO/";
#$URI[5]="http://www.pantherdb.org/panther/category.do?categoryAcc=";
$URI[4]="http://www.ebi.ac.uk/ols/ontologies/go/terms?obo_id=";
#$URI[6]="http://www.bioinf.ebc.ee/EP/EP/GO/?Q=";
#$URI[7]="http://amigo2.berkeleybop.org/cgi-bin/amigo2/amigo/term/";

$ENTRY[0]="http://identifiers.org/miriam.resource/MIR:00100012";
$ENTRY[1]="http://identifiers.org/miriam.resource/MIR:00100013";
$ENTRY[2]="http://identifiers.org/miriam.resource/MIR:00100015";
$ENTRY[3]="http://identifiers.org/miriam.resource/MIR:00100237";
#$ENTRY[5]="http://identifiers.org/miriam.resource/MIR:00100585";
$ENTRY[4]="http://identifiers.org/miriam.resource/MIR:00100675";
#$ENTRY[6]="http://identifiers.org/miriam.resource/MIR:00100014";
#$ENTRY[7]="http://identifiers.org/miriam.resource/MIR:00100659";


my $collection = "http://identifiers.org/miriam.collection/MIR:00000022";


printf "\@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n";
printf "\@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n";
printf "\@prefix dcterms: <http://purl.org/dc/terms/> .\n";
printf "\@prefix idoo: <http://rdf.identifiers.org/ontology/> .\n";

my %goid = ();
open(FD, $go_obo);
while( my $line = <FD> ){
  my $id = "";
  if( $line =~ /\[Term\]/ ){
    $line = readline(FD);
    ($id) = ($line =~ /(GO:\d+)/);
    if( ! $id ){
      next;
    }
    $goid{$id} = "";
  }
}
close(FD);

my %T=();

my $num = $#URI + 1;
foreach my $id (sort(keys %goid)){
  chomp($id);
  for(my $i=0; $i < $num; $i++){
    printf "<%s/%s> rdfs:seeAlso <%s%s> .\n", $URL, $id, $URI[$i], $id;
    printf "<%s%s> rdfs:seeAlso <%s/%s> .\n", $URI[$i], $id, $URL, $id;
    if($ENTRY[$i]){
      printf "<%s%s> dcterms:publisher <%s> .\n", $URI[$i], $id, $ENTRY[$i];
    }
  }
  printf "<%s/%s> dcterms:source <%s> .\n", $URL, $id, $collection;
  printf "<%s/%s> idoo:database <%s> .\n", $URL, $id, $URL;
}
close(FD);
