From markw at illuminae.com Fri Aug 3 17:54:13 2007 From: markw at illuminae.com (Mark Wilkinson) Date: Fri, 03 Aug 2007 14:54:13 -0700 Subject: [MOBY-dev] Post-review manuscript committed Message-ID: Hi all, I've edited the manuscript as best I can based on what I understood the reviewer was requesting. Comments welcome. I've also committed the response to reviewers document for any comments anyone might have. /moby-live/Docs/ Cheers all! M -- -- Mark Wilkinson Assistant Professor, Dept. Medical Genetics University of British Columbia PI Bioinformatics iCAPTURE Centre, St. Paul's Hospital Tel: 604 682 2344 x62129 Fax: 604 806 9274 ***CONFIDENTIALITY NOTICE*** This electronic message is intended only for the use of the addressee and may contain information that is privileged and confidential. Any dissemination, distribution or copying of this communication by unauthorized individuals is strictly prohibited. If you have received this communication in error, please notify the sender immediately by reply e-mail and delete the original and all copies from your system. From Usadel at mpimp-golm.mpg.de Sat Aug 4 11:25:42 2007 From: Usadel at mpimp-golm.mpg.de (Bjoern Usadel) Date: Sat, 4 Aug 2007 17:25:42 +0200 Subject: [MOBY-dev] Re. Post-review manuscript committed Message-ID: <8233DF2244998040848283889E22DBA0864C09@MAIL.mpimp-golm.mpg.de> Hi Mark, I resend my affiliation(and Pieter Neerincx's one which I grabbed from his sig 9 July 2007) to your illuminae address. Could it be that some of the affiliations got lost when send to you privately, since I did sent my affiliation already and I guess Pieter did as well. Or is it just my stupid webmail client (again)? Rebecca Ernst used to be at the MIPS, maybe Andreas Groscurth or Dirk Haase know her current email and affiliation? (You are bcced, so sorry if you get the mail multiple times) Roman Rosset I found on an old INB presentation, maybe someone knows him there. Jason Stewart, Yan Wong I have never heard of and they are to many possible hits, sorry. Ok now I will read the actual paper.... Best Wishes, Bj?rn From Pieter.Neerincx at wur.nl Mon Aug 6 06:04:15 2007 From: Pieter.Neerincx at wur.nl (Pieter Neerincx) Date: Mon, 6 Aug 2007 12:04:15 +0200 Subject: [MOBY-dev] Re. Post-review manuscript committed In-Reply-To: <8233DF2244998040848283889E22DBA0864C09@MAIL.mpimp-golm.mpg.de> References: <8233DF2244998040848283889E22DBA0864C09@MAIL.mpimp-golm.mpg.de> Message-ID: On 4-Aug-2007, at 5:25 PM, Bjoern Usadel wrote: > Hi Mark, > > I resend my affiliation(and Pieter Neerincx's one which I grabbed > from his sig 9 July 2007) to your illuminae address. > > Could it be that some of the affiliations got lost when send to you > privately, since I did sent my affiliation already and I guess > Pieter did as well. Or is it just my stupid webmail client (again)? No it's not your client. I did send my affiliation already, but indeed to Mark's illuminae.com address... Thanks, Pi > Rebecca Ernst used to be at the MIPS, maybe Andreas Groscurth or > Dirk Haase know her current email and affiliation? (You are bcced, > so sorry if you get the mail multiple times) > > Roman Rosset I found on an old INB presentation, maybe someone > knows him there. > > Jason Stewart, Yan Wong I have never heard of and they are to many > possible hits, sorry. > > Ok now I will read the actual paper.... > > Best Wishes, > Bj?rn > > > > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev ------------------------------------------------------------- Wageningen University and Research centre (WUR) Laboratory of Bioinformatics Transitorium (building 312) room 1034 Dreijenlaan 3 6703 HA Wageningen The Netherlands phone: 0317-483 060 fax: 0317-483 584 mobile: 06-143 66 783 mail: pieter.neerincx at wur.nl skype: pieter.online ------------------------------------------------------------ From martin.senger at gmail.com Mon Aug 6 06:49:02 2007 From: martin.senger at gmail.com (Martin Senger) Date: Mon, 6 Aug 2007 11:49:02 +0100 Subject: [MOBY-dev] ServiceProvider URL and Logo In-Reply-To: <46ADFB4A.9070401@ucalgary.ca> References: <1149242476@web.de> <000c01c7d2b2$5613d360$6400a8c0@notebook> <200707301638.49459.groscurt@mpiz-koeln.mpg.de> <000d01c7d2b8$7c460ed0$6400a8c0@notebook> <46ADFB4A.9070401@ucalgary.ca> Message-ID: <4d93f07c0708060349x3f204b1bw657fda560a302514@mail.gmail.com> I think that the metadata way is here just for these (such) cases. My 2c's. What is our mechanism of adding new predicates? Paul, I am not sure what is your choice because you "voted" for both:-) ["...I like the RDF metadata idea..." and then "...I am personally in favour of the serviceNotes option..."] Cheers, Martin -- Martin Senger email: martin.senger at gmail.com skype: martinsenger From ola.spjuth at farmbio.uu.se Mon Aug 6 09:41:24 2007 From: ola.spjuth at farmbio.uu.se (Ola Spjuth) Date: Mon, 6 Aug 2007 15:41:24 +0200 Subject: [MOBY-dev] Get services by serviceType in cached central Message-ID: Hello, In jMoby I have set up a CachedCentralImpl and want to build a hierarchy of MobyServiceType -> MobyService for display in a tree. I can get a list of all types via getServiceTypes() (gives me a String[]). How can I look up (in my cached centralimpl) the services for each ServiceType? I can get services by Authority, but not by ServiceType. If currently not possible, may I request an API update with the convenience method worker.getServiceByType(MobyServiceType type)? Cheers, .../Ola From martin.senger at gmail.com Mon Aug 6 16:03:23 2007 From: martin.senger at gmail.com (Martin Senger) Date: Mon, 6 Aug 2007 21:03:23 +0100 Subject: [MOBY-dev] Get services by serviceType in cached central In-Reply-To: References: Message-ID: <4d93f07c0708061303j733841f6qb0f3ece3d5c97346@mail.gmail.com> Hi, How can I look up (in my cached centralimpl) the services for each > ServiceType? You can see this functionality in the Dashboard's panel "Registry Browser" (by right-click in the "Services" tree and selecting "Sort by service types"). The code that does it can be found in the file org.biomoby.service.dashboard.ServicesTree.java - look there for the method "onUpdateServicesTreeByType". The tree gets data from RegistryModel.java(that gets it from the CentralDigestCachedImpl.java). The data are actually in two sets: getServices() and getServiceTypes() and the ServicesTree.java builds the tree from these two sets. This approach works without any addition to the BioMoby's API because you get *all* data and just rearrange them as needed. This is fast enough because you are using a cached client. If you, however, insist to use the "lazy" approach (which means to get a list of corresponding services only after a user selects a service type) you would need a "findService" method working on cached objects. Such method, indeed, does not exist in the CentralDigestCached.java interface. I considered it when the interface had been created and decided not to have it because it would need a lot of replicated functionality that are implemented on the registry site. So far, the memory and performance were not the issues when using the *all* data approach so I did not bother. Cheers, Martin -- Martin Senger email: martin.senger at gmail.com skype: martinsenger From groscurt at mpiz-koeln.mpg.de Tue Aug 7 10:14:51 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Tue, 7 Aug 2007 16:14:51 +0200 Subject: [MOBY-dev] findService java api question In-Reply-To: <469CE9B5.2080804@ucalgary.ca> References: <4695368E.7070702@ucalgary.ca> <200707161514.11642.groscurt@mpiz-koeln.mpg.de> <469CE9B5.2080804@ucalgary.ca> Message-ID: <200708071614.52690.groscurt@mpiz-koeln.mpg.de> Hi, I still dont get the findService api .... hope again, someone can help me out Central central = new CentralImpl(); MobyService service = new MobyService(); service.setCategory( "" ); // create an input object... the service shall consume an AGI_LocusCode MobyDataObject inputObject = new MobyDataObject( "" ); inputObject.setPrimaryNamespace( MobyNamespace.getNamespace( "AGI_LocusCode" ) ); service.addInput( inputObject ); // I want services which have a NucleotideSequence as output MobyDataObject dataObject = new MobyDataObject( "NucleotideSequence" ); service.addOutput( dataObject ); MobyService[] services = central.findService( service ); for ( MobyService service2 : services ) { System.out.println(service2.getName()); } System.out.println("-------------------------------"); services = central.findService( service, null, false, false ); for ( MobyService service2 : services ) { System.out.println(service2.getName()); } System.out.println("-------------------------------"); services = central.findService( service, null, true, false ); for ( MobyService service2 : services ) { System.out.println(service2.getName()); } System.out.println("-------------------------------"); services = central.findService( service, null, false, true ); for ( MobyService service2 : services ) { System.out.println(service2.getName()); } Calling this I get getNASCinsertByAGI getNASCstockCodeByAGI getCorrelationByAGI getNASC_codebyAGI_locus getAthImageByAGI Locus2GeneAliases Echo3 getNASCphenotypeByAGI NASCArraysGeneswingerByAGI getAGRISTFFamilyNameByAGI getNASCstockNameByAGI and also - what ever kind of true / false combination i use in findService... its always the same result. so 1. I dont understand the find service result at all and 2. why doesnt it matter to use different true / false values in the findservice call ? thanks Andreas From edward.kawas at gmail.com Tue Aug 7 10:26:18 2007 From: edward.kawas at gmail.com (Edward Kawas) Date: Tue, 7 Aug 2007 07:26:18 -0700 Subject: [MOBY-dev] findService java api question In-Reply-To: <200708071614.52690.groscurt@mpiz-koeln.mpg.de> References: <4695368E.7070702@ucalgary.ca><200707161514.11642.groscurt@mpiz-koeln.mpg.de><469CE9B5.2080804@ucalgary.ca> <200708071614.52690.groscurt@mpiz-koeln.mpg.de> Message-ID: <000601c7d8fe$eb6fe460$6400a8c0@notebook> Hi Andreas, I will give you a little nudge to push you along! The Booleans that you are talking about are the 'expandServices' and 'expandObjects' flags. If you go to http://biomoby.open-bio.org/CVS_CONTENT/moby-live/Docs/MOBY-S_API/MobyCentra lObjects.html#ServiceQueryObject, you can see what they are meant to do. I think using the services browser (as part of the registry browser in dashboard) will help in deciphering what the results should be, etc. Hope this helps, Eddie > -----Original Message----- > From: moby-dev-bounces at lists.open-bio.org [mailto:moby-dev- > bounces at lists.open-bio.org] On Behalf Of Andreas Groscurth > Sent: Tuesday, August 07, 2007 7:15 AM > To: Core developer announcements > Subject: [MOBY-dev] findService java api question > > Hi, > > I still dont get the findService api .... hope again, someone can help me > out > > Central central = new CentralImpl(); > MobyService service = new MobyService(); > service.setCategory( "" ); > > // create an input object... the service shall consume an AGI_LocusCode > MobyDataObject inputObject = new MobyDataObject( "" ); > inputObject.setPrimaryNamespace( MobyNamespace.getNamespace( > "AGI_LocusCode" ) ); > service.addInput( inputObject ); > > // I want services which have a NucleotideSequence as output > MobyDataObject dataObject = new MobyDataObject( "NucleotideSequence" ); > service.addOutput( dataObject ); > > MobyService[] services = central.findService( service ); > for ( MobyService service2 : services ) { > System.out.println(service2.getName()); > } > > System.out.println("-------------------------------"); > > services = central.findService( service, null, false, false ); > for ( MobyService service2 : services ) { > System.out.println(service2.getName()); > } > > System.out.println("-------------------------------"); > > services = central.findService( service, null, true, false ); > for ( MobyService service2 : services ) { > System.out.println(service2.getName()); > } > > System.out.println("-------------------------------"); > > services = central.findService( service, null, false, true ); > for ( MobyService service2 : services ) { > System.out.println(service2.getName()); > } > > Calling this I get > > getNASCinsertByAGI > getNASCstockCodeByAGI > getCorrelationByAGI > getNASC_codebyAGI_locus > getAthImageByAGI > Locus2GeneAliases > Echo3 > getNASCphenotypeByAGI > NASCArraysGeneswingerByAGI > getAGRISTFFamilyNameByAGI > getNASCstockNameByAGI > > and also - what ever kind of true / false combination i use in > findService... > its always the same result. > > so 1. I dont understand the find service result at all > and 2. why doesnt it matter to use different true / false values in the > findservice call ? > > thanks > Andreas > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev From gordonp at ucalgary.ca Tue Aug 7 10:32:27 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Tue, 07 Aug 2007 08:32:27 -0600 Subject: [MOBY-dev] findService java api question In-Reply-To: <200708071614.52690.groscurt@mpiz-koeln.mpg.de> References: <4695368E.7070702@ucalgary.ca> <200707161514.11642.groscurt@mpiz-koeln.mpg.de> <469CE9B5.2080804@ucalgary.ca> <200708071614.52690.groscurt@mpiz-koeln.mpg.de> Message-ID: <46B8827B.9010207@ucalgary.ca> Hi Andreas, > Hi, > > I still dont get the findService api .... hope again, someone can help me out > > Central central = new CentralImpl(); > MobyService service = new MobyService(); > service.setCategory( "" ); > > // create an input object... the service shall consume an AGI_LocusCode > MobyDataObject inputObject = new MobyDataObject( "" ); > inputObject.setPrimaryNamespace( MobyNamespace.getNamespace( "AGI_LocusCode" ) ); > service.addInput( inputObject ); > > // I want services which have a NucleotideSequence as output > MobyDataObject dataObject = new MobyDataObject( "NucleotideSequence" ); > What you actually want is a new MobyDataComposite("NucleotideSequence"). From the MobyDataObject javadocs: A class representing a *base* MOBY object (i.e. just a namespace and id) that has been instantiated. If you are looking to represent an object with members (e.g. DNASequence), look at MobyDataComposite. Hope this helps! From groscurt at mpiz-koeln.mpg.de Tue Aug 7 11:10:14 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Tue, 7 Aug 2007 17:10:14 +0200 Subject: [MOBY-dev] findService java api question In-Reply-To: <46B8827B.9010207@ucalgary.ca> References: <4695368E.7070702@ucalgary.ca> <200708071614.52690.groscurt@mpiz-koeln.mpg.de> <46B8827B.9010207@ucalgary.ca> Message-ID: <200708071710.17096.groscurt@mpiz-koeln.mpg.de> Hi, right... I though of the MobyDataComposite object in a different way... ok... its getting better :) Thanks andreas On Tuesday 07 August 2007 16:32, Paul Gordon wrote: > Hi Andreas, > > > Hi, > > > > I still dont get the findService api .... hope again, someone can help me > > out > > > > Central central = new CentralImpl(); > > MobyService service = new MobyService(); > > service.setCategory( "" ); > > > > // create an input object... the service shall consume an AGI_LocusCode > > MobyDataObject inputObject = new MobyDataObject( "" ); > > inputObject.setPrimaryNamespace( MobyNamespace.getNamespace( > > "AGI_LocusCode" ) ); service.addInput( inputObject ); > > > > // I want services which have a NucleotideSequence as output > > MobyDataObject dataObject = new MobyDataObject( "NucleotideSequence" ); > > What you actually want is a new > MobyDataComposite("NucleotideSequence"). From the MobyDataObject javadocs: > > A class representing a *base* MOBY object (i.e. just a namespace and id) > that has been instantiated. If you are looking to represent an object > with members (e.g. DNASequence), look at MobyDataComposite. > > Hope this helps! > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From groscurt at mpiz-koeln.mpg.de Tue Aug 7 11:54:25 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Tue, 7 Aug 2007 17:54:25 +0200 Subject: [MOBY-dev] findService java api question In-Reply-To: <000601c7d8fe$eb6fe460$6400a8c0@notebook> References: <4695368E.7070702@ucalgary.ca> <200708071614.52690.groscurt@mpiz-koeln.mpg.de> <000601c7d8fe$eb6fe460$6400a8c0@notebook> Message-ID: <200708071754.25417.groscurt@mpiz-koeln.mpg.de> Hi, ok - so if I understood it correctly I search for services consuming a GenericSequence and have as input AGI_LocusCode and return a collection... I get getMIPSArabidopsisProteinSequence If I search for services with the same parameter, but consuming an AminoAcidSequence, shouldn't I at least get the getMIPSArabidopsisProteinSequence from the previous search, if the expandObjects flag is set to true ? But I dont get anything for the second search.... Hope one can help me again :( Thanks Andreas On Tuesday 07 August 2007 16:26, Edward Kawas wrote: > Hi Andreas, > > I will give you a little nudge to push you along! > > The Booleans that you are talking about are the 'expandServices' and > 'expandObjects' flags. If you go to > http://biomoby.open-bio.org/CVS_CONTENT/moby-live/Docs/MOBY-S_API/MobyCentr >a lObjects.html#ServiceQueryObject, you can see what they are meant to do. > > I think using the services browser (as part of the registry browser in > dashboard) will help in deciphering what the results should be, etc. > > Hope this helps, > > Eddie > > > -----Original Message----- > > From: moby-dev-bounces at lists.open-bio.org [mailto:moby-dev- > > bounces at lists.open-bio.org] On Behalf Of Andreas Groscurth > > Sent: Tuesday, August 07, 2007 7:15 AM > > To: Core developer announcements > > Subject: [MOBY-dev] findService java api question > > > > Hi, > > > > I still dont get the findService api .... hope again, someone can help me > > out > > > > Central central = new CentralImpl(); > > MobyService service = new MobyService(); > > service.setCategory( "" ); > > > > // create an input object... the service shall consume an AGI_LocusCode > > MobyDataObject inputObject = new MobyDataObject( "" ); > > inputObject.setPrimaryNamespace( MobyNamespace.getNamespace( > > "AGI_LocusCode" ) ); > > service.addInput( inputObject ); > > > > // I want services which have a NucleotideSequence as output > > MobyDataObject dataObject = new MobyDataObject( "NucleotideSequence" ); > > service.addOutput( dataObject ); > > > > MobyService[] services = central.findService( service ); > > for ( MobyService service2 : services ) { > > System.out.println(service2.getName()); > > } > > > > System.out.println("-------------------------------"); > > > > services = central.findService( service, null, false, false ); > > for ( MobyService service2 : services ) { > > System.out.println(service2.getName()); > > } > > > > System.out.println("-------------------------------"); > > > > services = central.findService( service, null, true, false ); > > for ( MobyService service2 : services ) { > > System.out.println(service2.getName()); > > } > > > > System.out.println("-------------------------------"); > > > > services = central.findService( service, null, false, true ); > > for ( MobyService service2 : services ) { > > System.out.println(service2.getName()); > > } > > > > Calling this I get > > > > getNASCinsertByAGI > > getNASCstockCodeByAGI > > getCorrelationByAGI > > getNASC_codebyAGI_locus > > getAthImageByAGI > > Locus2GeneAliases > > Echo3 > > getNASCphenotypeByAGI > > NASCArraysGeneswingerByAGI > > getAGRISTFFamilyNameByAGI > > getNASCstockNameByAGI > > > > and also - what ever kind of true / false combination i use in > > findService... > > its always the same result. > > > > so 1. I dont understand the find service result at all > > and 2. why doesnt it matter to use different true / false values in the > > findservice call ? > > > > thanks > > Andreas > > _______________________________________________ > > MOBY-dev mailing list > > MOBY-dev at lists.open-bio.org > > http://lists.open-bio.org/mailman/listinfo/moby-dev > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From gordonp at ucalgary.ca Tue Aug 7 12:24:44 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Tue, 07 Aug 2007 10:24:44 -0600 Subject: [MOBY-dev] findService java api question In-Reply-To: <200708071754.25417.groscurt@mpiz-koeln.mpg.de> References: <4695368E.7070702@ucalgary.ca> <200708071614.52690.groscurt@mpiz-koeln.mpg.de> <000601c7d8fe$eb6fe460$6400a8c0@notebook> <200708071754.25417.groscurt@mpiz-koeln.mpg.de> Message-ID: <46B89CCC.7070508@ucalgary.ca> Hi Andreas, > > ok - so if I understood it correctly > > I search for services consuming a GenericSequence and have as input > AGI_LocusCode and return a collection... > > I get getMIPSArabidopsisProteinSequence > > If I search for services with the same parameter, but consuming an > AminoAcidSequence, shouldn't I at least get the > getMIPSArabidopsisProteinSequence from the previous search, if the > expandObjects flag is set to true ? > No, unless the AminoAcidSequence has the AGI_LocusCode namespace, since that's what the service requires as input (any Object in the AGI_LocusCode namespace). Of course, if you already have the AminoAcidSequence, you probably don't need to be calling that service... :-) > But I dont get anything for the second search.... > > Hope one can help me again :( > From gordonp at ucalgary.ca Tue Aug 7 12:26:31 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Tue, 07 Aug 2007 10:26:31 -0600 Subject: [MOBY-dev] findService java api question In-Reply-To: <46B89CCC.7070508@ucalgary.ca> References: <4695368E.7070702@ucalgary.ca> <200708071614.52690.groscurt@mpiz-koeln.mpg.de> <000601c7d8fe$eb6fe460$6400a8c0@notebook> <200708071754.25417.groscurt@mpiz-koeln.mpg.de> <46B89CCC.7070508@ucalgary.ca> Message-ID: <46B89D37.2060608@ucalgary.ca> Oops, I just re-read the service description. It could make sense to pass in an AminoAcidSequence, but, yes, it still has to be AGI-LocusCode namespace. > Hi Andreas, > >> ok - so if I understood it correctly >> >> I search for services consuming a GenericSequence and have as input >> AGI_LocusCode and return a collection... >> >> I get getMIPSArabidopsisProteinSequence >> >> If I search for services with the same parameter, but consuming an >> AminoAcidSequence, shouldn't I at least get the >> getMIPSArabidopsisProteinSequence from the previous search, if the >> expandObjects flag is set to true ? >> >> > No, unless the AminoAcidSequence has the AGI_LocusCode namespace, since > that's what the service requires as input (any Object in the > AGI_LocusCode namespace). > Of course, if you already have the AminoAcidSequence, you probably don't > need to be calling that service... :-) > >> But I dont get anything for the second search.... >> >> Hope one can help me again :( >> >> > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev > > !DSPAM:60005,46b89b4a80213208930732! > > > > From gordonp at ucalgary.ca Tue Aug 7 19:05:54 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Tue, 07 Aug 2007 17:05:54 -0600 Subject: [MOBY-dev] ServiceProvider URL and Logo In-Reply-To: <4d93f07c0708060349x3f204b1bw657fda560a302514@mail.gmail.com> References: <1149242476@web.de> <000c01c7d2b2$5613d360$6400a8c0@notebook> <200707301638.49459.groscurt@mpiz-koeln.mpg.de> <000d01c7d2b8$7c460ed0$6400a8c0@notebook> <46ADFB4A.9070401@ucalgary.ca> <4d93f07c0708060349x3f204b1bw657fda560a302514@mail.gmail.com> Message-ID: <46B8FAD2.7070006@ucalgary.ca> The RDF idea was brought up after my initial posting, so my agreement with it overrides my earlier stated preference :-) > I think that the metadata way is here just for these (such) cases. My 2c's. > > What is our mechanism of adding new predicates? > > Paul, I am not sure what is your choice because you "voted" for both:-) > ["...I like the RDF metadata idea..." and then "...I am personally in favour > of the serviceNotes option..."] > > Cheers, > Martin > > From groscurt at mpiz-koeln.mpg.de Wed Aug 8 03:36:46 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Wed, 8 Aug 2007 09:36:46 +0200 Subject: [MOBY-dev] ServiceProvider URL and Logo In-Reply-To: <46B8FAD2.7070006@ucalgary.ca> References: <1149242476@web.de> <4d93f07c0708060349x3f204b1bw657fda560a302514@mail.gmail.com> <46B8FAD2.7070006@ucalgary.ca> Message-ID: <200708080936.46308.groscurt@mpiz-koeln.mpg.de> Are there any complaints about that or can we (or mhm... anyone) start to implement that (or put it on the todo) ? Cheers andreas On Wednesday 08 August 2007 01:05, Paul Gordon wrote: > The RDF idea was brought up after my initial posting, so my agreement > with it overrides my earlier stated preference :-) > > > I think that the metadata way is here just for these (such) cases. My > > 2c's. > > > > What is our mechanism of adding new predicates? > > > > Paul, I am not sure what is your choice because you "voted" for both:-) > > ["...I like the RDF metadata idea..." and then "...I am personally in > > favour of the serviceNotes option..."] > > > > Cheers, > > Martin > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From groscurt at mpiz-koeln.mpg.de Wed Aug 8 03:45:19 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Wed, 8 Aug 2007 09:45:19 +0200 Subject: [MOBY-dev] findService java api question In-Reply-To: <46B89D37.2060608@ucalgary.ca> References: <4695368E.7070702@ucalgary.ca> <46B89CCC.7070508@ucalgary.ca> <46B89D37.2060608@ucalgary.ca> Message-ID: <200708080945.19621.groscurt@mpiz-koeln.mpg.de> thanks for that. I always thought of a simple hierarchie... so that if the requirements met for a service it will automatically do so for any sub datatyp (like i described with the getMIPSArabidopsisProteinSequence). Thanks for helping me out :) andreas On Tuesday 07 August 2007 18:26, Paul Gordon wrote: > Oops, I just re-read the service description. It could make sense to > pass in an AminoAcidSequence, but, yes, it still has to be AGI-LocusCode > namespace. > > > Hi Andreas, > > > >> ok - so if I understood it correctly > >> > >> I search for services consuming a GenericSequence and have as input > >> AGI_LocusCode and return a collection... > >> > >> I get getMIPSArabidopsisProteinSequence > >> > >> If I search for services with the same parameter, but consuming an > >> AminoAcidSequence, shouldn't I at least get the > >> getMIPSArabidopsisProteinSequence from the previous search, if the > >> expandObjects flag is set to true ? > > > > No, unless the AminoAcidSequence has the AGI_LocusCode namespace, since > > that's what the service requires as input (any Object in the > > AGI_LocusCode namespace). > > Of course, if you already have the AminoAcidSequence, you probably don't > > need to be calling that service... :-) > > > >> But I dont get anything for the second search.... > >> > >> Hope one can help me again :( > > > > _______________________________________________ > > MOBY-dev mailing list > > MOBY-dev at lists.open-bio.org > > http://lists.open-bio.org/mailman/listinfo/moby-dev > > > > !DSPAM:60005,46b89b4a80213208930732! > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From martin.senger at gmail.com Wed Aug 8 04:11:13 2007 From: martin.senger at gmail.com (Martin Senger) Date: Wed, 8 Aug 2007 09:11:13 +0100 Subject: [MOBY-dev] ServiceProvider URL and Logo In-Reply-To: <200708080936.46308.groscurt@mpiz-koeln.mpg.de> References: <1149242476@web.de> <4d93f07c0708060349x3f204b1bw657fda560a302514@mail.gmail.com> <46B8FAD2.7070006@ucalgary.ca> <200708080936.46308.groscurt@mpiz-koeln.mpg.de> Message-ID: <4d93f07c0708080111m345ebc91t4d753c037d58a57f@mail.gmail.com> > Are there any complaints about that or can we (or mhm... anyone) start to > implement that (or put it on the todo) ? The only "implementation" needed (except in the smart clients) is to define a new predicate (or few predicates). That's why I had asked: What is our mechanism of adding new predicates > Cheers, Martin -- Martin Senger email: martin.senger at gmail.com skype: martinsenger From gordonp at ucalgary.ca Wed Aug 8 10:19:10 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Wed, 08 Aug 2007 08:19:10 -0600 Subject: [MOBY-dev] findService java api question In-Reply-To: <200708080945.19621.groscurt@mpiz-koeln.mpg.de> References: <4695368E.7070702@ucalgary.ca> <46B89CCC.7070508@ucalgary.ca> <46B89D37.2060608@ucalgary.ca> <200708080945.19621.groscurt@mpiz-koeln.mpg.de> Message-ID: <46B9D0DE.1050206@ucalgary.ca> Yes, of course, the principle of subsumption (http://en.wikipedia.org/wiki/Liskov_substitution_principle) holds in MOBY, whether it is pragmatic for any given service or not. :-) > thanks for that. > > I always thought of a simple hierarchie... so that if the requirements met for > a service it will automatically do so for any sub datatyp (like i described > with the getMIPSArabidopsisProteinSequence). > > Thanks for helping me out :) > andreas > > On Tuesday 07 August 2007 18:26, Paul Gordon wrote: > >> Oops, I just re-read the service description. It could make sense to >> pass in an AminoAcidSequence, but, yes, it still has to be AGI-LocusCode >> namespace. >> >> >>> Hi Andreas, >>> >>> >>>> ok - so if I understood it correctly >>>> >>>> I search for services consuming a GenericSequence and have as input >>>> AGI_LocusCode and return a collection... >>>> >>>> I get getMIPSArabidopsisProteinSequence >>>> >>>> If I search for services with the same parameter, but consuming an >>>> AminoAcidSequence, shouldn't I at least get the >>>> getMIPSArabidopsisProteinSequence from the previous search, if the >>>> expandObjects flag is set to true ? >>>> >>> No, unless the AminoAcidSequence has the AGI_LocusCode namespace, since >>> that's what the service requires as input (any Object in the >>> AGI_LocusCode namespace). >>> Of course, if you already have the AminoAcidSequence, you probably don't >>> need to be calling that service... :-) >>> >>> >>>> But I dont get anything for the second search.... >>>> >>>> Hope one can help me again :( >>>> >>> _______________________________________________ >>> MOBY-dev mailing list >>> MOBY-dev at lists.open-bio.org >>> http://lists.open-bio.org/mailman/listinfo/moby-dev >>> >>> >>> >> _______________________________________________ >> MOBY-dev mailing list >> MOBY-dev at lists.open-bio.org >> http://lists.open-bio.org/mailman/listinfo/moby-dev >> > > From gordonp at ucalgary.ca Wed Aug 8 10:55:01 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Wed, 08 Aug 2007 08:55:01 -0600 Subject: [MOBY-dev] ServiceProvider URL and Logo In-Reply-To: <4d93f07c0708080111m345ebc91t4d753c037d58a57f@mail.gmail.com> References: <1149242476@web.de> <4d93f07c0708060349x3f204b1bw657fda560a302514@mail.gmail.com> <46B8FAD2.7070006@ucalgary.ca> <200708080936.46308.groscurt@mpiz-koeln.mpg.de> <4d93f07c0708080111m345ebc91t4d753c037d58a57f@mail.gmail.com> Message-ID: <46B9D945.2010908@ucalgary.ca> An RFC? Or is too heavyweight? >> Are there any complaints about that or can we (or mhm... anyone) start to >> implement that (or put it on the todo) ? >> > > > The only "implementation" needed (except in the smart clients) is to define > a new predicate (or few predicates). That's why I had asked: > > What is our mechanism of adding new predicates > > > Cheers, > Martin > > From haase_dirk at web.de Wed Aug 8 11:17:31 2007 From: haase_dirk at web.de (Dirk Haase) Date: Wed, 08 Aug 2007 17:17:31 +0200 Subject: [MOBY-dev] ServiceProvider URL and Logo Message-ID: <824307766@web.de> Hi, Maybe I confuse things, but don't we have to stay consistent with the mygrid folks wrt the RDF predicates? Best, dirk > An RFC? Or is too heavyweight? > >> Are there any complaints about that or can we (or mhm... anyone) start to > >> implement that (or put it on the todo) ? > >> > > > > > > The only "implementation" needed (except in the smart clients) is to define > > a new predicate (or few predicates). That's why I had asked: > > > > What is our mechanism of adding new predicates > > > > > > Cheers, > > Martin > > > > > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev > From gordonp at ucalgary.ca Wed Aug 8 11:20:29 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Wed, 08 Aug 2007 09:20:29 -0600 Subject: [MOBY-dev] ServiceProvider URL and Logo In-Reply-To: <824307766@web.de> References: <824307766@web.de> Message-ID: <46B9DF3D.8010400@ucalgary.ca> We should be able to add extra tags, and myGRID should ignore them, no? Is there a myGRID schema published? If so, we'd have to extend it and reference it properly... > Hi, > > Maybe I confuse things, but don't we have to stay consistent with > the mygrid folks wrt the RDF predicates? > > Best, > dirk > > >> An RFC? Or is too heavyweight? >> >>>> Are there any complaints about that or can we (or mhm... anyone) start to >>>> implement that (or put it on the todo) ? >>>> >>>> >>> The only "implementation" needed (except in the smart clients) is to define >>> a new predicate (or few predicates). That's why I had asked: >>> >>> What is our mechanism of adding new predicates >>> >>> >>> Cheers, >>> Martin >>> >>> >>> >> _______________________________________________ >> MOBY-dev mailing list >> MOBY-dev at lists.open-bio.org >> http://lists.open-bio.org/mailman/listinfo/moby-dev >> >> > > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev > > !DSPAM:60005,46b9dcfc80212187527633! > > > > From gordonp at ucalgary.ca Wed Aug 8 11:00:32 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Wed, 08 Aug 2007 09:00:32 -0600 Subject: [MOBY-dev] Publication to add to the biomoby.org list? Message-ID: <46B9DA90.2040104@ucalgary.ca> A set of BioMoby services has been published as an Applications Note in Bioinformatics: http://bioinformatics.oxfordjournals.org/cgi/content/short/btm252v1 Do we add this to the publications list, or do we anticipate so many such publications that we won't be able to keep up :-) From markw at illuminae.com Wed Aug 8 11:25:07 2007 From: markw at illuminae.com (mark wilkinson) Date: Wed, 8 Aug 2007 15:25:07 +0000 GMT Subject: [MOBY-dev] Publication to add to the biomoby.org list? In-Reply-To: <46B9DA90.2040104@ucalgary.ca> References: <46B9DA90.2040104@ucalgary.ca> Message-ID: <2027620003-1186586782-cardhu_blackberry.rim.net-6088-@engine27-cell01> I think we should add all of them, at least for the time being. I'll do it in a minute. -- Mark Wilkinson ...on the road! -----Original Message----- From: Paul Gordon Date: Wed, 08 Aug 2007 09:00:32 To:mobydev Subject: [MOBY-dev] Publication to add to the biomoby.org list? A set of BioMoby services has been published as an Applications Note in Bioinformatics: http://bioinformatics.oxfordjournals.org/cgi/content/short/btm252v1 Do we add this to the publications list, or do we anticipate so many such publications that we won't be able to keep up :-) _______________________________________________ MOBY-dev mailing list MOBY-dev at lists.open-bio.org http://lists.open-bio.org/mailman/listinfo/moby-dev From markw at illuminae.com Wed Aug 8 11:30:17 2007 From: markw at illuminae.com (mark wilkinson) Date: Wed, 8 Aug 2007 15:30:17 +0000 GMT Subject: [MOBY-dev] ServiceProvider URL and Logo In-Reply-To: <46B9DF3D.8010400@ucalgary.ca> References: <824307766@web.de> <46B9DF3D.8010400@ucalgary.ca> Message-ID: <1769010903-1186587092-cardhu_blackberry.rim.net-15851-@engine18-cell01> We should probably do the following: 1: create our own ontology that imports/extends the myGrid ontology 2: decide, by list discussion, which predicates the project will support and which predicates are too location-specific (I don't see a need for RFC at this point) 3: add these to our ontology and advise myGrid that the predicate exists. 4: if myGrid eventually decides the predicate is useful they will add it and we can switch the namespace declaration in our RDF (or use owl:sameAs or whatever) How does that sound? M -- Mark Wilkinson ...on the road! -----Original Message----- From: Paul Gordon Date: Wed, 08 Aug 2007 09:20:29 To:Core developer announcements Subject: Re: [MOBY-dev] ServiceProvider URL and Logo We should be able to add extra tags, and myGRID should ignore them, no? Is there a myGRID schema published? If so, we'd have to extend it and reference it properly... > Hi, > > Maybe I confuse things, but don't we have to stay consistent with > the mygrid folks wrt the RDF predicates? > > Best, > dirk > > >> An RFC? Or is too heavyweight? >> >>>> Are there any complaints about that or can we (or mhm... anyone) start to >>>> implement that (or put it on the todo) ? >>>> >>>> >>> The only "implementation" needed (except in the smart clients) is to define >>> a new predicate (or few predicates). That's why I had asked: >>> >>> What is our mechanism of adding new predicates >>> >>> >>> Cheers, >>> Martin >>> >>> >>> >> _______________________________________________ >> MOBY-dev mailing list >> MOBY-dev at lists.open-bio.org >> http://lists.open-bio.org/mailman/listinfo/moby-dev >> >> > > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev > > !DSPAM:60005,46b9dcfc80212187527633! > > > > _______________________________________________ MOBY-dev mailing list MOBY-dev at lists.open-bio.org http://lists.open-bio.org/mailman/listinfo/moby-dev From gordonp at ucalgary.ca Thu Aug 9 10:51:33 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Thu, 09 Aug 2007 08:51:33 -0600 Subject: [MOBY-dev] [MOBY-l] DataInputs for complex services In-Reply-To: <975EB52E-9893-415F-9818-A2E7D05E273D@farmbio.uu.se> References: <975EB52E-9893-415F-9818-A2E7D05E273D@farmbio.uu.se> Message-ID: <46BB29F5.6080100@ucalgary.ca> Hi Ola, The key, if you are using the org.biomoby.shared.data package, is that everything is a primitive, or a composite. Composites are Java Maps, with member article names as the keys. See the examples below. May I suggest, if you have not already, to join the moby-dev mailing list, as the moby-l mailing list is primarily for non-technical discussion (I'm cross-posting this reply just in case you are not on moby-dev, and to show the moby-l-only folks that we are doing real work ;-)). > Hello, > > Thanks for a great framework, I am excited to add BioMoby features to > Bioclipse (http://www.bioclipse.net). However, I have some questions > to get things running: > > How do I set up the PrimaryDataInput and SecondaryDatainputs for a > more advanced service in jMoby? > For example, the service 'runClustalwFast': > > MobyService templateService = new MobyService("runClustalwFast"); > MobyService[] validServices = worker.findService(templateService); > > This gives me the following info from the service: > > Primary inputs: > Name: 'sequences' - DataType: 'GenericSequence' > /** Here is the 'Generic' solution, untested and off the cuff */ MobyDataComposite seq = new MobyDataComposite("GenericSequence"); for(MobyRelationship child: seq.getDataType().getAllChildren()){ String childTypeName = child.getDataTypeName(); // Things are either primitive, or composite if(PrimitiveType.isPrimitive(childTypeName)){ seq.put(child.getName(), MobyDataObject.createInstanceFromString(childTypeName, sourceDataStringForThisField)); } else{ // recursively populate the child as a MobyDataComposite } } > Primary outputs: > Name: 'alignment' - DataType: 'Clustalw_Text' > You don't need to do anything, the service will populate this for you (via MobyRequest.invokeService()). > Secondary inputs: > Name: 'ktup' - DataType: 'Integer' > Name: 'gapext' - DataType: 'Float' > Name: 'transitions_weight' - DataType: 'Float' > Name: 'window' - DataType: 'Integer' > Name: 'topdiag' - DataType: 'Integer' > Name: 'matrix' - DataType: 'String' > Name: 'pairgap' - DataType: 'Integer' > Name: 'endgaps' - DataType: 'String' > Name: 'gapdist' - DataType: 'Integer' > Name: 'gapopen' - DataType: 'Float' > public static void setSecondaries(MobyRequest mr, MobyService service){ MobySecondaryData[] secondaryData = service.getSecondaryInputs(); MobyDataSecondaryInstance[] secondaryInstances = new MobyDataSecondaryInstance[secondaryData.length]; for(int i = 0; i < secondaryData.length; i++){ MobySecondaryData param = secondaryData[i]; // Set specific values for the following param, just as an example if(param.getName().equals("strand")){ secondaryInstances[i] = new MobyDataSecondaryInstance(param, "Reverse"); } // Use default value for other parameters (if any), is set to the registered default value automagically else{ secondaryInstances[i] = new MobyDataSecondaryInstance(param); } } mr.setSecondaryInput(secondaryInstances); } > How do I set up the inputs with MobyDataObject's for this service? > The sample clients in CVS only deal with simple setups (id and > namespace) so some lines of example code would be really helpful. > > Another question: How can I from the MobyDataType tell what format I > should expect to fill in? If it is 'GenericSequence', how can I tell > if i'm supposed to add a String? Can I look that up somewhere? This is covered in the first example, mobyDataType.getAllChildren(); > And do > the MobyDataType's have constraints (like min/max values) etc? No, only Secondary parameters have constraints on values in Moby. > I have > also not really understood the key-value-datatype. Is it possible to > get the allowed keys from the MobyDataType in some way? > Do you mean namespace/id? You can get the list of valid namespaces with Central..|*getFullNamespaces *()| . There is no way to validate IDs except by submitting them to services are seeing if they work. Hope this helps! -Paul > Cheers, > > .../Ola Spjuth > > > > > _______________________________________________ > moby-l mailing list > moby-l at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-l > > !DSPAM:60005,46ba331480211783021950! > > > > From Pieter.Neerincx at wur.nl Fri Aug 10 07:41:00 2007 From: Pieter.Neerincx at wur.nl (Pieter Neerincx) Date: Fri, 10 Aug 2007 13:41:00 +0200 Subject: [MOBY-dev] [MOBY-l] getting the value for a relationship In-Reply-To: <200708100945.46652.groscurt@mpiz-koeln.mpg.de> References: <46BB8F10.1030406@ucalgary.ca> <200708100945.46652.groscurt@mpiz-koeln.mpg.de> Message-ID: <000A9967-7B36-44AB-81FD-136C44168BE6@wur.nl> Hi Andreas, I use the Perl libs and I'm not familiar with the Java version. So I don't how to get the text content from an XML node, but I do spot another potential problem with the XML below: The cross references inside the CrossReference node should be either a base Object object: or an Xref object: ... Description ... Note that according to the API the Xref object can have parsed character data (PCDATA) alias content in addition to several attributes, but an Object object can not. Only the 5 primitives (String/Float/Integer/DateTime/Boolean) and the Xref object are allowed to have PCDATA. In your example below the Object objects in the cross reference information block (CRIB) do have PCDATA. The beauty of XML is that this little bit of extra data should and will not break any parsers, but do realise that other clients and/or services and/or BioMOBY libraries will not expect PCDATA in an Object object, so they will most likely ignore it... You should be able though to get the "ATP-dependent helicase activity" PCDATA from the String object... I hope one of the Java gurus can answer that question. Cheers, Pi On 10-Aug-2007, at 9:45 AM, Andreas Groscurth wrote: > Hi all, > > I have the following service result > > > > > evidence code for the relationship > moby:namespace="TAIR_Accession"> > reference TAIR accession for the relationship > > moby:articleName="Term">ATP-dependent helicase activity moby:String> > > > I'm able to retrieve all informations via Java except the value of > 'Term' > > I have my MobyDataObject and extract the CrossReferences via > getCrossReferences. > getChildren return the MobyRelationship but I'm only able to say > thats a > string and 'Term' ... > > how do I get the actual value of that element ? > > thanks > andreas > > -- > Andreas Groscurth > Diplom Bioinformatik - PhD Student > Max Planck Institute for Plant Breeding Research > Carl-von-Linn?-Weg 10 > 50829 Cologne > Germany > E-mail: groscurt at mpiz-koeln.mpg.de > Phone: +49(0)221-5062-447 > > _______________________________________________ > moby-l mailing list > moby-l at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-l ------------------------------------------------------------- Wageningen University and Research centre (WUR) Laboratory of Bioinformatics Transitorium (building 312) room 1034 Dreijenlaan 3 6703 HA Wageningen The Netherlands phone: 0317-483 060 fax: 0317-483 584 mobile: 06-143 66 783 mail: pieter.neerincx at wur.nl skype: pieter.online ------------------------------------------------------------ From ola.spjuth at farmbio.uu.se Fri Aug 10 08:36:38 2007 From: ola.spjuth at farmbio.uu.se (Ola Spjuth) Date: Fri, 10 Aug 2007 14:36:38 +0200 Subject: [MOBY-dev] [MOBY-l] DataInputs for complex services In-Reply-To: <46BB29F5.6080100@ucalgary.ca> References: <975EB52E-9893-415F-9818-A2E7D05E273D@farmbio.uu.se> <46BB29F5.6080100@ucalgary.ca> Message-ID: <0B3759A7-712A-46DC-B55E-EDAE8A719DB5@farmbio.uu.se> Thanks a lot Paul, that got me going. Another question: Is there a way to cache the data type and namespace ontologies and get rid of the annoying Fetching data type ontology from http://biomoby.org/RESOURCES/MOBY-S/ Objects ... done Fetching namespace ontology from http://biomoby.org/RESOURCES/MOBY-S/ Namespaces which happens on every startup? Can I download the ontologies and tell jMoby where it is located locally? Cheers, ../Ola On Aug 9, 2007, at 16:51 , Paul Gordon wrote: > Hi Ola, > > The key, if you are using the org.biomoby.shared.data package, is that > everything is a primitive, or a composite. > Composites are Java Maps, with member article names as the keys. See > the examples below. May I suggest, if you have > not already, to join the moby-dev mailing list, as the moby-l mailing > list is primarily for non-technical discussion > (I'm cross-posting this reply just in case you are not on moby-dev, > and > to show the moby-l-only folks that we are > doing real work ;-)). >> Hello, >> >> Thanks for a great framework, I am excited to add BioMoby features to >> Bioclipse (http://www.bioclipse.net). However, I have some questions >> to get things running: >> >> How do I set up the PrimaryDataInput and SecondaryDatainputs for a >> more advanced service in jMoby? >> For example, the service 'runClustalwFast': >> >> MobyService templateService = new MobyService("runClustalwFast"); >> MobyService[] validServices = worker.findService(templateService); >> >> This gives me the following info from the service: >> >> Primary inputs: >> Name: 'sequences' - DataType: 'GenericSequence' >> > /** Here is the 'Generic' solution, untested and off the cuff */ > > MobyDataComposite seq = new MobyDataComposite("GenericSequence"); > for(MobyRelationship child: seq.getDataType().getAllChildren()){ > String childTypeName = child.getDataTypeName(); > // Things are either primitive, or composite > if(PrimitiveType.isPrimitive(childTypeName)){ > seq.put(child.getName(), > MobyDataObject.createInstanceFromString(childTypeName, > > sourceDataStringForThisField)); > } > else{ > // recursively populate the child as a MobyDataComposite > } > } >> Primary outputs: >> Name: 'alignment' - DataType: 'Clustalw_Text' >> > You don't need to do anything, the service will populate this for > you (via MobyRequest.invokeService()). > >> Secondary inputs: >> Name: 'ktup' - DataType: 'Integer' >> Name: 'gapext' - DataType: 'Float' >> Name: 'transitions_weight' - DataType: 'Float' >> Name: 'window' - DataType: 'Integer' >> Name: 'topdiag' - DataType: 'Integer' >> Name: 'matrix' - DataType: 'String' >> Name: 'pairgap' - DataType: 'Integer' >> Name: 'endgaps' - DataType: 'String' >> Name: 'gapdist' - DataType: 'Integer' >> Name: 'gapopen' - DataType: 'Float' >> > public static void setSecondaries(MobyRequest mr, MobyService > service){ > MobySecondaryData[] secondaryData = > service.getSecondaryInputs(); > MobyDataSecondaryInstance[] secondaryInstances = > new MobyDataSecondaryInstance[secondaryData.length]; > > for(int i = 0; i < secondaryData.length; i++){ > MobySecondaryData param = secondaryData[i]; > // Set specific values for the following param, just as an > example > if(param.getName().equals("strand")){ > secondaryInstances[i] = new > MobyDataSecondaryInstance(param, "Reverse"); > } > // Use default value for other parameters (if any), is set > to the registered default value automagically > else{ > secondaryInstances[i] = new > MobyDataSecondaryInstance(param); > } > } > > mr.setSecondaryInput(secondaryInstances); > } > >> How do I set up the inputs with MobyDataObject's for this service? >> The sample clients in CVS only deal with simple setups (id and >> namespace) so some lines of example code would be really helpful. >> >> Another question: How can I from the MobyDataType tell what format I >> should expect to fill in? If it is 'GenericSequence', how can I tell >> if i'm supposed to add a String? Can I look that up somewhere? > This is covered in the first example, mobyDataType.getAllChildren(); > >> And do >> the MobyDataType's have constraints (like min/max values) etc? > No, only Secondary parameters have constraints on values in Moby. >> I have >> also not really understood the key-value-datatype. Is it possible to >> get the allowed keys from the MobyDataType in some way? >> > Do you mean namespace/id? You can get the list of valid namespaces > with > Central..|*getFullNamespaces > org/biomoby/shared/Central.html#getFullNamespaces%28%29>*()| > . > There is no way to validate IDs except by submitting them to services > are seeing if they work. > > Hope this helps! > > -Paul >> Cheers, >> >> .../Ola Spjuth >> >> >> >> >> _______________________________________________ >> moby-l mailing list >> moby-l at lists.open-bio.org >> http://lists.open-bio.org/mailman/listinfo/moby-l >> >> !DSPAM:60005,46ba331480211783021950! >> >> >> >> > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev From groscurt at mpiz-koeln.mpg.de Fri Aug 10 09:03:41 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Fri, 10 Aug 2007 15:03:41 +0200 Subject: [MOBY-dev] [MOBY-l] DataInputs for complex services In-Reply-To: <0B3759A7-712A-46DC-B55E-EDAE8A719DB5@farmbio.uu.se> References: <975EB52E-9893-415F-9818-A2E7D05E273D@farmbio.uu.se> <46BB29F5.6080100@ucalgary.ca> <0B3759A7-712A-46DC-B55E-EDAE8A719DB5@farmbio.uu.se> Message-ID: <200708101503.42137.groscurt@mpiz-koeln.mpg.de> Hi Ola, I answer for Paul, who had to answer me also that one :-) Hi Andreas, Yes, there is a class that allows you to cache these... *org.biomoby.registry.meta.RegistryCache* You can see how I use it in the source code for * ca.ucalgary.seahawk.gui.MobyContentGUI *Though I should probably add a doc about that too :-)* cheers andreas On Friday 10 August 2007 14:36, Ola Spjuth wrote: > Thanks a lot Paul, that got me going. > > Another question: > Is there a way to cache the data type and namespace ontologies and > get rid of the annoying > > Fetching data type ontology from http://biomoby.org/RESOURCES/MOBY-S/ > Objects > ... done > Fetching namespace ontology from http://biomoby.org/RESOURCES/MOBY-S/ > Namespaces > > which happens on every startup? Can I download the ontologies and > tell jMoby where it is located locally? > > Cheers, > > ../Ola > > On Aug 9, 2007, at 16:51 , Paul Gordon wrote: > > Hi Ola, > > > > The key, if you are using the org.biomoby.shared.data package, is that > > everything is a primitive, or a composite. > > Composites are Java Maps, with member article names as the keys. See > > the examples below. May I suggest, if you have > > not already, to join the moby-dev mailing list, as the moby-l mailing > > list is primarily for non-technical discussion > > (I'm cross-posting this reply just in case you are not on moby-dev, > > and > > to show the moby-l-only folks that we are > > doing real work ;-)). > > > >> Hello, > >> > >> Thanks for a great framework, I am excited to add BioMoby features to > >> Bioclipse (http://www.bioclipse.net). However, I have some questions > >> to get things running: > >> > >> How do I set up the PrimaryDataInput and SecondaryDatainputs for a > >> more advanced service in jMoby? > >> For example, the service 'runClustalwFast': > >> > >> MobyService templateService = new MobyService("runClustalwFast"); > >> MobyService[] validServices = worker.findService(templateService); > >> > >> This gives me the following info from the service: > >> > >> Primary inputs: > >> Name: 'sequences' - DataType: 'GenericSequence' > > > > /** Here is the 'Generic' solution, untested and off the cuff */ > > > > MobyDataComposite seq = new MobyDataComposite("GenericSequence"); > > for(MobyRelationship child: seq.getDataType().getAllChildren()){ > > String childTypeName = child.getDataTypeName(); > > // Things are either primitive, or composite > > if(PrimitiveType.isPrimitive(childTypeName)){ > > seq.put(child.getName(), > > MobyDataObject.createInstanceFromString(childTypeName, > > > > sourceDataStringForThisField)); > > } > > else{ > > // recursively populate the child as a MobyDataComposite > > } > > } > > > >> Primary outputs: > >> Name: 'alignment' - DataType: 'Clustalw_Text' > > > > You don't need to do anything, the service will populate this for > > you (via MobyRequest.invokeService()). > > > >> Secondary inputs: > >> Name: 'ktup' - DataType: 'Integer' > >> Name: 'gapext' - DataType: 'Float' > >> Name: 'transitions_weight' - DataType: 'Float' > >> Name: 'window' - DataType: 'Integer' > >> Name: 'topdiag' - DataType: 'Integer' > >> Name: 'matrix' - DataType: 'String' > >> Name: 'pairgap' - DataType: 'Integer' > >> Name: 'endgaps' - DataType: 'String' > >> Name: 'gapdist' - DataType: 'Integer' > >> Name: 'gapopen' - DataType: 'Float' > > > > public static void setSecondaries(MobyRequest mr, MobyService > > service){ > > MobySecondaryData[] secondaryData = > > service.getSecondaryInputs(); > > MobyDataSecondaryInstance[] secondaryInstances = > > new MobyDataSecondaryInstance[secondaryData.length]; > > > > for(int i = 0; i < secondaryData.length; i++){ > > MobySecondaryData param = secondaryData[i]; > > // Set specific values for the following param, just as an > > example > > if(param.getName().equals("strand")){ > > secondaryInstances[i] = new > > MobyDataSecondaryInstance(param, "Reverse"); > > } > > // Use default value for other parameters (if any), is set > > to the registered default value automagically > > else{ > > secondaryInstances[i] = new > > MobyDataSecondaryInstance(param); > > } > > } > > > > mr.setSecondaryInput(secondaryInstances); > > } > > > >> How do I set up the inputs with MobyDataObject's for this service? > >> The sample clients in CVS only deal with simple setups (id and > >> namespace) so some lines of example code would be really helpful. > >> > >> Another question: How can I from the MobyDataType tell what format I > >> should expect to fill in? If it is 'GenericSequence', how can I tell > >> if i'm supposed to add a String? Can I look that up somewhere? > > > > This is covered in the first example, mobyDataType.getAllChildren(); > > > >> And do > >> the MobyDataType's have constraints (like min/max values) etc? > > > > No, only Secondary parameters have constraints on values in Moby. > > > >> I have > >> also not really understood the key-value-datatype. Is it possible to > >> get the allowed keys from the MobyDataType in some way? > > > > Do you mean namespace/id? You can get the list of valid namespaces > > with > > Central..|*getFullNamespaces > > > org/biomoby/shared/Central.html#getFullNamespaces%28%29>*()| > > . > > There is no way to validate IDs except by submitting them to services > > are seeing if they work. > > > > Hope this helps! > > > > -Paul > > > >> Cheers, > >> > >> .../Ola Spjuth > >> > >> > >> > >> > >> _______________________________________________ > >> moby-l mailing list > >> moby-l at lists.open-bio.org > >> http://lists.open-bio.org/mailman/listinfo/moby-l > >> > >> !DSPAM:60005,46ba331480211783021950! > > > > _______________________________________________ > > MOBY-dev mailing list > > MOBY-dev at lists.open-bio.org > > http://lists.open-bio.org/mailman/listinfo/moby-dev > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From martin.senger at gmail.com Fri Aug 10 09:04:20 2007 From: martin.senger at gmail.com (Martin Senger) Date: Fri, 10 Aug 2007 14:04:20 +0100 Subject: [MOBY-dev] [MOBY-l] DataInputs for complex services In-Reply-To: <0B3759A7-712A-46DC-B55E-EDAE8A719DB5@farmbio.uu.se> References: <975EB52E-9893-415F-9818-A2E7D05E273D@farmbio.uu.se> <46BB29F5.6080100@ucalgary.ca> <0B3759A7-712A-46DC-B55E-EDAE8A719DB5@farmbio.uu.se> Message-ID: <4d93f07c0708100604p1d8f9bder26cb42d0476b1478@mail.gmail.com> > Is there a way to cache the data type and namespace ontologies and > get rid of the annoying MoSeS does it all the time :-) (see jMoby docs about it) Be aware (and the jMoby docs tries to expain it) that there are two ways how to use jMoby - the Paul's one and the MoSeS's one. Use whichever one you wish but do not mix them. Cheers, Martin -- Martin Senger email: martin.senger at gmail.com skype: martinsenger From martin.senger at gmail.com Fri Aug 10 09:04:20 2007 From: martin.senger at gmail.com (Martin Senger) Date: Fri, 10 Aug 2007 14:04:20 +0100 Subject: [MOBY-dev] [MOBY-l] DataInputs for complex services In-Reply-To: <0B3759A7-712A-46DC-B55E-EDAE8A719DB5@farmbio.uu.se> References: <975EB52E-9893-415F-9818-A2E7D05E273D@farmbio.uu.se> <46BB29F5.6080100@ucalgary.ca> <0B3759A7-712A-46DC-B55E-EDAE8A719DB5@farmbio.uu.se> Message-ID: <4d93f07c0708100604p1d8f9bder26cb42d0476b1478@mail.gmail.com> > Is there a way to cache the data type and namespace ontologies and > get rid of the annoying MoSeS does it all the time :-) (see jMoby docs about it) Be aware (and the jMoby docs tries to expain it) that there are two ways how to use jMoby - the Paul's one and the MoSeS's one. Use whichever one you wish but do not mix them. Cheers, Martin -- Martin Senger email: martin.senger at gmail.com skype: martinsenger From markw at illuminae.com Sun Aug 12 21:31:11 2007 From: markw at illuminae.com (mark wilkinson) Date: Mon, 13 Aug 2007 01:31:11 +0000 GMT Subject: [MOBY-dev] No comments so far... Message-ID: <1296043561-1186968757-cardhu_blackberry.rim.net-16813-@engine19-cell01> Hi all! So far I haven't received any comments (or at least, no *negative* comments) about the new manuscript or the responses to reviewers. I'm looking at Thursday as the day to re-submit, so please have a look before then and let me know if you have any objections. It's in the moby-live/Docs folder. Cheers all! M -- Mark Wilkinson ...on the road! From groscurt at mpiz-koeln.mpg.de Mon Aug 13 08:15:41 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Mon, 13 Aug 2007 14:15:41 +0200 Subject: [MOBY-dev] findservice.... again... the last In-Reply-To: <4669B789.1030103@ucalgary.ca> References: <4669B789.1030103@ucalgary.ca> Message-ID: <200708131415.41815.groscurt@mpiz-koeln.mpg.de> HI paul, you wont believe it, but i think i nearly got the complexity of the findservice and the moby magic behind that.... but one thing is missing.. how can i search for services, which return a non primitive object with a specific namespace e.g with this MobyDataObject dataObject = new MobyDataComposite( "GO_Term" ); dataObject.addNamespace(MobyNamespace.getNamespace("GO")); i find services which return a GO_Term with Namespace GO.... but how to do if I want ALL services which return something with the Namespace GO ? I tried MobyDataObject dataObject = new MobyDataComposite( "" ); dataObject.addNamespace(MobyNamespace.getNamespace("GO")); but that doesn return anything. Is this actually correct and supposed to return nothing or how can I search for all services with a specific namespace and any non-primitive object thanks andreas -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From gordonp at ucalgary.ca Mon Aug 13 10:32:06 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Mon, 13 Aug 2007 08:32:06 -0600 Subject: [MOBY-dev] findservice.... again... the last In-Reply-To: <200708131415.41815.groscurt@mpiz-koeln.mpg.de> References: <4669B789.1030103@ucalgary.ca> <200708131415.41815.groscurt@mpiz-koeln.mpg.de> Message-ID: <46C06B66.90402@ucalgary.ca> Hi Andreas, Every data type in MOBY inherits from "Object" (note that MobyDataComposite inherits from MobyDataObject), therefore to get services returning *any* data type used in conjunction with the GO namespace, simply use MobyDataObject: MobyDataObject dataObject = new MobyDataObject( "" ); dataObject.addNamespace(MobyNamespace.getNamespace("GO")); Regards, Paul > HI paul, > > you wont believe it, but i think i nearly got the complexity of the > findservice and the moby magic behind that.... but one thing is missing.. > > how can i search for services, which return a non primitive object with a > specific namespace > > e.g with this > > MobyDataObject dataObject = new MobyDataComposite( "GO_Term" ); > dataObject.addNamespace(MobyNamespace.getNamespace("GO")); > > i find services which return a GO_Term with Namespace GO.... but how to do if > I want ALL services which return something with the Namespace GO ? > > I tried > > MobyDataObject dataObject = new MobyDataComposite( "" ); > dataObject.addNamespace(MobyNamespace.getNamespace("GO")); > > but that doesn return anything. > > Is this actually correct and supposed to return nothing or how can I search > for all services with a specific namespace and any non-primitive object > > thanks > andreas > > From gordonp at ucalgary.ca Mon Aug 13 10:39:06 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Mon, 13 Aug 2007 08:39:06 -0600 Subject: [MOBY-dev] findservice.... again... the last In-Reply-To: <46C06B66.90402@ucalgary.ca> References: <4669B789.1030103@ucalgary.ca> <200708131415.41815.groscurt@mpiz-koeln.mpg.de> <46C06B66.90402@ucalgary.ca> Message-ID: <46C06D0A.6070709@ucalgary.ca> Hmm...that will catch primitive stuff too. There is no way to say "anything except a primitive", not just in jMOBY, but even at the level of the raw HTTP request to Moby Central. You're best to do the query I suggest, then filter the results... > Hi Andreas, > > Every data type in MOBY inherits from "Object" (note that > MobyDataComposite inherits > from MobyDataObject), therefore to get services returning *any* data > type used in conjunction > with the GO namespace, simply use MobyDataObject: > > MobyDataObject dataObject = new MobyDataObject( "" ); > dataObject.addNamespace(MobyNamespace.getNamespace("GO")); > > Regards, > > Paul > > >> HI paul, >> >> you wont believe it, but i think i nearly got the complexity of the >> findservice and the moby magic behind that.... but one thing is missing.. >> >> how can i search for services, which return a non primitive object with a >> specific namespace >> >> e.g with this >> >> MobyDataObject dataObject = new MobyDataComposite( "GO_Term" ); >> dataObject.addNamespace(MobyNamespace.getNamespace("GO")); >> >> i find services which return a GO_Term with Namespace GO.... but how to do if >> I want ALL services which return something with the Namespace GO ? >> >> I tried >> >> MobyDataObject dataObject = new MobyDataComposite( "" ); >> dataObject.addNamespace(MobyNamespace.getNamespace("GO")); >> >> but that doesn return anything. >> >> Is this actually correct and supposed to return nothing or how can I search >> for all services with a specific namespace and any non-primitive object >> >> thanks >> andreas >> >> >> > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev > > !DSPAM:60005,46c069d68021171556352! > > > > From groscurt at mpiz-koeln.mpg.de Tue Aug 21 05:32:44 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Tue, 21 Aug 2007 11:32:44 +0200 Subject: [MOBY-dev] Problem with the build.xml In-Reply-To: <46C06D0A.6070709@ucalgary.ca> References: <4669B789.1030103@ucalgary.ca> <46C06B66.90402@ucalgary.ca> <46C06D0A.6070709@ucalgary.ca> Message-ID: <200708211132.44377.groscurt@mpiz-koeln.mpg.de> Hi all, finally I'd like to check in the MobySync but I have a problem with building it. I copied the building files and information from the RDFagent and replaced it woth my information... calling ant bindist_mobysync to create the distribution I get compile-normal: [javac] Compiling 7 source files to /home/pcb/groscurt/Moby/moby-live/Java/build/classes [javac] /home/pcb/groscurt/Moby/moby-live/Java/src/main/org/biomoby/registry/sync/handler/AbstractMobyHandler.java:90: cannot find symbol [javac] symbol : method binarySearch(java.util.List,T) [javac] location: class java.util.Collections [javac] int index = Collections.binarySearch( localList, centralEntry ); [javac] ^ [javac] 1 error with eclipse I dont get any error compiling it... is there something set in the ant files some where that it does not know 1.5 (which would mean it should throw more errors...) or what could be the problem ? Thanks andreas -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From edward.kawas at gmail.com Wed Aug 22 13:28:54 2007 From: edward.kawas at gmail.com (Edward Kawas) Date: Wed, 22 Aug 2007 10:28:54 -0700 Subject: [MOBY-dev] Problem with the build.xml In-Reply-To: <200708211132.44377.groscurt@mpiz-koeln.mpg.de> References: <4669B789.1030103@ucalgary.ca> <46C06B66.90402@ucalgary.ca><46C06D0A.6070709@ucalgary.ca> <200708211132.44377.groscurt@mpiz-koeln.mpg.de> Message-ID: <000001c7e4e1$eb75f820$756fa8c0@notebook> Hey Andreas, can you send me the code and the build file? Thanks, Eddie > -----Original Message----- > From: moby-dev-bounces at lists.open-bio.org [mailto:moby-dev- > bounces at lists.open-bio.org] On Behalf Of Andreas Groscurth > Sent: Tuesday, August 21, 2007 2:33 AM > To: Core developer announcements > Subject: [MOBY-dev] Problem with the build.xml > > Hi all, > > finally I'd like to check in the MobySync but I have a problem with > building > it. > > I copied the building files and information from the RDFagent and replaced > it > woth my information... > > calling > > ant bindist_mobysync > > to create the distribution I get > > compile-normal: > [javac] Compiling 7 source files > to /home/pcb/groscurt/Moby/moby-live/Java/build/classes > > [javac] /home/pcb/groscurt/Moby/moby- > live/Java/src/main/org/biomoby/registry/sync/handler/AbstractMobyHandler.j > ava:90: > cannot find symbol > [javac] symbol : method binarySearch(java.util.List,T) > [javac] location: class java.util.Collections > [javac] int index = > Collections.binarySearch( localList, centralEntry ); > [javac] ^ > [javac] 1 error > > with eclipse I dont get any error compiling it... is there something set > in > the ant files some where that it does not know 1.5 (which would mean it > should throw more errors...) or what could be the problem ? > > Thanks > andreas > > -- > Andreas Groscurth > Diplom Bioinformatik - PhD Student > Max Planck Institute for Plant Breeding Research > Carl-von-Linn?-Weg 10 > 50829 Cologne > Germany > E-mail: ? ?groscurt at mpiz-koeln.mpg.de > Phone: ? ?+49(0)221-5062-447 > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev From edward.kawas at gmail.com Thu Aug 23 11:12:14 2007 From: edward.kawas at gmail.com (Edward Kawas) Date: Thu, 23 Aug 2007 08:12:14 -0700 Subject: [MOBY-dev] Perl MoSeS on CPAN Message-ID: <000f01c7e597$fcfd2760$6500a8c0@notebook> Hello Everyone, Following the suggestions of some of the others on the list, I have created and distributed a cpan release of Perl MoSeS. The distribution is called MOSES-MOBY and can be found at http://search.cpan.org/~ekawas/MOSES-MOBY-0.81/ (and most likely at many other mirror sites). The distribution is slightly different than the one that is in the cvs as the cpan version no longer depends on the BioMOBY JAVA command line clients and is entirely self-contained. All of the testing scripts that Martin created are used by the cpan release. The documentation for getting started is mainly contained in the module MOSES/MOBY.pm (again mainly from the Perl MoSeS documentation that Martin wrote). Most interested parties will not have to worry about the other modules. I am very interested in feedback (both to improve the service creation experience and to improve the documentation). Thanks a lot, Eddie From markw at illuminae.com Thu Aug 23 23:37:43 2007 From: markw at illuminae.com (mark wilkinson) Date: Fri, 24 Aug 2007 03:37:43 +0000 GMT Subject: [MOBY-dev] 1.0 Manuscript re-submitted Message-ID: <196484098-1187926663-cardhu_blackberry.rim.net-7784-@engine09-cell01> Fingers crossed! M -- Mark Wilkinson ...on the road! From groscurt at mpiz-koeln.mpg.de Fri Aug 24 05:43:57 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Fri, 24 Aug 2007 11:43:57 +0200 Subject: [MOBY-dev] MobySynchronization now available In-Reply-To: References: <57ADB696-B327-4A4E-BBAD-15E71089C8ED@gmail.com> Message-ID: <200708241143.58412.groscurt@mpiz-koeln.mpg.de> Hi all, I finally made it to check the MobySynchronization into the CVS. You will find the new packages org.biomoby.registry.sync, in which all the magic happens. A basic subsumption is: I retrieve with the CentralDigest class all four "object types" (MobyNamespace, MobyDataType, MobyServiceType, MobyService) from a given master central and from a given local central (defined in a configuration file). For each entry I check a) if its unkown to the local central -> register it b) if its not in the master central anymore, but in the local -> unregister it c) has it changed (has the LSID changed) -> unregister und register it As you will find in the documentation I added so called 'filter-rules' which allows one to specifiy which services shall be ignored or exclusively taken into account (e.g. defining to ignore services from an authority will not register any of the services from that authority locally). Also one can specifiy the local authority to avoid deregistration of local test services. The process at itself takes a long time - 45 mins. Fetching all the datatypes and services via the CentralDigestImpl is time-consuming (e.g. getting datatypes from the central takes about 10min on my machine - and all services about 15min) This maybe could be sped up, but I did want to use the existing methods to retieve the full information of the objects..... The building and using of the mobysynchronize is similar to the RDFagent (actually, I just copied and replaced), so calling the ant target bindist_mobysync will create the distribution stuff for the synchronization and this can be found /moby-live/Java/docs/dist/ there is also the README and in that the way to use the mobysync. Changes in the MOBY API: None... actually... I just added a interface called 'LSIDAccessible' which only has the method getLSID(). All Moby objects now implement this interface (actually all of them already have had the method getLSID(), so no changes in their classes) - i just added it to be able to program genetically.... also the 4 object classes now implement this interface and i had to made the Comparable interface they use also generic.... (e.. MobyService implements Comparable, LSIDAccessible) One issue I have not solved is with dependencies. So if one datatype e.g. can't be deregistered because its used locally in a service nothing happens. If that service is then deregistered, the datatype will be deregistered the next time the program is called. Also if a datatype is part of a hierarchy and its children are existing locally it will not deregister the datatype or deregister its children recursively.... if something is unclear, wrong or so - please let me know best andreas -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From ola.spjuth at farmbio.uu.se Thu Aug 30 10:27:13 2007 From: ola.spjuth at farmbio.uu.se (Ola Spjuth) Date: Thu, 30 Aug 2007 16:27:13 +0200 Subject: [MOBY-dev] Services in registry Message-ID: <45EA4928-D121-4FCA-BB05-DB7067632F1F@farmbio.uu.se> Hello, After trying to programmatically access several services I turned to using the dashboard and found that there are many in "default" registry which answer with "Connection refused", "Operation timed out" etc. Shouldn't the purpose of service discovery be that you only discover available services? How does this process work? Doesn't the registry poll (from time to time) if services are available? There are also some (I have tried several) services which answer "Response could not be parsed", "(500)Internal Server Error", and some respond with a stacktrace in the moby:serviceNotes tag. Many services also have poor or limited description, which makes it hard (almost impossible for novice users) to interpret what they actually do. I guess the solution to this is to require unit tests of a service upon registration, which the server can test the service with from time to time and make sure that it is operational. It should at least be quite simple to just send e.g. a predefined AminoAcidSequence to all services which accept them as inputs and verify that you get a valid result back. In case of failure, remove it from the registry and send an email to the responsible person. I am wondering how to use BioMoby in our rich client Bioclipse (www.bioclipse.net) at present. Is the resolution to set up our own central repository which we manually curate? How can I in that case synchronize this with the BioMoby registry but only include services which are actually available and return something useful (and omit all services meant for testing)? How are things done for the different registries available in the dashboard? Is it even possible for a person to document someone else's services? It is not my intention to sound negative. BioMoby looks extremely promising and will be an integral part of our project's future. Maybe I have just been unlucky with choosing services for testing. Could someone give me a few names of services which accept 1-2 AminoAcidSequence's and are fully operational from the dashboard? Cheers, Ola From edward.kawas at gmail.com Thu Aug 30 11:34:04 2007 From: edward.kawas at gmail.com (Edward Kawas) Date: Thu, 30 Aug 2007 08:34:04 -0700 Subject: [MOBY-dev] Services in registry In-Reply-To: <45EA4928-D121-4FCA-BB05-DB7067632F1F@farmbio.uu.se> References: <45EA4928-D121-4FCA-BB05-DB7067632F1F@farmbio.uu.se> Message-ID: <002401c7eb1b$32d28410$6500a8c0@notebook> Hi Ola, > After trying to programmatically access several services I > turned to using the dashboard and found that there are many > in "default" > registry which answer with "Connection refused", "Operation > timed out" etc. Shouldn't the purpose of service discovery be > that you only discover available services? How does this > process work? Doesn't the registry poll (from time to time) > if services are available? The registry does do such polling, but many of the clients do not use this information yet. One client that does is gBrowse_moby (http://mobycentral.icapture.ubc.ca/cgi-bin/gbrowse_moby) For a list of services and whether they respond to a 'ping' (true/false), try the following link: http://mobycentral.icapture.ubc.ca:8090/authority/ValidateService > > There are also some (I have tried several) services which > answer "Response could not be parsed", "(500)Internal Server > Error", and some respond with a stacktrace in the > moby:serviceNotes tag. I am not sure what services you tried, but one thing to keep in mind is that most of the services require a namespace, in addition to the amino acid sequence, and the service may fail ungracefully when one doesn't exist. > Many services also have poor or > limited description, which makes it hard (almost impossible > for novice users) to interpret what they actually do. I guess This blame here lies with the people that register the services. Unfortunately, the only option available to a user of these services would be to contact the service provider and ask them to possibly update the description to make it more descriptive. > the solution to this is to require unit tests of a service > upon registration, which the server can test the service with > from time to time and make sure that it is operational. It > should at least be quite simple to just send e.g. a > predefined AminoAcidSequence to all services which accept > them as inputs and verify that you get a valid result back. This is actually harder than it sounds. What does valid mean? A service may return seemingly random data or nothing at all and still be considered operational ... > I am wondering how to use BioMoby in our rich client Bioclipse > (www.bioclipse.net) at present. Is the resolution to set up > our own central repository which we manually curate? How can > I in that case synchronize this with the BioMoby registry but > only include services which are actually available and return > something useful (and omit all services meant for testing)? One thing to try would be including only those services that link mentioned above stated where 'alive'. This information is available in RDF/XML from http://biomoby.org/RESOURCES/MOBY-S/ServiceInstances, with the predicate 'isAlive'. > How are things done for the different registries available in > the dashboard? Is it even possible for a person to document > someone else's services? Not really. the only thing to do is email the service provider and ask them to nicely update their descriptions. Unless of course you plan to host your own moby registry. In that case, you could mirror the services (using a variety of ways, but one would be using the RDFAgent and the RDF mentioned above). You could edit the RDF document as much as you wanted and the changes would appear in your clone. > > It is not my intention to sound negative. BioMoby looks > extremely promising and will be an integral part of our > project's future. Maybe I have just been unlucky with > choosing services for testing. Could someone give me a few > names of services which accept 1-2 AminoAcidSequence's and > are fully operational from the dashboard? I found a few, of the ones that didn't work, I emailed the provider. Inb.bsc.es searchInterPro, runEmboss(AntigenicFromSequence | ChargeFromSequence | PepstatsFromSequence | PepstatswindowFromSequence | ...) (In dashboard, I sorted the services by input and attempted to run a few of the ones under the branch 'AminoAcidSequence'), etc. I used the amino acid sequence: RFCFDRLCF > > Cheers, > > Ola > Thanks, Eddie > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev From ola.spjuth at farmbio.uu.se Fri Aug 31 05:20:18 2007 From: ola.spjuth at farmbio.uu.se (Ola Spjuth) Date: Fri, 31 Aug 2007 11:20:18 +0200 Subject: [MOBY-dev] Services in registry In-Reply-To: <002401c7eb1b$32d28410$6500a8c0@notebook> References: <45EA4928-D121-4FCA-BB05-DB7067632F1F@farmbio.uu.se> <002401c7eb1b$32d28410$6500a8c0@notebook> Message-ID: <620875BF-7DB2-47F8-A673-92CBFD27F93C@farmbio.uu.se> Thanks for the help, Edward. I have some further questions/comments below: On Aug 30, 2007, at 17:34 , Edward Kawas wrote: > Hi Ola, > >> After trying to programmatically access several services I >> turned to using the dashboard and found that there are many >> in "default" >> registry which answer with "Connection refused", "Operation >> timed out" etc. Shouldn't the purpose of service discovery be >> that you only discover available services? How does this >> process work? Doesn't the registry poll (from time to time) >> if services are available? > The registry does do such polling, but many of the clients do not > use this > information yet. One client that does is gBrowse_moby > (http://mobycentral.icapture.ubc.ca/cgi-bin/gbrowse_moby) I tried the getStatus() method for MobyService in jMoby, but all services in default repository are reported to be "UNCHECKED". Any idea why this is the case? Is polling turned off for some reason or is the information not used in jMoby? > For a list of services and whether they respond to a 'ping' (true/ > false), > try the following link: > http://mobycentral.icapture.ubc.ca:8090/authority/ValidateService > >> There are also some (I have tried several) services which >> answer "Response could not be parsed", "(500)Internal Server >> Error", and some respond with a stacktrace in the >> moby:serviceNotes tag. > I am not sure what services you tried, but one thing to keep in > mind is that > most of the services require a namespace, in addition to the amino > acid > sequence, and the service may fail ungracefully when one doesn't > exist. I have not really understood this. Why do services require a namespace? If I am a novice user and have an aminoacid sequence, how can I find available services for it then? How do sort out which namespaces are relevant? And should not services respond with "namespace is required"? > >> Many services also have poor or >> limited description, which makes it hard (almost impossible >> for novice users) to interpret what they actually do. I guess > > This blame here lies with the people that register the services. > Unfortunately, the only option available to a user of these > services would > be to contact the service provider and ask them to possibly update the > description to make it more descriptive. Is it possible to have a curation step and a "CuratedRegistry" where only services that are well documented can be registered? That would inspire better documentation from providers as they want to see their services in the CuratedRegistry. > >> the solution to this is to require unit tests of a service >> upon registration, which the server can test the service with >> from time to time and make sure that it is operational. It >> should at least be quite simple to just send e.g. a >> predefined AminoAcidSequence to all services which accept >> them as inputs and verify that you get a valid result back. > This is actually harder than it sounds. What does valid mean? A > service may > return seemingly random data or nothing at all and still be considered > operational ... But if it is required to provide at least 2 complex use cases with input and a correct output, the server can run these tests from time to time. I assume this would fit nicely in the CuratedRegistry. >> I am wondering how to use BioMoby in our rich client Bioclipse >> (www.bioclipse.net) at present. Is the resolution to set up >> our own central repository which we manually curate? How can >> I in that case synchronize this with the BioMoby registry but >> only include services which are actually available and return >> something useful (and omit all services meant for testing)? > One thing to try would be including only those services that link > mentioned > above stated where 'alive'. This information is available in RDF/ > XML from > http://biomoby.org/RESOURCES/MOBY-S/ServiceInstances, with the > predicate > 'isAlive'. I assume the same information should be available from the API call myService.getStatus() from jMoby API. Right? >> How are things done for the different registries available in >> the dashboard? Is it even possible for a person to document >> someone else's services? > Not really. the only thing to do is email the service provider and > ask them > to nicely update their descriptions. Unless of course you plan to > host your > own moby registry. In that case, you could mirror the services > (using a > variety of ways, but one would be using the RDFAgent and the RDF > mentioned > above). You could edit the RDF document as much as you wanted and the > changes would appear in your clone. I see. But wouldn't all changes like added documentation be lost when a service is updated? I assume the only good alternative is to require more documentation and have some sort of curation system. Maybe I have to set up my own registry to get things working properly for my client, but I'd prefer to use a central registry. >> It is not my intention to sound negative. BioMoby looks >> extremely promising and will be an integral part of our >> project's future. Maybe I have just been unlucky with >> choosing services for testing. Could someone give me a few >> names of services which accept 1-2 AminoAcidSequence's and >> are fully operational from the dashboard? > I found a few, of the ones that didn't work, I emailed the provider. > Inb.bsc.es > searchInterPro, runEmboss(AntigenicFromSequence | ChargeFromSequence > | PepstatsFromSequence | PepstatswindowFromSequence | ...) > > (In dashboard, I sorted the services by input and attempted to run > a few of > the ones under the branch 'AminoAcidSequence'), etc. > > I used the amino acid sequence: RFCFDRLCF Thanks a lot for the help! Ola From gordonp at ucalgary.ca Fri Aug 31 09:58:58 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Fri, 31 Aug 2007 07:58:58 -0600 Subject: [MOBY-dev] Services in registry In-Reply-To: <620875BF-7DB2-47F8-A673-92CBFD27F93C@farmbio.uu.se> References: <45EA4928-D121-4FCA-BB05-DB7067632F1F@farmbio.uu.se> <002401c7eb1b$32d28410$6500a8c0@notebook> <620875BF-7DB2-47F8-A673-92CBFD27F93C@farmbio.uu.se> Message-ID: <46D81EA2.1040209@ucalgary.ca> Hi Ola, >>> After trying to programmatically access several services I >>> turned to using the dashboard and found that there are many >>> in "default" >>> registry which answer with "Connection refused", "Operation >>> timed out" etc. Shouldn't the purpose of service discovery be >>> that you only discover available services? How does this >>> process work? Doesn't the registry poll (from time to time) >>> if services are available? >>> >> The registry does do such polling, but many of the clients do not >> use this >> information yet. One client that does is gBrowse_moby >> (http://mobycentral.icapture.ubc.ca/cgi-bin/gbrowse_moby) >> > > I tried the getStatus() method for MobyService in jMoby, but all > services in default repository are reported to be "UNCHECKED". Any > idea why this is the case? Is polling turned off for some reason or > is the information not used in jMoby? > Almost :-) getStatus() is indeed how to get this information, but it is not automatically populated (because this information does not come from the registry, but from a supplemental RDF file that happens to be around). In the Seahawk MOBY client, I populate the status first with setStatus(). For an example, see ca.ucalgary.seahawk.services.MobyClient line 1031. From markw at illuminae.com Fri Aug 3 21:54:13 2007 From: markw at illuminae.com (Mark Wilkinson) Date: Fri, 03 Aug 2007 14:54:13 -0700 Subject: [MOBY-dev] Post-review manuscript committed Message-ID: Hi all, I've edited the manuscript as best I can based on what I understood the reviewer was requesting. Comments welcome. I've also committed the response to reviewers document for any comments anyone might have. /moby-live/Docs/ Cheers all! M -- -- Mark Wilkinson Assistant Professor, Dept. Medical Genetics University of British Columbia PI Bioinformatics iCAPTURE Centre, St. Paul's Hospital Tel: 604 682 2344 x62129 Fax: 604 806 9274 ***CONFIDENTIALITY NOTICE*** This electronic message is intended only for the use of the addressee and may contain information that is privileged and confidential. Any dissemination, distribution or copying of this communication by unauthorized individuals is strictly prohibited. If you have received this communication in error, please notify the sender immediately by reply e-mail and delete the original and all copies from your system. From Usadel at mpimp-golm.mpg.de Sat Aug 4 15:25:42 2007 From: Usadel at mpimp-golm.mpg.de (Bjoern Usadel) Date: Sat, 4 Aug 2007 17:25:42 +0200 Subject: [MOBY-dev] Re. Post-review manuscript committed Message-ID: <8233DF2244998040848283889E22DBA0864C09@MAIL.mpimp-golm.mpg.de> Hi Mark, I resend my affiliation(and Pieter Neerincx's one which I grabbed from his sig 9 July 2007) to your illuminae address. Could it be that some of the affiliations got lost when send to you privately, since I did sent my affiliation already and I guess Pieter did as well. Or is it just my stupid webmail client (again)? Rebecca Ernst used to be at the MIPS, maybe Andreas Groscurth or Dirk Haase know her current email and affiliation? (You are bcced, so sorry if you get the mail multiple times) Roman Rosset I found on an old INB presentation, maybe someone knows him there. Jason Stewart, Yan Wong I have never heard of and they are to many possible hits, sorry. Ok now I will read the actual paper.... Best Wishes, Bj?rn From Pieter.Neerincx at wur.nl Mon Aug 6 10:04:15 2007 From: Pieter.Neerincx at wur.nl (Pieter Neerincx) Date: Mon, 6 Aug 2007 12:04:15 +0200 Subject: [MOBY-dev] Re. Post-review manuscript committed In-Reply-To: <8233DF2244998040848283889E22DBA0864C09@MAIL.mpimp-golm.mpg.de> References: <8233DF2244998040848283889E22DBA0864C09@MAIL.mpimp-golm.mpg.de> Message-ID: On 4-Aug-2007, at 5:25 PM, Bjoern Usadel wrote: > Hi Mark, > > I resend my affiliation(and Pieter Neerincx's one which I grabbed > from his sig 9 July 2007) to your illuminae address. > > Could it be that some of the affiliations got lost when send to you > privately, since I did sent my affiliation already and I guess > Pieter did as well. Or is it just my stupid webmail client (again)? No it's not your client. I did send my affiliation already, but indeed to Mark's illuminae.com address... Thanks, Pi > Rebecca Ernst used to be at the MIPS, maybe Andreas Groscurth or > Dirk Haase know her current email and affiliation? (You are bcced, > so sorry if you get the mail multiple times) > > Roman Rosset I found on an old INB presentation, maybe someone > knows him there. > > Jason Stewart, Yan Wong I have never heard of and they are to many > possible hits, sorry. > > Ok now I will read the actual paper.... > > Best Wishes, > Bj?rn > > > > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev ------------------------------------------------------------- Wageningen University and Research centre (WUR) Laboratory of Bioinformatics Transitorium (building 312) room 1034 Dreijenlaan 3 6703 HA Wageningen The Netherlands phone: 0317-483 060 fax: 0317-483 584 mobile: 06-143 66 783 mail: pieter.neerincx at wur.nl skype: pieter.online ------------------------------------------------------------ From martin.senger at gmail.com Mon Aug 6 10:49:02 2007 From: martin.senger at gmail.com (Martin Senger) Date: Mon, 6 Aug 2007 11:49:02 +0100 Subject: [MOBY-dev] ServiceProvider URL and Logo In-Reply-To: <46ADFB4A.9070401@ucalgary.ca> References: <1149242476@web.de> <000c01c7d2b2$5613d360$6400a8c0@notebook> <200707301638.49459.groscurt@mpiz-koeln.mpg.de> <000d01c7d2b8$7c460ed0$6400a8c0@notebook> <46ADFB4A.9070401@ucalgary.ca> Message-ID: <4d93f07c0708060349x3f204b1bw657fda560a302514@mail.gmail.com> I think that the metadata way is here just for these (such) cases. My 2c's. What is our mechanism of adding new predicates? Paul, I am not sure what is your choice because you "voted" for both:-) ["...I like the RDF metadata idea..." and then "...I am personally in favour of the serviceNotes option..."] Cheers, Martin -- Martin Senger email: martin.senger at gmail.com skype: martinsenger From ola.spjuth at farmbio.uu.se Mon Aug 6 13:41:24 2007 From: ola.spjuth at farmbio.uu.se (Ola Spjuth) Date: Mon, 6 Aug 2007 15:41:24 +0200 Subject: [MOBY-dev] Get services by serviceType in cached central Message-ID: Hello, In jMoby I have set up a CachedCentralImpl and want to build a hierarchy of MobyServiceType -> MobyService for display in a tree. I can get a list of all types via getServiceTypes() (gives me a String[]). How can I look up (in my cached centralimpl) the services for each ServiceType? I can get services by Authority, but not by ServiceType. If currently not possible, may I request an API update with the convenience method worker.getServiceByType(MobyServiceType type)? Cheers, .../Ola From martin.senger at gmail.com Mon Aug 6 20:03:23 2007 From: martin.senger at gmail.com (Martin Senger) Date: Mon, 6 Aug 2007 21:03:23 +0100 Subject: [MOBY-dev] Get services by serviceType in cached central In-Reply-To: References: Message-ID: <4d93f07c0708061303j733841f6qb0f3ece3d5c97346@mail.gmail.com> Hi, How can I look up (in my cached centralimpl) the services for each > ServiceType? You can see this functionality in the Dashboard's panel "Registry Browser" (by right-click in the "Services" tree and selecting "Sort by service types"). The code that does it can be found in the file org.biomoby.service.dashboard.ServicesTree.java - look there for the method "onUpdateServicesTreeByType". The tree gets data from RegistryModel.java(that gets it from the CentralDigestCachedImpl.java). The data are actually in two sets: getServices() and getServiceTypes() and the ServicesTree.java builds the tree from these two sets. This approach works without any addition to the BioMoby's API because you get *all* data and just rearrange them as needed. This is fast enough because you are using a cached client. If you, however, insist to use the "lazy" approach (which means to get a list of corresponding services only after a user selects a service type) you would need a "findService" method working on cached objects. Such method, indeed, does not exist in the CentralDigestCached.java interface. I considered it when the interface had been created and decided not to have it because it would need a lot of replicated functionality that are implemented on the registry site. So far, the memory and performance were not the issues when using the *all* data approach so I did not bother. Cheers, Martin -- Martin Senger email: martin.senger at gmail.com skype: martinsenger From groscurt at mpiz-koeln.mpg.de Tue Aug 7 14:14:51 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Tue, 7 Aug 2007 16:14:51 +0200 Subject: [MOBY-dev] findService java api question In-Reply-To: <469CE9B5.2080804@ucalgary.ca> References: <4695368E.7070702@ucalgary.ca> <200707161514.11642.groscurt@mpiz-koeln.mpg.de> <469CE9B5.2080804@ucalgary.ca> Message-ID: <200708071614.52690.groscurt@mpiz-koeln.mpg.de> Hi, I still dont get the findService api .... hope again, someone can help me out Central central = new CentralImpl(); MobyService service = new MobyService(); service.setCategory( "" ); // create an input object... the service shall consume an AGI_LocusCode MobyDataObject inputObject = new MobyDataObject( "" ); inputObject.setPrimaryNamespace( MobyNamespace.getNamespace( "AGI_LocusCode" ) ); service.addInput( inputObject ); // I want services which have a NucleotideSequence as output MobyDataObject dataObject = new MobyDataObject( "NucleotideSequence" ); service.addOutput( dataObject ); MobyService[] services = central.findService( service ); for ( MobyService service2 : services ) { System.out.println(service2.getName()); } System.out.println("-------------------------------"); services = central.findService( service, null, false, false ); for ( MobyService service2 : services ) { System.out.println(service2.getName()); } System.out.println("-------------------------------"); services = central.findService( service, null, true, false ); for ( MobyService service2 : services ) { System.out.println(service2.getName()); } System.out.println("-------------------------------"); services = central.findService( service, null, false, true ); for ( MobyService service2 : services ) { System.out.println(service2.getName()); } Calling this I get getNASCinsertByAGI getNASCstockCodeByAGI getCorrelationByAGI getNASC_codebyAGI_locus getAthImageByAGI Locus2GeneAliases Echo3 getNASCphenotypeByAGI NASCArraysGeneswingerByAGI getAGRISTFFamilyNameByAGI getNASCstockNameByAGI and also - what ever kind of true / false combination i use in findService... its always the same result. so 1. I dont understand the find service result at all and 2. why doesnt it matter to use different true / false values in the findservice call ? thanks Andreas From edward.kawas at gmail.com Tue Aug 7 14:26:18 2007 From: edward.kawas at gmail.com (Edward Kawas) Date: Tue, 7 Aug 2007 07:26:18 -0700 Subject: [MOBY-dev] findService java api question In-Reply-To: <200708071614.52690.groscurt@mpiz-koeln.mpg.de> References: <4695368E.7070702@ucalgary.ca><200707161514.11642.groscurt@mpiz-koeln.mpg.de><469CE9B5.2080804@ucalgary.ca> <200708071614.52690.groscurt@mpiz-koeln.mpg.de> Message-ID: <000601c7d8fe$eb6fe460$6400a8c0@notebook> Hi Andreas, I will give you a little nudge to push you along! The Booleans that you are talking about are the 'expandServices' and 'expandObjects' flags. If you go to http://biomoby.open-bio.org/CVS_CONTENT/moby-live/Docs/MOBY-S_API/MobyCentra lObjects.html#ServiceQueryObject, you can see what they are meant to do. I think using the services browser (as part of the registry browser in dashboard) will help in deciphering what the results should be, etc. Hope this helps, Eddie > -----Original Message----- > From: moby-dev-bounces at lists.open-bio.org [mailto:moby-dev- > bounces at lists.open-bio.org] On Behalf Of Andreas Groscurth > Sent: Tuesday, August 07, 2007 7:15 AM > To: Core developer announcements > Subject: [MOBY-dev] findService java api question > > Hi, > > I still dont get the findService api .... hope again, someone can help me > out > > Central central = new CentralImpl(); > MobyService service = new MobyService(); > service.setCategory( "" ); > > // create an input object... the service shall consume an AGI_LocusCode > MobyDataObject inputObject = new MobyDataObject( "" ); > inputObject.setPrimaryNamespace( MobyNamespace.getNamespace( > "AGI_LocusCode" ) ); > service.addInput( inputObject ); > > // I want services which have a NucleotideSequence as output > MobyDataObject dataObject = new MobyDataObject( "NucleotideSequence" ); > service.addOutput( dataObject ); > > MobyService[] services = central.findService( service ); > for ( MobyService service2 : services ) { > System.out.println(service2.getName()); > } > > System.out.println("-------------------------------"); > > services = central.findService( service, null, false, false ); > for ( MobyService service2 : services ) { > System.out.println(service2.getName()); > } > > System.out.println("-------------------------------"); > > services = central.findService( service, null, true, false ); > for ( MobyService service2 : services ) { > System.out.println(service2.getName()); > } > > System.out.println("-------------------------------"); > > services = central.findService( service, null, false, true ); > for ( MobyService service2 : services ) { > System.out.println(service2.getName()); > } > > Calling this I get > > getNASCinsertByAGI > getNASCstockCodeByAGI > getCorrelationByAGI > getNASC_codebyAGI_locus > getAthImageByAGI > Locus2GeneAliases > Echo3 > getNASCphenotypeByAGI > NASCArraysGeneswingerByAGI > getAGRISTFFamilyNameByAGI > getNASCstockNameByAGI > > and also - what ever kind of true / false combination i use in > findService... > its always the same result. > > so 1. I dont understand the find service result at all > and 2. why doesnt it matter to use different true / false values in the > findservice call ? > > thanks > Andreas > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev From gordonp at ucalgary.ca Tue Aug 7 14:32:27 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Tue, 07 Aug 2007 08:32:27 -0600 Subject: [MOBY-dev] findService java api question In-Reply-To: <200708071614.52690.groscurt@mpiz-koeln.mpg.de> References: <4695368E.7070702@ucalgary.ca> <200707161514.11642.groscurt@mpiz-koeln.mpg.de> <469CE9B5.2080804@ucalgary.ca> <200708071614.52690.groscurt@mpiz-koeln.mpg.de> Message-ID: <46B8827B.9010207@ucalgary.ca> Hi Andreas, > Hi, > > I still dont get the findService api .... hope again, someone can help me out > > Central central = new CentralImpl(); > MobyService service = new MobyService(); > service.setCategory( "" ); > > // create an input object... the service shall consume an AGI_LocusCode > MobyDataObject inputObject = new MobyDataObject( "" ); > inputObject.setPrimaryNamespace( MobyNamespace.getNamespace( "AGI_LocusCode" ) ); > service.addInput( inputObject ); > > // I want services which have a NucleotideSequence as output > MobyDataObject dataObject = new MobyDataObject( "NucleotideSequence" ); > What you actually want is a new MobyDataComposite("NucleotideSequence"). From the MobyDataObject javadocs: A class representing a *base* MOBY object (i.e. just a namespace and id) that has been instantiated. If you are looking to represent an object with members (e.g. DNASequence), look at MobyDataComposite. Hope this helps! From groscurt at mpiz-koeln.mpg.de Tue Aug 7 15:10:14 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Tue, 7 Aug 2007 17:10:14 +0200 Subject: [MOBY-dev] findService java api question In-Reply-To: <46B8827B.9010207@ucalgary.ca> References: <4695368E.7070702@ucalgary.ca> <200708071614.52690.groscurt@mpiz-koeln.mpg.de> <46B8827B.9010207@ucalgary.ca> Message-ID: <200708071710.17096.groscurt@mpiz-koeln.mpg.de> Hi, right... I though of the MobyDataComposite object in a different way... ok... its getting better :) Thanks andreas On Tuesday 07 August 2007 16:32, Paul Gordon wrote: > Hi Andreas, > > > Hi, > > > > I still dont get the findService api .... hope again, someone can help me > > out > > > > Central central = new CentralImpl(); > > MobyService service = new MobyService(); > > service.setCategory( "" ); > > > > // create an input object... the service shall consume an AGI_LocusCode > > MobyDataObject inputObject = new MobyDataObject( "" ); > > inputObject.setPrimaryNamespace( MobyNamespace.getNamespace( > > "AGI_LocusCode" ) ); service.addInput( inputObject ); > > > > // I want services which have a NucleotideSequence as output > > MobyDataObject dataObject = new MobyDataObject( "NucleotideSequence" ); > > What you actually want is a new > MobyDataComposite("NucleotideSequence"). From the MobyDataObject javadocs: > > A class representing a *base* MOBY object (i.e. just a namespace and id) > that has been instantiated. If you are looking to represent an object > with members (e.g. DNASequence), look at MobyDataComposite. > > Hope this helps! > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From groscurt at mpiz-koeln.mpg.de Tue Aug 7 15:54:25 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Tue, 7 Aug 2007 17:54:25 +0200 Subject: [MOBY-dev] findService java api question In-Reply-To: <000601c7d8fe$eb6fe460$6400a8c0@notebook> References: <4695368E.7070702@ucalgary.ca> <200708071614.52690.groscurt@mpiz-koeln.mpg.de> <000601c7d8fe$eb6fe460$6400a8c0@notebook> Message-ID: <200708071754.25417.groscurt@mpiz-koeln.mpg.de> Hi, ok - so if I understood it correctly I search for services consuming a GenericSequence and have as input AGI_LocusCode and return a collection... I get getMIPSArabidopsisProteinSequence If I search for services with the same parameter, but consuming an AminoAcidSequence, shouldn't I at least get the getMIPSArabidopsisProteinSequence from the previous search, if the expandObjects flag is set to true ? But I dont get anything for the second search.... Hope one can help me again :( Thanks Andreas On Tuesday 07 August 2007 16:26, Edward Kawas wrote: > Hi Andreas, > > I will give you a little nudge to push you along! > > The Booleans that you are talking about are the 'expandServices' and > 'expandObjects' flags. If you go to > http://biomoby.open-bio.org/CVS_CONTENT/moby-live/Docs/MOBY-S_API/MobyCentr >a lObjects.html#ServiceQueryObject, you can see what they are meant to do. > > I think using the services browser (as part of the registry browser in > dashboard) will help in deciphering what the results should be, etc. > > Hope this helps, > > Eddie > > > -----Original Message----- > > From: moby-dev-bounces at lists.open-bio.org [mailto:moby-dev- > > bounces at lists.open-bio.org] On Behalf Of Andreas Groscurth > > Sent: Tuesday, August 07, 2007 7:15 AM > > To: Core developer announcements > > Subject: [MOBY-dev] findService java api question > > > > Hi, > > > > I still dont get the findService api .... hope again, someone can help me > > out > > > > Central central = new CentralImpl(); > > MobyService service = new MobyService(); > > service.setCategory( "" ); > > > > // create an input object... the service shall consume an AGI_LocusCode > > MobyDataObject inputObject = new MobyDataObject( "" ); > > inputObject.setPrimaryNamespace( MobyNamespace.getNamespace( > > "AGI_LocusCode" ) ); > > service.addInput( inputObject ); > > > > // I want services which have a NucleotideSequence as output > > MobyDataObject dataObject = new MobyDataObject( "NucleotideSequence" ); > > service.addOutput( dataObject ); > > > > MobyService[] services = central.findService( service ); > > for ( MobyService service2 : services ) { > > System.out.println(service2.getName()); > > } > > > > System.out.println("-------------------------------"); > > > > services = central.findService( service, null, false, false ); > > for ( MobyService service2 : services ) { > > System.out.println(service2.getName()); > > } > > > > System.out.println("-------------------------------"); > > > > services = central.findService( service, null, true, false ); > > for ( MobyService service2 : services ) { > > System.out.println(service2.getName()); > > } > > > > System.out.println("-------------------------------"); > > > > services = central.findService( service, null, false, true ); > > for ( MobyService service2 : services ) { > > System.out.println(service2.getName()); > > } > > > > Calling this I get > > > > getNASCinsertByAGI > > getNASCstockCodeByAGI > > getCorrelationByAGI > > getNASC_codebyAGI_locus > > getAthImageByAGI > > Locus2GeneAliases > > Echo3 > > getNASCphenotypeByAGI > > NASCArraysGeneswingerByAGI > > getAGRISTFFamilyNameByAGI > > getNASCstockNameByAGI > > > > and also - what ever kind of true / false combination i use in > > findService... > > its always the same result. > > > > so 1. I dont understand the find service result at all > > and 2. why doesnt it matter to use different true / false values in the > > findservice call ? > > > > thanks > > Andreas > > _______________________________________________ > > MOBY-dev mailing list > > MOBY-dev at lists.open-bio.org > > http://lists.open-bio.org/mailman/listinfo/moby-dev > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From gordonp at ucalgary.ca Tue Aug 7 16:24:44 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Tue, 07 Aug 2007 10:24:44 -0600 Subject: [MOBY-dev] findService java api question In-Reply-To: <200708071754.25417.groscurt@mpiz-koeln.mpg.de> References: <4695368E.7070702@ucalgary.ca> <200708071614.52690.groscurt@mpiz-koeln.mpg.de> <000601c7d8fe$eb6fe460$6400a8c0@notebook> <200708071754.25417.groscurt@mpiz-koeln.mpg.de> Message-ID: <46B89CCC.7070508@ucalgary.ca> Hi Andreas, > > ok - so if I understood it correctly > > I search for services consuming a GenericSequence and have as input > AGI_LocusCode and return a collection... > > I get getMIPSArabidopsisProteinSequence > > If I search for services with the same parameter, but consuming an > AminoAcidSequence, shouldn't I at least get the > getMIPSArabidopsisProteinSequence from the previous search, if the > expandObjects flag is set to true ? > No, unless the AminoAcidSequence has the AGI_LocusCode namespace, since that's what the service requires as input (any Object in the AGI_LocusCode namespace). Of course, if you already have the AminoAcidSequence, you probably don't need to be calling that service... :-) > But I dont get anything for the second search.... > > Hope one can help me again :( > From gordonp at ucalgary.ca Tue Aug 7 16:26:31 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Tue, 07 Aug 2007 10:26:31 -0600 Subject: [MOBY-dev] findService java api question In-Reply-To: <46B89CCC.7070508@ucalgary.ca> References: <4695368E.7070702@ucalgary.ca> <200708071614.52690.groscurt@mpiz-koeln.mpg.de> <000601c7d8fe$eb6fe460$6400a8c0@notebook> <200708071754.25417.groscurt@mpiz-koeln.mpg.de> <46B89CCC.7070508@ucalgary.ca> Message-ID: <46B89D37.2060608@ucalgary.ca> Oops, I just re-read the service description. It could make sense to pass in an AminoAcidSequence, but, yes, it still has to be AGI-LocusCode namespace. > Hi Andreas, > >> ok - so if I understood it correctly >> >> I search for services consuming a GenericSequence and have as input >> AGI_LocusCode and return a collection... >> >> I get getMIPSArabidopsisProteinSequence >> >> If I search for services with the same parameter, but consuming an >> AminoAcidSequence, shouldn't I at least get the >> getMIPSArabidopsisProteinSequence from the previous search, if the >> expandObjects flag is set to true ? >> >> > No, unless the AminoAcidSequence has the AGI_LocusCode namespace, since > that's what the service requires as input (any Object in the > AGI_LocusCode namespace). > Of course, if you already have the AminoAcidSequence, you probably don't > need to be calling that service... :-) > >> But I dont get anything for the second search.... >> >> Hope one can help me again :( >> >> > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev > > !DSPAM:60005,46b89b4a80213208930732! > > > > From gordonp at ucalgary.ca Tue Aug 7 23:05:54 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Tue, 07 Aug 2007 17:05:54 -0600 Subject: [MOBY-dev] ServiceProvider URL and Logo In-Reply-To: <4d93f07c0708060349x3f204b1bw657fda560a302514@mail.gmail.com> References: <1149242476@web.de> <000c01c7d2b2$5613d360$6400a8c0@notebook> <200707301638.49459.groscurt@mpiz-koeln.mpg.de> <000d01c7d2b8$7c460ed0$6400a8c0@notebook> <46ADFB4A.9070401@ucalgary.ca> <4d93f07c0708060349x3f204b1bw657fda560a302514@mail.gmail.com> Message-ID: <46B8FAD2.7070006@ucalgary.ca> The RDF idea was brought up after my initial posting, so my agreement with it overrides my earlier stated preference :-) > I think that the metadata way is here just for these (such) cases. My 2c's. > > What is our mechanism of adding new predicates? > > Paul, I am not sure what is your choice because you "voted" for both:-) > ["...I like the RDF metadata idea..." and then "...I am personally in favour > of the serviceNotes option..."] > > Cheers, > Martin > > From groscurt at mpiz-koeln.mpg.de Wed Aug 8 07:36:46 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Wed, 8 Aug 2007 09:36:46 +0200 Subject: [MOBY-dev] ServiceProvider URL and Logo In-Reply-To: <46B8FAD2.7070006@ucalgary.ca> References: <1149242476@web.de> <4d93f07c0708060349x3f204b1bw657fda560a302514@mail.gmail.com> <46B8FAD2.7070006@ucalgary.ca> Message-ID: <200708080936.46308.groscurt@mpiz-koeln.mpg.de> Are there any complaints about that or can we (or mhm... anyone) start to implement that (or put it on the todo) ? Cheers andreas On Wednesday 08 August 2007 01:05, Paul Gordon wrote: > The RDF idea was brought up after my initial posting, so my agreement > with it overrides my earlier stated preference :-) > > > I think that the metadata way is here just for these (such) cases. My > > 2c's. > > > > What is our mechanism of adding new predicates? > > > > Paul, I am not sure what is your choice because you "voted" for both:-) > > ["...I like the RDF metadata idea..." and then "...I am personally in > > favour of the serviceNotes option..."] > > > > Cheers, > > Martin > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From groscurt at mpiz-koeln.mpg.de Wed Aug 8 07:45:19 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Wed, 8 Aug 2007 09:45:19 +0200 Subject: [MOBY-dev] findService java api question In-Reply-To: <46B89D37.2060608@ucalgary.ca> References: <4695368E.7070702@ucalgary.ca> <46B89CCC.7070508@ucalgary.ca> <46B89D37.2060608@ucalgary.ca> Message-ID: <200708080945.19621.groscurt@mpiz-koeln.mpg.de> thanks for that. I always thought of a simple hierarchie... so that if the requirements met for a service it will automatically do so for any sub datatyp (like i described with the getMIPSArabidopsisProteinSequence). Thanks for helping me out :) andreas On Tuesday 07 August 2007 18:26, Paul Gordon wrote: > Oops, I just re-read the service description. It could make sense to > pass in an AminoAcidSequence, but, yes, it still has to be AGI-LocusCode > namespace. > > > Hi Andreas, > > > >> ok - so if I understood it correctly > >> > >> I search for services consuming a GenericSequence and have as input > >> AGI_LocusCode and return a collection... > >> > >> I get getMIPSArabidopsisProteinSequence > >> > >> If I search for services with the same parameter, but consuming an > >> AminoAcidSequence, shouldn't I at least get the > >> getMIPSArabidopsisProteinSequence from the previous search, if the > >> expandObjects flag is set to true ? > > > > No, unless the AminoAcidSequence has the AGI_LocusCode namespace, since > > that's what the service requires as input (any Object in the > > AGI_LocusCode namespace). > > Of course, if you already have the AminoAcidSequence, you probably don't > > need to be calling that service... :-) > > > >> But I dont get anything for the second search.... > >> > >> Hope one can help me again :( > > > > _______________________________________________ > > MOBY-dev mailing list > > MOBY-dev at lists.open-bio.org > > http://lists.open-bio.org/mailman/listinfo/moby-dev > > > > !DSPAM:60005,46b89b4a80213208930732! > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From martin.senger at gmail.com Wed Aug 8 08:11:13 2007 From: martin.senger at gmail.com (Martin Senger) Date: Wed, 8 Aug 2007 09:11:13 +0100 Subject: [MOBY-dev] ServiceProvider URL and Logo In-Reply-To: <200708080936.46308.groscurt@mpiz-koeln.mpg.de> References: <1149242476@web.de> <4d93f07c0708060349x3f204b1bw657fda560a302514@mail.gmail.com> <46B8FAD2.7070006@ucalgary.ca> <200708080936.46308.groscurt@mpiz-koeln.mpg.de> Message-ID: <4d93f07c0708080111m345ebc91t4d753c037d58a57f@mail.gmail.com> > Are there any complaints about that or can we (or mhm... anyone) start to > implement that (or put it on the todo) ? The only "implementation" needed (except in the smart clients) is to define a new predicate (or few predicates). That's why I had asked: What is our mechanism of adding new predicates > Cheers, Martin -- Martin Senger email: martin.senger at gmail.com skype: martinsenger From gordonp at ucalgary.ca Wed Aug 8 14:19:10 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Wed, 08 Aug 2007 08:19:10 -0600 Subject: [MOBY-dev] findService java api question In-Reply-To: <200708080945.19621.groscurt@mpiz-koeln.mpg.de> References: <4695368E.7070702@ucalgary.ca> <46B89CCC.7070508@ucalgary.ca> <46B89D37.2060608@ucalgary.ca> <200708080945.19621.groscurt@mpiz-koeln.mpg.de> Message-ID: <46B9D0DE.1050206@ucalgary.ca> Yes, of course, the principle of subsumption (http://en.wikipedia.org/wiki/Liskov_substitution_principle) holds in MOBY, whether it is pragmatic for any given service or not. :-) > thanks for that. > > I always thought of a simple hierarchie... so that if the requirements met for > a service it will automatically do so for any sub datatyp (like i described > with the getMIPSArabidopsisProteinSequence). > > Thanks for helping me out :) > andreas > > On Tuesday 07 August 2007 18:26, Paul Gordon wrote: > >> Oops, I just re-read the service description. It could make sense to >> pass in an AminoAcidSequence, but, yes, it still has to be AGI-LocusCode >> namespace. >> >> >>> Hi Andreas, >>> >>> >>>> ok - so if I understood it correctly >>>> >>>> I search for services consuming a GenericSequence and have as input >>>> AGI_LocusCode and return a collection... >>>> >>>> I get getMIPSArabidopsisProteinSequence >>>> >>>> If I search for services with the same parameter, but consuming an >>>> AminoAcidSequence, shouldn't I at least get the >>>> getMIPSArabidopsisProteinSequence from the previous search, if the >>>> expandObjects flag is set to true ? >>>> >>> No, unless the AminoAcidSequence has the AGI_LocusCode namespace, since >>> that's what the service requires as input (any Object in the >>> AGI_LocusCode namespace). >>> Of course, if you already have the AminoAcidSequence, you probably don't >>> need to be calling that service... :-) >>> >>> >>>> But I dont get anything for the second search.... >>>> >>>> Hope one can help me again :( >>>> >>> _______________________________________________ >>> MOBY-dev mailing list >>> MOBY-dev at lists.open-bio.org >>> http://lists.open-bio.org/mailman/listinfo/moby-dev >>> >>> >>> >> _______________________________________________ >> MOBY-dev mailing list >> MOBY-dev at lists.open-bio.org >> http://lists.open-bio.org/mailman/listinfo/moby-dev >> > > From gordonp at ucalgary.ca Wed Aug 8 14:55:01 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Wed, 08 Aug 2007 08:55:01 -0600 Subject: [MOBY-dev] ServiceProvider URL and Logo In-Reply-To: <4d93f07c0708080111m345ebc91t4d753c037d58a57f@mail.gmail.com> References: <1149242476@web.de> <4d93f07c0708060349x3f204b1bw657fda560a302514@mail.gmail.com> <46B8FAD2.7070006@ucalgary.ca> <200708080936.46308.groscurt@mpiz-koeln.mpg.de> <4d93f07c0708080111m345ebc91t4d753c037d58a57f@mail.gmail.com> Message-ID: <46B9D945.2010908@ucalgary.ca> An RFC? Or is too heavyweight? >> Are there any complaints about that or can we (or mhm... anyone) start to >> implement that (or put it on the todo) ? >> > > > The only "implementation" needed (except in the smart clients) is to define > a new predicate (or few predicates). That's why I had asked: > > What is our mechanism of adding new predicates > > > Cheers, > Martin > > From haase_dirk at web.de Wed Aug 8 15:17:31 2007 From: haase_dirk at web.de (Dirk Haase) Date: Wed, 08 Aug 2007 17:17:31 +0200 Subject: [MOBY-dev] ServiceProvider URL and Logo Message-ID: <824307766@web.de> Hi, Maybe I confuse things, but don't we have to stay consistent with the mygrid folks wrt the RDF predicates? Best, dirk > An RFC? Or is too heavyweight? > >> Are there any complaints about that or can we (or mhm... anyone) start to > >> implement that (or put it on the todo) ? > >> > > > > > > The only "implementation" needed (except in the smart clients) is to define > > a new predicate (or few predicates). That's why I had asked: > > > > What is our mechanism of adding new predicates > > > > > > Cheers, > > Martin > > > > > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev > From gordonp at ucalgary.ca Wed Aug 8 15:20:29 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Wed, 08 Aug 2007 09:20:29 -0600 Subject: [MOBY-dev] ServiceProvider URL and Logo In-Reply-To: <824307766@web.de> References: <824307766@web.de> Message-ID: <46B9DF3D.8010400@ucalgary.ca> We should be able to add extra tags, and myGRID should ignore them, no? Is there a myGRID schema published? If so, we'd have to extend it and reference it properly... > Hi, > > Maybe I confuse things, but don't we have to stay consistent with > the mygrid folks wrt the RDF predicates? > > Best, > dirk > > >> An RFC? Or is too heavyweight? >> >>>> Are there any complaints about that or can we (or mhm... anyone) start to >>>> implement that (or put it on the todo) ? >>>> >>>> >>> The only "implementation" needed (except in the smart clients) is to define >>> a new predicate (or few predicates). That's why I had asked: >>> >>> What is our mechanism of adding new predicates >>> >>> >>> Cheers, >>> Martin >>> >>> >>> >> _______________________________________________ >> MOBY-dev mailing list >> MOBY-dev at lists.open-bio.org >> http://lists.open-bio.org/mailman/listinfo/moby-dev >> >> > > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev > > !DSPAM:60005,46b9dcfc80212187527633! > > > > From gordonp at ucalgary.ca Wed Aug 8 15:00:32 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Wed, 08 Aug 2007 09:00:32 -0600 Subject: [MOBY-dev] Publication to add to the biomoby.org list? Message-ID: <46B9DA90.2040104@ucalgary.ca> A set of BioMoby services has been published as an Applications Note in Bioinformatics: http://bioinformatics.oxfordjournals.org/cgi/content/short/btm252v1 Do we add this to the publications list, or do we anticipate so many such publications that we won't be able to keep up :-) From markw at illuminae.com Wed Aug 8 15:25:07 2007 From: markw at illuminae.com (mark wilkinson) Date: Wed, 8 Aug 2007 15:25:07 +0000 GMT Subject: [MOBY-dev] Publication to add to the biomoby.org list? In-Reply-To: <46B9DA90.2040104@ucalgary.ca> References: <46B9DA90.2040104@ucalgary.ca> Message-ID: <2027620003-1186586782-cardhu_blackberry.rim.net-6088-@engine27-cell01> I think we should add all of them, at least for the time being. I'll do it in a minute. -- Mark Wilkinson ...on the road! -----Original Message----- From: Paul Gordon Date: Wed, 08 Aug 2007 09:00:32 To:mobydev Subject: [MOBY-dev] Publication to add to the biomoby.org list? A set of BioMoby services has been published as an Applications Note in Bioinformatics: http://bioinformatics.oxfordjournals.org/cgi/content/short/btm252v1 Do we add this to the publications list, or do we anticipate so many such publications that we won't be able to keep up :-) _______________________________________________ MOBY-dev mailing list MOBY-dev at lists.open-bio.org http://lists.open-bio.org/mailman/listinfo/moby-dev From markw at illuminae.com Wed Aug 8 15:30:17 2007 From: markw at illuminae.com (mark wilkinson) Date: Wed, 8 Aug 2007 15:30:17 +0000 GMT Subject: [MOBY-dev] ServiceProvider URL and Logo In-Reply-To: <46B9DF3D.8010400@ucalgary.ca> References: <824307766@web.de> <46B9DF3D.8010400@ucalgary.ca> Message-ID: <1769010903-1186587092-cardhu_blackberry.rim.net-15851-@engine18-cell01> We should probably do the following: 1: create our own ontology that imports/extends the myGrid ontology 2: decide, by list discussion, which predicates the project will support and which predicates are too location-specific (I don't see a need for RFC at this point) 3: add these to our ontology and advise myGrid that the predicate exists. 4: if myGrid eventually decides the predicate is useful they will add it and we can switch the namespace declaration in our RDF (or use owl:sameAs or whatever) How does that sound? M -- Mark Wilkinson ...on the road! -----Original Message----- From: Paul Gordon Date: Wed, 08 Aug 2007 09:20:29 To:Core developer announcements Subject: Re: [MOBY-dev] ServiceProvider URL and Logo We should be able to add extra tags, and myGRID should ignore them, no? Is there a myGRID schema published? If so, we'd have to extend it and reference it properly... > Hi, > > Maybe I confuse things, but don't we have to stay consistent with > the mygrid folks wrt the RDF predicates? > > Best, > dirk > > >> An RFC? Or is too heavyweight? >> >>>> Are there any complaints about that or can we (or mhm... anyone) start to >>>> implement that (or put it on the todo) ? >>>> >>>> >>> The only "implementation" needed (except in the smart clients) is to define >>> a new predicate (or few predicates). That's why I had asked: >>> >>> What is our mechanism of adding new predicates >>> >>> >>> Cheers, >>> Martin >>> >>> >>> >> _______________________________________________ >> MOBY-dev mailing list >> MOBY-dev at lists.open-bio.org >> http://lists.open-bio.org/mailman/listinfo/moby-dev >> >> > > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev > > !DSPAM:60005,46b9dcfc80212187527633! > > > > _______________________________________________ MOBY-dev mailing list MOBY-dev at lists.open-bio.org http://lists.open-bio.org/mailman/listinfo/moby-dev From gordonp at ucalgary.ca Thu Aug 9 14:51:33 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Thu, 09 Aug 2007 08:51:33 -0600 Subject: [MOBY-dev] [MOBY-l] DataInputs for complex services In-Reply-To: <975EB52E-9893-415F-9818-A2E7D05E273D@farmbio.uu.se> References: <975EB52E-9893-415F-9818-A2E7D05E273D@farmbio.uu.se> Message-ID: <46BB29F5.6080100@ucalgary.ca> Hi Ola, The key, if you are using the org.biomoby.shared.data package, is that everything is a primitive, or a composite. Composites are Java Maps, with member article names as the keys. See the examples below. May I suggest, if you have not already, to join the moby-dev mailing list, as the moby-l mailing list is primarily for non-technical discussion (I'm cross-posting this reply just in case you are not on moby-dev, and to show the moby-l-only folks that we are doing real work ;-)). > Hello, > > Thanks for a great framework, I am excited to add BioMoby features to > Bioclipse (http://www.bioclipse.net). However, I have some questions > to get things running: > > How do I set up the PrimaryDataInput and SecondaryDatainputs for a > more advanced service in jMoby? > For example, the service 'runClustalwFast': > > MobyService templateService = new MobyService("runClustalwFast"); > MobyService[] validServices = worker.findService(templateService); > > This gives me the following info from the service: > > Primary inputs: > Name: 'sequences' - DataType: 'GenericSequence' > /** Here is the 'Generic' solution, untested and off the cuff */ MobyDataComposite seq = new MobyDataComposite("GenericSequence"); for(MobyRelationship child: seq.getDataType().getAllChildren()){ String childTypeName = child.getDataTypeName(); // Things are either primitive, or composite if(PrimitiveType.isPrimitive(childTypeName)){ seq.put(child.getName(), MobyDataObject.createInstanceFromString(childTypeName, sourceDataStringForThisField)); } else{ // recursively populate the child as a MobyDataComposite } } > Primary outputs: > Name: 'alignment' - DataType: 'Clustalw_Text' > You don't need to do anything, the service will populate this for you (via MobyRequest.invokeService()). > Secondary inputs: > Name: 'ktup' - DataType: 'Integer' > Name: 'gapext' - DataType: 'Float' > Name: 'transitions_weight' - DataType: 'Float' > Name: 'window' - DataType: 'Integer' > Name: 'topdiag' - DataType: 'Integer' > Name: 'matrix' - DataType: 'String' > Name: 'pairgap' - DataType: 'Integer' > Name: 'endgaps' - DataType: 'String' > Name: 'gapdist' - DataType: 'Integer' > Name: 'gapopen' - DataType: 'Float' > public static void setSecondaries(MobyRequest mr, MobyService service){ MobySecondaryData[] secondaryData = service.getSecondaryInputs(); MobyDataSecondaryInstance[] secondaryInstances = new MobyDataSecondaryInstance[secondaryData.length]; for(int i = 0; i < secondaryData.length; i++){ MobySecondaryData param = secondaryData[i]; // Set specific values for the following param, just as an example if(param.getName().equals("strand")){ secondaryInstances[i] = new MobyDataSecondaryInstance(param, "Reverse"); } // Use default value for other parameters (if any), is set to the registered default value automagically else{ secondaryInstances[i] = new MobyDataSecondaryInstance(param); } } mr.setSecondaryInput(secondaryInstances); } > How do I set up the inputs with MobyDataObject's for this service? > The sample clients in CVS only deal with simple setups (id and > namespace) so some lines of example code would be really helpful. > > Another question: How can I from the MobyDataType tell what format I > should expect to fill in? If it is 'GenericSequence', how can I tell > if i'm supposed to add a String? Can I look that up somewhere? This is covered in the first example, mobyDataType.getAllChildren(); > And do > the MobyDataType's have constraints (like min/max values) etc? No, only Secondary parameters have constraints on values in Moby. > I have > also not really understood the key-value-datatype. Is it possible to > get the allowed keys from the MobyDataType in some way? > Do you mean namespace/id? You can get the list of valid namespaces with Central..|*getFullNamespaces *()| . There is no way to validate IDs except by submitting them to services are seeing if they work. Hope this helps! -Paul > Cheers, > > .../Ola Spjuth > > > > > _______________________________________________ > moby-l mailing list > moby-l at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-l > > !DSPAM:60005,46ba331480211783021950! > > > > From Pieter.Neerincx at wur.nl Fri Aug 10 11:41:00 2007 From: Pieter.Neerincx at wur.nl (Pieter Neerincx) Date: Fri, 10 Aug 2007 13:41:00 +0200 Subject: [MOBY-dev] [MOBY-l] getting the value for a relationship In-Reply-To: <200708100945.46652.groscurt@mpiz-koeln.mpg.de> References: <46BB8F10.1030406@ucalgary.ca> <200708100945.46652.groscurt@mpiz-koeln.mpg.de> Message-ID: <000A9967-7B36-44AB-81FD-136C44168BE6@wur.nl> Hi Andreas, I use the Perl libs and I'm not familiar with the Java version. So I don't how to get the text content from an XML node, but I do spot another potential problem with the XML below: The cross references inside the CrossReference node should be either a base Object object: or an Xref object: ... Description ... Note that according to the API the Xref object can have parsed character data (PCDATA) alias content in addition to several attributes, but an Object object can not. Only the 5 primitives (String/Float/Integer/DateTime/Boolean) and the Xref object are allowed to have PCDATA. In your example below the Object objects in the cross reference information block (CRIB) do have PCDATA. The beauty of XML is that this little bit of extra data should and will not break any parsers, but do realise that other clients and/or services and/or BioMOBY libraries will not expect PCDATA in an Object object, so they will most likely ignore it... You should be able though to get the "ATP-dependent helicase activity" PCDATA from the String object... I hope one of the Java gurus can answer that question. Cheers, Pi On 10-Aug-2007, at 9:45 AM, Andreas Groscurth wrote: > Hi all, > > I have the following service result > > > > > evidence code for the relationship > moby:namespace="TAIR_Accession"> > reference TAIR accession for the relationship > > moby:articleName="Term">ATP-dependent helicase activity moby:String> > > > I'm able to retrieve all informations via Java except the value of > 'Term' > > I have my MobyDataObject and extract the CrossReferences via > getCrossReferences. > getChildren return the MobyRelationship but I'm only able to say > thats a > string and 'Term' ... > > how do I get the actual value of that element ? > > thanks > andreas > > -- > Andreas Groscurth > Diplom Bioinformatik - PhD Student > Max Planck Institute for Plant Breeding Research > Carl-von-Linn?-Weg 10 > 50829 Cologne > Germany > E-mail: groscurt at mpiz-koeln.mpg.de > Phone: +49(0)221-5062-447 > > _______________________________________________ > moby-l mailing list > moby-l at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-l ------------------------------------------------------------- Wageningen University and Research centre (WUR) Laboratory of Bioinformatics Transitorium (building 312) room 1034 Dreijenlaan 3 6703 HA Wageningen The Netherlands phone: 0317-483 060 fax: 0317-483 584 mobile: 06-143 66 783 mail: pieter.neerincx at wur.nl skype: pieter.online ------------------------------------------------------------ From ola.spjuth at farmbio.uu.se Fri Aug 10 12:36:38 2007 From: ola.spjuth at farmbio.uu.se (Ola Spjuth) Date: Fri, 10 Aug 2007 14:36:38 +0200 Subject: [MOBY-dev] [MOBY-l] DataInputs for complex services In-Reply-To: <46BB29F5.6080100@ucalgary.ca> References: <975EB52E-9893-415F-9818-A2E7D05E273D@farmbio.uu.se> <46BB29F5.6080100@ucalgary.ca> Message-ID: <0B3759A7-712A-46DC-B55E-EDAE8A719DB5@farmbio.uu.se> Thanks a lot Paul, that got me going. Another question: Is there a way to cache the data type and namespace ontologies and get rid of the annoying Fetching data type ontology from http://biomoby.org/RESOURCES/MOBY-S/ Objects ... done Fetching namespace ontology from http://biomoby.org/RESOURCES/MOBY-S/ Namespaces which happens on every startup? Can I download the ontologies and tell jMoby where it is located locally? Cheers, ../Ola On Aug 9, 2007, at 16:51 , Paul Gordon wrote: > Hi Ola, > > The key, if you are using the org.biomoby.shared.data package, is that > everything is a primitive, or a composite. > Composites are Java Maps, with member article names as the keys. See > the examples below. May I suggest, if you have > not already, to join the moby-dev mailing list, as the moby-l mailing > list is primarily for non-technical discussion > (I'm cross-posting this reply just in case you are not on moby-dev, > and > to show the moby-l-only folks that we are > doing real work ;-)). >> Hello, >> >> Thanks for a great framework, I am excited to add BioMoby features to >> Bioclipse (http://www.bioclipse.net). However, I have some questions >> to get things running: >> >> How do I set up the PrimaryDataInput and SecondaryDatainputs for a >> more advanced service in jMoby? >> For example, the service 'runClustalwFast': >> >> MobyService templateService = new MobyService("runClustalwFast"); >> MobyService[] validServices = worker.findService(templateService); >> >> This gives me the following info from the service: >> >> Primary inputs: >> Name: 'sequences' - DataType: 'GenericSequence' >> > /** Here is the 'Generic' solution, untested and off the cuff */ > > MobyDataComposite seq = new MobyDataComposite("GenericSequence"); > for(MobyRelationship child: seq.getDataType().getAllChildren()){ > String childTypeName = child.getDataTypeName(); > // Things are either primitive, or composite > if(PrimitiveType.isPrimitive(childTypeName)){ > seq.put(child.getName(), > MobyDataObject.createInstanceFromString(childTypeName, > > sourceDataStringForThisField)); > } > else{ > // recursively populate the child as a MobyDataComposite > } > } >> Primary outputs: >> Name: 'alignment' - DataType: 'Clustalw_Text' >> > You don't need to do anything, the service will populate this for > you (via MobyRequest.invokeService()). > >> Secondary inputs: >> Name: 'ktup' - DataType: 'Integer' >> Name: 'gapext' - DataType: 'Float' >> Name: 'transitions_weight' - DataType: 'Float' >> Name: 'window' - DataType: 'Integer' >> Name: 'topdiag' - DataType: 'Integer' >> Name: 'matrix' - DataType: 'String' >> Name: 'pairgap' - DataType: 'Integer' >> Name: 'endgaps' - DataType: 'String' >> Name: 'gapdist' - DataType: 'Integer' >> Name: 'gapopen' - DataType: 'Float' >> > public static void setSecondaries(MobyRequest mr, MobyService > service){ > MobySecondaryData[] secondaryData = > service.getSecondaryInputs(); > MobyDataSecondaryInstance[] secondaryInstances = > new MobyDataSecondaryInstance[secondaryData.length]; > > for(int i = 0; i < secondaryData.length; i++){ > MobySecondaryData param = secondaryData[i]; > // Set specific values for the following param, just as an > example > if(param.getName().equals("strand")){ > secondaryInstances[i] = new > MobyDataSecondaryInstance(param, "Reverse"); > } > // Use default value for other parameters (if any), is set > to the registered default value automagically > else{ > secondaryInstances[i] = new > MobyDataSecondaryInstance(param); > } > } > > mr.setSecondaryInput(secondaryInstances); > } > >> How do I set up the inputs with MobyDataObject's for this service? >> The sample clients in CVS only deal with simple setups (id and >> namespace) so some lines of example code would be really helpful. >> >> Another question: How can I from the MobyDataType tell what format I >> should expect to fill in? If it is 'GenericSequence', how can I tell >> if i'm supposed to add a String? Can I look that up somewhere? > This is covered in the first example, mobyDataType.getAllChildren(); > >> And do >> the MobyDataType's have constraints (like min/max values) etc? > No, only Secondary parameters have constraints on values in Moby. >> I have >> also not really understood the key-value-datatype. Is it possible to >> get the allowed keys from the MobyDataType in some way? >> > Do you mean namespace/id? You can get the list of valid namespaces > with > Central..|*getFullNamespaces > org/biomoby/shared/Central.html#getFullNamespaces%28%29>*()| > . > There is no way to validate IDs except by submitting them to services > are seeing if they work. > > Hope this helps! > > -Paul >> Cheers, >> >> .../Ola Spjuth >> >> >> >> >> _______________________________________________ >> moby-l mailing list >> moby-l at lists.open-bio.org >> http://lists.open-bio.org/mailman/listinfo/moby-l >> >> !DSPAM:60005,46ba331480211783021950! >> >> >> >> > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev From groscurt at mpiz-koeln.mpg.de Fri Aug 10 13:03:41 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Fri, 10 Aug 2007 15:03:41 +0200 Subject: [MOBY-dev] [MOBY-l] DataInputs for complex services In-Reply-To: <0B3759A7-712A-46DC-B55E-EDAE8A719DB5@farmbio.uu.se> References: <975EB52E-9893-415F-9818-A2E7D05E273D@farmbio.uu.se> <46BB29F5.6080100@ucalgary.ca> <0B3759A7-712A-46DC-B55E-EDAE8A719DB5@farmbio.uu.se> Message-ID: <200708101503.42137.groscurt@mpiz-koeln.mpg.de> Hi Ola, I answer for Paul, who had to answer me also that one :-) Hi Andreas, Yes, there is a class that allows you to cache these... *org.biomoby.registry.meta.RegistryCache* You can see how I use it in the source code for * ca.ucalgary.seahawk.gui.MobyContentGUI *Though I should probably add a doc about that too :-)* cheers andreas On Friday 10 August 2007 14:36, Ola Spjuth wrote: > Thanks a lot Paul, that got me going. > > Another question: > Is there a way to cache the data type and namespace ontologies and > get rid of the annoying > > Fetching data type ontology from http://biomoby.org/RESOURCES/MOBY-S/ > Objects > ... done > Fetching namespace ontology from http://biomoby.org/RESOURCES/MOBY-S/ > Namespaces > > which happens on every startup? Can I download the ontologies and > tell jMoby where it is located locally? > > Cheers, > > ../Ola > > On Aug 9, 2007, at 16:51 , Paul Gordon wrote: > > Hi Ola, > > > > The key, if you are using the org.biomoby.shared.data package, is that > > everything is a primitive, or a composite. > > Composites are Java Maps, with member article names as the keys. See > > the examples below. May I suggest, if you have > > not already, to join the moby-dev mailing list, as the moby-l mailing > > list is primarily for non-technical discussion > > (I'm cross-posting this reply just in case you are not on moby-dev, > > and > > to show the moby-l-only folks that we are > > doing real work ;-)). > > > >> Hello, > >> > >> Thanks for a great framework, I am excited to add BioMoby features to > >> Bioclipse (http://www.bioclipse.net). However, I have some questions > >> to get things running: > >> > >> How do I set up the PrimaryDataInput and SecondaryDatainputs for a > >> more advanced service in jMoby? > >> For example, the service 'runClustalwFast': > >> > >> MobyService templateService = new MobyService("runClustalwFast"); > >> MobyService[] validServices = worker.findService(templateService); > >> > >> This gives me the following info from the service: > >> > >> Primary inputs: > >> Name: 'sequences' - DataType: 'GenericSequence' > > > > /** Here is the 'Generic' solution, untested and off the cuff */ > > > > MobyDataComposite seq = new MobyDataComposite("GenericSequence"); > > for(MobyRelationship child: seq.getDataType().getAllChildren()){ > > String childTypeName = child.getDataTypeName(); > > // Things are either primitive, or composite > > if(PrimitiveType.isPrimitive(childTypeName)){ > > seq.put(child.getName(), > > MobyDataObject.createInstanceFromString(childTypeName, > > > > sourceDataStringForThisField)); > > } > > else{ > > // recursively populate the child as a MobyDataComposite > > } > > } > > > >> Primary outputs: > >> Name: 'alignment' - DataType: 'Clustalw_Text' > > > > You don't need to do anything, the service will populate this for > > you (via MobyRequest.invokeService()). > > > >> Secondary inputs: > >> Name: 'ktup' - DataType: 'Integer' > >> Name: 'gapext' - DataType: 'Float' > >> Name: 'transitions_weight' - DataType: 'Float' > >> Name: 'window' - DataType: 'Integer' > >> Name: 'topdiag' - DataType: 'Integer' > >> Name: 'matrix' - DataType: 'String' > >> Name: 'pairgap' - DataType: 'Integer' > >> Name: 'endgaps' - DataType: 'String' > >> Name: 'gapdist' - DataType: 'Integer' > >> Name: 'gapopen' - DataType: 'Float' > > > > public static void setSecondaries(MobyRequest mr, MobyService > > service){ > > MobySecondaryData[] secondaryData = > > service.getSecondaryInputs(); > > MobyDataSecondaryInstance[] secondaryInstances = > > new MobyDataSecondaryInstance[secondaryData.length]; > > > > for(int i = 0; i < secondaryData.length; i++){ > > MobySecondaryData param = secondaryData[i]; > > // Set specific values for the following param, just as an > > example > > if(param.getName().equals("strand")){ > > secondaryInstances[i] = new > > MobyDataSecondaryInstance(param, "Reverse"); > > } > > // Use default value for other parameters (if any), is set > > to the registered default value automagically > > else{ > > secondaryInstances[i] = new > > MobyDataSecondaryInstance(param); > > } > > } > > > > mr.setSecondaryInput(secondaryInstances); > > } > > > >> How do I set up the inputs with MobyDataObject's for this service? > >> The sample clients in CVS only deal with simple setups (id and > >> namespace) so some lines of example code would be really helpful. > >> > >> Another question: How can I from the MobyDataType tell what format I > >> should expect to fill in? If it is 'GenericSequence', how can I tell > >> if i'm supposed to add a String? Can I look that up somewhere? > > > > This is covered in the first example, mobyDataType.getAllChildren(); > > > >> And do > >> the MobyDataType's have constraints (like min/max values) etc? > > > > No, only Secondary parameters have constraints on values in Moby. > > > >> I have > >> also not really understood the key-value-datatype. Is it possible to > >> get the allowed keys from the MobyDataType in some way? > > > > Do you mean namespace/id? You can get the list of valid namespaces > > with > > Central..|*getFullNamespaces > > > org/biomoby/shared/Central.html#getFullNamespaces%28%29>*()| > > . > > There is no way to validate IDs except by submitting them to services > > are seeing if they work. > > > > Hope this helps! > > > > -Paul > > > >> Cheers, > >> > >> .../Ola Spjuth > >> > >> > >> > >> > >> _______________________________________________ > >> moby-l mailing list > >> moby-l at lists.open-bio.org > >> http://lists.open-bio.org/mailman/listinfo/moby-l > >> > >> !DSPAM:60005,46ba331480211783021950! > > > > _______________________________________________ > > MOBY-dev mailing list > > MOBY-dev at lists.open-bio.org > > http://lists.open-bio.org/mailman/listinfo/moby-dev > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From martin.senger at gmail.com Fri Aug 10 13:04:20 2007 From: martin.senger at gmail.com (Martin Senger) Date: Fri, 10 Aug 2007 14:04:20 +0100 Subject: [MOBY-dev] [MOBY-l] DataInputs for complex services In-Reply-To: <0B3759A7-712A-46DC-B55E-EDAE8A719DB5@farmbio.uu.se> References: <975EB52E-9893-415F-9818-A2E7D05E273D@farmbio.uu.se> <46BB29F5.6080100@ucalgary.ca> <0B3759A7-712A-46DC-B55E-EDAE8A719DB5@farmbio.uu.se> Message-ID: <4d93f07c0708100604p1d8f9bder26cb42d0476b1478@mail.gmail.com> > Is there a way to cache the data type and namespace ontologies and > get rid of the annoying MoSeS does it all the time :-) (see jMoby docs about it) Be aware (and the jMoby docs tries to expain it) that there are two ways how to use jMoby - the Paul's one and the MoSeS's one. Use whichever one you wish but do not mix them. Cheers, Martin -- Martin Senger email: martin.senger at gmail.com skype: martinsenger From martin.senger at gmail.com Fri Aug 10 13:04:20 2007 From: martin.senger at gmail.com (Martin Senger) Date: Fri, 10 Aug 2007 14:04:20 +0100 Subject: [MOBY-dev] [MOBY-l] DataInputs for complex services In-Reply-To: <0B3759A7-712A-46DC-B55E-EDAE8A719DB5@farmbio.uu.se> References: <975EB52E-9893-415F-9818-A2E7D05E273D@farmbio.uu.se> <46BB29F5.6080100@ucalgary.ca> <0B3759A7-712A-46DC-B55E-EDAE8A719DB5@farmbio.uu.se> Message-ID: <4d93f07c0708100604p1d8f9bder26cb42d0476b1478@mail.gmail.com> > Is there a way to cache the data type and namespace ontologies and > get rid of the annoying MoSeS does it all the time :-) (see jMoby docs about it) Be aware (and the jMoby docs tries to expain it) that there are two ways how to use jMoby - the Paul's one and the MoSeS's one. Use whichever one you wish but do not mix them. Cheers, Martin -- Martin Senger email: martin.senger at gmail.com skype: martinsenger From markw at illuminae.com Mon Aug 13 01:31:11 2007 From: markw at illuminae.com (mark wilkinson) Date: Mon, 13 Aug 2007 01:31:11 +0000 GMT Subject: [MOBY-dev] No comments so far... Message-ID: <1296043561-1186968757-cardhu_blackberry.rim.net-16813-@engine19-cell01> Hi all! So far I haven't received any comments (or at least, no *negative* comments) about the new manuscript or the responses to reviewers. I'm looking at Thursday as the day to re-submit, so please have a look before then and let me know if you have any objections. It's in the moby-live/Docs folder. Cheers all! M -- Mark Wilkinson ...on the road! From groscurt at mpiz-koeln.mpg.de Mon Aug 13 12:15:41 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Mon, 13 Aug 2007 14:15:41 +0200 Subject: [MOBY-dev] findservice.... again... the last In-Reply-To: <4669B789.1030103@ucalgary.ca> References: <4669B789.1030103@ucalgary.ca> Message-ID: <200708131415.41815.groscurt@mpiz-koeln.mpg.de> HI paul, you wont believe it, but i think i nearly got the complexity of the findservice and the moby magic behind that.... but one thing is missing.. how can i search for services, which return a non primitive object with a specific namespace e.g with this MobyDataObject dataObject = new MobyDataComposite( "GO_Term" ); dataObject.addNamespace(MobyNamespace.getNamespace("GO")); i find services which return a GO_Term with Namespace GO.... but how to do if I want ALL services which return something with the Namespace GO ? I tried MobyDataObject dataObject = new MobyDataComposite( "" ); dataObject.addNamespace(MobyNamespace.getNamespace("GO")); but that doesn return anything. Is this actually correct and supposed to return nothing or how can I search for all services with a specific namespace and any non-primitive object thanks andreas -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From gordonp at ucalgary.ca Mon Aug 13 14:32:06 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Mon, 13 Aug 2007 08:32:06 -0600 Subject: [MOBY-dev] findservice.... again... the last In-Reply-To: <200708131415.41815.groscurt@mpiz-koeln.mpg.de> References: <4669B789.1030103@ucalgary.ca> <200708131415.41815.groscurt@mpiz-koeln.mpg.de> Message-ID: <46C06B66.90402@ucalgary.ca> Hi Andreas, Every data type in MOBY inherits from "Object" (note that MobyDataComposite inherits from MobyDataObject), therefore to get services returning *any* data type used in conjunction with the GO namespace, simply use MobyDataObject: MobyDataObject dataObject = new MobyDataObject( "" ); dataObject.addNamespace(MobyNamespace.getNamespace("GO")); Regards, Paul > HI paul, > > you wont believe it, but i think i nearly got the complexity of the > findservice and the moby magic behind that.... but one thing is missing.. > > how can i search for services, which return a non primitive object with a > specific namespace > > e.g with this > > MobyDataObject dataObject = new MobyDataComposite( "GO_Term" ); > dataObject.addNamespace(MobyNamespace.getNamespace("GO")); > > i find services which return a GO_Term with Namespace GO.... but how to do if > I want ALL services which return something with the Namespace GO ? > > I tried > > MobyDataObject dataObject = new MobyDataComposite( "" ); > dataObject.addNamespace(MobyNamespace.getNamespace("GO")); > > but that doesn return anything. > > Is this actually correct and supposed to return nothing or how can I search > for all services with a specific namespace and any non-primitive object > > thanks > andreas > > From gordonp at ucalgary.ca Mon Aug 13 14:39:06 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Mon, 13 Aug 2007 08:39:06 -0600 Subject: [MOBY-dev] findservice.... again... the last In-Reply-To: <46C06B66.90402@ucalgary.ca> References: <4669B789.1030103@ucalgary.ca> <200708131415.41815.groscurt@mpiz-koeln.mpg.de> <46C06B66.90402@ucalgary.ca> Message-ID: <46C06D0A.6070709@ucalgary.ca> Hmm...that will catch primitive stuff too. There is no way to say "anything except a primitive", not just in jMOBY, but even at the level of the raw HTTP request to Moby Central. You're best to do the query I suggest, then filter the results... > Hi Andreas, > > Every data type in MOBY inherits from "Object" (note that > MobyDataComposite inherits > from MobyDataObject), therefore to get services returning *any* data > type used in conjunction > with the GO namespace, simply use MobyDataObject: > > MobyDataObject dataObject = new MobyDataObject( "" ); > dataObject.addNamespace(MobyNamespace.getNamespace("GO")); > > Regards, > > Paul > > >> HI paul, >> >> you wont believe it, but i think i nearly got the complexity of the >> findservice and the moby magic behind that.... but one thing is missing.. >> >> how can i search for services, which return a non primitive object with a >> specific namespace >> >> e.g with this >> >> MobyDataObject dataObject = new MobyDataComposite( "GO_Term" ); >> dataObject.addNamespace(MobyNamespace.getNamespace("GO")); >> >> i find services which return a GO_Term with Namespace GO.... but how to do if >> I want ALL services which return something with the Namespace GO ? >> >> I tried >> >> MobyDataObject dataObject = new MobyDataComposite( "" ); >> dataObject.addNamespace(MobyNamespace.getNamespace("GO")); >> >> but that doesn return anything. >> >> Is this actually correct and supposed to return nothing or how can I search >> for all services with a specific namespace and any non-primitive object >> >> thanks >> andreas >> >> >> > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev > > !DSPAM:60005,46c069d68021171556352! > > > > From groscurt at mpiz-koeln.mpg.de Tue Aug 21 09:32:44 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Tue, 21 Aug 2007 11:32:44 +0200 Subject: [MOBY-dev] Problem with the build.xml In-Reply-To: <46C06D0A.6070709@ucalgary.ca> References: <4669B789.1030103@ucalgary.ca> <46C06B66.90402@ucalgary.ca> <46C06D0A.6070709@ucalgary.ca> Message-ID: <200708211132.44377.groscurt@mpiz-koeln.mpg.de> Hi all, finally I'd like to check in the MobySync but I have a problem with building it. I copied the building files and information from the RDFagent and replaced it woth my information... calling ant bindist_mobysync to create the distribution I get compile-normal: [javac] Compiling 7 source files to /home/pcb/groscurt/Moby/moby-live/Java/build/classes [javac] /home/pcb/groscurt/Moby/moby-live/Java/src/main/org/biomoby/registry/sync/handler/AbstractMobyHandler.java:90: cannot find symbol [javac] symbol : method binarySearch(java.util.List,T) [javac] location: class java.util.Collections [javac] int index = Collections.binarySearch( localList, centralEntry ); [javac] ^ [javac] 1 error with eclipse I dont get any error compiling it... is there something set in the ant files some where that it does not know 1.5 (which would mean it should throw more errors...) or what could be the problem ? Thanks andreas -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From edward.kawas at gmail.com Wed Aug 22 17:28:54 2007 From: edward.kawas at gmail.com (Edward Kawas) Date: Wed, 22 Aug 2007 10:28:54 -0700 Subject: [MOBY-dev] Problem with the build.xml In-Reply-To: <200708211132.44377.groscurt@mpiz-koeln.mpg.de> References: <4669B789.1030103@ucalgary.ca> <46C06B66.90402@ucalgary.ca><46C06D0A.6070709@ucalgary.ca> <200708211132.44377.groscurt@mpiz-koeln.mpg.de> Message-ID: <000001c7e4e1$eb75f820$756fa8c0@notebook> Hey Andreas, can you send me the code and the build file? Thanks, Eddie > -----Original Message----- > From: moby-dev-bounces at lists.open-bio.org [mailto:moby-dev- > bounces at lists.open-bio.org] On Behalf Of Andreas Groscurth > Sent: Tuesday, August 21, 2007 2:33 AM > To: Core developer announcements > Subject: [MOBY-dev] Problem with the build.xml > > Hi all, > > finally I'd like to check in the MobySync but I have a problem with > building > it. > > I copied the building files and information from the RDFagent and replaced > it > woth my information... > > calling > > ant bindist_mobysync > > to create the distribution I get > > compile-normal: > [javac] Compiling 7 source files > to /home/pcb/groscurt/Moby/moby-live/Java/build/classes > > [javac] /home/pcb/groscurt/Moby/moby- > live/Java/src/main/org/biomoby/registry/sync/handler/AbstractMobyHandler.j > ava:90: > cannot find symbol > [javac] symbol : method binarySearch(java.util.List,T) > [javac] location: class java.util.Collections > [javac] int index = > Collections.binarySearch( localList, centralEntry ); > [javac] ^ > [javac] 1 error > > with eclipse I dont get any error compiling it... is there something set > in > the ant files some where that it does not know 1.5 (which would mean it > should throw more errors...) or what could be the problem ? > > Thanks > andreas > > -- > Andreas Groscurth > Diplom Bioinformatik - PhD Student > Max Planck Institute for Plant Breeding Research > Carl-von-Linn?-Weg 10 > 50829 Cologne > Germany > E-mail: ? ?groscurt at mpiz-koeln.mpg.de > Phone: ? ?+49(0)221-5062-447 > > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev From edward.kawas at gmail.com Thu Aug 23 15:12:14 2007 From: edward.kawas at gmail.com (Edward Kawas) Date: Thu, 23 Aug 2007 08:12:14 -0700 Subject: [MOBY-dev] Perl MoSeS on CPAN Message-ID: <000f01c7e597$fcfd2760$6500a8c0@notebook> Hello Everyone, Following the suggestions of some of the others on the list, I have created and distributed a cpan release of Perl MoSeS. The distribution is called MOSES-MOBY and can be found at http://search.cpan.org/~ekawas/MOSES-MOBY-0.81/ (and most likely at many other mirror sites). The distribution is slightly different than the one that is in the cvs as the cpan version no longer depends on the BioMOBY JAVA command line clients and is entirely self-contained. All of the testing scripts that Martin created are used by the cpan release. The documentation for getting started is mainly contained in the module MOSES/MOBY.pm (again mainly from the Perl MoSeS documentation that Martin wrote). Most interested parties will not have to worry about the other modules. I am very interested in feedback (both to improve the service creation experience and to improve the documentation). Thanks a lot, Eddie From markw at illuminae.com Fri Aug 24 03:37:43 2007 From: markw at illuminae.com (mark wilkinson) Date: Fri, 24 Aug 2007 03:37:43 +0000 GMT Subject: [MOBY-dev] 1.0 Manuscript re-submitted Message-ID: <196484098-1187926663-cardhu_blackberry.rim.net-7784-@engine09-cell01> Fingers crossed! M -- Mark Wilkinson ...on the road! From groscurt at mpiz-koeln.mpg.de Fri Aug 24 09:43:57 2007 From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth) Date: Fri, 24 Aug 2007 11:43:57 +0200 Subject: [MOBY-dev] MobySynchronization now available In-Reply-To: References: <57ADB696-B327-4A4E-BBAD-15E71089C8ED@gmail.com> Message-ID: <200708241143.58412.groscurt@mpiz-koeln.mpg.de> Hi all, I finally made it to check the MobySynchronization into the CVS. You will find the new packages org.biomoby.registry.sync, in which all the magic happens. A basic subsumption is: I retrieve with the CentralDigest class all four "object types" (MobyNamespace, MobyDataType, MobyServiceType, MobyService) from a given master central and from a given local central (defined in a configuration file). For each entry I check a) if its unkown to the local central -> register it b) if its not in the master central anymore, but in the local -> unregister it c) has it changed (has the LSID changed) -> unregister und register it As you will find in the documentation I added so called 'filter-rules' which allows one to specifiy which services shall be ignored or exclusively taken into account (e.g. defining to ignore services from an authority will not register any of the services from that authority locally). Also one can specifiy the local authority to avoid deregistration of local test services. The process at itself takes a long time - 45 mins. Fetching all the datatypes and services via the CentralDigestImpl is time-consuming (e.g. getting datatypes from the central takes about 10min on my machine - and all services about 15min) This maybe could be sped up, but I did want to use the existing methods to retieve the full information of the objects..... The building and using of the mobysynchronize is similar to the RDFagent (actually, I just copied and replaced), so calling the ant target bindist_mobysync will create the distribution stuff for the synchronization and this can be found /moby-live/Java/docs/dist/ there is also the README and in that the way to use the mobysync. Changes in the MOBY API: None... actually... I just added a interface called 'LSIDAccessible' which only has the method getLSID(). All Moby objects now implement this interface (actually all of them already have had the method getLSID(), so no changes in their classes) - i just added it to be able to program genetically.... also the 4 object classes now implement this interface and i had to made the Comparable interface they use also generic.... (e.. MobyService implements Comparable, LSIDAccessible) One issue I have not solved is with dependencies. So if one datatype e.g. can't be deregistered because its used locally in a service nothing happens. If that service is then deregistered, the datatype will be deregistered the next time the program is called. Also if a datatype is part of a hierarchy and its children are existing locally it will not deregister the datatype or deregister its children recursively.... if something is unclear, wrong or so - please let me know best andreas -- Andreas Groscurth Diplom Bioinformatik - PhD Student Max Planck Institute for Plant Breeding Research Carl-von-Linn?-Weg 10 50829 Cologne Germany E-mail: ? ?groscurt at mpiz-koeln.mpg.de Phone: ? ?+49(0)221-5062-447 From ola.spjuth at farmbio.uu.se Thu Aug 30 14:27:13 2007 From: ola.spjuth at farmbio.uu.se (Ola Spjuth) Date: Thu, 30 Aug 2007 16:27:13 +0200 Subject: [MOBY-dev] Services in registry Message-ID: <45EA4928-D121-4FCA-BB05-DB7067632F1F@farmbio.uu.se> Hello, After trying to programmatically access several services I turned to using the dashboard and found that there are many in "default" registry which answer with "Connection refused", "Operation timed out" etc. Shouldn't the purpose of service discovery be that you only discover available services? How does this process work? Doesn't the registry poll (from time to time) if services are available? There are also some (I have tried several) services which answer "Response could not be parsed", "(500)Internal Server Error", and some respond with a stacktrace in the moby:serviceNotes tag. Many services also have poor or limited description, which makes it hard (almost impossible for novice users) to interpret what they actually do. I guess the solution to this is to require unit tests of a service upon registration, which the server can test the service with from time to time and make sure that it is operational. It should at least be quite simple to just send e.g. a predefined AminoAcidSequence to all services which accept them as inputs and verify that you get a valid result back. In case of failure, remove it from the registry and send an email to the responsible person. I am wondering how to use BioMoby in our rich client Bioclipse (www.bioclipse.net) at present. Is the resolution to set up our own central repository which we manually curate? How can I in that case synchronize this with the BioMoby registry but only include services which are actually available and return something useful (and omit all services meant for testing)? How are things done for the different registries available in the dashboard? Is it even possible for a person to document someone else's services? It is not my intention to sound negative. BioMoby looks extremely promising and will be an integral part of our project's future. Maybe I have just been unlucky with choosing services for testing. Could someone give me a few names of services which accept 1-2 AminoAcidSequence's and are fully operational from the dashboard? Cheers, Ola From edward.kawas at gmail.com Thu Aug 30 15:34:04 2007 From: edward.kawas at gmail.com (Edward Kawas) Date: Thu, 30 Aug 2007 08:34:04 -0700 Subject: [MOBY-dev] Services in registry In-Reply-To: <45EA4928-D121-4FCA-BB05-DB7067632F1F@farmbio.uu.se> References: <45EA4928-D121-4FCA-BB05-DB7067632F1F@farmbio.uu.se> Message-ID: <002401c7eb1b$32d28410$6500a8c0@notebook> Hi Ola, > After trying to programmatically access several services I > turned to using the dashboard and found that there are many > in "default" > registry which answer with "Connection refused", "Operation > timed out" etc. Shouldn't the purpose of service discovery be > that you only discover available services? How does this > process work? Doesn't the registry poll (from time to time) > if services are available? The registry does do such polling, but many of the clients do not use this information yet. One client that does is gBrowse_moby (http://mobycentral.icapture.ubc.ca/cgi-bin/gbrowse_moby) For a list of services and whether they respond to a 'ping' (true/false), try the following link: http://mobycentral.icapture.ubc.ca:8090/authority/ValidateService > > There are also some (I have tried several) services which > answer "Response could not be parsed", "(500)Internal Server > Error", and some respond with a stacktrace in the > moby:serviceNotes tag. I am not sure what services you tried, but one thing to keep in mind is that most of the services require a namespace, in addition to the amino acid sequence, and the service may fail ungracefully when one doesn't exist. > Many services also have poor or > limited description, which makes it hard (almost impossible > for novice users) to interpret what they actually do. I guess This blame here lies with the people that register the services. Unfortunately, the only option available to a user of these services would be to contact the service provider and ask them to possibly update the description to make it more descriptive. > the solution to this is to require unit tests of a service > upon registration, which the server can test the service with > from time to time and make sure that it is operational. It > should at least be quite simple to just send e.g. a > predefined AminoAcidSequence to all services which accept > them as inputs and verify that you get a valid result back. This is actually harder than it sounds. What does valid mean? A service may return seemingly random data or nothing at all and still be considered operational ... > I am wondering how to use BioMoby in our rich client Bioclipse > (www.bioclipse.net) at present. Is the resolution to set up > our own central repository which we manually curate? How can > I in that case synchronize this with the BioMoby registry but > only include services which are actually available and return > something useful (and omit all services meant for testing)? One thing to try would be including only those services that link mentioned above stated where 'alive'. This information is available in RDF/XML from http://biomoby.org/RESOURCES/MOBY-S/ServiceInstances, with the predicate 'isAlive'. > How are things done for the different registries available in > the dashboard? Is it even possible for a person to document > someone else's services? Not really. the only thing to do is email the service provider and ask them to nicely update their descriptions. Unless of course you plan to host your own moby registry. In that case, you could mirror the services (using a variety of ways, but one would be using the RDFAgent and the RDF mentioned above). You could edit the RDF document as much as you wanted and the changes would appear in your clone. > > It is not my intention to sound negative. BioMoby looks > extremely promising and will be an integral part of our > project's future. Maybe I have just been unlucky with > choosing services for testing. Could someone give me a few > names of services which accept 1-2 AminoAcidSequence's and > are fully operational from the dashboard? I found a few, of the ones that didn't work, I emailed the provider. Inb.bsc.es searchInterPro, runEmboss(AntigenicFromSequence | ChargeFromSequence | PepstatsFromSequence | PepstatswindowFromSequence | ...) (In dashboard, I sorted the services by input and attempted to run a few of the ones under the branch 'AminoAcidSequence'), etc. I used the amino acid sequence: RFCFDRLCF > > Cheers, > > Ola > Thanks, Eddie > _______________________________________________ > MOBY-dev mailing list > MOBY-dev at lists.open-bio.org > http://lists.open-bio.org/mailman/listinfo/moby-dev From ola.spjuth at farmbio.uu.se Fri Aug 31 09:20:18 2007 From: ola.spjuth at farmbio.uu.se (Ola Spjuth) Date: Fri, 31 Aug 2007 11:20:18 +0200 Subject: [MOBY-dev] Services in registry In-Reply-To: <002401c7eb1b$32d28410$6500a8c0@notebook> References: <45EA4928-D121-4FCA-BB05-DB7067632F1F@farmbio.uu.se> <002401c7eb1b$32d28410$6500a8c0@notebook> Message-ID: <620875BF-7DB2-47F8-A673-92CBFD27F93C@farmbio.uu.se> Thanks for the help, Edward. I have some further questions/comments below: On Aug 30, 2007, at 17:34 , Edward Kawas wrote: > Hi Ola, > >> After trying to programmatically access several services I >> turned to using the dashboard and found that there are many >> in "default" >> registry which answer with "Connection refused", "Operation >> timed out" etc. Shouldn't the purpose of service discovery be >> that you only discover available services? How does this >> process work? Doesn't the registry poll (from time to time) >> if services are available? > The registry does do such polling, but many of the clients do not > use this > information yet. One client that does is gBrowse_moby > (http://mobycentral.icapture.ubc.ca/cgi-bin/gbrowse_moby) I tried the getStatus() method for MobyService in jMoby, but all services in default repository are reported to be "UNCHECKED". Any idea why this is the case? Is polling turned off for some reason or is the information not used in jMoby? > For a list of services and whether they respond to a 'ping' (true/ > false), > try the following link: > http://mobycentral.icapture.ubc.ca:8090/authority/ValidateService > >> There are also some (I have tried several) services which >> answer "Response could not be parsed", "(500)Internal Server >> Error", and some respond with a stacktrace in the >> moby:serviceNotes tag. > I am not sure what services you tried, but one thing to keep in > mind is that > most of the services require a namespace, in addition to the amino > acid > sequence, and the service may fail ungracefully when one doesn't > exist. I have not really understood this. Why do services require a namespace? If I am a novice user and have an aminoacid sequence, how can I find available services for it then? How do sort out which namespaces are relevant? And should not services respond with "namespace is required"? > >> Many services also have poor or >> limited description, which makes it hard (almost impossible >> for novice users) to interpret what they actually do. I guess > > This blame here lies with the people that register the services. > Unfortunately, the only option available to a user of these > services would > be to contact the service provider and ask them to possibly update the > description to make it more descriptive. Is it possible to have a curation step and a "CuratedRegistry" where only services that are well documented can be registered? That would inspire better documentation from providers as they want to see their services in the CuratedRegistry. > >> the solution to this is to require unit tests of a service >> upon registration, which the server can test the service with >> from time to time and make sure that it is operational. It >> should at least be quite simple to just send e.g. a >> predefined AminoAcidSequence to all services which accept >> them as inputs and verify that you get a valid result back. > This is actually harder than it sounds. What does valid mean? A > service may > return seemingly random data or nothing at all and still be considered > operational ... But if it is required to provide at least 2 complex use cases with input and a correct output, the server can run these tests from time to time. I assume this would fit nicely in the CuratedRegistry. >> I am wondering how to use BioMoby in our rich client Bioclipse >> (www.bioclipse.net) at present. Is the resolution to set up >> our own central repository which we manually curate? How can >> I in that case synchronize this with the BioMoby registry but >> only include services which are actually available and return >> something useful (and omit all services meant for testing)? > One thing to try would be including only those services that link > mentioned > above stated where 'alive'. This information is available in RDF/ > XML from > http://biomoby.org/RESOURCES/MOBY-S/ServiceInstances, with the > predicate > 'isAlive'. I assume the same information should be available from the API call myService.getStatus() from jMoby API. Right? >> How are things done for the different registries available in >> the dashboard? Is it even possible for a person to document >> someone else's services? > Not really. the only thing to do is email the service provider and > ask them > to nicely update their descriptions. Unless of course you plan to > host your > own moby registry. In that case, you could mirror the services > (using a > variety of ways, but one would be using the RDFAgent and the RDF > mentioned > above). You could edit the RDF document as much as you wanted and the > changes would appear in your clone. I see. But wouldn't all changes like added documentation be lost when a service is updated? I assume the only good alternative is to require more documentation and have some sort of curation system. Maybe I have to set up my own registry to get things working properly for my client, but I'd prefer to use a central registry. >> It is not my intention to sound negative. BioMoby looks >> extremely promising and will be an integral part of our >> project's future. Maybe I have just been unlucky with >> choosing services for testing. Could someone give me a few >> names of services which accept 1-2 AminoAcidSequence's and >> are fully operational from the dashboard? > I found a few, of the ones that didn't work, I emailed the provider. > Inb.bsc.es > searchInterPro, runEmboss(AntigenicFromSequence | ChargeFromSequence > | PepstatsFromSequence | PepstatswindowFromSequence | ...) > > (In dashboard, I sorted the services by input and attempted to run > a few of > the ones under the branch 'AminoAcidSequence'), etc. > > I used the amino acid sequence: RFCFDRLCF Thanks a lot for the help! Ola From gordonp at ucalgary.ca Fri Aug 31 13:58:58 2007 From: gordonp at ucalgary.ca (Paul Gordon) Date: Fri, 31 Aug 2007 07:58:58 -0600 Subject: [MOBY-dev] Services in registry In-Reply-To: <620875BF-7DB2-47F8-A673-92CBFD27F93C@farmbio.uu.se> References: <45EA4928-D121-4FCA-BB05-DB7067632F1F@farmbio.uu.se> <002401c7eb1b$32d28410$6500a8c0@notebook> <620875BF-7DB2-47F8-A673-92CBFD27F93C@farmbio.uu.se> Message-ID: <46D81EA2.1040209@ucalgary.ca> Hi Ola, >>> After trying to programmatically access several services I >>> turned to using the dashboard and found that there are many >>> in "default" >>> registry which answer with "Connection refused", "Operation >>> timed out" etc. Shouldn't the purpose of service discovery be >>> that you only discover available services? How does this >>> process work? Doesn't the registry poll (from time to time) >>> if services are available? >>> >> The registry does do such polling, but many of the clients do not >> use this >> information yet. One client that does is gBrowse_moby >> (http://mobycentral.icapture.ubc.ca/cgi-bin/gbrowse_moby) >> > > I tried the getStatus() method for MobyService in jMoby, but all > services in default repository are reported to be "UNCHECKED". Any > idea why this is the case? Is polling turned off for some reason or > is the information not used in jMoby? > Almost :-) getStatus() is indeed how to get this information, but it is not automatically populated (because this information does not come from the registry, but from a supplemental RDF file that happens to be around). In the Seahawk MOBY client, I populate the status first with setStatus(). For an example, see ca.ucalgary.seahawk.services.MobyClient line 1031.