#!/usr/local/bin/perl -w
use strict;
use lib "/users/bradmars/cvs/moby-live/Client";
use MOBY::Client::Central;
use MOBY::Client::Service;

my $Central = MOBY::Client::Central->new(MOBY_server => "http://bioinfo.pbi.nrc.ca:8099/cgi-bin/MOBY-Central.pl");

print "I guess I'm looking for any services that search by keyword?  So far only GO?\n";
my %services =  $Central->locateServiceByInput(['Object'], ['Generic/Keyword'], 'Retrieve');

my ($ServiceName, $TYPE) = each %services;
my ($URI, $name) = (($ServiceName =~ /(.+?)#(.+)/) && ($1, $2));
my ($type, $desc) = (($TYPE =~ /(.+?)\;(.+)/) && ($1, $2));
					 
print "\nFound:\n".
	"\tFrom: $URI\n".
	"\tName: $name\n".
	"\tType: $type\n".
	"\tDesc: $desc\n\n";
my @wsdl = $Central->retrieveServiceByName([$ServiceName]);
					 
#  We use the first one since it's just GO.
my $Service = MOBY::Client::Service->new(service => $wsdl[0]);
print "Executing Service: ",$Service->ServiceName," with GO_term=neuroligin\n"; 

my $query;

foreach my $arg(@ARGV) {
  $query .= "<Object namespace='Generic/Keyword' id='$arg'/>"
}

  my $data = SOAP::Data->type(base64 => "$query");


print $Service->execute($data);
