From steube at sdsc.edu Sat Nov 1 08:09:29 2003 From: steube at sdsc.edu (Ken Steube) Date: Mon Nov 3 10:39:04 2003 Subject: [MOBY-l] New CGI for data objects In-Reply-To: Message-ID: Hey all, I just finished a new CGI that displays the XML required to represent any MOBY data object such as GenericSequence. One reason this is useful is because some objects required named items (for example GenericSequence) and you don't know without something like this CGI. Try it out by going first to my CGI that lists all services and their inputs/outputs: http://plantsp.sdsc.edu/plantsp/cgi-bin/MOBY/list.services.cgi The names of the inputs/outputs are now links to the new CGI. Click to see the XML for that object. list.services.cgi still doesn't deal with collections...shouldn't be hard to do but haven't gotten to it yet. Ken ------------------------------------- Ken Steube steube@sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From steube at sdsc.edu Mon Nov 3 08:57:05 2003 From: steube at sdsc.edu (Ken Steube) Date: Mon Nov 3 11:55:09 2003 Subject: [MOBY] [MOBY-l] New example service In-Reply-To: <1067876249.2096.64.camel@localhost.localdomain> Message-ID: You can link to the FASTA example, but I have a whole MOBY education site at http://plantgenome.sdsc.edu/mobyed2/learn.html and you should provide a link to it. BTW I'm very open to any suggestions about how to improve my ed. program. If you or anyone else wants to look it over and offer comments that would be very welcome. getMobySimples does overlap with CommonSubs a little. I didn't want to create competing software but it kind of went in that direction. It returns a list of MobyXmlObject objects. If that belongs in CommonSubs then let's put it in there and I'll add MobyXmlObject to the CVS tree. As for MobyXmlObject I will add soon: method getMobyCollections ability to set values in object and write it as XML method getMobyGenericSequence (a convenience method) capability to deal with secondary articles and CRIB/PIB Ken On Mon, 3 Nov 2003, Mark Wilkinson wrote: > hey Ken! > > that is fantastic! Can I put a link to that on the BioMOBY website? I > need to set up a page for links to tutorials like this one, and the one > that Catherine set up last month. > > One comment - I like the 'getMobySimples' routine in your MobyXMLObject > module, but I'd prefer it if you could somehow roll that code into the > CommonSubs module instead, since the two modules are now working in > opposition to each other; i.e. in CommonSubs you call "getInputArticles" > using the $query, which handles all types of potential MOBY inputs > (single-simple, multiple-simple, single-collection, multiple-collection, > and combinations of these) whereas your module assumes that all services > consume single-simples (as far as I can tell). > > What do you think? > > M > > On Fri, 2003-10-31 at 11:31, Ken Steube wrote: > > Hey there, > > > > I just created a new example service to give to aspiring MOBY'ers. > > It's not really a useful service but it's OK for an example of how to > > write services: it takes a GenericSequence or better and returns a > > String containing a FASTA formatted sequence. > > > > http://plantgenome.sdsc.edu/mobyed2/Fasta_Service > > > > XML parsing: I finally got around to doing this better, but still within > > the limitations of XML::DOM. I created a perl module MobyXmlObject.pm that > > stores any MOBY data object and gives easy access to all the data and all > > the included MOBY objects. > > > > The best part: it also has a script that allows you to debug it at > > the command line without going through a SOAP connection. > > > > Comments welcome...could use some help to make sure I'm providing a good > > example! It comes with detailed instructions on how to set it up and run > > it. > > > > Ken > > > > ------------------------------------- > > Ken Steube steube@sdsc.edu > > San Diego Supercomputer Center @ UCSD > > San Diego, California USA > > > > > > > > _______________________________________________ > > moby-l mailing list > > moby-l@biomoby.org > > http://biomoby.org/mailman/listinfo/moby-l > -- ------------------------------------- Ken Steube steube@sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From steube at sdsc.edu Mon Nov 3 09:18:51 2003 From: steube at sdsc.edu (Ken Steube) Date: Mon Nov 3 12:16:42 2003 Subject: [MOBY-l] Data objects to XML CGI In-Reply-To: <1067877628.2068.92.camel@localhost.localdomain> Message-ID: I registered a couple fairly complicated data objects and the CGI created the XML for them really well, except for the lower case business. BTW I have registered a FASTA object. It ISA text-formatted. This puts it at the same level as embl-flatfile. Let me ask you about this method: $Central->retrieveObjectDefinition('GenericSequence') It's supposed to "retrieve the $XML that was used to register an object and its relationships." Shouldn't it return the name as it was registered (GenericSequence) instead of the lower-case LSID? If so then I could continue to use retrieveObjectDefinition. Maybe the LSID data should be returned by another method? Ken On Mon, 3 Nov 2003, Mark Wilkinson wrote: > (This message is complete, the last one is unfinished...) > > Wow, that tool **FANTASTIC** and so badly needed! > > I have only one concern - it looks like you are constructing the XML > element names by taking the last element of the LSID. This is fine, > except that the case of the LSID element name does not reflect the case > of the human readable name (e.g. the human readable tag is > "GenericSequence", while the LSID is '...:genericsequence'), so in fact, > the XML that is produced by that script is not guaranteed to successfully > execute a service since XML parsers are case sensitive. > > I'm not sure how best to fix that problem... I think there are three > alternatives: > > 1) you could either query the MOBY database directly (using DBD::mysql) > to get the human-readable name. > > 2) you could use the MOBY::OntologyServer module to get an API into the > ontology (setting up the OntologyServer is not well documented as it is > still in early stages of development... you need to set the same > environment variables as you set when you install a local copy of MOBY > Central in order to tell it where the database is and how to connect to > it). > > 3) You could output your XML as follows: > > > > > > > > > > > I think the latter solution is just confusing (though valid :-) ), so perhaps the > first or second option is better... but it is a serious enough problem that > it really does need to be fixed before people start building their objects > using invalid tags... > > Nevertheless, that is a **fantastic** tool, and I am going to > start using that URL to link from some of my other scripts and web-pages, if > that is okay with you. > > Cheers Ken!! > > Mark > > On Sat, 2003-11-01 at 10:09, Ken Steube wrote: > > Hey all, I just finished a new CGI that displays the XML required to > > represent any MOBY data object such as GenericSequence. One reason this > > is useful is because some objects required named items (for example > > GenericSequence) and you don't know without something like this CGI. > > > > Try it out by going first to my CGI that lists all services and their > > inputs/outputs: > > > > http://plantsp.sdsc.edu/plantsp/cgi-bin/MOBY/list.services.cgi > > > > The names of the inputs/outputs are now links to the new CGI. Click to see > > the XML for that object. > > > > list.services.cgi still doesn't deal with collections...shouldn't be hard > > to do but haven't gotten to it yet. > > > > Ken > > > > ------------------------------------- > > Ken Steube steube@sdsc.edu > > San Diego Supercomputer Center @ UCSD > > San Diego, California USA > > > > _______________________________________________ > > moby-l mailing list > > moby-l@biomoby.org > > http://biomoby.org/mailman/listinfo/moby-l > -- ------------------------------------- Ken Steube steube@sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From markw at illuminae.com Mon Nov 3 17:53:49 2003 From: markw at illuminae.com (Mark Wilkinson) Date: Mon Nov 3 18:51:52 2003 Subject: [MOBY-l] heads up for biomoby.org flakeyness over the next few days! Message-ID: <1067903629.1711.43.camel@localhost.localdomain> Hi all, I've just moved the biomoby.org website over to the new open-bio server. The big headache was getting the Twiki moved over, but it looks like that is working now. I am going to ask Chris D. to update the DNS tomorrow. This will likely cause things to explode all over the place :-) As such, please *don't* send error reports for the next few days, including messages that the mailing list isn't working, or the website isn't working or the CVS isn't working, or whatever. I know, and I'm on it. It might take a day or two for everything to sort itself out. Moby Central is on a completely different server in a completely different country, so (barring another hurricane) there should be no problem in actually **using** MOBY during this transition - it is only the website, the CVS, and the mailing list that will be affected (he says, touching wood like mad!) So... take a deep breath and cross your fingers :-) Cheers all! Mark -- Mark Wilkinson Illuminae From dag at sonsorol.org Mon Nov 3 20:42:17 2003 From: dag at sonsorol.org (Chris Dagdigian) Date: Mon Nov 3 20:42:51 2003 Subject: [MOBY-l] heads up for biomoby.org flakeyness over the next few days! In-Reply-To: <1067903629.1711.43.camel@localhost.localdomain> References: <1067903629.1711.43.camel@localhost.localdomain> Message-ID: <3FA703F9.1050000@sonsorol.org> Hi all, Your mailing lists are tightly tied to the location of your website (because GNU Mailman is administered via http) so I need to relocate the moby-l and moby-dev lists and archives etc. at the same time you switch to the new server. Mark- I can move the lists over tonight -- if you get this and don't have any problems with the twiki config then we should just cut things over ASAP. Drop me an email giving me the OK if you are cool with this. List members -- the best/fastest way to report server related issues is to email "root-l@open-bio.org" at the same time you notify Mark. -Chris Mark Wilkinson wrote: > Hi all, > > I've just moved the biomoby.org website over to the new open-bio > server. The big headache was getting the Twiki moved over, but it looks > like that is working now. > > I am going to ask Chris D. to update the DNS tomorrow. This will likely > cause things to explode all over the place :-) > > As such, please *don't* send error reports for the next few days, > including messages that the mailing list isn't working, or the website > isn't working or the CVS isn't working, or whatever. I know, and I'm on > it. It might take a day or two for everything to sort itself out. > > Moby Central is on a completely different server in a completely > different country, so (barring another hurricane) there should be no > problem in actually **using** MOBY during this transition - it is only > the website, the CVS, and the mailing list that will be affected (he > says, touching wood like mad!) > > So... take a deep breath and cross your fingers :-) > > Cheers all! > > Mark > -- Chris Dagdigian, Independent life science IT & informatics consulting Office: 617-666-6454, Mobile: 617-877-5498, Fax: 425-699-0193 PGP KeyID: 83D4310E Yahoo IM: craffi Web: http://bioteam.net From dag at sonsorol.org Mon Nov 3 22:41:51 2003 From: dag at sonsorol.org (Chris Dagdigian) Date: Mon Nov 3 22:41:31 2003 Subject: [MOBY-l] test message -- please ignore Message-ID: <3FA71FFF.1000007@sonsorol.org> If all goes well this message should get processed through the new biomoby.org mailing list and web server located at IP 65.246.187.176 aka 'portal.open-bio.org' -Chris From yshigemo at genes.nig.ac.jp Tue Nov 4 01:04:52 2003 From: yshigemo at genes.nig.ac.jp (Yasumasa Shigemoto) Date: Tue Nov 4 01:01:46 2003 Subject: [MOBY-l] sample code of Central.call method Message-ID: <3FA74184.E97732B0@genes.nig.ac.jp> Dear All, I am a beginner of biomoby and I am tring to access with using Java API. Would you give me a sample program of Central.call(methodName, inputXML) method? Regards, Yasumasa Shigemoto From steube at sdsc.edu Tue Nov 4 04:17:36 2003 From: steube at sdsc.edu (Ken Steube) Date: Tue Nov 4 04:14:26 2003 Subject: [MOBY-l] sample code of Central.call method In-Reply-To: <3FA74184.E97732B0@genes.nig.ac.jp> Message-ID: Try this one: #!/usr/local/bin/perl5.6.1 use warnings 'all'; use strict; use lib '/scratch/s1/MOBY/MOBY'; use MOBY::Client::Central; use MOBY::Client::Service; my $Central = MOBY::Client::Central->new(); my ($Services, $REG) = $Central->findService( authURI => 'www.sdsc.edu', serviceName => 'plantspGetPSeqFromAGI', ); unless ($Services) { print "Discovery failed: ", $REG->message; exit(1); } my $svc = $Services->[0]; print "Executing service ", $svc->name, "\n", $svc->description, "\n\n"; my $wsdl = $Central->retrieveService($svc); my $S = MOBY::Client::Service->new(service => $wsdl); my $result = $S->execute( XMLinputlist => [ ['', qq{}] ] ) || 'No result'; print $result, "\n"; I will change the name of this service from plantspGetPSeqFromAGI to plantspGetProtein sometime soon. Ken On Tue, 4 Nov 2003, Yasumasa Shigemoto wrote: > I am a beginner of biomoby and I am tring to > access with using Java API. > > Would you give me a sample program of > Central.call(methodName, inputXML) method? > > Regards, > Yasumasa Shigemoto ------------------------------------- Ken Steube steube@sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From senger at ebi.ac.uk Tue Nov 4 04:42:19 2003 From: senger at ebi.ac.uk (Martin Senger) Date: Tue Nov 4 04:39:05 2003 Subject: [MOBY-l] sample code of Central.call method In-Reply-To: <3FA74184.E97732B0@genes.nig.ac.jp> Message-ID: > Would you give me a sample program of > Central.call(methodName, inputXML) method? > The 'call' method is there as a possibility to do things that you cannot do otherwise with the Java API. All major features of Biomoby registry are reachable using the other method of the API. The good thing about the 'call' method is that you can call whatever you wish, the bad thing is that you need to know what 'inputXML' is required and you need to provide it in XML (and not just like method parameters as with other methods). An example is to call method DUMP (which is not available in the API per se): Central.call ("DUMP", null); or doing the same from the command-line: ./run-cmdline-client -call DUMP Another example (with argument) is this: Central.call ("retrieveService", "retrieveService>"); But you can get the same by calling: Central.getServiceWSDL ("PBI_Cluster_Blast", "www.illuminae.com"); Other people were using 'call' method for calling their services (and not the Biomoby registry at all) - the XML input depends on the what the service expects. Folks, anybody has an example? Regards, Martin -- Martin Senger EMBL Outstation - Hinxton Senger@EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger From senger at ebi.ac.uk Tue Nov 4 04:47:20 2003 From: senger at ebi.ac.uk (Martin Senger) Date: Tue Nov 4 04:44:14 2003 Subject: [MOBY-l] sample code of Central.call method In-Reply-To: Message-ID: Ken, Senator Cato used to close his talks in the ancient Rome with "By the way, I think Cartago should be destroyed.". Which seems to me to be close to your reply to Yasumasa "And by the way, here is a Perl solution." :-) Cheers, Martin -- Martin Senger EMBL Outstation - Hinxton Senger@EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger From steube at sdsc.edu Tue Nov 4 04:51:58 2003 From: steube at sdsc.edu (Ken Steube) Date: Tue Nov 4 04:48:43 2003 Subject: [MOBY-l] sample code of Central.call method In-Reply-To: Message-ID: Senator Cato sounds like he was a charming fellow. I didn't realize it was a java question...you never know what you'll get from me late at night like this! Ken On Tue, 4 Nov 2003, Martin Senger wrote: > Ken, > Senator Cato used to close his talks in the ancient Rome with "By the > way, I think Cartago should be destroyed.". Which seems to me to be close > to your reply to Yasumasa "And by the way, here is a Perl solution." :-) > > Cheers, > Martin > > -- ------------------------------------- Ken Steube steube@sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From yshigemo at genes.nig.ac.jp Tue Nov 4 23:20:35 2003 From: yshigemo at genes.nig.ac.jp (Yasumasa Shigemoto) Date: Tue Nov 4 23:17:27 2003 Subject: [MOBY-l] sample code of Central.call method References: Message-ID: <3FA87A93.F8EB342B@genes.nig.ac.jp> I confirmed to get the WSDL of 'RetrieveGOFromKeywords' using Central.getServiceWSDL("RetrieveGOFromKeywords"). And the WSDL is as follows. ... Can I invoke RetrieveGOFromKeywords method by Central.call method? Or are there any way to invoke one? How do I specify 'xsd1:NOT_YET_DEFINED_INPUTS' including the WSDL? Regards, Yasumasa Shigemoto Martin Senger wrote: > > > Would you give me a sample program of > > Central.call(methodName, inputXML) method? > > > The 'call' method is there as a possibility to do things that you > cannot do otherwise with the Java API. All major features of Biomoby > registry are reachable using the other method of the API. > The good thing about the 'call' method is that you can call whatever > you wish, the bad thing is that you need to know what 'inputXML' is > required and you need to provide it in XML (and not just like method > parameters as with other methods). > An example is to call method DUMP (which is not available in the API > per se): > Central.call ("DUMP", null); > or doing the same from the command-line: > ./run-cmdline-client -call DUMP > > Another example (with argument) is this: > > Central.call ("retrieveService", > "retrieveService> "serviceName=\"PBI_Cluster_Blast\"/>"); > But you can get the same by calling: > Central.getServiceWSDL ("PBI_Cluster_Blast", "www.illuminae.com"); > > Other people were using 'call' method for calling their services (and > not the Biomoby registry at all) - the XML input depends on the what the > service expects. Folks, anybody has an example? > > Regards, > Martin > > -- > Martin Senger > > EMBL Outstation - Hinxton Senger@EBI.ac.uk > European Bioinformatics Institute Phone: (+44) 1223 494636 > Wellcome Trust Genome Campus (Switchboard: 494444) > Hinxton Fax : (+44) 1223 494468 > Cambridge CB10 1SD > United Kingdom http://industry.ebi.ac.uk/~senger From senger at ebi.ac.uk Wed Nov 5 04:18:23 2003 From: senger at ebi.ac.uk (Martin Senger) Date: Wed Nov 5 04:15:14 2003 Subject: [MOBY-l] sample code of Central.call method In-Reply-To: <3FA87A93.F8EB342B@genes.nig.ac.jp> Message-ID: > Can I invoke RetrieveGOFromKeywords method by Central.call method? > You can - if you know what input XML format looks like. > Or are there any way to invoke one? > There is no Java API for invoking moby services yet. I will provide it, however, soon. Menatime you may be inspired by the CentralImpl code to see how web services generally can be invoked, and do the same in your code. But as with the previous paragraph, you need to know what XML input the invoked service expects. > How do I specify 'xsd1:NOT_YET_DEFINED_INPUTS' including the WSDL? > Again: you need to know how the inut XML look like. Generally, it looks like described in the Mobi API documentation, but it may be richer for a particular service. Martin -- Martin Senger EMBL Outstation - Hinxton Senger@EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger From markw at illuminae.com Sat Nov 8 10:12:13 2003 From: markw at illuminae.com (Mark Wilkinson) Date: Sat Nov 8 10:08:53 2003 Subject: [MOBY-l] Change to the MOBY message format Message-ID: <1068304333.1708.49.camel@localhost.localdomain> Hi all, here's a heads-up that I am starting to implement a change to the MOBY-S messaging format that we decided on during the last MOBY-DIC meeting. It is the only one of the changes that is not fully backward-compatible with the existing message format, so I'm giving a bit of warning. I have made changes to the Perl CommonSubs library that makes all of this easy, and in fact, you likely wont break anything even if you continue using the old message structure, but... it wont be "correct" anymore :-) Here's the description of the change: The queryInput block(s) are now enumerated, and the queryResponse blocks are correspondingly enumerated such that inputs and outputs may be associated with each other Client-side. This is accomplished through a queryID attribute in the queryInput and queryResponse tags: ... ... This replaces the two rules in the 0.5 API that said: (1) outputs must appear in the same order in the response message as they appeared in the query message, and (2) services which change the namespace of the output object must provide an Invocation cross-reference pointing back at the originating query. Those two rules of the 0.5 API are now deprecated! The value you assign (client-side) to the queryID is completely arbitrary,and may be numeric, alphanumeric, or any other valid value of an XML attribute. It may also be blank, or absent (hence the backward compatibility), but be advised that you can no longer rely on the order of the outputs to map them back to your inputs, so... caveat emptor! Service providers MUST NOT try to interpret the value of the queryID attribute; it is an opaque value that they simply copy over into their queryResponse element. This change was made for two reasons: 1) the Invocation object was not sufficient to describe service inputs that consisted of Collections, or multiple Simple articles, and 2) the ordering of outputs was a pain in the butt for anyone providing services that did the underlying analysis in parallel, where the outputs might become available in an arbitrary order. I've just finished coding the various CommonSubs routines that will make this transition easy for the service provider, and I'm testing them now. As soon as they appear to be working properly (hopefully later today) I'll commit them. Hopefully this wont break anyone, but all existing services will have to be updated sooner or later anyway. Thankfully, this was the only seriously problematic part of the existing message format that we could identify during our discussions, so hopefully there wont be another major change like this for a long time! There are a few other changes to the API that we decided on, but these are simply extensions, and will not detrimentally affect anyone. I will implement those over the next week or so. Now that the Twiki has moved over to the new open-bio server I will also update the main API documentation so that we have a complete record of all changes. Cheers all! Mark -- Mark Wilkinson Illuminae From markw at illuminae.com Sat Nov 8 12:23:46 2003 From: markw at illuminae.com (Mark Wilkinson) Date: Sat Nov 8 12:20:26 2003 Subject: [MOBY-l] CommonSubs updated for new message structure Message-ID: <1068312226.1708.84.camel@localhost.localdomain> Okay, it looks like the new CommonSubs routine does not break the old routines, so people can begin to migrate over to the new message structure as they see fit. I will update all of my services in the LocalServices example module over the next few days, but below is a paradigmatic MOBY Service, using the various new routines in CommonSubs: sub myServiceName { my ($caller, $message) = @_; # get the incoming MOBY query XML my @queries = getInputs($message); # returns XML::DOM nodes my $RESPONSE = ""; # set empty response foreach my $query(@queries){ my $queryID = getInputID($query); # get the queryID attribute my @input_articles = getArticles($query); foreach my $input(@input_articles){ # input is a listref my ($articleName, $article) = @{$input}; # get the named article my $simple = isSimpleArticle($article); # simple or collection my $collection = isCollectionArticle($article); if ($collection){ # do something wtih the collection... # for example... my @simples = getCollectedSimples($article); # blah blah blah... } elsif ($simple){ # maybe you just need the ID of the incoming query: my ($id) = getSimpleArticleIDs('NCBI_gi', $article); # or maybe you are going to do something with the content? # for example, this will get the array of text lines # for the moby:String object with articleName 'SequenceString' # that is in this $article @s = getNodeContentWithArticle( $article, "String", "SequenceString"); # DO YOUR ANALYSIS HERE my $result = ""; #whatever you analysis says $RESPONSE .= simpleResponse($result, "someName", $queryID); } } } # note that responseHeader now takes an authority argument return responseHeader("my.authURI.com") . $RESPONSE . responseFooter; } M -- Mark Wilkinson Illuminae From yshigemo at genes.nig.ac.jp Sun Nov 9 19:16:20 2003 From: yshigemo at genes.nig.ac.jp (Yasumasa Shigemoto) Date: Sun Nov 9 19:13:01 2003 Subject: [MOBY-l] sample code of Central.call method References: Message-ID: <3FAED8D4.B4FC995@genes.nig.ac.jp> Dear Martin, > > Can I invoke RetrieveGOFromKeywords method by Central.call method? > > > You can - if you know what input XML format looks like. I read the API document at http://biomoby.org/twiki/bin/view/TWiki/BioMOBYAPI. And I try to access using 'central.call("GenbankAccSequenceRetrieve", inputXML))'. (inputXML is String and the value is printed below.) But I get an Error. METHOD CALL: GenbankAccSequenceRetrieve ------------ ------------ Exception in thread "main" org.biomoby.shared.MobyException: ===ERROR=== Fault details: [stackTrace: null] Fault string: Failed to locate method (GenbankAccSequenceRetrieve) in class (MOB Y::Central) at /usr/local/lib/perl5/site_perl/5.8.0/SOAP/Lite.pm line 2195. Fault code: {http://schemas.xmlsoap.org/soap/envelope/}Client Fault actor: null When calling: http://mobycentral.cbr.nrc.ca/cgi-bin/MOBY05/mobycentral.pl =========== at org.biomoby.client.CentralImpl.doCall(Unknown Source) at org.biomoby.client.CentralImpl.call(Unknown Source) at Q.main(Q.java:43) Is the inputXML wrong? Regards, Yasumasa Shigemoto Martin Senger wrote: > > > Can I invoke RetrieveGOFromKeywords method by Central.call method? > > > You can - if you know what input XML format looks like. > > > Or are there any way to invoke one? > > > There is no Java API for invoking moby services yet. I will provide it, > however, soon. Menatime you may be inspired by the CentralImpl code to see > how web services generally can be invoked, and do the same in your code. > But as with the previous paragraph, you need to know what XML input the > invoked service expects. > > > How do I specify 'xsd1:NOT_YET_DEFINED_INPUTS' including the WSDL? > > > Again: you need to know how the inut XML look like. Generally, it looks > like described in the Mobi API documentation, but it may be richer for a > particular service. > > Martin > > -- > Martin Senger > > EMBL Outstation - Hinxton Senger@EBI.ac.uk > European Bioinformatics Institute Phone: (+44) 1223 494636 > Wellcome Trust Genome Campus (Switchboard: 494444) > Hinxton Fax : (+44) 1223 494468 > Cambridge CB10 1SD > United Kingdom http://industry.ebi.ac.uk/~senger From senger at ebi.ac.uk Mon Nov 10 01:14:05 2003 From: senger at ebi.ac.uk (Martin Senger) Date: Mon Nov 10 01:10:51 2003 Subject: [MOBY-l] sample code of Central.call method In-Reply-To: <3FAED8D4.B4FC995@genes.nig.ac.jp> Message-ID: > I read the API document at http://biomoby.org/twiki/bin/view/TWiki/BioMOBYAPI. > This is a general API, a language independent API. For using the Java one, look rather in the jMoby pages - the API may not be yet visible there because the server has been moved recently. In that case, try my mirror: http://industry.ebi.ac.uk/~senger/jMoby/API/index.html. > And I try to access using 'central.call("GenbankAccSequenceRetrieve", > But I get an Error. >... > Exception in thread "main" org.biomoby.shared.MobyException: ===ERROR=== > Fault details: > [stackTrace: null] > Fault string: Failed to locate method (GenbankAccSequenceRetrieve) in class (MOB > Y::Central) at /usr/local/lib/perl5/site_perl/5.8.0/SOAP/Lite.pm line 2195. > ...which means that you have not specified the correct location (an endpoint of the service). You are calling the Moby Central, but you should be calling the service itself. Moby Central doe not provide services, it provides only pointers to them. Martin -- Martin Senger EMBL Outstation - Hinxton Senger@EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger From yshigemo at genes.nig.ac.jp Fri Nov 14 00:43:26 2003 From: yshigemo at genes.nig.ac.jp (Yasumasa Shigemoto) Date: Fri Nov 14 00:40:14 2003 Subject: [MOBY-l] sample code of Central.call method References: Message-ID: <3FB46B7E.52ABC6C8@genes.nig.ac.jp> Dear Martin, I changed the program but I got the following error. METHOD CALL: GenbankAccSequenceRetrieve ------------ ------------ Exception in thread "main" org.biomoby.shared.MobyException: ===ERROR=== Fault details: [stackTrace: null] Fault string: Denied access to method (GenbankAccSequenceRetrieve) in class (mai n) at /usr/local/lib/perl5/site_perl/5.8.0/SOAP/Lite.pm line 2128. Fault code: {http://schemas.xmlsoap.org/soap/envelope/}Client Fault actor: null When calling: http://mobycentral.cbr.nrc.ca/cgi-bin/Services/Services.cgi =========== at org.biomoby.client.CentralImpl.doCall(Unknown Source) at org.biomoby.client.CentralImpl.call(Unknown Source) at Q.main(Q.java:14) Could you change the code to work correctly? import org.biomoby.shared.*; import org.biomoby.client.*; import java.util.*; import java.io.*; public class Q { public static void main(String args[]) throws Exception { Central central = new CentralImpl( "http://mobycentral.cbr.nrc.ca/cgi-bin/Services/Services.cgi", "http://biomoby.org" ); central.setDebug(true); String inputXML = getXML(); System.out.println(central.call("GenbankAccSequenceRetrieve", inputXML)); } public static String getXML() throws Exception { return "\n"+ "\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; } } Regards, Yasumasa Shigemoto Martin Senger wrote: > > > I read the API document at http://biomoby.org/twiki/bin/view/TWiki/BioMOBYAPI. > > > This is a general API, a language independent API. For using the Java > one, look rather in the jMoby pages - the API may not be yet visible there > because the server has been moved recently. In that case, try my mirror: > http://industry.ebi.ac.uk/~senger/jMoby/API/index.html. > > > And I try to access using 'central.call("GenbankAccSequenceRetrieve", > > But I get an Error. > >... > > Exception in thread "main" org.biomoby.shared.MobyException: ===ERROR=== > > Fault details: > > [stackTrace: null] > > Fault string: Failed to locate method (GenbankAccSequenceRetrieve) in class (MOB > > Y::Central) at /usr/local/lib/perl5/site_perl/5.8.0/SOAP/Lite.pm line 2195. > > > ...which means that you have not specified the correct location (an > endpoint of the service). You are calling the Moby Central, but you should > be calling the service itself. Moby Central doe not provide services, it > provides only pointers to them. > > Martin > > -- > Martin Senger > > EMBL Outstation - Hinxton Senger@EBI.ac.uk > European Bioinformatics Institute Phone: (+44) 1223 494636 > Wellcome Trust Genome Campus (Switchboard: 494444) > Hinxton Fax : (+44) 1223 494468 > Cambridge CB10 1SD > United Kingdom http://industry.ebi.ac.uk/~senger From markw at illuminae.com Fri Nov 14 08:02:28 2003 From: markw at illuminae.com (Mark Wilkinson) Date: Fri Nov 14 07:58:52 2003 Subject: [MOBY] Re: [MOBY-l] sample code of Central.call method In-Reply-To: <3FB46B7E.52ABC6C8@genes.nig.ac.jp> References: <3FB46B7E.52ABC6C8@genes.nig.ac.jp> Message-ID: <1068814947.1710.22.camel@localhost.localdomain> I know very little about Java, or any of the libraries that Martin has been writing, but I can make a pretty good guess at why this isn't working... It appears that you are creating an instance of a MOBY Central object and trying to call a MOBY Service through calls to that object... There is no connection *at all* between a MOBY Service and MOBY Central. It is purely by coincidence that the GenbankAccServiceRetrieve service is hosted on the same machine as MOBY Central itself (mobycentral.cbr.nrc.ca) but don't be fooled by that - they are completely separate and have completely independent interfaces. ...so, I suspect that your Central central = new CentralImpl() is causing you the problems... I suspect that you cannot call a service using the CentralImpl interface. But I may be completely speaking out of my arse, as I don't really know how Martin's libraries work... but I don't think he is around at the moment so I thought I would try to help you in case he doesn't get to his mail for a few days. i hope this helps...??? Mark On Thu, 2003-11-13 at 23:43, Yasumasa Shigemoto wrote: > public static void main(String args[]) throws Exception { > Central central = new CentralImpl( > "http://mobycentral.cbr.nrc.ca/cgi-bin/Services/Services.cgi", > "http://biomoby.org" > ); > central.setDebug(true); > String inputXML = getXML(); > System.out.println(central.call("GenbankAccSequenceRetrieve", inputXML)); From michael at acutrans.net Mon Nov 17 11:34:25 2003 From: michael at acutrans.net (Michael Jensen) Date: Mon Nov 17 11:30:55 2003 Subject: [MOBY-l] 411 length required error? Message-ID: I am following the "Creating Services" page on biomoby.org in just trying to get the basic sample service to work, and I get this: Status: 411 Length Required When I run the following script, do I need to pass something in? I tried a few things but to no avail. #!/usr/bin/perl -w use SOAP::Transport::HTTP; use lib "/Users/michaeljensen/Sites/cgi-bin/"; use MOBY::LocalServices; #use MOBY::OtherLocalServices; my $Server = new SOAP::Transport::HTTP::CGI; #$Server->dispatch_with({ #?'http://biomoby.org/#GetGoTerm' => 'MOBY::LocalServices', #'http://biomoby.org/#GetOtherSequence' => 'MOBY::OtherLocalServices', #'http://biomoby.org/#YetAnotherService' => 'MOBY::OtherLocalServices',}); $Server->dispatch_with({'http://biomoby.org/#GetGoTerm' => 'MOBY::LocalServices',}); $Server->handle(); I'm new to this biomoby stuff, so any help would be appreciated. Thanks!! -Michael Jensen mdjgf8@mizzou.edu From michael at acutrans.net Mon Nov 17 11:37:23 2003 From: michael at acutrans.net (Michael Jensen) Date: Mon Nov 17 11:33:52 2003 Subject: [MOBY-l] namespace, objects, etc help with INPUT/OUTPUT Message-ID: <525C1E1E-191C-11D8-89F8-000393B6201C@acutrans.net> I am trying to understand the XML for registering a service, but I am not sure where to map what such as when using existing objects and namespaces. I know I don't have to build this by hand, but I want to understand what each part is doing, etc. Is there some sort of list that says "this is an objectType" and this is the "Namespace" it is in, and what an articleName is, etc.? moby GoGene Retrieval gogene.missouri.edu http://gogene.missouri.edu/cgi-bin/gogene.pl; mdjgf8@mizzou.edu 1 Gene Genbank:Gene TotalCrap Genbank:Crap YetMoreCrap Genbank:Crap INT 10 100 1 1 2 10 100 TotalCrap Genbank:Crap The input and output is what I am trying to understand mostly. For the input there is a simple articlename, and then a collection with a simple articlename. I assume I could just use the first simple without a "collectioN", but then my question is what would an example articlename be and accompanying objecttype and namespace. Thanks! -Michael Jensen mdjgf8@mizzou.edu From steube at sdsc.edu Mon Nov 17 15:45:08 2003 From: steube at sdsc.edu (Ken Steube) Date: Mon Nov 17 15:41:35 2003 Subject: [MOBY-l] 411 length required error? In-Reply-To: Message-ID: The script you are running is the dispatcher CGI. Its job is to receive requests to run services, and it's not the script you use if you want to simple run a service. The Length Required message is what you expect to see if you run this script at the command line. I've included a script to run the GetGoTerm service here: #!/usr/local/bin/perl5.6.1 use warnings 'all'; use strict; use MOBY::Client::Central; use MOBY::Client::Service; my $Central = MOBY::Client::Central->new(); my ($Services, $REG) = $Central->findService( authURI => 'www.illuminae.com', serviceName => 'getGoTerm', ); unless ($Services) { print "Discovery failed: ", $REG->message; exit(1); } my $svc = $Services->[0]; print "Executing service ", $svc->name, "\n", $svc->description, "\n\n"; my $wsdl = $Central->retrieveService($svc); my $S = MOBY::Client::Service->new(service => $wsdl); my $result = $S->execute( XMLinputlist => [ ['', qq{}] ] ) || 'No result'; print $result, "\n"; If instead you'd like to set up your own service in perl then you should go to http://plantgenome.sdsc.edu/mobyed2/Fasta_Service and try my FASTA example service. It's intended to be complete and easy to set up. Ken On Mon, 17 Nov 2003, Michael Jensen wrote: > > I am following the "Creating Services" page on biomoby.org in just > trying to get the basic sample service to work, and I get this: > > Status: 411 Length Required > > > When I run the following script, do I need to pass something in? I > tried a few things but to no avail. > > #!/usr/bin/perl -w > use SOAP::Transport::HTTP; > use lib "/Users/michaeljensen/Sites/cgi-bin/"; > use MOBY::LocalServices; > > #use MOBY::OtherLocalServices; > my $Server = new SOAP::Transport::HTTP::CGI; > #$Server->dispatch_with({ > #?'http://biomoby.org/#GetGoTerm' => 'MOBY::LocalServices', > #'http://biomoby.org/#GetOtherSequence' => 'MOBY::OtherLocalServices', > #'http://biomoby.org/#YetAnotherService' => > 'MOBY::OtherLocalServices',}); > > $Server->dispatch_with({'http://biomoby.org/#GetGoTerm' => > 'MOBY::LocalServices',}); > > $Server->handle(); > > > I'm new to this biomoby stuff, so any help would be appreciated. > Thanks!! > > -Michael Jensen > mdjgf8@mizzou.edu > > > > _______________________________________________ > moby-l mailing list > moby-l@biomoby.org > http://biomoby.org/mailman/listinfo/moby-l > -- ------------------------------------- Ken Steube steube@sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From steube at sdsc.edu Mon Nov 17 16:00:02 2003 From: steube at sdsc.edu (Ken Steube) Date: Mon Nov 17 15:56:30 2003 Subject: [MOBY-l] namespace, objects, etc help with INPUT/OUTPUT In-Reply-To: <525C1E1E-191C-11D8-89F8-000393B6201C@acutrans.net> Message-ID: You don't have to deal with that XML. It's just what MOBY uses internally to transmit your registration request to MOBY-Central. If you're really interested in understanding that XML the best source I know of is http://www.biomoby.org/twiki/bin/view/TWiki/BioMOBYAPI. It's pretty sparse on the details. Instead of messing with this XML, you register a service with the registerService call as shown below. my $C = MOBY::Client::Central->new(); my $reg = $C->registerService( serviceName => 'test_SequenceToFASTA', authURI => $authURI, contactEmail => $email, description => "Example service: formats a sequence in FASTA format", URL => $url, input => [ ['', ["GenericSequence" => []]], ], output => [ ['', ["FASTA" => []]], ], category => "moby", serviceType => "Retrieval", ); die "Bad return value from registerService" unless $reg; if ($reg->success == 1){ print "Registration successful\n\n"; } else { print "Registration failed: ", $reg->message, "\n"; } The input of this service is a GenericSequence object and the output is a FASTA object, which is just a string containing a namespace+id and a string containing a FASTA formatted sequence. An articleName is required when a service specifies an input or output object is named. Such as 975 TAGC... The GenericSequence object is named mySequence and the length and sequence components are also named Length and SequenceString. If a service has only one input, then a name is not required and many service providers leave articleName blank. The GenericSequence object is registered to require only the names Length and SequenceString. In the example GenericSequence above the namespace/id parameters tell where the sequence came from and gives the ID used to retrieve it. I think I answered all the questions...ask again if not! Ken On Mon, 17 Nov 2003, Michael Jensen wrote: > I am trying to understand the XML for registering a service, but I am > not sure where to map what such as when using existing objects and > namespaces. I know I don't have to build this by hand, but I want to > understand what each part is doing, etc. Is there some sort of list > that says "this is an objectType" and this is the "Namespace" it is in, > and what an articleName is, etc.? > > > moby > GoGene > Retrieval > gogene.missouri.edu > http://gogene.missouri.edu/cgi-bin/gogene.pl; > mdjgf8@mizzou.edu > 1 > some description here > ]]> > > > > Gene > Genbank:Gene > > > > TotalCrap > Genbank:Crap > > > YetMoreCrap > Genbank:Crap > > > > > > INT > 10 > 100 > 1 > 1 > 2 > 10 > 100 > > > > > TotalCrap > Genbank:Crap > > > > > The input and output is what I am trying to understand mostly. For the > input there is a simple articlename, and then a collection with a > simple articlename. I assume I could just use the first simple without > a "collectioN", but then my question is what would an example > articlename be and accompanying objecttype and namespace. > > Thanks! > > -Michael Jensen > mdjgf8@mizzou.edu > > > _______________________________________________ > moby-l mailing list > moby-l@biomoby.org > http://biomoby.org/mailman/listinfo/moby-l > -- ------------------------------------- Ken Steube steube@sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From markw at illuminae.com Mon Nov 17 17:04:25 2003 From: markw at illuminae.com (Mark Wilkinson) Date: Mon Nov 17 17:00:45 2003 Subject: [unclassified] Re: [MOBY-l] namespace, objects, etc help with INPUT/OUTPUT References: Message-ID: <3FB945E9.5050508@illuminae.com> Hey Ken, Thanks for covering this one - I'm swamped at the moment. heads up, though: >http://www.biomoby.org/twiki/bin/view/TWiki/BioMOBYAPI. It's pretty >sparse on the details. > > that URL is no longer valid (it may disappear soon). The new link is available on the homepage in the usual spot on the left hand menubar. M From lam87 at cornell.edu Wed Nov 19 10:09:25 2003 From: lam87 at cornell.edu (Lukas Mueller) Date: Wed Nov 19 09:56:54 2003 Subject: [MOBY-l] Test server In-Reply-To: <1068814947.1710.22.camel@localhost.localdomain> Message-ID: <5D3B5F35-1AA2-11D8-A3D9-000393161D04@cornell.edu> Hi Mark & Co, You mentioned previously that you would install a MOBY Central test server. Have you ever had the chance to set it up? We'd like to develop some services at SGN and a test server would be helpful. Cheers Lukas From markw at illuminae.com Wed Nov 19 13:12:40 2003 From: markw at illuminae.com (Mark Wilkinson) Date: Wed Nov 19 13:10:09 2003 Subject: [MOBY-l] BioMOBY website updated with "hot links"! Message-ID: <3FBBB298.6080803@illuminae.com> Hi all, I've just spent a few minutes updating the BioMOBY homepage to include links to the great tools, toys, and tutorials that people have been writing for the project. There are now links to Catherine's tutoral on MOBY-S client programs, Ken's tutorial on setting up MOBY-S services (Ken, can you check that this is compliant with the recent API changes?), and Martin's totally cool Graphical Registry Browser and Query system!! Thanks to all these contributors!! your efforts are VERY appreciated!! I am going to do a TOTAL rennovation of the website sometime in the next couple of weeks to try to pull together pieces of related information, in particular to ensure clarity between the MOBY-S vs. S-MOBY branches of the project. It's getting a bit confusing in there right now... If anyone has news, events, announcements, or any other "stuff" that they would like to see on the website please drop me a message. Cheers all! Mark From senger at ebi.ac.uk Thu Nov 20 14:02:05 2003 From: senger at ebi.ac.uk (Martin Senger) Date: Thu Nov 20 13:58:26 2003 Subject: [MOBY-l] clarification of some Java issues In-Reply-To: <3FB46B7E.52ABC6C8@genes.nig.ac.jp> Message-ID: Recently I have got several questions regarding using Java in BioMoby. The questions indicated some confusion - let me please try to explain it here - later I will update the jMoby documentation to reflect the same there. At the moment, Java in the BioMoby project is used only for accessing Moby Central registry. There are two ways how to access the registry using Java: a) You can use ready clients. For that you do not need to write your own Java programs - just call the available clients to get the contents of the registry, or to register new items in the registry. The main client doing this can be invoked by 'run-cmdline-client' script. There is a long help for this client explaining what you can do (everything is done from the command-line). b) Or you can write your own program by using class CentralImpl that takes care about putting your requests into proper XML pieces and calls the registry. The API for this class in called Central.java and should be available from the main BioMoby web site (there were some issues with it - but Mark took care about it and all links will soon be available - meanwhile you may use my mirror - http://industry.ebi.ac.uk/~senger/jMoby/API/index.html). Notice that both methods above are used to access BioMoby registry, NOT THE INDIVIDUAL SERVICES. I am working on another API which will hopefully help to call services but this API does not exist yet. However - and here is why the confusion appeared - the interface Central.java has also a method 'call' that can send any data to any method. The method does not help with the XML (you have to know what XML to send, and you get back again an XML without any support) but it helps you with the SOAP itself (you do not need to kniow how to create a SOAP request). Because of this partially support, some users started to use this 'call' method also for calling services. It is possible, but there were, however, two issues with such usage: a) It is necessary to say that you are not calling a service, and not the biomoby registry. This can be done by supplying proper endpoint and namespace in the constructor. For example, you may use in yourt program: Central central = new CentralImpl ( "http://mobycentral.cbr.nrc.ca/cgi-bin/Services/Services.cgi", "http://biomoby.org/" ); (Mark, this was in the example code that Yasumasa Shigemoto showed in his email - so he was really calling the service, not the registry. His problem was somewhere else - see below - but not here.) b) As we found during the last I3C hackathon, in order to make the Perl-based service happy, it is necessary to set SOAPAction header. The CentralImpl did not do it. It does not matter when you call the biomoby registry (from the reasons I have already forgotten, perhaps Mark remembers them) but it matters when you call other services (without this header you usually receive "access denied" error message). Today, I have fixed this. I have added SOAPAction header to the CentralImpl. After this fix, the CentralImpl actually can be used for calling services. But as I said you do not have any support for dealing with the input and output XML. I consider this usage a "quick-and-dirty" way - and I hope to come soon with more practical solution (similar to what Marks's CommonSubs does for the Perl users). Regards, Martin -- Martin Senger EMBL Outstation - Hinxton Senger@EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger From senger at ebi.ac.uk Thu Nov 20 14:08:56 2003 From: senger at ebi.ac.uk (Martin Senger) Date: Thu Nov 20 14:05:12 2003 Subject: [MOBY-l] sample code of Central.call method In-Reply-To: <3FB46B7E.52ABC6C8@genes.nig.ac.jp> Message-ID: > I changed the program but I got the following error. > ... > Fault string: Denied access to method (GenbankAccSequenceRetrieve) in class (mai > n) at /usr/local/lib/perl5/site_perl/5.8.0/SOAP/Lite.pm line 2128. > I have explained all details in a separate mail. Please take the latest copy of jMoby (with the latest CentralImpl fix) and your program will work (I have just tried it now with success). The other problem with your program was that you have been using the wrong namespace "http://biomoby.org" - the correct one (as indicated in the WSDL of this service) is "http://biomoby.org/" (notice the ending slash). Now your code works (at least it gets a response from the service - if the response is meaningful it's another question, of course). I have got this result: Regards, Martin -- Martin Senger EMBL Outstation - Hinxton Senger@EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger From michael at acutrans.net Thu Nov 20 17:02:35 2003 From: michael at acutrans.net (Michael Jensen) Date: Thu Nov 20 16:58:56 2003 Subject: [MOBY-l] approximate # of services on biomoby? Message-ID: <3F2FCF92-1BA5-11D8-9B14-000393B6201C@acutrans.net> Can anyone give me an approximate number of services currently using BioMoby? Thanks! -Michael Jensen mdjgf8@mizzou.edu From steube at sdsc.edu Thu Nov 20 20:14:51 2003 From: steube at sdsc.edu (Ken Steube) Date: Thu Nov 20 20:11:08 2003 Subject: [MOBY-l] approximate # of services on biomoby? In-Reply-To: <3F2FCF92-1BA5-11D8-9B14-000393B6201C@acutrans.net> Message-ID: There are 27. Take a look at http://plantsp.sdsc.edu/plantsp/cgi-bin/MOBY/list.services.cgi Ken On Thu, 20 Nov 2003, Michael Jensen wrote: > Can anyone give me an approximate number of services currently using > BioMoby? > > Thanks! > > -Michael Jensen > mdjgf8@mizzou.edu > > > _______________________________________________ > moby-l mailing list > moby-l@biomoby.org > http://biomoby.org/mailman/listinfo/moby-l > -- ------------------------------------- Ken Steube steube@sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From michael at acutrans.net Fri Nov 21 00:02:04 2003 From: michael at acutrans.net (Michael Jensen) Date: Fri Nov 21 11:38:02 2003 Subject: [MOBY-l] glue for web services... Message-ID: There are lots of neat services people are putting up on moby. One of the advantages to moby is being able to put together services...one service's output as another's input. Is there some quick way to get the output from one service into another service without parsing all the XML as the result? For example I would like to use SearchPubMed and get some PMIDs, and then use those in GetPubmed to get the MEDLINE display format. Any help, guidance, or redirection would be appreciated! I have been learning by using one of the tutorial scripts like the following: #!/usr/bin/perl #Executes a service, where the name of the service, its namespace and its parameter are provided on the command line. use MOBY::Client::Central; use MOBY::Client::Service; my $Central = MOBY::Client::Central->new(); my $serv_name = ($ARGV[0])? $ARGV[0] : 'getGoTerm'; my $namespace = ($ARGV[1])? $ARGV[1] : 'go'; my $query = ($ARGV[2])? $ARGV[2] : '0012502'; print $serv_name, " ", $namespace, " ", $query, "\n"; my ($ServiceInstances,$RegObject) = $Central->findService( serviceName=>$serv_name); if (not $ServiceInstances) { die $RegObject->message; } foreach my $ServiceInstance (@{ $ServiceInstances} ) { my $WSDL = $Central->retrieveService($ServiceInstance); my $Service = MOBY::Client::Service->new(service => $WSDL); my $Triple = ''; print "Triple: $Triple\n"; print "Sending request to ", $ServiceInstance->authority,"\n"; my $result = $Service->execute(XMLinputlist => [ ['object1', $Triple] ]); print "result: ", $result, "\n"; } The result is in XML format so I could parse it and get my values, but I was thinking there may be a better way to do it than I am not aware of. Thanks! -Michael Jensen mdjgf8@mizzou.edu -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 2022 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-l/attachments/20031120/b4569df6/attachment-0001.bin From dag at sonsorol.org Thu Nov 20 10:38:23 2003 From: dag at sonsorol.org (Chris Dagdigian) Date: Fri Nov 21 11:38:09 2003 Subject: [MOBY-l] Total OBF server shutdown Saturday November 22nd (all day EDT timezone) Message-ID: <3FBCDFEF.1010807@sonsorol.org> Hi folks, Apologies for the massive cross-posting. Our CVS, mailing list and web servers are located in a Cambridge, MA USA datacenter belonging to Wyeth Resarch. Genetics Institute (which became part of Wyeth) has supported our signficant internet bandwidth and hosting needs for many years since the earliest versions of our open source efforts. Since I have to do this massive cross-post anyway I figured it was a good time to thank them again in public. The real reason for this message is to announce a 1-day period of significant server downtime. The office floor & datacenter in the building where our servers are hosted is going to have a planned electrical shutdown (including emergency and backup power circuits) from 10am - 6pm on Saturday November 22nd. I'll be manually bringing down our servers sometime before the 10am deadline. The time estimate is conservative. In the event that the facilty work takes less time than expected I'll probably take advantage of the window to perform some server upgrades and failed disk replacements. For any questions/concerns or if you notice a server or service that is still not available after the 22nd please contact me directly at 'chris@bioteam.net' or 1-617-877-5498. Regards, Chris From steube at sdsc.edu Fri Nov 21 11:51:23 2003 From: steube at sdsc.edu (Ken Steube) Date: Fri Nov 21 11:47:47 2003 Subject: [MOBY-l] glue for web services... In-Reply-To: Message-ID: Part of my "Discovering and Executing Services" talk shows how to do this: http://plantgenome.sdsc.edu/mobyed2/Talks/discovering_executing_services.html Page 2 has a link to my PBI_Cluster_Blast program which does what you want. If you need go ahead and parse the XML the MobyXmlObject.pm perl module supplied with the FASTA example makes it easy. Ken On Thu, 20 Nov 2003, Michael Jensen wrote: > There are lots of neat services people are putting up on moby. One of > the advantages to moby is being able to put together services...one > service's output as another's input. Is there some quick way to get the > output from one service into another service without parsing all the > XML as the result? For example I would like to use SearchPubMed and get > some PMIDs, and then use those in GetPubmed to get the MEDLINE display > format. Any help, guidance, or redirection would be appreciated! > > > I have been learning by using one of the tutorial scripts like the > following: > > > #!/usr/bin/perl > #Executes a service, where the name of the service, its namespace and > its parameter are provided on the command line. > > use MOBY::Client::Central; > use MOBY::Client::Service; > > my $Central = MOBY::Client::Central->new(); > > my $serv_name = ($ARGV[0])? $ARGV[0] : 'getGoTerm'; > my $namespace = ($ARGV[1])? $ARGV[1] : 'go'; > my $query = ($ARGV[2])? $ARGV[2] : '0012502'; > print $serv_name, " ", $namespace, " ", $query, "\n"; > > my ($ServiceInstances,$RegObject) = $Central->findService( > serviceName=>$serv_name); > if (not $ServiceInstances) { > die $RegObject->message; > } > > foreach my $ServiceInstance (@{ $ServiceInstances} ) { > my $WSDL = $Central->retrieveService($ServiceInstance); > my $Service = MOBY::Client::Service->new(service => $WSDL); > my $Triple = ''; > print "Triple: $Triple\n"; > print "Sending request to ", $ServiceInstance->authority,"\n"; > my $result = $Service->execute(XMLinputlist => [ > ['object1', $Triple] ]); > print "result: ", $result, "\n"; > } > > The result is in XML format so I could parse it and get my values, but > I was thinking there may be a better way to do it than I am not aware > of. Thanks! > > -Michael Jensen > mdjgf8@mizzou.edu -- ------------------------------------- Ken Steube steube@sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From avraham at cshl.edu Fri Nov 21 17:53:44 2003 From: avraham at cshl.edu (Shuly Avraham) Date: Fri Nov 21 17:49:57 2003 Subject: [MOBY-l] Re: [MOBY-dev] meeting minutes under construction In-Reply-To: <1048089330.2120.45.camel@illuminae> Message-ID: Hey Mark, Fiona, Ardi and myself are trying to install the new Moby Central (0.6) and write new services. We followed the local installation procedures, and whenever we run testMOBYClientCentral_v05.pl pointing to the local moby central server we get the following error message: Unexpected Content-Type '' returned We tested SOAP::Lite and it works fine. In addition testMOBYCentral_v05.pl works fine. We appreciate any help we can get on this. Thanks, CSHL's MOBY team From markw at illuminae.com Fri Nov 21 19:03:50 2003 From: markw at illuminae.com (Mark Wilkinson) Date: Fri Nov 21 19:00:03 2003 Subject: [MOBY-l] Re: [MOBY] Re: [MOBY-dev] meeting minutes under construction In-Reply-To: References: Message-ID: <1069459430.1709.98.camel@localhost.localdomain> Hi Shuly, Since this is addressed to me, I don't know if you intentionally sent this to all of the mailing lists or not... but you did :-) I've just made a small fix that will allow you to run a local MOBY Central, but the error message you are describing isn't consistent with the error that resulted from this bug, so I don't know what is going wrong. Please send me the line of code you are using to connect to your local registry, and any other details that may be important. M On Fri, 2003-11-21 at 16:53, Shuly Avraham wrote: > Hey Mark, > Fiona, Ardi and myself are trying to install the new Moby Central (0.6) > and > write new services. > We followed the local installation procedures, and whenever we run > testMOBYClientCentral_v05.pl pointing to the local moby central server we > get the following error message: > Unexpected Content-Type '' returned > We tested SOAP::Lite and it works fine. > > In addition testMOBYCentral_v05.pl works fine. > > We appreciate any help we can get on this. > > > Thanks, CSHL's MOBY team > > -- Mark Wilkinson Illuminae From mdjgf8 at mizzou.edu Fri Nov 21 23:28:18 2003 From: mdjgf8 at mizzou.edu (Michael Jensen) Date: Tue Nov 25 09:21:04 2003 Subject: [MOBY-l] mobyxmlobject.pm question Message-ID: <4C0CAD43-1CA4-11D8-8F99-000393B6201C@mizzou.edu> I have been trying to use the MobyXMLObject.pm as Ken suggested, but am having a few problems beyond the samples used. I am trying to combine the two pubmed services by piping the PMIDs from SearchPubmed to getting Medline output from getPubmed. I have been trying to get MobyXMLObject.pm to work with SearchPubmed but it doesn't want to work, returning nothing except for the webservice. I think the problem might be that the output has tags instead of like so: as opposed to the XML from the test xml found on Ken's learning site. 4 MGGC I tried to slowly put in the results from SearchPubmed into the test xml script from Ken's site, and I can get a result as long as I keep a from the example script along with a from the results of SearchPubmed (just copied and pasted). The mobyxmltest.pl file attached here is the one referred to just now, and the pubmed_combined.pl is my other attempt at using SearchPubmed to list the PMIDs (so next I can feed those into getPubmed). I am not sure if I am just missing something obvious or what, but I have tried a lot of different things to understand how to get the elements I need. Any help would be greatly appreciated! Thanks! -------------- next part -------------- A non-text attachment was scrubbed... Name: pubmed_combined.pl Type: application/octet-stream Size: 1781 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-l/attachments/20031121/1c187020/pubmed_combined.obj -------------- next part -------------- A non-text attachment was scrubbed... Name: mobyxmltest.pl Type: application/octet-stream Size: 1286 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-l/attachments/20031121/1c187020/mobyxmltest.obj From mdjgf8 at mizzou.edu Tue Nov 25 08:41:04 2003 From: mdjgf8 at mizzou.edu (Michael Jensen) Date: Tue Nov 25 09:21:05 2003 Subject: [MOBY-l] MobyXMLObject.pm question... Message-ID: <042672BA-1F4D-11D8-83F5-000393B6201C@mizzou.edu> I have been trying to use the MobyXMLObject.pm as Ken suggested, but am having a few problems beyond the samples used. I am trying to combine the two pubmed services by piping the PMIDs from SearchPubmed to getting Medline output from getPubmed. I have been trying to get MobyXMLObject.pm to work with SearchPubmed but it doesn't want to work, returning nothing except for the webservice. I think the problem might be that the output has tags instead of like so: as opposed to the XML from the test xml found on Ken's learning site. 4 MGGC I tried to slowly put in the results from SearchPubmed into the test xml script from Ken's site, and I can get a result as long as I keep a from the example script along with a from the results of SearchPubmed (just copied and pasted). The mobyxmltest.pl file attached here is the one referred to just now, and the pubmed_combined.pl is my other attempt at using SearchPubmed to list the PMIDs (so next I can feed those into getPubmed). I am not sure if I am just missing something obvious or what, but I have tried a lot of different things to understand how to get the elements I need. Any help would be greatly appreciated! Thanks! (I tried posting this a few days ago, but never went through?) -------------- next part -------------- A non-text attachment was scrubbed... Name: pubmed_combined.pl Type: application/octet-stream Size: 1781 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-l/attachments/20031125/8b7238b5/pubmed_combined.obj -------------- next part -------------- A non-text attachment was scrubbed... Name: mobyxmltest.pl Type: application/octet-stream Size: 1286 bytes Desc: not available Url : http://portal.open-bio.org/pipermail/moby-l/attachments/20031125/8b7238b5/mobyxmltest.obj From steube at sdsc.edu Tue Nov 25 12:07:25 2003 From: steube at sdsc.edu (Ken Steube) Date: Tue Nov 25 12:14:03 2003 Subject: [MOBY-l] MobyXMLObject.pm question... In-Reply-To: <042672BA-1F4D-11D8-83F5-000393B6201C@mizzou.edu> Message-ID: MobyXmlObject.pm does manage to parse both Simple and moby:Simple. I have to run off for a meeting right now, but I'll take a look this afternoon when it's over. Ken On Tue, 25 Nov 2003, Michael Jensen wrote: > I have been trying to use the MobyXMLObject.pm as Ken suggested, but am > having a few problems beyond the samples used. I am trying to combine > the two pubmed services by piping the PMIDs from SearchPubmed to > getting Medline output from getPubmed. I have been trying to get > MobyXMLObject.pm to work with SearchPubmed but it doesn't want to work, > returning nothing except for the webservice. I think the problem might > be that the output has tags instead of like so: > > > > > > > > > as opposed to the XML from the test xml found on Ken's learning site. > > > > > articleName='Length'>4 > articleName='SequenceString'>MGGC > > > > > I tried to slowly put in the results from SearchPubmed into the test > xml script from Ken's site, and I can get a result as long as I keep a > from the example script along with a > from the results of SearchPubmed (just copied and > pasted). The mobyxmltest.pl file attached here is the one referred to > just now, and the pubmed_combined.pl is my other attempt at using > SearchPubmed to list the PMIDs (so next I can feed those into > getPubmed). > > I am not sure if I am just missing something obvious or what, but I > have tried a lot of different things to understand how to get the > elements I need. Any help would be greatly appreciated! Thanks! > > (I tried posting this a few days ago, but never went through?) > > > -- ------------------------------------- Ken Steube steube@sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From steube at sdsc.edu Tue Nov 25 17:40:13 2003 From: steube at sdsc.edu (Ken Steube) Date: Tue Nov 25 17:46:48 2003 Subject: [MOBY-l] MobyXMLObject.pm question... In-Reply-To: <042672BA-1F4D-11D8-83F5-000393B6201C@mizzou.edu> Message-ID: Michael, I had meant to handle queryResponse identically to the way I handle queryInput blocks, but forgot to put it in there. It's in now so copy the MobyXmlObject.pm file again from http://plantgenome.sdsc.edu/mobyed2/Fasta_Service What I do now is check for queryInput (and moby:queryInput) and if none is found I check for queryResponse (and moby:queryResponse). Then from whichever of those 4 blocks I found I return the Simples within. As mentioned in the BUGs section I don't deal with Collections yet. Will do this someday. Lemme know if there are any further problems. Ken On Tue, 25 Nov 2003, Michael Jensen wrote: > I have been trying to use the MobyXMLObject.pm as Ken suggested, but am > having a few problems beyond the samples used. I am trying to combine > the two pubmed services by piping the PMIDs from SearchPubmed to > getting Medline output from getPubmed. I have been trying to get > MobyXMLObject.pm to work with SearchPubmed but it doesn't want to work, > returning nothing except for the webservice. I think the problem might > be that the output has tags instead of like so: > > > > > > > > > as opposed to the XML from the test xml found on Ken's learning site. > > > > > articleName='Length'>4 > articleName='SequenceString'>MGGC > > > > > I tried to slowly put in the results from SearchPubmed into the test > xml script from Ken's site, and I can get a result as long as I keep a > from the example script along with a > from the results of SearchPubmed (just copied and > pasted). The mobyxmltest.pl file attached here is the one referred to > just now, and the pubmed_combined.pl is my other attempt at using > SearchPubmed to list the PMIDs (so next I can feed those into > getPubmed). > > I am not sure if I am just missing something obvious or what, but I > have tried a lot of different things to understand how to get the > elements I need. Any help would be greatly appreciated! Thanks! > > (I tried posting this a few days ago, but never went through?) > > > -- ------------------------------------- Ken Steube steube@sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From yshigemo at genes.nig.ac.jp Tue Nov 25 19:18:54 2003 From: yshigemo at genes.nig.ac.jp (Yasumasa Shigemoto) Date: Tue Nov 25 19:25:29 2003 Subject: [MOBY-l] sample code of Central.call method References: Message-ID: <3FC3F16E.35E2CF73@genes.nig.ac.jp> Dear Martin, I downloaded the latest Java API and modified the code from "http://biomoby.org" to "http://biomoby.org/". So the code works similarly as you mentioned below. By the way I also tried to use Perl API and I can get a perfect result which contains sequence and length. Thanks, Yasumasa Shigemoto Martin Senger wrote: > > > I changed the program but I got the following error. > > ... > > Fault string: Denied access to method (GenbankAccSequenceRetrieve) in class (mai > > n) at /usr/local/lib/perl5/site_perl/5.8.0/SOAP/Lite.pm line 2128. > > > I have explained all details in a separate mail. Please take the latest > copy of jMoby (with the latest CentralImpl fix) and your program will work > (I have just tried it now with success). > The other problem with your program was that you have been using the > wrong namespace "http://biomoby.org" - the correct one (as indicated in > the WSDL of this service) is "http://biomoby.org/" (notice the ending > slash). > Now your code works (at least it gets a response from the service - if > the response is meaningful it's another question, of course). I have got > this result: > > > xmlns='http://www.biomoby.org/moby'> > > > > > > > > Regards, > Martin > > -- > Martin Senger > > EMBL Outstation - Hinxton Senger@EBI.ac.uk > European Bioinformatics Institute Phone: (+44) 1223 494636 > Wellcome Trust Genome Campus (Switchboard: 494444) > Hinxton Fax : (+44) 1223 494468 > Cambridge CB10 1SD > United Kingdom http://industry.ebi.ac.uk/~senger From markw at illuminae.com Wed Nov 26 11:37:56 2003 From: markw at illuminae.com (Mark Wilkinson) Date: Wed Nov 26 11:44:28 2003 Subject: [MOBY-l] website revamped Message-ID: <3FC4D6E4.1000104@illuminae.com> Hi all, I'm going to a "cleaner & cooler" look on the website. Please have a look and let me know what you think. I haven't yet updated all of the pages, but most of them are now in keeping with the new style. If I have missed referencing anyone's stuff (sorry!) please send me the info, URL, or whatever, and I'll be sure to put it up right away! Cheers, Mark From steube at sdsc.edu Wed Nov 26 19:03:28 2003 From: steube at sdsc.edu (Ken Steube) Date: Wed Nov 26 19:10:00 2003 Subject: [MOBY-l] queryInput supposed to be enumerated? In-Reply-To: <1068049313.1705.21.camel@localhost.localdomain> Message-ID: Mark, I just dumped the input XML to a service and was looking for the numbering that's supposed to be on queryInput items with queryID. Was expecting to see it but didn't...now wondering if I understood you correctly. Here's the input XML to my service The queryInput items have articleName but no queryID. What gives bro? Ken On Wed, 5 Nov 2003, Mark Wilkinson wrote: > The only change that is not backward-compatible with the existing API is > that queryInput blocks will now be enumerated, and queryResponse blocks > will be similarly enumerated according to the queryInput that they > correspond to. The API restriction of returning responses in the same > order as the inputs will be dropped, as will the Invocation object > cross-reference. This will allow services to do parallel computing > without having to worry about the order that the jobs finished. I can > *almost* hide these changes in the client-side libraries, but not > quite... the CommonSubs simpleResponse/collectionResponse methods will > now require a queryInput argument to make the input/output mapping > possible. > > I'm working on the code right now, but (as usual) I find myself adding > bits and pieces to make life easier so it is a few days away from > commit... > > Mark > > > On Tue, 2003-11-04 at 18:59, Ken Steube wrote: > > On Tue, 4 Nov 2003, Mark Wilkinson wrote: > > > (actually, I'm not really kidding... there are a few changes that need > > > to be made as a consequence of the MOBY meeting...) > > > > What methods are going to change and when will it be finalized? > > > > Will other changes be made to the API in the next year? > > > > Instead of replying to this letter, maybe you could make an announcement > > on moby-l about this. > > > > Ken > > > > ------------------------------------- > > Ken Steube steube@sdsc.edu > > San Diego Supercomputer Center @ UCSD > > San Diego, California USA > -- ------------------------------------- Ken Steube steube@sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From senger at ebi.ac.uk Wed Nov 26 19:33:57 2003 From: senger at ebi.ac.uk (Martin Senger) Date: Wed Nov 26 19:40:26 2003 Subject: [MOBY-l] website revamped In-Reply-To: <3FC4D6E4.1000104@illuminae.com> Message-ID: > If I have missed referencing anyone's stuff (sorry!) please send me the > info, URL, or whatever, and I'll be sure to put it up right away! > Page "Connecting to MOBY-Central" could have also an example in Java. Here it is: --- begin --- import org.biomoby.shared.*; import org.biomoby.client.*; import java.util.*; public class RetrieveServiceTypes { public static void main (String [] args) { try { Central worker = new CentralImpl (CentralImpl.DEFAULT_ENDPOINT, CentralImpl.DEFAULT_NAMESPACE); System.out.println ("KNOWN SERVICE TYPES\n"); Map types = worker.getServiceTypes(); for (Iterator it = types.entrySet().iterator(); it.hasNext();) { Map.Entry entry = (Map.Entry)it.next(); System.out.println (entry.getKey()); System.out.println ("\t" + entry.getValue()); } } catch (Exception e) { System.err.println ("===ERROR==="); System.err.println (e.toString()); System.err.println ("==========="); } } } --- end --- Also the Perl example is not complete (and should be). It needs: a) to add use MOBY::Client::Central; b) to add semicolon at the end, and c) print better the result (now it prints just: KNOWN SERVICE TYPES HASH(0x867aed8) Cheers, Martin -- Martin Senger EMBL Outstation - Hinxton Senger@EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger From mwilkinson at mobile.rogers.com Wed Nov 26 21:36:41 2003 From: mwilkinson at mobile.rogers.com (mwilkinson) Date: Wed Nov 26 21:47:21 2003 Subject: [MOBY-l] website revamped Message-ID: <200311270247.hAR2lJg0005949@portal.open-bio.org> Done. M From dag at sonsorol.org Mon Nov 3 22:41:51 2003 From: dag at sonsorol.org (Chris Dagdigian) Date: Mon, 03 Nov 2003 22:41:51 -0500 Subject: [MOBY-l] test message -- please ignore Message-ID: <3FA71FFF.1000007@sonsorol.org> If all goes well this message should get processed through the new biomoby.org mailing list and web server located at IP 65.246.187.176 aka 'portal.open-bio.org' -Chris From yshigemo at genes.nig.ac.jp Tue Nov 4 01:04:52 2003 From: yshigemo at genes.nig.ac.jp (Yasumasa Shigemoto) Date: Tue, 04 Nov 2003 15:04:52 +0900 Subject: [MOBY-l] sample code of Central.call method Message-ID: <3FA74184.E97732B0@genes.nig.ac.jp> Dear All, I am a beginner of biomoby and I am tring to access with using Java API. Would you give me a sample program of Central.call(methodName, inputXML) method? Regards, Yasumasa Shigemoto From steube at sdsc.edu Tue Nov 4 04:17:36 2003 From: steube at sdsc.edu (Ken Steube) Date: Tue, 4 Nov 2003 01:17:36 -0800 (PST) Subject: [MOBY-l] sample code of Central.call method In-Reply-To: <3FA74184.E97732B0@genes.nig.ac.jp> Message-ID: Try this one: #!/usr/local/bin/perl5.6.1 use warnings 'all'; use strict; use lib '/scratch/s1/MOBY/MOBY'; use MOBY::Client::Central; use MOBY::Client::Service; my $Central = MOBY::Client::Central->new(); my ($Services, $REG) = $Central->findService( authURI => 'www.sdsc.edu', serviceName => 'plantspGetPSeqFromAGI', ); unless ($Services) { print "Discovery failed: ", $REG->message; exit(1); } my $svc = $Services->[0]; print "Executing service ", $svc->name, "\n", $svc->description, "\n\n"; my $wsdl = $Central->retrieveService($svc); my $S = MOBY::Client::Service->new(service => $wsdl); my $result = $S->execute( XMLinputlist => [ ['', qq{}] ] ) || 'No result'; print $result, "\n"; I will change the name of this service from plantspGetPSeqFromAGI to plantspGetProtein sometime soon. Ken On Tue, 4 Nov 2003, Yasumasa Shigemoto wrote: > I am a beginner of biomoby and I am tring to > access with using Java API. > > Would you give me a sample program of > Central.call(methodName, inputXML) method? > > Regards, > Yasumasa Shigemoto ------------------------------------- Ken Steube steube at sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From senger at ebi.ac.uk Tue Nov 4 04:42:19 2003 From: senger at ebi.ac.uk (Martin Senger) Date: Tue, 4 Nov 2003 09:42:19 +0000 (GMT) Subject: [MOBY-l] sample code of Central.call method In-Reply-To: <3FA74184.E97732B0@genes.nig.ac.jp> Message-ID: > Would you give me a sample program of > Central.call(methodName, inputXML) method? > The 'call' method is there as a possibility to do things that you cannot do otherwise with the Java API. All major features of Biomoby registry are reachable using the other method of the API. The good thing about the 'call' method is that you can call whatever you wish, the bad thing is that you need to know what 'inputXML' is required and you need to provide it in XML (and not just like method parameters as with other methods). An example is to call method DUMP (which is not available in the API per se): Central.call ("DUMP", null); or doing the same from the command-line: ./run-cmdline-client -call DUMP Another example (with argument) is this: Central.call ("retrieveService", "retrieveService>"); But you can get the same by calling: Central.getServiceWSDL ("PBI_Cluster_Blast", "www.illuminae.com"); Other people were using 'call' method for calling their services (and not the Biomoby registry at all) - the XML input depends on the what the service expects. Folks, anybody has an example? Regards, Martin -- Martin Senger EMBL Outstation - Hinxton Senger at EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger From senger at ebi.ac.uk Tue Nov 4 04:47:20 2003 From: senger at ebi.ac.uk (Martin Senger) Date: Tue, 4 Nov 2003 09:47:20 +0000 (GMT) Subject: [MOBY-l] sample code of Central.call method In-Reply-To: Message-ID: Ken, Senator Cato used to close his talks in the ancient Rome with "By the way, I think Cartago should be destroyed.". Which seems to me to be close to your reply to Yasumasa "And by the way, here is a Perl solution." :-) Cheers, Martin -- Martin Senger EMBL Outstation - Hinxton Senger at EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger From steube at sdsc.edu Tue Nov 4 04:51:58 2003 From: steube at sdsc.edu (Ken Steube) Date: Tue, 4 Nov 2003 01:51:58 -0800 (PST) Subject: [MOBY-l] sample code of Central.call method In-Reply-To: Message-ID: Senator Cato sounds like he was a charming fellow. I didn't realize it was a java question...you never know what you'll get from me late at night like this! Ken On Tue, 4 Nov 2003, Martin Senger wrote: > Ken, > Senator Cato used to close his talks in the ancient Rome with "By the > way, I think Cartago should be destroyed.". Which seems to me to be close > to your reply to Yasumasa "And by the way, here is a Perl solution." :-) > > Cheers, > Martin > > -- ------------------------------------- Ken Steube steube at sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From yshigemo at genes.nig.ac.jp Tue Nov 4 23:20:35 2003 From: yshigemo at genes.nig.ac.jp (Yasumasa Shigemoto) Date: Wed, 05 Nov 2003 13:20:35 +0900 Subject: [MOBY-l] sample code of Central.call method References: Message-ID: <3FA87A93.F8EB342B@genes.nig.ac.jp> I confirmed to get the WSDL of 'RetrieveGOFromKeywords' using Central.getServiceWSDL("RetrieveGOFromKeywords"). And the WSDL is as follows. ... Can I invoke RetrieveGOFromKeywords method by Central.call method? Or are there any way to invoke one? How do I specify 'xsd1:NOT_YET_DEFINED_INPUTS' including the WSDL? Regards, Yasumasa Shigemoto Martin Senger wrote: > > > Would you give me a sample program of > > Central.call(methodName, inputXML) method? > > > The 'call' method is there as a possibility to do things that you > cannot do otherwise with the Java API. All major features of Biomoby > registry are reachable using the other method of the API. > The good thing about the 'call' method is that you can call whatever > you wish, the bad thing is that you need to know what 'inputXML' is > required and you need to provide it in XML (and not just like method > parameters as with other methods). > An example is to call method DUMP (which is not available in the API > per se): > Central.call ("DUMP", null); > or doing the same from the command-line: > ./run-cmdline-client -call DUMP > > Another example (with argument) is this: > > Central.call ("retrieveService", > "retrieveService> "serviceName=\"PBI_Cluster_Blast\"/>"); > But you can get the same by calling: > Central.getServiceWSDL ("PBI_Cluster_Blast", "www.illuminae.com"); > > Other people were using 'call' method for calling their services (and > not the Biomoby registry at all) - the XML input depends on the what the > service expects. Folks, anybody has an example? > > Regards, > Martin > > -- > Martin Senger > > EMBL Outstation - Hinxton Senger at EBI.ac.uk > European Bioinformatics Institute Phone: (+44) 1223 494636 > Wellcome Trust Genome Campus (Switchboard: 494444) > Hinxton Fax : (+44) 1223 494468 > Cambridge CB10 1SD > United Kingdom http://industry.ebi.ac.uk/~senger From senger at ebi.ac.uk Wed Nov 5 04:18:23 2003 From: senger at ebi.ac.uk (Martin Senger) Date: Wed, 5 Nov 2003 09:18:23 +0000 (GMT) Subject: [MOBY-l] sample code of Central.call method In-Reply-To: <3FA87A93.F8EB342B@genes.nig.ac.jp> Message-ID: > Can I invoke RetrieveGOFromKeywords method by Central.call method? > You can - if you know what input XML format looks like. > Or are there any way to invoke one? > There is no Java API for invoking moby services yet. I will provide it, however, soon. Menatime you may be inspired by the CentralImpl code to see how web services generally can be invoked, and do the same in your code. But as with the previous paragraph, you need to know what XML input the invoked service expects. > How do I specify 'xsd1:NOT_YET_DEFINED_INPUTS' including the WSDL? > Again: you need to know how the inut XML look like. Generally, it looks like described in the Mobi API documentation, but it may be richer for a particular service. Martin -- Martin Senger EMBL Outstation - Hinxton Senger at EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger From markw at illuminae.com Sat Nov 8 10:12:13 2003 From: markw at illuminae.com (Mark Wilkinson) Date: Sat, 08 Nov 2003 09:12:13 -0600 Subject: [MOBY-l] Change to the MOBY message format Message-ID: <1068304333.1708.49.camel@localhost.localdomain> Hi all, here's a heads-up that I am starting to implement a change to the MOBY-S messaging format that we decided on during the last MOBY-DIC meeting. It is the only one of the changes that is not fully backward-compatible with the existing message format, so I'm giving a bit of warning. I have made changes to the Perl CommonSubs library that makes all of this easy, and in fact, you likely wont break anything even if you continue using the old message structure, but... it wont be "correct" anymore :-) Here's the description of the change: The queryInput block(s) are now enumerated, and the queryResponse blocks are correspondingly enumerated such that inputs and outputs may be associated with each other Client-side. This is accomplished through a queryID attribute in the queryInput and queryResponse tags: ... ... This replaces the two rules in the 0.5 API that said: (1) outputs must appear in the same order in the response message as they appeared in the query message, and (2) services which change the namespace of the output object must provide an Invocation cross-reference pointing back at the originating query. Those two rules of the 0.5 API are now deprecated! The value you assign (client-side) to the queryID is completely arbitrary,and may be numeric, alphanumeric, or any other valid value of an XML attribute. It may also be blank, or absent (hence the backward compatibility), but be advised that you can no longer rely on the order of the outputs to map them back to your inputs, so... caveat emptor! Service providers MUST NOT try to interpret the value of the queryID attribute; it is an opaque value that they simply copy over into their queryResponse element. This change was made for two reasons: 1) the Invocation object was not sufficient to describe service inputs that consisted of Collections, or multiple Simple articles, and 2) the ordering of outputs was a pain in the butt for anyone providing services that did the underlying analysis in parallel, where the outputs might become available in an arbitrary order. I've just finished coding the various CommonSubs routines that will make this transition easy for the service provider, and I'm testing them now. As soon as they appear to be working properly (hopefully later today) I'll commit them. Hopefully this wont break anyone, but all existing services will have to be updated sooner or later anyway. Thankfully, this was the only seriously problematic part of the existing message format that we could identify during our discussions, so hopefully there wont be another major change like this for a long time! There are a few other changes to the API that we decided on, but these are simply extensions, and will not detrimentally affect anyone. I will implement those over the next week or so. Now that the Twiki has moved over to the new open-bio server I will also update the main API documentation so that we have a complete record of all changes. Cheers all! Mark -- Mark Wilkinson Illuminae From markw at illuminae.com Sat Nov 8 12:23:46 2003 From: markw at illuminae.com (Mark Wilkinson) Date: Sat, 08 Nov 2003 11:23:46 -0600 Subject: [MOBY-l] CommonSubs updated for new message structure Message-ID: <1068312226.1708.84.camel@localhost.localdomain> Okay, it looks like the new CommonSubs routine does not break the old routines, so people can begin to migrate over to the new message structure as they see fit. I will update all of my services in the LocalServices example module over the next few days, but below is a paradigmatic MOBY Service, using the various new routines in CommonSubs: sub myServiceName { my ($caller, $message) = @_; # get the incoming MOBY query XML my @queries = getInputs($message); # returns XML::DOM nodes my $RESPONSE = ""; # set empty response foreach my $query(@queries){ my $queryID = getInputID($query); # get the queryID attribute my @input_articles = getArticles($query); foreach my $input(@input_articles){ # input is a listref my ($articleName, $article) = @{$input}; # get the named article my $simple = isSimpleArticle($article); # simple or collection my $collection = isCollectionArticle($article); if ($collection){ # do something wtih the collection... # for example... my @simples = getCollectedSimples($article); # blah blah blah... } elsif ($simple){ # maybe you just need the ID of the incoming query: my ($id) = getSimpleArticleIDs('NCBI_gi', $article); # or maybe you are going to do something with the content? # for example, this will get the array of text lines # for the moby:String object with articleName 'SequenceString' # that is in this $article @s = getNodeContentWithArticle( $article, "String", "SequenceString"); # DO YOUR ANALYSIS HERE my $result = ""; #whatever you analysis says $RESPONSE .= simpleResponse($result, "someName", $queryID); } } } # note that responseHeader now takes an authority argument return responseHeader("my.authURI.com") . $RESPONSE . responseFooter; } M -- Mark Wilkinson Illuminae From yshigemo at genes.nig.ac.jp Sun Nov 9 19:16:20 2003 From: yshigemo at genes.nig.ac.jp (Yasumasa Shigemoto) Date: Mon, 10 Nov 2003 09:16:20 +0900 Subject: [MOBY-l] sample code of Central.call method References: Message-ID: <3FAED8D4.B4FC995@genes.nig.ac.jp> Dear Martin, > > Can I invoke RetrieveGOFromKeywords method by Central.call method? > > > You can - if you know what input XML format looks like. I read the API document at http://biomoby.org/twiki/bin/view/TWiki/BioMOBYAPI. And I try to access using 'central.call("GenbankAccSequenceRetrieve", inputXML))'. (inputXML is String and the value is printed below.) But I get an Error. METHOD CALL: GenbankAccSequenceRetrieve ------------ ------------ Exception in thread "main" org.biomoby.shared.MobyException: ===ERROR=== Fault details: [stackTrace: null] Fault string: Failed to locate method (GenbankAccSequenceRetrieve) in class (MOB Y::Central) at /usr/local/lib/perl5/site_perl/5.8.0/SOAP/Lite.pm line 2195. Fault code: {http://schemas.xmlsoap.org/soap/envelope/}Client Fault actor: null When calling: http://mobycentral.cbr.nrc.ca/cgi-bin/MOBY05/mobycentral.pl =========== at org.biomoby.client.CentralImpl.doCall(Unknown Source) at org.biomoby.client.CentralImpl.call(Unknown Source) at Q.main(Q.java:43) Is the inputXML wrong? Regards, Yasumasa Shigemoto Martin Senger wrote: > > > Can I invoke RetrieveGOFromKeywords method by Central.call method? > > > You can - if you know what input XML format looks like. > > > Or are there any way to invoke one? > > > There is no Java API for invoking moby services yet. I will provide it, > however, soon. Menatime you may be inspired by the CentralImpl code to see > how web services generally can be invoked, and do the same in your code. > But as with the previous paragraph, you need to know what XML input the > invoked service expects. > > > How do I specify 'xsd1:NOT_YET_DEFINED_INPUTS' including the WSDL? > > > Again: you need to know how the inut XML look like. Generally, it looks > like described in the Mobi API documentation, but it may be richer for a > particular service. > > Martin > > -- > Martin Senger > > EMBL Outstation - Hinxton Senger at EBI.ac.uk > European Bioinformatics Institute Phone: (+44) 1223 494636 > Wellcome Trust Genome Campus (Switchboard: 494444) > Hinxton Fax : (+44) 1223 494468 > Cambridge CB10 1SD > United Kingdom http://industry.ebi.ac.uk/~senger From senger at ebi.ac.uk Mon Nov 10 01:14:05 2003 From: senger at ebi.ac.uk (Martin Senger) Date: Mon, 10 Nov 2003 06:14:05 +0000 (GMT) Subject: [MOBY-l] sample code of Central.call method In-Reply-To: <3FAED8D4.B4FC995@genes.nig.ac.jp> Message-ID: > I read the API document at http://biomoby.org/twiki/bin/view/TWiki/BioMOBYAPI. > This is a general API, a language independent API. For using the Java one, look rather in the jMoby pages - the API may not be yet visible there because the server has been moved recently. In that case, try my mirror: http://industry.ebi.ac.uk/~senger/jMoby/API/index.html. > And I try to access using 'central.call("GenbankAccSequenceRetrieve", > But I get an Error. >... > Exception in thread "main" org.biomoby.shared.MobyException: ===ERROR=== > Fault details: > [stackTrace: null] > Fault string: Failed to locate method (GenbankAccSequenceRetrieve) in class (MOB > Y::Central) at /usr/local/lib/perl5/site_perl/5.8.0/SOAP/Lite.pm line 2195. > ...which means that you have not specified the correct location (an endpoint of the service). You are calling the Moby Central, but you should be calling the service itself. Moby Central doe not provide services, it provides only pointers to them. Martin -- Martin Senger EMBL Outstation - Hinxton Senger at EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger From yshigemo at genes.nig.ac.jp Fri Nov 14 00:43:26 2003 From: yshigemo at genes.nig.ac.jp (Yasumasa Shigemoto) Date: Fri, 14 Nov 2003 14:43:26 +0900 Subject: [MOBY-l] sample code of Central.call method References: Message-ID: <3FB46B7E.52ABC6C8@genes.nig.ac.jp> Dear Martin, I changed the program but I got the following error. METHOD CALL: GenbankAccSequenceRetrieve ------------ ------------ Exception in thread "main" org.biomoby.shared.MobyException: ===ERROR=== Fault details: [stackTrace: null] Fault string: Denied access to method (GenbankAccSequenceRetrieve) in class (mai n) at /usr/local/lib/perl5/site_perl/5.8.0/SOAP/Lite.pm line 2128. Fault code: {http://schemas.xmlsoap.org/soap/envelope/}Client Fault actor: null When calling: http://mobycentral.cbr.nrc.ca/cgi-bin/Services/Services.cgi =========== at org.biomoby.client.CentralImpl.doCall(Unknown Source) at org.biomoby.client.CentralImpl.call(Unknown Source) at Q.main(Q.java:14) Could you change the code to work correctly? import org.biomoby.shared.*; import org.biomoby.client.*; import java.util.*; import java.io.*; public class Q { public static void main(String args[]) throws Exception { Central central = new CentralImpl( "http://mobycentral.cbr.nrc.ca/cgi-bin/Services/Services.cgi", "http://biomoby.org" ); central.setDebug(true); String inputXML = getXML(); System.out.println(central.call("GenbankAccSequenceRetrieve", inputXML)); } public static String getXML() throws Exception { return "\n"+ "\n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ " \n"+ ""; } } Regards, Yasumasa Shigemoto Martin Senger wrote: > > > I read the API document at http://biomoby.org/twiki/bin/view/TWiki/BioMOBYAPI. > > > This is a general API, a language independent API. For using the Java > one, look rather in the jMoby pages - the API may not be yet visible there > because the server has been moved recently. In that case, try my mirror: > http://industry.ebi.ac.uk/~senger/jMoby/API/index.html. > > > And I try to access using 'central.call("GenbankAccSequenceRetrieve", > > But I get an Error. > >... > > Exception in thread "main" org.biomoby.shared.MobyException: ===ERROR=== > > Fault details: > > [stackTrace: null] > > Fault string: Failed to locate method (GenbankAccSequenceRetrieve) in class (MOB > > Y::Central) at /usr/local/lib/perl5/site_perl/5.8.0/SOAP/Lite.pm line 2195. > > > ...which means that you have not specified the correct location (an > endpoint of the service). You are calling the Moby Central, but you should > be calling the service itself. Moby Central doe not provide services, it > provides only pointers to them. > > Martin > > -- > Martin Senger > > EMBL Outstation - Hinxton Senger at EBI.ac.uk > European Bioinformatics Institute Phone: (+44) 1223 494636 > Wellcome Trust Genome Campus (Switchboard: 494444) > Hinxton Fax : (+44) 1223 494468 > Cambridge CB10 1SD > United Kingdom http://industry.ebi.ac.uk/~senger From markw at illuminae.com Fri Nov 14 08:02:28 2003 From: markw at illuminae.com (Mark Wilkinson) Date: Fri, 14 Nov 2003 07:02:28 -0600 Subject: [MOBY] Re: [MOBY-l] sample code of Central.call method In-Reply-To: <3FB46B7E.52ABC6C8@genes.nig.ac.jp> References: <3FB46B7E.52ABC6C8@genes.nig.ac.jp> Message-ID: <1068814947.1710.22.camel@localhost.localdomain> I know very little about Java, or any of the libraries that Martin has been writing, but I can make a pretty good guess at why this isn't working... It appears that you are creating an instance of a MOBY Central object and trying to call a MOBY Service through calls to that object... There is no connection *at all* between a MOBY Service and MOBY Central. It is purely by coincidence that the GenbankAccServiceRetrieve service is hosted on the same machine as MOBY Central itself (mobycentral.cbr.nrc.ca) but don't be fooled by that - they are completely separate and have completely independent interfaces. ...so, I suspect that your Central central = new CentralImpl() is causing you the problems... I suspect that you cannot call a service using the CentralImpl interface. But I may be completely speaking out of my arse, as I don't really know how Martin's libraries work... but I don't think he is around at the moment so I thought I would try to help you in case he doesn't get to his mail for a few days. i hope this helps...??? Mark On Thu, 2003-11-13 at 23:43, Yasumasa Shigemoto wrote: > public static void main(String args[]) throws Exception { > Central central = new CentralImpl( > "http://mobycentral.cbr.nrc.ca/cgi-bin/Services/Services.cgi", > "http://biomoby.org" > ); > central.setDebug(true); > String inputXML = getXML(); > System.out.println(central.call("GenbankAccSequenceRetrieve", inputXML)); From michael at acutrans.net Mon Nov 17 11:34:25 2003 From: michael at acutrans.net (Michael Jensen) Date: Mon, 17 Nov 2003 10:34:25 -0600 Subject: [MOBY-l] 411 length required error? Message-ID: I am following the "Creating Services" page on biomoby.org in just trying to get the basic sample service to work, and I get this: Status: 411 Length Required When I run the following script, do I need to pass something in? I tried a few things but to no avail. #!/usr/bin/perl -w use SOAP::Transport::HTTP; use lib "/Users/michaeljensen/Sites/cgi-bin/"; use MOBY::LocalServices; #use MOBY::OtherLocalServices; my $Server = new SOAP::Transport::HTTP::CGI; #$Server->dispatch_with({ #?'http://biomoby.org/#GetGoTerm' => 'MOBY::LocalServices', #'http://biomoby.org/#GetOtherSequence' => 'MOBY::OtherLocalServices', #'http://biomoby.org/#YetAnotherService' => 'MOBY::OtherLocalServices',}); $Server->dispatch_with({'http://biomoby.org/#GetGoTerm' => 'MOBY::LocalServices',}); $Server->handle(); I'm new to this biomoby stuff, so any help would be appreciated. Thanks!! -Michael Jensen mdjgf8 at mizzou.edu From michael at acutrans.net Mon Nov 17 11:37:23 2003 From: michael at acutrans.net (Michael Jensen) Date: Mon, 17 Nov 2003 10:37:23 -0600 Subject: [MOBY-l] namespace, objects, etc help with INPUT/OUTPUT Message-ID: <525C1E1E-191C-11D8-89F8-000393B6201C@acutrans.net> I am trying to understand the XML for registering a service, but I am not sure where to map what such as when using existing objects and namespaces. I know I don't have to build this by hand, but I want to understand what each part is doing, etc. Is there some sort of list that says "this is an objectType" and this is the "Namespace" it is in, and what an articleName is, etc.? moby GoGene Retrieval gogene.missouri.edu http://gogene.missouri.edu/cgi-bin/gogene.pl; mdjgf8 at mizzou.edu 1 Gene Genbank:Gene TotalCrap Genbank:Crap YetMoreCrap Genbank:Crap INT 10 100 1 1 2 10 100 TotalCrap Genbank:Crap The input and output is what I am trying to understand mostly. For the input there is a simple articlename, and then a collection with a simple articlename. I assume I could just use the first simple without a "collectioN", but then my question is what would an example articlename be and accompanying objecttype and namespace. Thanks! -Michael Jensen mdjgf8 at mizzou.edu From steube at sdsc.edu Mon Nov 17 15:45:08 2003 From: steube at sdsc.edu (Ken Steube) Date: Mon, 17 Nov 2003 12:45:08 -0800 (PST) Subject: [MOBY-l] 411 length required error? In-Reply-To: Message-ID: The script you are running is the dispatcher CGI. Its job is to receive requests to run services, and it's not the script you use if you want to simple run a service. The Length Required message is what you expect to see if you run this script at the command line. I've included a script to run the GetGoTerm service here: #!/usr/local/bin/perl5.6.1 use warnings 'all'; use strict; use MOBY::Client::Central; use MOBY::Client::Service; my $Central = MOBY::Client::Central->new(); my ($Services, $REG) = $Central->findService( authURI => 'www.illuminae.com', serviceName => 'getGoTerm', ); unless ($Services) { print "Discovery failed: ", $REG->message; exit(1); } my $svc = $Services->[0]; print "Executing service ", $svc->name, "\n", $svc->description, "\n\n"; my $wsdl = $Central->retrieveService($svc); my $S = MOBY::Client::Service->new(service => $wsdl); my $result = $S->execute( XMLinputlist => [ ['', qq{}] ] ) || 'No result'; print $result, "\n"; If instead you'd like to set up your own service in perl then you should go to http://plantgenome.sdsc.edu/mobyed2/Fasta_Service and try my FASTA example service. It's intended to be complete and easy to set up. Ken On Mon, 17 Nov 2003, Michael Jensen wrote: > > I am following the "Creating Services" page on biomoby.org in just > trying to get the basic sample service to work, and I get this: > > Status: 411 Length Required > > > When I run the following script, do I need to pass something in? I > tried a few things but to no avail. > > #!/usr/bin/perl -w > use SOAP::Transport::HTTP; > use lib "/Users/michaeljensen/Sites/cgi-bin/"; > use MOBY::LocalServices; > > #use MOBY::OtherLocalServices; > my $Server = new SOAP::Transport::HTTP::CGI; > #$Server->dispatch_with({ > #?'http://biomoby.org/#GetGoTerm' => 'MOBY::LocalServices', > #'http://biomoby.org/#GetOtherSequence' => 'MOBY::OtherLocalServices', > #'http://biomoby.org/#YetAnotherService' => > 'MOBY::OtherLocalServices',}); > > $Server->dispatch_with({'http://biomoby.org/#GetGoTerm' => > 'MOBY::LocalServices',}); > > $Server->handle(); > > > I'm new to this biomoby stuff, so any help would be appreciated. > Thanks!! > > -Michael Jensen > mdjgf8 at mizzou.edu > > > > _______________________________________________ > moby-l mailing list > moby-l at biomoby.org > http://biomoby.org/mailman/listinfo/moby-l > -- ------------------------------------- Ken Steube steube at sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From steube at sdsc.edu Mon Nov 17 16:00:02 2003 From: steube at sdsc.edu (Ken Steube) Date: Mon, 17 Nov 2003 13:00:02 -0800 (PST) Subject: [MOBY-l] namespace, objects, etc help with INPUT/OUTPUT In-Reply-To: <525C1E1E-191C-11D8-89F8-000393B6201C@acutrans.net> Message-ID: You don't have to deal with that XML. It's just what MOBY uses internally to transmit your registration request to MOBY-Central. If you're really interested in understanding that XML the best source I know of is http://www.biomoby.org/twiki/bin/view/TWiki/BioMOBYAPI. It's pretty sparse on the details. Instead of messing with this XML, you register a service with the registerService call as shown below. my $C = MOBY::Client::Central->new(); my $reg = $C->registerService( serviceName => 'test_SequenceToFASTA', authURI => $authURI, contactEmail => $email, description => "Example service: formats a sequence in FASTA format", URL => $url, input => [ ['', ["GenericSequence" => []]], ], output => [ ['', ["FASTA" => []]], ], category => "moby", serviceType => "Retrieval", ); die "Bad return value from registerService" unless $reg; if ($reg->success == 1){ print "Registration successful\n\n"; } else { print "Registration failed: ", $reg->message, "\n"; } The input of this service is a GenericSequence object and the output is a FASTA object, which is just a string containing a namespace+id and a string containing a FASTA formatted sequence. An articleName is required when a service specifies an input or output object is named. Such as 975 TAGC... The GenericSequence object is named mySequence and the length and sequence components are also named Length and SequenceString. If a service has only one input, then a name is not required and many service providers leave articleName blank. The GenericSequence object is registered to require only the names Length and SequenceString. In the example GenericSequence above the namespace/id parameters tell where the sequence came from and gives the ID used to retrieve it. I think I answered all the questions...ask again if not! Ken On Mon, 17 Nov 2003, Michael Jensen wrote: > I am trying to understand the XML for registering a service, but I am > not sure where to map what such as when using existing objects and > namespaces. I know I don't have to build this by hand, but I want to > understand what each part is doing, etc. Is there some sort of list > that says "this is an objectType" and this is the "Namespace" it is in, > and what an articleName is, etc.? > > > moby > GoGene > Retrieval > gogene.missouri.edu > http://gogene.missouri.edu/cgi-bin/gogene.pl; > mdjgf8 at mizzou.edu > 1 > some description here > ]]> > > > > Gene > Genbank:Gene > > > > TotalCrap > Genbank:Crap > > > YetMoreCrap > Genbank:Crap > > > > > > INT > 10 > 100 > 1 > 1 > 2 > 10 > 100 > > > > > TotalCrap > Genbank:Crap > > > > > The input and output is what I am trying to understand mostly. For the > input there is a simple articlename, and then a collection with a > simple articlename. I assume I could just use the first simple without > a "collectioN", but then my question is what would an example > articlename be and accompanying objecttype and namespace. > > Thanks! > > -Michael Jensen > mdjgf8 at mizzou.edu > > > _______________________________________________ > moby-l mailing list > moby-l at biomoby.org > http://biomoby.org/mailman/listinfo/moby-l > -- ------------------------------------- Ken Steube steube at sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From markw at illuminae.com Mon Nov 17 17:04:25 2003 From: markw at illuminae.com (Mark Wilkinson) Date: Mon, 17 Nov 2003 16:04:25 -0600 Subject: [unclassified] Re: [MOBY-l] namespace, objects, etc help with INPUT/OUTPUT References: Message-ID: <3FB945E9.5050508@illuminae.com> Hey Ken, Thanks for covering this one - I'm swamped at the moment. heads up, though: >http://www.biomoby.org/twiki/bin/view/TWiki/BioMOBYAPI. It's pretty >sparse on the details. > > that URL is no longer valid (it may disappear soon). The new link is available on the homepage in the usual spot on the left hand menubar. M From lam87 at cornell.edu Wed Nov 19 10:09:25 2003 From: lam87 at cornell.edu (Lukas Mueller) Date: Wed, 19 Nov 2003 10:09:25 -0500 Subject: [MOBY-l] Test server In-Reply-To: <1068814947.1710.22.camel@localhost.localdomain> Message-ID: <5D3B5F35-1AA2-11D8-A3D9-000393161D04@cornell.edu> Hi Mark & Co, You mentioned previously that you would install a MOBY Central test server. Have you ever had the chance to set it up? We'd like to develop some services at SGN and a test server would be helpful. Cheers Lukas From markw at illuminae.com Wed Nov 19 13:12:40 2003 From: markw at illuminae.com (Mark Wilkinson) Date: Wed, 19 Nov 2003 12:12:40 -0600 Subject: [MOBY-l] BioMOBY website updated with "hot links"! Message-ID: <3FBBB298.6080803@illuminae.com> Hi all, I've just spent a few minutes updating the BioMOBY homepage to include links to the great tools, toys, and tutorials that people have been writing for the project. There are now links to Catherine's tutoral on MOBY-S client programs, Ken's tutorial on setting up MOBY-S services (Ken, can you check that this is compliant with the recent API changes?), and Martin's totally cool Graphical Registry Browser and Query system!! Thanks to all these contributors!! your efforts are VERY appreciated!! I am going to do a TOTAL rennovation of the website sometime in the next couple of weeks to try to pull together pieces of related information, in particular to ensure clarity between the MOBY-S vs. S-MOBY branches of the project. It's getting a bit confusing in there right now... If anyone has news, events, announcements, or any other "stuff" that they would like to see on the website please drop me a message. Cheers all! Mark From senger at ebi.ac.uk Thu Nov 20 14:02:05 2003 From: senger at ebi.ac.uk (Martin Senger) Date: Thu, 20 Nov 2003 19:02:05 +0000 (GMT) Subject: [MOBY-l] clarification of some Java issues In-Reply-To: <3FB46B7E.52ABC6C8@genes.nig.ac.jp> Message-ID: Recently I have got several questions regarding using Java in BioMoby. The questions indicated some confusion - let me please try to explain it here - later I will update the jMoby documentation to reflect the same there. At the moment, Java in the BioMoby project is used only for accessing Moby Central registry. There are two ways how to access the registry using Java: a) You can use ready clients. For that you do not need to write your own Java programs - just call the available clients to get the contents of the registry, or to register new items in the registry. The main client doing this can be invoked by 'run-cmdline-client' script. There is a long help for this client explaining what you can do (everything is done from the command-line). b) Or you can write your own program by using class CentralImpl that takes care about putting your requests into proper XML pieces and calls the registry. The API for this class in called Central.java and should be available from the main BioMoby web site (there were some issues with it - but Mark took care about it and all links will soon be available - meanwhile you may use my mirror - http://industry.ebi.ac.uk/~senger/jMoby/API/index.html). Notice that both methods above are used to access BioMoby registry, NOT THE INDIVIDUAL SERVICES. I am working on another API which will hopefully help to call services but this API does not exist yet. However - and here is why the confusion appeared - the interface Central.java has also a method 'call' that can send any data to any method. The method does not help with the XML (you have to know what XML to send, and you get back again an XML without any support) but it helps you with the SOAP itself (you do not need to kniow how to create a SOAP request). Because of this partially support, some users started to use this 'call' method also for calling services. It is possible, but there were, however, two issues with such usage: a) It is necessary to say that you are not calling a service, and not the biomoby registry. This can be done by supplying proper endpoint and namespace in the constructor. For example, you may use in yourt program: Central central = new CentralImpl ( "http://mobycentral.cbr.nrc.ca/cgi-bin/Services/Services.cgi", "http://biomoby.org/" ); (Mark, this was in the example code that Yasumasa Shigemoto showed in his email - so he was really calling the service, not the registry. His problem was somewhere else - see below - but not here.) b) As we found during the last I3C hackathon, in order to make the Perl-based service happy, it is necessary to set SOAPAction header. The CentralImpl did not do it. It does not matter when you call the biomoby registry (from the reasons I have already forgotten, perhaps Mark remembers them) but it matters when you call other services (without this header you usually receive "access denied" error message). Today, I have fixed this. I have added SOAPAction header to the CentralImpl. After this fix, the CentralImpl actually can be used for calling services. But as I said you do not have any support for dealing with the input and output XML. I consider this usage a "quick-and-dirty" way - and I hope to come soon with more practical solution (similar to what Marks's CommonSubs does for the Perl users). Regards, Martin -- Martin Senger EMBL Outstation - Hinxton Senger at EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger From senger at ebi.ac.uk Thu Nov 20 14:08:56 2003 From: senger at ebi.ac.uk (Martin Senger) Date: Thu, 20 Nov 2003 19:08:56 +0000 (GMT) Subject: [MOBY-l] sample code of Central.call method In-Reply-To: <3FB46B7E.52ABC6C8@genes.nig.ac.jp> Message-ID: > I changed the program but I got the following error. > ... > Fault string: Denied access to method (GenbankAccSequenceRetrieve) in class (mai > n) at /usr/local/lib/perl5/site_perl/5.8.0/SOAP/Lite.pm line 2128. > I have explained all details in a separate mail. Please take the latest copy of jMoby (with the latest CentralImpl fix) and your program will work (I have just tried it now with success). The other problem with your program was that you have been using the wrong namespace "http://biomoby.org" - the correct one (as indicated in the WSDL of this service) is "http://biomoby.org/" (notice the ending slash). Now your code works (at least it gets a response from the service - if the response is meaningful it's another question, of course). I have got this result: Regards, Martin -- Martin Senger EMBL Outstation - Hinxton Senger at EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger From michael at acutrans.net Thu Nov 20 17:02:35 2003 From: michael at acutrans.net (Michael Jensen) Date: Thu, 20 Nov 2003 16:02:35 -0600 Subject: [MOBY-l] approximate # of services on biomoby? Message-ID: <3F2FCF92-1BA5-11D8-9B14-000393B6201C@acutrans.net> Can anyone give me an approximate number of services currently using BioMoby? Thanks! -Michael Jensen mdjgf8 at mizzou.edu From steube at sdsc.edu Thu Nov 20 20:14:51 2003 From: steube at sdsc.edu (Ken Steube) Date: Thu, 20 Nov 2003 17:14:51 -0800 (PST) Subject: [MOBY-l] approximate # of services on biomoby? In-Reply-To: <3F2FCF92-1BA5-11D8-9B14-000393B6201C@acutrans.net> Message-ID: There are 27. Take a look at http://plantsp.sdsc.edu/plantsp/cgi-bin/MOBY/list.services.cgi Ken On Thu, 20 Nov 2003, Michael Jensen wrote: > Can anyone give me an approximate number of services currently using > BioMoby? > > Thanks! > > -Michael Jensen > mdjgf8 at mizzou.edu > > > _______________________________________________ > moby-l mailing list > moby-l at biomoby.org > http://biomoby.org/mailman/listinfo/moby-l > -- ------------------------------------- Ken Steube steube at sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From michael at acutrans.net Fri Nov 21 00:02:04 2003 From: michael at acutrans.net (Michael Jensen) Date: Thu, 20 Nov 2003 23:02:04 -0600 Subject: [MOBY-l] glue for web services... Message-ID: There are lots of neat services people are putting up on moby. One of the advantages to moby is being able to put together services...one service's output as another's input. Is there some quick way to get the output from one service into another service without parsing all the XML as the result? For example I would like to use SearchPubMed and get some PMIDs, and then use those in GetPubmed to get the MEDLINE display format. Any help, guidance, or redirection would be appreciated! I have been learning by using one of the tutorial scripts like the following: #!/usr/bin/perl #Executes a service, where the name of the service, its namespace and its parameter are provided on the command line. use MOBY::Client::Central; use MOBY::Client::Service; my $Central = MOBY::Client::Central->new(); my $serv_name = ($ARGV[0])? $ARGV[0] : 'getGoTerm'; my $namespace = ($ARGV[1])? $ARGV[1] : 'go'; my $query = ($ARGV[2])? $ARGV[2] : '0012502'; print $serv_name, " ", $namespace, " ", $query, "\n"; my ($ServiceInstances,$RegObject) = $Central->findService( serviceName=>$serv_name); if (not $ServiceInstances) { die $RegObject->message; } foreach my $ServiceInstance (@{ $ServiceInstances} ) { my $WSDL = $Central->retrieveService($ServiceInstance); my $Service = MOBY::Client::Service->new(service => $WSDL); my $Triple = ''; print "Triple: $Triple\n"; print "Sending request to ", $ServiceInstance->authority,"\n"; my $result = $Service->execute(XMLinputlist => [ ['object1', $Triple] ]); print "result: ", $result, "\n"; } The result is in XML format so I could parse it and get my values, but I was thinking there may be a better way to do it than I am not aware of. Thanks! -Michael Jensen mdjgf8 at mizzou.edu -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: text/enriched Size: 2022 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-l/attachments/20031120/b4569df6/attachment-0002.bin From dag at sonsorol.org Thu Nov 20 10:38:23 2003 From: dag at sonsorol.org (Chris Dagdigian) Date: Thu, 20 Nov 2003 10:38:23 -0500 Subject: [MOBY-l] Total OBF server shutdown Saturday November 22nd (all day EDT timezone) Message-ID: <3FBCDFEF.1010807@sonsorol.org> Hi folks, Apologies for the massive cross-posting. Our CVS, mailing list and web servers are located in a Cambridge, MA USA datacenter belonging to Wyeth Resarch. Genetics Institute (which became part of Wyeth) has supported our signficant internet bandwidth and hosting needs for many years since the earliest versions of our open source efforts. Since I have to do this massive cross-post anyway I figured it was a good time to thank them again in public. The real reason for this message is to announce a 1-day period of significant server downtime. The office floor & datacenter in the building where our servers are hosted is going to have a planned electrical shutdown (including emergency and backup power circuits) from 10am - 6pm on Saturday November 22nd. I'll be manually bringing down our servers sometime before the 10am deadline. The time estimate is conservative. In the event that the facilty work takes less time than expected I'll probably take advantage of the window to perform some server upgrades and failed disk replacements. For any questions/concerns or if you notice a server or service that is still not available after the 22nd please contact me directly at 'chris at bioteam.net' or 1-617-877-5498. Regards, Chris From steube at sdsc.edu Fri Nov 21 11:51:23 2003 From: steube at sdsc.edu (Ken Steube) Date: Fri, 21 Nov 2003 08:51:23 -0800 (PST) Subject: [MOBY-l] glue for web services... In-Reply-To: Message-ID: Part of my "Discovering and Executing Services" talk shows how to do this: http://plantgenome.sdsc.edu/mobyed2/Talks/discovering_executing_services.html Page 2 has a link to my PBI_Cluster_Blast program which does what you want. If you need go ahead and parse the XML the MobyXmlObject.pm perl module supplied with the FASTA example makes it easy. Ken On Thu, 20 Nov 2003, Michael Jensen wrote: > There are lots of neat services people are putting up on moby. One of > the advantages to moby is being able to put together services...one > service's output as another's input. Is there some quick way to get the > output from one service into another service without parsing all the > XML as the result? For example I would like to use SearchPubMed and get > some PMIDs, and then use those in GetPubmed to get the MEDLINE display > format. Any help, guidance, or redirection would be appreciated! > > > I have been learning by using one of the tutorial scripts like the > following: > > > #!/usr/bin/perl > #Executes a service, where the name of the service, its namespace and > its parameter are provided on the command line. > > use MOBY::Client::Central; > use MOBY::Client::Service; > > my $Central = MOBY::Client::Central->new(); > > my $serv_name = ($ARGV[0])? $ARGV[0] : 'getGoTerm'; > my $namespace = ($ARGV[1])? $ARGV[1] : 'go'; > my $query = ($ARGV[2])? $ARGV[2] : '0012502'; > print $serv_name, " ", $namespace, " ", $query, "\n"; > > my ($ServiceInstances,$RegObject) = $Central->findService( > serviceName=>$serv_name); > if (not $ServiceInstances) { > die $RegObject->message; > } > > foreach my $ServiceInstance (@{ $ServiceInstances} ) { > my $WSDL = $Central->retrieveService($ServiceInstance); > my $Service = MOBY::Client::Service->new(service => $WSDL); > my $Triple = ''; > print "Triple: $Triple\n"; > print "Sending request to ", $ServiceInstance->authority,"\n"; > my $result = $Service->execute(XMLinputlist => [ > ['object1', $Triple] ]); > print "result: ", $result, "\n"; > } > > The result is in XML format so I could parse it and get my values, but > I was thinking there may be a better way to do it than I am not aware > of. Thanks! > > -Michael Jensen > mdjgf8 at mizzou.edu -- ------------------------------------- Ken Steube steube at sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From avraham at cshl.edu Fri Nov 21 17:53:44 2003 From: avraham at cshl.edu (Shuly Avraham) Date: Fri, 21 Nov 2003 17:53:44 -0500 (EST) Subject: [MOBY-l] Re: [MOBY-dev] meeting minutes under construction In-Reply-To: <1048089330.2120.45.camel@illuminae> Message-ID: Hey Mark, Fiona, Ardi and myself are trying to install the new Moby Central (0.6) and write new services. We followed the local installation procedures, and whenever we run testMOBYClientCentral_v05.pl pointing to the local moby central server we get the following error message: Unexpected Content-Type '' returned We tested SOAP::Lite and it works fine. In addition testMOBYCentral_v05.pl works fine. We appreciate any help we can get on this. Thanks, CSHL's MOBY team From markw at illuminae.com Fri Nov 21 19:03:50 2003 From: markw at illuminae.com (Mark Wilkinson) Date: Fri, 21 Nov 2003 18:03:50 -0600 Subject: [MOBY-l] Re: [MOBY] Re: [MOBY-dev] meeting minutes under construction In-Reply-To: References: Message-ID: <1069459430.1709.98.camel@localhost.localdomain> Hi Shuly, Since this is addressed to me, I don't know if you intentionally sent this to all of the mailing lists or not... but you did :-) I've just made a small fix that will allow you to run a local MOBY Central, but the error message you are describing isn't consistent with the error that resulted from this bug, so I don't know what is going wrong. Please send me the line of code you are using to connect to your local registry, and any other details that may be important. M On Fri, 2003-11-21 at 16:53, Shuly Avraham wrote: > Hey Mark, > Fiona, Ardi and myself are trying to install the new Moby Central (0.6) > and > write new services. > We followed the local installation procedures, and whenever we run > testMOBYClientCentral_v05.pl pointing to the local moby central server we > get the following error message: > Unexpected Content-Type '' returned > We tested SOAP::Lite and it works fine. > > In addition testMOBYCentral_v05.pl works fine. > > We appreciate any help we can get on this. > > > Thanks, CSHL's MOBY team > > -- Mark Wilkinson Illuminae From mdjgf8 at mizzou.edu Fri Nov 21 23:28:18 2003 From: mdjgf8 at mizzou.edu (Michael Jensen) Date: Fri, 21 Nov 2003 22:28:18 -0600 Subject: [MOBY-l] mobyxmlobject.pm question Message-ID: <4C0CAD43-1CA4-11D8-8F99-000393B6201C@mizzou.edu> I have been trying to use the MobyXMLObject.pm as Ken suggested, but am having a few problems beyond the samples used. I am trying to combine the two pubmed services by piping the PMIDs from SearchPubmed to getting Medline output from getPubmed. I have been trying to get MobyXMLObject.pm to work with SearchPubmed but it doesn't want to work, returning nothing except for the webservice. I think the problem might be that the output has tags instead of like so: as opposed to the XML from the test xml found on Ken's learning site. 4 MGGC I tried to slowly put in the results from SearchPubmed into the test xml script from Ken's site, and I can get a result as long as I keep a from the example script along with a from the results of SearchPubmed (just copied and pasted). The mobyxmltest.pl file attached here is the one referred to just now, and the pubmed_combined.pl is my other attempt at using SearchPubmed to list the PMIDs (so next I can feed those into getPubmed). I am not sure if I am just missing something obvious or what, but I have tried a lot of different things to understand how to get the elements I need. Any help would be greatly appreciated! Thanks! -------------- next part -------------- A non-text attachment was scrubbed... Name: pubmed_combined.pl Type: application/octet-stream Size: 1781 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-l/attachments/20031121/1c187020/pubmed_combined-0002.obj -------------- next part -------------- A non-text attachment was scrubbed... Name: mobyxmltest.pl Type: application/octet-stream Size: 1286 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-l/attachments/20031121/1c187020/mobyxmltest-0002.obj From mdjgf8 at mizzou.edu Tue Nov 25 08:41:04 2003 From: mdjgf8 at mizzou.edu (Michael Jensen) Date: Tue, 25 Nov 2003 07:41:04 -0600 Subject: [MOBY-l] MobyXMLObject.pm question... Message-ID: <042672BA-1F4D-11D8-83F5-000393B6201C@mizzou.edu> I have been trying to use the MobyXMLObject.pm as Ken suggested, but am having a few problems beyond the samples used. I am trying to combine the two pubmed services by piping the PMIDs from SearchPubmed to getting Medline output from getPubmed. I have been trying to get MobyXMLObject.pm to work with SearchPubmed but it doesn't want to work, returning nothing except for the webservice. I think the problem might be that the output has tags instead of like so: as opposed to the XML from the test xml found on Ken's learning site. 4 MGGC I tried to slowly put in the results from SearchPubmed into the test xml script from Ken's site, and I can get a result as long as I keep a from the example script along with a from the results of SearchPubmed (just copied and pasted). The mobyxmltest.pl file attached here is the one referred to just now, and the pubmed_combined.pl is my other attempt at using SearchPubmed to list the PMIDs (so next I can feed those into getPubmed). I am not sure if I am just missing something obvious or what, but I have tried a lot of different things to understand how to get the elements I need. Any help would be greatly appreciated! Thanks! (I tried posting this a few days ago, but never went through?) -------------- next part -------------- A non-text attachment was scrubbed... Name: pubmed_combined.pl Type: application/octet-stream Size: 1781 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-l/attachments/20031125/8b7238b5/pubmed_combined-0002.obj -------------- next part -------------- A non-text attachment was scrubbed... Name: mobyxmltest.pl Type: application/octet-stream Size: 1286 bytes Desc: not available Url : http://biomoby.org/pipermail/moby-l/attachments/20031125/8b7238b5/mobyxmltest-0002.obj From steube at sdsc.edu Tue Nov 25 12:07:25 2003 From: steube at sdsc.edu (Ken Steube) Date: Tue, 25 Nov 2003 09:07:25 -0800 (PST) Subject: [MOBY-l] MobyXMLObject.pm question... In-Reply-To: <042672BA-1F4D-11D8-83F5-000393B6201C@mizzou.edu> Message-ID: MobyXmlObject.pm does manage to parse both Simple and moby:Simple. I have to run off for a meeting right now, but I'll take a look this afternoon when it's over. Ken On Tue, 25 Nov 2003, Michael Jensen wrote: > I have been trying to use the MobyXMLObject.pm as Ken suggested, but am > having a few problems beyond the samples used. I am trying to combine > the two pubmed services by piping the PMIDs from SearchPubmed to > getting Medline output from getPubmed. I have been trying to get > MobyXMLObject.pm to work with SearchPubmed but it doesn't want to work, > returning nothing except for the webservice. I think the problem might > be that the output has tags instead of like so: > > > > > > > > > as opposed to the XML from the test xml found on Ken's learning site. > > > > > articleName='Length'>4 > articleName='SequenceString'>MGGC > > > > > I tried to slowly put in the results from SearchPubmed into the test > xml script from Ken's site, and I can get a result as long as I keep a > from the example script along with a > from the results of SearchPubmed (just copied and > pasted). The mobyxmltest.pl file attached here is the one referred to > just now, and the pubmed_combined.pl is my other attempt at using > SearchPubmed to list the PMIDs (so next I can feed those into > getPubmed). > > I am not sure if I am just missing something obvious or what, but I > have tried a lot of different things to understand how to get the > elements I need. Any help would be greatly appreciated! Thanks! > > (I tried posting this a few days ago, but never went through?) > > > -- ------------------------------------- Ken Steube steube at sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From steube at sdsc.edu Tue Nov 25 17:40:13 2003 From: steube at sdsc.edu (Ken Steube) Date: Tue, 25 Nov 2003 14:40:13 -0800 (PST) Subject: [MOBY-l] MobyXMLObject.pm question... In-Reply-To: <042672BA-1F4D-11D8-83F5-000393B6201C@mizzou.edu> Message-ID: Michael, I had meant to handle queryResponse identically to the way I handle queryInput blocks, but forgot to put it in there. It's in now so copy the MobyXmlObject.pm file again from http://plantgenome.sdsc.edu/mobyed2/Fasta_Service What I do now is check for queryInput (and moby:queryInput) and if none is found I check for queryResponse (and moby:queryResponse). Then from whichever of those 4 blocks I found I return the Simples within. As mentioned in the BUGs section I don't deal with Collections yet. Will do this someday. Lemme know if there are any further problems. Ken On Tue, 25 Nov 2003, Michael Jensen wrote: > I have been trying to use the MobyXMLObject.pm as Ken suggested, but am > having a few problems beyond the samples used. I am trying to combine > the two pubmed services by piping the PMIDs from SearchPubmed to > getting Medline output from getPubmed. I have been trying to get > MobyXMLObject.pm to work with SearchPubmed but it doesn't want to work, > returning nothing except for the webservice. I think the problem might > be that the output has tags instead of like so: > > > > > > > > > as opposed to the XML from the test xml found on Ken's learning site. > > > > > articleName='Length'>4 > articleName='SequenceString'>MGGC > > > > > I tried to slowly put in the results from SearchPubmed into the test > xml script from Ken's site, and I can get a result as long as I keep a > from the example script along with a > from the results of SearchPubmed (just copied and > pasted). The mobyxmltest.pl file attached here is the one referred to > just now, and the pubmed_combined.pl is my other attempt at using > SearchPubmed to list the PMIDs (so next I can feed those into > getPubmed). > > I am not sure if I am just missing something obvious or what, but I > have tried a lot of different things to understand how to get the > elements I need. Any help would be greatly appreciated! Thanks! > > (I tried posting this a few days ago, but never went through?) > > > -- ------------------------------------- Ken Steube steube at sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From yshigemo at genes.nig.ac.jp Tue Nov 25 19:18:54 2003 From: yshigemo at genes.nig.ac.jp (Yasumasa Shigemoto) Date: Wed, 26 Nov 2003 09:18:54 +0900 Subject: [MOBY-l] sample code of Central.call method References: Message-ID: <3FC3F16E.35E2CF73@genes.nig.ac.jp> Dear Martin, I downloaded the latest Java API and modified the code from "http://biomoby.org" to "http://biomoby.org/". So the code works similarly as you mentioned below. By the way I also tried to use Perl API and I can get a perfect result which contains sequence and length. Thanks, Yasumasa Shigemoto Martin Senger wrote: > > > I changed the program but I got the following error. > > ... > > Fault string: Denied access to method (GenbankAccSequenceRetrieve) in class (mai > > n) at /usr/local/lib/perl5/site_perl/5.8.0/SOAP/Lite.pm line 2128. > > > I have explained all details in a separate mail. Please take the latest > copy of jMoby (with the latest CentralImpl fix) and your program will work > (I have just tried it now with success). > The other problem with your program was that you have been using the > wrong namespace "http://biomoby.org" - the correct one (as indicated in > the WSDL of this service) is "http://biomoby.org/" (notice the ending > slash). > Now your code works (at least it gets a response from the service - if > the response is meaningful it's another question, of course). I have got > this result: > > > xmlns='http://www.biomoby.org/moby'> > > > > > > > > Regards, > Martin > > -- > Martin Senger > > EMBL Outstation - Hinxton Senger at EBI.ac.uk > European Bioinformatics Institute Phone: (+44) 1223 494636 > Wellcome Trust Genome Campus (Switchboard: 494444) > Hinxton Fax : (+44) 1223 494468 > Cambridge CB10 1SD > United Kingdom http://industry.ebi.ac.uk/~senger From markw at illuminae.com Wed Nov 26 11:37:56 2003 From: markw at illuminae.com (Mark Wilkinson) Date: Wed, 26 Nov 2003 10:37:56 -0600 Subject: [MOBY-l] website revamped Message-ID: <3FC4D6E4.1000104@illuminae.com> Hi all, I'm going to a "cleaner & cooler" look on the website. Please have a look and let me know what you think. I haven't yet updated all of the pages, but most of them are now in keeping with the new style. If I have missed referencing anyone's stuff (sorry!) please send me the info, URL, or whatever, and I'll be sure to put it up right away! Cheers, Mark From steube at sdsc.edu Wed Nov 26 19:03:28 2003 From: steube at sdsc.edu (Ken Steube) Date: Wed, 26 Nov 2003 16:03:28 -0800 (PST) Subject: [MOBY-l] queryInput supposed to be enumerated? In-Reply-To: <1068049313.1705.21.camel@localhost.localdomain> Message-ID: Mark, I just dumped the input XML to a service and was looking for the numbering that's supposed to be on queryInput items with queryID. Was expecting to see it but didn't...now wondering if I understood you correctly. Here's the input XML to my service The queryInput items have articleName but no queryID. What gives bro? Ken On Wed, 5 Nov 2003, Mark Wilkinson wrote: > The only change that is not backward-compatible with the existing API is > that queryInput blocks will now be enumerated, and queryResponse blocks > will be similarly enumerated according to the queryInput that they > correspond to. The API restriction of returning responses in the same > order as the inputs will be dropped, as will the Invocation object > cross-reference. This will allow services to do parallel computing > without having to worry about the order that the jobs finished. I can > *almost* hide these changes in the client-side libraries, but not > quite... the CommonSubs simpleResponse/collectionResponse methods will > now require a queryInput argument to make the input/output mapping > possible. > > I'm working on the code right now, but (as usual) I find myself adding > bits and pieces to make life easier so it is a few days away from > commit... > > Mark > > > On Tue, 2003-11-04 at 18:59, Ken Steube wrote: > > On Tue, 4 Nov 2003, Mark Wilkinson wrote: > > > (actually, I'm not really kidding... there are a few changes that need > > > to be made as a consequence of the MOBY meeting...) > > > > What methods are going to change and when will it be finalized? > > > > Will other changes be made to the API in the next year? > > > > Instead of replying to this letter, maybe you could make an announcement > > on moby-l about this. > > > > Ken > > > > ------------------------------------- > > Ken Steube steube at sdsc.edu > > San Diego Supercomputer Center @ UCSD > > San Diego, California USA > -- ------------------------------------- Ken Steube steube at sdsc.edu San Diego Supercomputer Center @ UCSD San Diego, California USA From senger at ebi.ac.uk Wed Nov 26 19:33:57 2003 From: senger at ebi.ac.uk (Martin Senger) Date: Thu, 27 Nov 2003 00:33:57 +0000 (GMT) Subject: [MOBY-l] website revamped In-Reply-To: <3FC4D6E4.1000104@illuminae.com> Message-ID: > If I have missed referencing anyone's stuff (sorry!) please send me the > info, URL, or whatever, and I'll be sure to put it up right away! > Page "Connecting to MOBY-Central" could have also an example in Java. Here it is: --- begin --- import org.biomoby.shared.*; import org.biomoby.client.*; import java.util.*; public class RetrieveServiceTypes { public static void main (String [] args) { try { Central worker = new CentralImpl (CentralImpl.DEFAULT_ENDPOINT, CentralImpl.DEFAULT_NAMESPACE); System.out.println ("KNOWN SERVICE TYPES\n"); Map types = worker.getServiceTypes(); for (Iterator it = types.entrySet().iterator(); it.hasNext();) { Map.Entry entry = (Map.Entry)it.next(); System.out.println (entry.getKey()); System.out.println ("\t" + entry.getValue()); } } catch (Exception e) { System.err.println ("===ERROR==="); System.err.println (e.toString()); System.err.println ("==========="); } } } --- end --- Also the Perl example is not complete (and should be). It needs: a) to add use MOBY::Client::Central; b) to add semicolon at the end, and c) print better the result (now it prints just: KNOWN SERVICE TYPES HASH(0x867aed8) Cheers, Martin -- Martin Senger EMBL Outstation - Hinxton Senger at EBI.ac.uk European Bioinformatics Institute Phone: (+44) 1223 494636 Wellcome Trust Genome Campus (Switchboard: 494444) Hinxton Fax : (+44) 1223 494468 Cambridge CB10 1SD United Kingdom http://industry.ebi.ac.uk/~senger From mwilkinson at mobile.rogers.com Wed Nov 26 21:36:41 2003 From: mwilkinson at mobile.rogers.com (mwilkinson) Date: Wed, 26 Nov 2003 21:36:41 -0500 Subject: [MOBY-l] website revamped Message-ID: <200311270247.hAR2lJg0005949@portal.open-bio.org> Done. M