From rebecca.ernst at gsf.de Wed Feb 2 05:36:10 2005 From: rebecca.ernst at gsf.de (Rebecca Ernst) Date: Wed Feb 2 05:31:58 2005 Subject: [MOBY-l] Output objects- problems interpreting the API Message-ID: <4200AD1A.6050301@gsf.de> Hi Mark! We have problems interpreting the BioMoby API for the output objects. The thing is that we have a service that gets ONE input object and executes a freetext search over several databases. This service will eventually return more that one result. We don't want to put the result into a collection object because the single objects don't build any entity. We also can't give back more that one mobyData block because we only have one query ID and therefore only one queryID to give back. The only solution we can think of is an object like this: would this be a legal object or do we have to use collection even if the objects don't build an entity ? Cheers, Rebecca -- Rebecca Ernst MIPS, Inst. for Bioinformatics GSF Research Center for Environment and Health Ingolstaedter Landstr. 1 85764 Neuherberg fon: +49 89 3187 3583 email: Rebecca.Ernst@gsf.de From mwilkinson at mrl.ubc.ca Wed Feb 2 10:41:41 2005 From: mwilkinson at mrl.ubc.ca (Mark Wilkinson) Date: Wed Feb 2 09:59:27 2005 Subject: [MOBY-l] Re: [moby] Output objects- problems interpreting the API In-Reply-To: <4200AD1A.6050301@gsf.de> References: <4200AD1A.6050301@gsf.de> Message-ID: <1107358901.8511.13.camel@mobycentral.icapture.ubc.ca> Well... the answer depends on what the generic case of your output will look like. the rule is that you have to register every output object that your service produces; i.e. every immediate child tag of a mobyData block. Therefore, if you are going to consistently output exactly 3 Genbank/gi's, then you would register your service as outputting 3 X Object(NCBI_gi). If you are outputting an indeterminate number of objects, then you register it as outputting 1 X Collection. Collections map nicely onto the rdf:Bag structure, if that helps you interpret them. M On Wed, 2005-02-02 at 02:36, Rebecca Ernst wrote: > Hi Mark! > > We have problems interpreting the BioMoby API for the output objects. > > The thing is that we have a service that gets ONE input object and > executes a freetext search over several databases. This service will > eventually return more that one result. > We don't want to put the result into a collection object because the > single objects don't build any entity. > We also can't give back more that one mobyData block because we only > have one query ID and therefore only one queryID to give back. > > The only solution we can think of is an object like this: > > > > > > > > > > > > > > > > > > > > > would this be a legal object or do we have to use collection even if the > objects don't build an entity ? > > > Cheers, > Rebecca -- Mark Wilkinson Assistant Professor (Bioinformatics) Dept. Medical Genetics, UBC, Canada From mwilkinson at mrl.ubc.ca Wed Feb 2 10:52:37 2005 From: mwilkinson at mrl.ubc.ca (Mark Wilkinson) Date: Wed Feb 2 10:11:07 2005 Subject: [MOBY-l] RE: [moby] debugging workflow In-Reply-To: <286D8A554155B54CBFB18EF26EE2F16954E3A4@jie2ksrv1.jic.bbsrc.ac.uk> References: <286D8A554155B54CBFB18EF26EE2F16954E3A4@jie2ksrv1.jic.bbsrc.ac.uk> Message-ID: <1107359556.8511.25.camel@mobycentral.icapture.ubc.ca> Hi Matthew, Collections are one of the more tricky bits of MOBY messages to understand, and unfortunately I can't quite get enough info from your message to give you a straight answer. Case 1) My service takes an indefined number of inputs and treats them all equivalently. These would come in as a Collection. e.g. a multiple sequence alignment service would consume a Collection of sequences Case 2) My servce takes a defined, but multiple number of identical inputs, and treats them differently. The inputs would come in as two (named!!) Simples. e.g. the blast2seq program takes exactly two sequences, so each of these would be a Simple containing a Sequence object, and each Simple would be named something like "sequence_a" and "sequence_b". Case 3) My service takes a defined, multiple number of disparate inputs and treats them individually differently. The inputs come into the service as multiple, named, Simple and or Collection objects. e.g. a service that takes as its input a FASTA Object and a Sequence to blast against that FASTA file. The FASTA Object would be one Simple, and the Sequence would be another Simple. Alternately, the service might consume a Collection of Sequence objects as one input, plus a Simple Sequence object as its second input, to achieve similar results. Hope that helps! (hope you don't mind me forwarding this to the mailing list - it is always better to have these conversations in the public eye to help others who might be having similar problems. M On Wed, 2005-02-02 at 06:43, matthew couchman (JIC) wrote: > Hi Mark, > > thanks for this tip. I'm afraid i've got another question now! How do > you go about setting up a service that takes more than one object as a > parameter? Should they be part of a Collection? > > Thanks, > > Matt. > > > -----Original Message----- > From: Mark Wilkinson [mailto:mwilkinson@mrl.ubc.ca] > Sent: 21 January 2005 21:41 > To: matthew couchman (JIC) > Subject: RE: [moby] debugging workflow > > > Hi Matthew, > > In the Perl/scripts folder of the CVS there is a script called > "debugYourService" that does what you want :-) > > M > > > On Fri, 2005-01-21 at 05:44, matthew couchman (JIC) wrote: > > Hi Mark, > > > > i've been trying to knock up just a small script that will take a file > > containing Moby inputs and send it to a service. I thought it would be > > useful for testing things like this workflow problem using the > > intermediate input results from the Taverna output. Unfortunately I > > haven't got very far - I can't seem to get the input parsed properly. > > Have you got any scripts that do this sort of thing? Sorry to bother > > you, I realise you must be pretty busy at the moment :) > > > > Cheers, > > > > Matt. > > > > -----Original Message----- > > From: Mark Wilkinson [mailto:mwilkinson@mrl.ubc.ca] > > Sent: 20 January 2005 18:05 > > To: Beatrice Schildknecht > > Cc: Rebecca Ernst; matthew couchman (JIC) > > Subject: Re: [moby] debugging workflow > > > > > > On Thu, 2005-01-20 at 09:05, Beatrice Schildknecht wrote: > > > Aaargh...Just logging in to a flood of emails. > > > > :-) Merry Christmas! > > > > M -- Mark Wilkinson Assistant Professor (Bioinformatics) Dept. Medical Genetics, UBC, Canada From bmg at sfu.ca Wed Feb 2 11:52:52 2005 From: bmg at sfu.ca (Benjamin Good) Date: Wed Feb 2 11:48:33 2005 Subject: [MOBY-l] jMoby bug? Message-ID: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> It seems that there is an error with the toXML method in the class MobyDataSimpleInstance . When the class is in CENTRAL_XML_MODE as in when it is being used as a service input in a template service that is sent to central to find other services, this method returns something that looks like this: >>> >>> >> xmlns="http://www.biomoby.org/moby"xmlns:moby="http:// >>> www.biomoby.org/moby" moby:articleName="dummy"> >>> When in fact I think it should look something like this: >>> >>> >>> Object >>> NCBI_gi >>> The problem method is below, followed by a corrected version. Please let me know if I have interpreted this correctly. cheers -Ben /** * Produces a full-blown XML fragment that depending on the value of getXmlMode() is either * a template for use in MOBY Central services, or a Simple element for use in calling a service * instance. * * @return the MOBY XML representation of the data instance public String toXML(){ if(xmlMode == SERVICE_XML_MODE) return "" + dataValue + ""; else{ MobyNamespace[] ns = getNamespaces(); String result = "\n" + getDataType().getName() + "\n"; for(int i = 0; ns != null && i < ns.length; i++){ result += "" + ns[i].getName() + "\n"; } result += ""; return result; } } */ public String toXML(){ if(xmlMode == SERVICE_XML_MODE) return "" + dataValue + ""; else{ MobyNamespace[] ns = getNamespaces(); String result = "\n" + getDataType().getName() + "\n"; for(int i = 0; ns != null && i < ns.length; i++){ result += "" + ns[i].getName() + "\n"; } result += ""; return result; } } From gordonp at ucalgary.ca Wed Feb 2 13:00:08 2005 From: gordonp at ucalgary.ca (Paul Gordon) Date: Wed Feb 2 13:00:59 2005 Subject: [MOBY-l] jMoby bug? In-Reply-To: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> Message-ID: <42011528.7000709@ucalgary.ca> Hi Ben, The class seems to work fine (see the example program below). Are you sure that the right XML mode set for your intended use? ---------------- coe01:/export/home/gordonp/projects/moby-live/Java/src/main 132 % cat TestMDSI.java import org.biomoby.shared.MobyDataSimpleInstance; import org.biomoby.shared.MobyDataType; public class TestMDSI{ public static void main(String[] args){ MobyDataSimpleInstance mdsi = new MobyDataSimpleInstance(new MobyDataType("Object"), "NCBI_gi", "111076"); mdsi.setXmlMode(MobyDataSimpleInstance.CENTRAL_XML_MODE); System.out.println("Central mode: "); System.out.println(mdsi.toXML()); mdsi.setXmlMode(MobyDataSimpleInstance.SERVICE_XML_MODE); System.out.println("Service mode: "); System.out.println(mdsi.toXML()); } } coe01:/export/home/gordonp/projects/moby-live/Java/src/main 133 % javac -classpath ../../lib/axis.jar:../../lib/jaxrpc.jar:. TestMDSI.java coe01:/export/home/gordonp/projects/moby-live/Java/src/main 134 % java -cp .:../../lib TestMDSI Central mode: Object Service mode: From bmg at sfu.ca Wed Feb 2 13:18:57 2005 From: bmg at sfu.ca (Benjamin Good) Date: Wed Feb 2 13:16:43 2005 Subject: [MOBY-l] jMoby bug? In-Reply-To: <42011528.7000709@ucalgary.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> Message-ID: <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> Sorry, the example I sent was in the wrong mode, but the problem is the same. The problem is not apparent until you try to use a MobyDataSimpleInstance as part of a template to find services. Here is my code: Central worker = new CentralImpl (); worker.setDebug(true); MobyService templateService = new MobyService("dummy"); MobyDataType type = new MobyDataType("AminoAcidSequence"); MobyDataSimpleInstance input = new MobyDataSimpleInstance (""); input.setDataType (type); input.addNamespace (new MobyNamespace ("NCBI_gi")); input.setId("111076"); //query the registry for services input.setXmlMode(MobyDataSimpleInstance.CENTRAL_XML_MODE); templateService.addInput(input); MobyService[] validServices = worker.findService(templateService); and here I get the error from moby central. problem org.biomoby.shared.MobyException: ===ERROR=== Fault details: [stackTrace: null] Fault string: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. Fault code: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException Fault actor: null When calling: http://mobycentral.cbr.nrc.ca/cgi-bin/MOBY05/mobycentral.pl =========== ----------------------- In this case, the inputs part of the template service looked like AminoAcidSequence NCBI_gi If I change it to look like this AminoAcidSequence NCBI_gi then it works. So basically moby central doesn't like to see the xml namespace in there any more, though I'm pretty sure this worked last summer. -Ben On Wed, 2005-02-02 at 10:00, Paul Gordon wrote: > Hi Ben, > > The class seems to work fine (see the example program below). Are > you sure that the right XML mode set for your intended use? > > ---------------- > > coe01:/export/home/gordonp/projects/moby-live/Java/src/main 132 % cat > TestMDSI.java > > import org.biomoby.shared.MobyDataSimpleInstance; > import org.biomoby.shared.MobyDataType; > > public class TestMDSI{ > public static void main(String[] args){ > MobyDataSimpleInstance mdsi = new MobyDataSimpleInstance(new > MobyDataType("Object"), "NCBI_gi", "111076"); > > mdsi.setXmlMode(MobyDataSimpleInstance.CENTRAL_XML_MODE); > System.out.println("Central mode: "); > System.out.println(mdsi.toXML()); > > mdsi.setXmlMode(MobyDataSimpleInstance.SERVICE_XML_MODE); > System.out.println("Service mode: "); > System.out.println(mdsi.toXML()); > > } > } > coe01:/export/home/gordonp/projects/moby-live/Java/src/main 133 % javac > -classpath ../../lib/axis.jar:../../lib/jaxrpc.jar:. TestMDSI.java > coe01:/export/home/gordonp/projects/moby-live/Java/src/main 134 % java > -cp .:../../lib TestMDSI Central mode: > > Object > > Service mode: > xmlns:moby="http://www.biomoby.org/moby" > moby:articleName="NCBI_gi"> > > > From gordonp at ucalgary.ca Wed Feb 2 13:26:51 2005 From: gordonp at ucalgary.ca (Paul Gordon) Date: Wed Feb 2 13:23:49 2005 Subject: [MOBY-l] jMoby bug? In-Reply-To: <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> Message-ID: <42011B6B.8040409@ucalgary.ca> Aha! I knew I wasn't crazy! I sent a message with regards to MOBY Central not accepting the input properly about a month ago, but didn't figure out that the issue was the non-acceptance of namespaces in the XML. Thanks for catching this. I would be much more inclined to get the MOBY Central maintainers to accept namespaces (especially since it used to) than to reduce the XML to unqualified tags. Mark? > >In this case, the inputs part of the template service looked like > > >AminoAcidSequence >NCBI_gi > > >If I change it to look like this > > > >AminoAcidSequence >NCBI_gi > > >then it works. > >So basically moby central doesn't like to see the xml namespace in there >any more, though I'm pretty sure this worked last summer. > >-Ben > > > > >On Wed, 2005-02-02 at 10:00, Paul Gordon wrote: > > >>Hi Ben, >> >> The class seems to work fine (see the example program below). Are >>you sure that the right XML mode set for your intended use? >> >>---------------- >> >>coe01:/export/home/gordonp/projects/moby-live/Java/src/main 132 % cat >>TestMDSI.java >> >>import org.biomoby.shared.MobyDataSimpleInstance; >>import org.biomoby.shared.MobyDataType; >> >>public class TestMDSI{ >> public static void main(String[] args){ >> MobyDataSimpleInstance mdsi = new MobyDataSimpleInstance(new >>MobyDataType("Object"), "NCBI_gi", "111076"); >> >> mdsi.setXmlMode(MobyDataSimpleInstance.CENTRAL_XML_MODE); >> System.out.println("Central mode: "); >> System.out.println(mdsi.toXML()); >> >> mdsi.setXmlMode(MobyDataSimpleInstance.SERVICE_XML_MODE); >> System.out.println("Service mode: "); >> System.out.println(mdsi.toXML()); >> >> } >>} >>coe01:/export/home/gordonp/projects/moby-live/Java/src/main 133 % javac >>-classpath ../../lib/axis.jar:../../lib/jaxrpc.jar:. TestMDSI.java >>coe01:/export/home/gordonp/projects/moby-live/Java/src/main 134 % java >>-cp .:../../lib TestMDSI Central mode: >> >>Object >> >>Service mode: >>>xmlns:moby="http://www.biomoby.org/moby" >>moby:articleName="NCBI_gi"> >> >> >> >> >> > > > > From mwilkinson at mrl.ubc.ca Wed Feb 2 14:26:00 2005 From: mwilkinson at mrl.ubc.ca (Mark Wilkinson) Date: Wed Feb 2 13:43:42 2005 Subject: [moby] Re: [MOBY-l] jMoby bug? In-Reply-To: <42011B6B.8040409@ucalgary.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> <42011B6B.8040409@ucalgary.ca> Message-ID: <1107372360.8511.99.camel@mobycentral.icapture.ubc.ca> On Wed, 2005-02-02 at 10:26, Paul Gordon wrote: > I would be much more inclined to get the MOBY Central maintainers to > accept namespaces (especially since it used to) than to reduce the XML > to unqualified tags. Mark? ??? it should be even MORE accepting of XML namespaces now that we have switched to XML::LibXML. I'll pass this on to Eddie and see what he says. If it is a problem with the underlying C libxml2 libraries then we are in big trouble! M > >In this case, the inputs part of the template service looked like > > >AminoAcidSequence >NCBI_gi > > >If I change it to look like this > > > >AminoAcidSequence >NCBI_gi > > >then it works. > >So basically moby central doesn't like to see the xml namespace in there >any more, though I'm pretty sure this worked last summer. > -- Mark Wilkinson Assistant Professor (Bioinformatics) Dept. Medical Genetics, UBC, Canada From gordonp at ucalgary.ca Wed Feb 2 14:35:12 2005 From: gordonp at ucalgary.ca (Paul Gordon) Date: Wed Feb 2 14:30:50 2005 Subject: [moby] Re: [MOBY-l] jMoby bug? In-Reply-To: <1107372360.8511.99.camel@mobycentral.icapture.ubc.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> <42011B6B.8040409@ucalgary.ca> <1107372360.8511.99.camel@mobycentral.icapture.ubc.ca> Message-ID: <42012B70.8070807@ucalgary.ca> From my experience, using more compliant parsers often counterintuitively leads to more parsing problems. The problem is not usually the parser, but how the DOM query is formulated. This occurs, for example, when you ask for tag "Simple". A non-namespace compliant or lax parser will give you the qualified Simple, whereas a proper parser will give you nothing, because there is no namespaceless Simple tag in the document, you must qualify your query with foo:Simple, where foo maps to the MOBY namespace, or otherwise somehow declare the moby namespace as the default for your queries. Mark Wilkinson wrote: >On Wed, 2005-02-02 at 10:26, Paul Gordon wrote: > > > >>I would be much more inclined to get the MOBY Central maintainers to >>accept namespaces (especially since it used to) than to reduce the XML >>to unqualified tags. Mark? >> >> > >??? it should be even MORE accepting of XML namespaces now that we have >switched to XML::LibXML. > >I'll pass this on to Eddie and see what he says. If it is a problem >with the underlying C libxml2 libraries then we are in big trouble! > >M > > > >>In this case, the inputs part of the template service looked like >> >> >>AminoAcidSequence >>NCBI_gi >> >> >>If I change it to look like this >> >> >> >>AminoAcidSequence >>NCBI_gi >> >> >>then it works. >> >>So basically moby central doesn't like to see the xml namespace in >> >> >there > > >>any more, though I'm pretty sure this worked last summer. >> >> >> > > > From simont at mcw.edu Thu Feb 3 10:25:04 2005 From: simont at mcw.edu (Twigger Simon) Date: Thu Feb 3 10:22:01 2005 Subject: [MOBY-l] May BioMOBY meeting dates? Message-ID: Hi Mark, I saw from the site that there is another MOBY meeting tentatively scheduled in May - do you have firm dates for that yet? Im trying to plan for other meetings that happen around that time (eg. Biology of Genomes at CSH, May 11-15) and it would be very helpful to know when the MOBY meeting might occur. Cheers, Simon. -- Simon N. Twigger, Ph.D. Assistant Professor, Department of Physiology Medical College of Wisconsin 8701 Watertown Plank Road, Milwaukee, WI, USA tel: 414-456-8802 fax: 414-456-6595 AIM/iChat: simontatmcw From gordonp at ucalgary.ca Thu Feb 3 17:47:43 2005 From: gordonp at ucalgary.ca (Paul Gordon) Date: Thu Feb 3 17:43:20 2005 Subject: [MOBY-l] Re: a question In-Reply-To: <41a7713ce63ee1d1f9c0fa82cac88cea@sfu.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> <42011B6B.8040409@ucalgary.ca> <1107374243.6276.30.camel@pacifico.mrl.ubc.ca> <420134D8.8050406@ucalgary.ca> <41a7713ce63ee1d1f9c0fa82cac88cea@sfu.ca> Message-ID: <4202AA0F.6030107@ucalgary.ca> Benjamin Good wrote: > Hi Paul, > > I'm just backing up a step for the moment. In order to access the dom > element returned from service invocation I had to alter your class (to > unprotect it). I'm working with your unaltered class now and am > running into a different problem - perhaps easier for you to help solve. > > Basically, how can I get the MobyDataSimpleInstance or > MobyDataSetInstance out of a response? It seems that I am supposed to > use the Vector returned by invokeService() but I can't seem to get the > necessary casts to work. Perhaps we could have it return > MobyDataSimpleInstances directly? > [I'm cc'ing the discussion list because the example code may be of interest to people who are looking to write Java clients] Right, this is something I've just document a bit better in MobyRequest. The Vector invokeServices() returns a list of MobyDataInstance[]. This is because a invokeService() may in fact be submitting more than one request at a time. Each input request gets a corresponding response slot in the returned Vector. For each response, there is an array (MobyDataInstance[]) respresenting the data returned (which can be any number of MobyDataSimple and MobyDataSet instances). I scratched my head for a while over why a cast to even the appropriate MobyDataInstance[] type caused a runtime cast exception. It has to do with a fundamental type-safety behaviour of Java arrays, so I used an alternative Vector.toArray method in MobyRequest and now it works (this was committed to the repository a few minutes ago). I've adjusted your client code below too, it now works: ------------- import org.biomoby.client.CentralImpl; import org.biomoby.client.MobyRequest; import org.biomoby.shared.*; import java.util.Iterator; import java.util.Vector; /** * @author benjamgo * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class TestRequest { public static void main(String[] args) { try{ Central worker = new CentralImpl (); worker.setDebug(true); //make template for finding services MobyService templateService = new MobyService("dummy"); MobyDataType type = new MobyDataType("Object"); MobyDataSimpleInstance input = new MobyDataSimpleInstance (""); input.setDataType (type); input.addNamespace (new MobyNamespace ("NCBI_gi")); input.setId("111076"); input.setXmlMode(MobyDataSimpleInstance.CENTRAL_XML_MODE); templateService.addInput(input); templateService.setName("MOBYSHoundGetGenBankff"); // Find services that match this template service System.out.println("finding services matching template: "+templateService); MobyService[] validServices = worker.findService(templateService); // Make sure we have a service to run for this input if(validServices == null || validServices.length == 0){ System.err.println("Could not find any valid services"); } else{ System.out.println("found some services"); } input.setXmlMode(MobyDataSimpleInstance.SERVICE_XML_MODE); MobyDataSimpleInstance[] moby_in = new MobyDataSimpleInstance[1]; moby_in[0] = input; MobyRequest mr = new MobyRequest(worker); mr.setDebugMode(true); mr.setService(validServices[0]); mr.setInput(moby_in); java.util.Vector output = mr.invokeService(); String xresponse = mr.getResponseXML(); String c = ""; Iterator responses = output.iterator(); // The service invocation may have had many requests, there is a response // object for each request while(responses.hasNext()){ Vector response = (Vector) responses.next(); Iterator resultObjects = response.iterator(); // The response for a request may have many objects while(resultObjects.hasNext()){ MobyDataInstance resultObject = (MobyDataInstance) resultObjects.next(); // The response objects may either be simple data, or data sets if(resultObject instanceof MobyDataSimpleInstance){ System.out.println("Plain simple instance is "+resultObject.toXML()); } else if(resultObject instanceof MobyDataSetInstance){ System.out.println("Found a collection:"); MobyPrimaryDataSimple[] simples = ((MobyDataSetInstance) resultObject).getElements(); for(int j = 0; j < simples.length; j++){ System.out.println(" Member instance is \n"+simples[j].toXML()); } } } } }catch(Exception e){ System.out.println("Problem "+e); } } } From bmg at sfu.ca Fri Feb 4 02:28:47 2005 From: bmg at sfu.ca (Benjamin Good) Date: Fri Feb 4 02:25:03 2005 Subject: [MOBY-l] Re: a question In-Reply-To: <4202AA0F.6030107@ucalgary.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> <42011B6B.8040409@ucalgary.ca> <1107374243.6276.30.camel@pacifico.mrl.ubc.ca> <420134D8.8050406@ucalgary.ca> <41a7713ce63ee1d1f9c0fa82cac88cea@sfu.ca> <4202AA0F.6030107@ucalgary.ca> Message-ID: <9f35bb9f7ff6d6156b291b06032f63da@sfu.ca> Hi Paul, I've installed your updated class but am getting another class cast error. I'm absolutely sure I'm running the updated version, I can see where you changed the Vector.toArray method. The casting error has moved to here in the example Vector response = (Vector) responses.next(); It seems that this should be casting to a MobyDataInstance array no? Changing this to an array made the example I'm running work. Below is the current working example. I haven't tried it yet, but it would be great to complete it by taking the response and using it for querying for and executing another round of services. cheers -Ben import org.biomoby.client.CentralImpl; import org.biomoby.client.MobyRequest; import org.biomoby.shared.*; import java.util.Iterator; import java.util.Vector; /** * @author benjamgo * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class TestRequest { public static void main(String[] args) { try{ Central worker = new CentralImpl (); worker.setDebug(true); //make template for finding services MobyService templateService = new MobyService("dummy"); MobyDataType type = new MobyDataType("Object"); MobyDataSimpleInstance input = new MobyDataSimpleInstance (""); input.setDataType (type); input.addNamespace (new MobyNamespace ("NCBI_gi")); input.setId("111076"); input.setXmlMode(MobyDataSimpleInstance.CENTRAL_XML_MODE); templateService.addInput(input); templateService.setName("MOBYSHoundGetGenBankff"); // Find services that match this template service System.out.println("finding services matching template: "+templateService); MobyService[] validServices = worker.findService(templateService); // Make sure we have a service to run for this input if(validServices == null || validServices.length == 0){ System.err.println("Could not find any valid services"); } else{ System.out.println("found some services"); } input.setXmlMode(MobyDataSimpleInstance.SERVICE_XML_MODE); MobyDataSimpleInstance[] moby_in = new MobyDataSimpleInstance[1]; moby_in[0] = input; MobyRequest mr = new MobyRequest(worker); mr.setDebugMode(false); mr.setService(validServices[0]); mr.setInput(moby_in); java.util.Vector output = mr.invokeService(); String xresponse = mr.getResponseXML(); String c = ""; Iterator responses = output.iterator(); // The service invocation may have had many requests, there is a response // object for each request while(responses.hasNext()){ System.out.println("Casting..."); //bmg Vector response = (Vector) responses.next(); MobyDataInstance[] response = (MobyDataInstance[]) responses.next(); //bmg Iterator resultObjects = response.iterator(); // The response for a request may have many objects System.out.println("The actual response contained..."); //bmg while(resultObjects.hasNext()){ for(int i=0;i References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> <42011B6B.8040409@ucalgary.ca> <1107374243.6276.30.camel@pacifico.mrl.ubc.ca> <420134D8.8050406@ucalgary.ca> <41a7713ce63ee1d1f9c0fa82cac88cea@sfu.ca> <4202AA0F.6030107@ucalgary.ca> <9f35bb9f7ff6d6156b291b06032f63da@sfu.ca> Message-ID: <4203886B.8020003@ucalgary.ca> Yes, I am smoking crack. I didn't send you the final version, your latest is the correct version, what I should have sent (note that I even used j as the inner loop variable in the original, not i). If you chain the requests, this would be a nice example to add to the CVS repository, minus all the debug statements... Benjamin Good wrote: > Hi Paul, > > I've installed your updated class but am getting another class cast > error. I'm absolutely sure I'm running the updated version, I can see > where you changed the Vector.toArray method. > > The casting error has moved to here in the example > > Vector response = (Vector) responses.next(); > > It seems that this should be casting to a MobyDataInstance array no? > Changing this to an array made the example I'm running work. > > Below is the current working example. I haven't tried it yet, but it > would be great to complete it by taking the response and using it for > querying for and executing another round of services. > > cheers > > -Ben > > import org.biomoby.client.CentralImpl; > import org.biomoby.client.MobyRequest; > import org.biomoby.shared.*; > > import java.util.Iterator; > import java.util.Vector; > > /** > * @author benjamgo > * > * TODO To change the template for this generated type comment go to > * Window - Preferences - Java - Code Style - Code Templates > */ > public class TestRequest { > > public static void main(String[] args) { > try{ > Central worker = new CentralImpl (); > worker.setDebug(true); > //make template for finding services > MobyService templateService = new MobyService("dummy"); > MobyDataType type = new MobyDataType("Object"); > MobyDataSimpleInstance input = new > MobyDataSimpleInstance (""); > input.setDataType (type); > input.addNamespace (new MobyNamespace ("NCBI_gi")); > input.setId("111076"); > input.setXmlMode(MobyDataSimpleInstance.CENTRAL_XML_MODE); > templateService.addInput(input); > templateService.setName("MOBYSHoundGetGenBankff"); > // Find services that match this template service > System.out.println("finding services matching template: > "+templateService); > MobyService[] validServices = > worker.findService(templateService); > // Make sure we have a service to run for this input > if(validServices == null || validServices.length == 0){ > System.err.println("Could not find any valid > services"); > } > else{ > System.out.println("found some services"); > } > input.setXmlMode(MobyDataSimpleInstance.SERVICE_XML_MODE); > MobyDataSimpleInstance[] moby_in = new > MobyDataSimpleInstance[1]; > moby_in[0] = input; > > MobyRequest mr = new MobyRequest(worker); > > mr.setDebugMode(false); > mr.setService(validServices[0]); > mr.setInput(moby_in); > java.util.Vector output = mr.invokeService(); > String xresponse = mr.getResponseXML(); > String c = ""; > Iterator responses = output.iterator(); > // The service invocation may have had many requests, > there is a response > // object for each request > while(responses.hasNext()){ > > System.out.println("Casting..."); > //bmg Vector response = (Vector) responses.next(); > MobyDataInstance[] response = (MobyDataInstance[]) > responses.next(); > //bmg Iterator resultObjects = response.iterator(); > > // The response for a request may have many objects > System.out.println("The actual response > contained..."); > //bmg while(resultObjects.hasNext()){ > for(int i=0;i //bmg MobyDataInstance resultObject = > (MobyDataInstance) resultObjects.next(); > MobyDataInstance resultObject = response[i]; > // The response objects may either be simple > data, or data sets > if(resultObject instanceof > MobyDataSimpleInstance){ > System.out.println("Plain simple instance > is "+resultObject.toXML()); > } > > else if(resultObject instanceof > MobyDataSetInstance){ > System.out.println("Found a collection:"); > MobyPrimaryDataSimple[] simples = > ((MobyDataSetInstance) resultObject).getElements(); > for(int j = 0; j < simples.length; j++){ > System.out.println(" Member instance > is \n"+simples[j].toXML()); > } > } > } > } > }catch(Exception e){ > System.out.println("Problem "+e); > } > } > } > > _______________________________________________ > moby-l mailing list > moby-l@biomoby.org > http://biomoby.org/mailman/listinfo/moby-l > From mwilkinson at mrl.ubc.ca Fri Feb 4 13:10:37 2005 From: mwilkinson at mrl.ubc.ca (Mark Wilkinson) Date: Fri Feb 4 12:28:25 2005 Subject: [moby] Re: [MOBY-l] Re: a question In-Reply-To: <4203886B.8020003@ucalgary.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> <42011B6B.8040409@ucalgary.ca> <1107374243.6276.30.camel@pacifico.mrl.ubc.ca> <420134D8.8050406@ucalgary.ca> <41a7713ce63ee1d1f9c0fa82cac88cea@sfu.ca> <4202AA0F.6030107@ucalgary.ca> <9f35bb9f7ff6d6156b291b06032f63da@sfu.ca> <4203886B.8020003@ucalgary.ca> Message-ID: <1107540636.30133.40.camel@mobycentral.icapture.ubc.ca> On Fri, 2005-02-04 at 06:36, Paul Gordon wrote: > Yes, I am smoking crack. It's official! Paul Gordon is smoking crack! Paul, with habits like that you belong in Vancouver, not CowTown... M -- Mark Wilkinson Assistant Professor (Bioinformatics) Dept. Medical Genetics, UBC, Canada From p.lord at cs.man.ac.uk Tue Feb 8 11:42:38 2005 From: p.lord at cs.man.ac.uk (Phillip Lord) Date: Tue Feb 8 11:43:43 2005 Subject: [MOBY-l] CFP: The Eighth Annual Bio-Ontologies Meeting Message-ID: Apologies for multiple posting.... Please note that this year, as well as the traditional research talks, we are also interested in software demonstrations of tool for developing, or using ontologies. The Eighth Annual Bio-Ontologies Meeting Call for Submissions ============================================================= Key Information =============== Organisers: Robert Stevens(1), Phillip Lord(1), Robin McEntire(2), and James.A.Butler(2) (1) School of Computer Science, University of Manchester (2) GlaxoSmithKline Website: http://bio-ontologies.man.ac.uk Location: Detroit, Michigan Main Conference: http://www.iscb.org/ismb2005 General Information =================== The Bio-Ontologies workshop has been a satellite meeting to the annual ISMB conference since 1998, and is now operated as a Special Interest Group at the ISMB Conference. Bio-Ontologies is well established as one of the key meetings for dissemination of latest information and research on ontologies in the life sciences and has drawn the key researchers in the field. Ontologies provide a mechanism for organising, sharing and reconciling data. Within recent years there has been a great deal of interest in the use of ontologies within bioinformatics, particularly in providing computationally accessible annotation, or standard data models for complex data for microarray or pathway information. Meetings such as last years workshop and SOFG have made it clear that there are many important uses of ontologies and a clear realisation of the importance of implementing mechanisms for integrating source ontologies rather than duplicating effort or causing confusion by extending a given ontology to include everything. However, with the increase in scope and use of ontologies within bioinformatics, issues of scalability, expressivity and best practices for modelling are becoming more important. We are particularly interested, therefore, in work involving multiple source ontologies, and which cut across the different levels of granularity implicit within biological systems. BioOntologies is an informal workshop. Submissions will be reviewed by the programme committee. A number of talks will be invited for ***full publication*** as papers in Comparative and Functional Genomics (see http://www3.interscience.wiley.com/cgi-bin/jissue/109860809 for last years papers) Submissions =========== Submission We invite submissions to this years Bio-Ontologies. Suitable topics include but are not restricted to: * Biological Applications of Ontologies. * Reports on Newly Developed or Existing Bio-Ontologies. * Tools for Developing Ontologies. * Use of Semantic Web technologies in BioInformatics * The implications of Bio-Ontologies or the Semantic Web for the drug discovery process * Current Research In Ontology Languages and its implication for Bio-Ontologies This year, for the first time, we would like to have a number of short software or ontology demonstrations, showing new or existing tools for building or using ontologies, or describing the design of ontologies. Submissions for these demonstrations are particularly encouraged. Submission Instructions ======================= Submissions are limited to 2 pages. Please submit using word using the templates available at http://bio-ontologies.man.ac.uk/submissions.html. Alternatively, submissions may be as a text file. Submissions should be emailed to bio-ont-sig@cs.man.ac.uk. We will acknowledge within a day or two. Bio-Ontologies is an informal meeting. Abstracts are reviewed by the programme committee. All accepted abstracts will be published by the organisers on their web site and in the main programme booklet. By submitting your paper, you consent to this publication. Authors of abstracts accepted for full publication as long (8 page) papers in Comparative and Functional Genomics will be notified following the meeting, for publication around October. Full details will be given later. Authors will be informed of acceptance within a few days of the submission deadline. -- Phillip Lord, Phone: +44 (0) 161 275 0683 PostDoctoral Research Associate, Email: p.lord@cs.man.ac.uk (preferred) School of Computer Science : p.lord@russet.org.uk Kilburn Building http://www.cs.man.ac.uk/~phillord University of Manchester http://www.russet.org.uk Oxford Road Manchester M13 9PL From p.lord at cs.man.ac.uk Tue Feb 8 14:07:22 2005 From: p.lord at cs.man.ac.uk (Phillip Lord) Date: Tue Feb 8 14:04:53 2005 Subject: [MOBY-l] Re: [MOBY-dev] Mobycentral D'oh? In-Reply-To: <42090C6E.8090902@cs.man.ac.uk> References: <4208FD49.1080508@ncgr.org> <1107889601.10238.37.camel@mobycentral.icapture.ubc.ca> <42090C6E.8090902@cs.man.ac.uk> Message-ID: >>>>> "Duncan" == Duncan Hull writes: Duncan> Mark Duncan> Mark Wilkinson wrote: >> I think the correct quote is: "Doh!" H.J.Simpson >> Duncan> Can't find it in Pubmed Duncan> http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=pubmed&cmd=search&term=Simpson+HJ Duncan> Do you have the year/journal of publication? :) 1998.... http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=pubmed&dopt=Abstract&list_uids=9988570 Phil From mwilkinson at mrl.ubc.ca Wed Feb 9 14:54:38 2005 From: mwilkinson at mrl.ubc.ca (Mark Wilkinson) Date: Wed Feb 9 14:10:58 2005 Subject: [MOBY-l] BioMOBY developers meeting pre-announcement Message-ID: <1107978877.17164.70.camel@mobycentral.icapture.ubc.ca> Hi MOBYers! It's getting to that time again - time for the next (but hopefully not last... touch wood!) BioMOBY developers meeting! Due to overwhelming requests I am happy to host it here in Vancouver again. Alternately, and at higher cost, we could host it in a more exotic location such as the spectacular Whistler Ski Resort (site of the 2010 winter olympics - about 1.5 hours north of Vancouver). The dates are pretty limited. It appears that the first weekend of May (7th and 8th) is clear of other conferences that people might want to attend. Keeping with tradition, I will be using my Genome Canada grant to pay for as much of the local expenses as I can afford, so hopefully the charge to each of you will be primarily for travel, with only a little bit to cover room and board. So... a few questions: 1) Are the dates (May 7-8) going to work for the majority of you core developers? 2) Do you want to meet in Vancouver, or should we make our potentially last meeting a "big blow-out" and have it somewhere more exotic? (yes, Rebecca, we can play hackeysac in either location ;-) ) 3) *** Can people please contact me ASAP indicating their interest in attending so that I can ballpark the expenses and work out how much I can afford to supplement from my grant *** 4) Is there now sufficient interest in MOBY that it is worth having back-to-back developers and implementers meetings? If you are not a "core developer", but would be interested in attending a one-day hands-on meeting with people who have experience in building MOBY Services please let me know. If there is sufficient interest I'll see if I can arrange something like this. Looking forward to seeing you all again soon! Mark -- Mark Wilkinson Assistant Professor (Bioinformatics) Dept. Medical Genetics, UBC, Canada From dag at sonsorol.org Thu Feb 17 08:50:55 2005 From: dag at sonsorol.org (Chris Dagdigian) Date: Thu Feb 17 08:46:16 2005 Subject: [MOBY-l] Important info for all Open-Bio affiliated developers (people with CVS write access...) Message-ID: <4214A13F.6010006@sonsorol.org> Hi folks, apologies for the large cross-posting. Really short summary: We are going to migrate to newer server hardware over the next few months. If you are an OBF developer (someone who has a login account on "pub" with CVS write permission to one or more repositories) then you'll need to make sure we have your most current email address so we can communicate the transition plan directly without spamming N number of mailing lists. We need updated contact info in order to manage the transition. Details below. Long winded details: Our existing servers (the developer CVS repository and the 2nd system that handles websites & mailing lists) are getting a bit old and more importantly are running older Linux distributions that are long past official support dates and are difficult to update, secure and maintain. We have 2 brand new servers sitting online in a Boston area colocation facility and the various OBF sysadmins are starting to think about planning for transitioning services and user accounts. First to move (I suspect) is going to be the pub.open-bio.org system which is the main CVS sourcecode repository for our various projects such as biojava, bioperl, moby, etc. We think the transition will be pretty quick and transparent. It should not be all that hard to migrate the user accounts and copy over the CVS repository tree. We'll be writing scripts to automate the process and can run repeated migration tests before officially switching on the new system. What CVS committers and developers need to do ============================================= 1. SSH login to pub.open-bio.org 2. Run the "chfn" command to edit your user info 3. Make sure a good email address is listed for the Office: or Phone: field. Info about your project and institution would be great as well but is not required. In a week's time I'm going to capture all the email addresses listed and will insert them into a mailing list that we'll use to communicate our plans. This way we can speak to developers directly without cross posting to many mailing lists. Any user account without a full name and working email address will still be migrated but we are going to lockout the password until we hear from the person in question. What OBF Project Leaders need to do ==================================== 1. Login to pub.open-bio.org 2. Check /etc/groups for your project name and examine the users who have write access to your repository -- Email root-l@open-bio.org with the usernames of any inactive members who can safely be deleted. Regards, Chris one of the open-bio admins (root-l@open-bio.org) -- Chris Dagdigian, BioTeam - Independent life science IT & informatics consulting Office: 617-665-6088, Mobile: 617-877-5498, Fax: 425-699-0193 PGP KeyID: 83D4310E iChat/AIM: bioteamdag Web: http://bioteam.net From rebecca.ernst at gsf.de Wed Feb 2 05:36:10 2005 From: rebecca.ernst at gsf.de (Rebecca Ernst) Date: Wed, 02 Feb 2005 11:36:10 +0100 Subject: [MOBY-l] Output objects- problems interpreting the API Message-ID: <4200AD1A.6050301@gsf.de> Hi Mark! We have problems interpreting the BioMoby API for the output objects. The thing is that we have a service that gets ONE input object and executes a freetext search over several databases. This service will eventually return more that one result. We don't want to put the result into a collection object because the single objects don't build any entity. We also can't give back more that one mobyData block because we only have one query ID and therefore only one queryID to give back. The only solution we can think of is an object like this: would this be a legal object or do we have to use collection even if the objects don't build an entity ? Cheers, Rebecca -- Rebecca Ernst MIPS, Inst. for Bioinformatics GSF Research Center for Environment and Health Ingolstaedter Landstr. 1 85764 Neuherberg fon: +49 89 3187 3583 email: Rebecca.Ernst at gsf.de From mwilkinson at mrl.ubc.ca Wed Feb 2 10:41:41 2005 From: mwilkinson at mrl.ubc.ca (Mark Wilkinson) Date: Wed, 02 Feb 2005 07:41:41 -0800 Subject: [MOBY-l] Re: [moby] Output objects- problems interpreting the API In-Reply-To: <4200AD1A.6050301@gsf.de> References: <4200AD1A.6050301@gsf.de> Message-ID: <1107358901.8511.13.camel@mobycentral.icapture.ubc.ca> Well... the answer depends on what the generic case of your output will look like. the rule is that you have to register every output object that your service produces; i.e. every immediate child tag of a mobyData block. Therefore, if you are going to consistently output exactly 3 Genbank/gi's, then you would register your service as outputting 3 X Object(NCBI_gi). If you are outputting an indeterminate number of objects, then you register it as outputting 1 X Collection. Collections map nicely onto the rdf:Bag structure, if that helps you interpret them. M On Wed, 2005-02-02 at 02:36, Rebecca Ernst wrote: > Hi Mark! > > We have problems interpreting the BioMoby API for the output objects. > > The thing is that we have a service that gets ONE input object and > executes a freetext search over several databases. This service will > eventually return more that one result. > We don't want to put the result into a collection object because the > single objects don't build any entity. > We also can't give back more that one mobyData block because we only > have one query ID and therefore only one queryID to give back. > > The only solution we can think of is an object like this: > > > > > > > > > > > > > > > > > > > > > would this be a legal object or do we have to use collection even if the > objects don't build an entity ? > > > Cheers, > Rebecca -- Mark Wilkinson Assistant Professor (Bioinformatics) Dept. Medical Genetics, UBC, Canada From mwilkinson at mrl.ubc.ca Wed Feb 2 10:52:37 2005 From: mwilkinson at mrl.ubc.ca (Mark Wilkinson) Date: Wed, 02 Feb 2005 07:52:37 -0800 Subject: [MOBY-l] RE: [moby] debugging workflow In-Reply-To: <286D8A554155B54CBFB18EF26EE2F16954E3A4@jie2ksrv1.jic.bbsrc.ac.uk> References: <286D8A554155B54CBFB18EF26EE2F16954E3A4@jie2ksrv1.jic.bbsrc.ac.uk> Message-ID: <1107359556.8511.25.camel@mobycentral.icapture.ubc.ca> Hi Matthew, Collections are one of the more tricky bits of MOBY messages to understand, and unfortunately I can't quite get enough info from your message to give you a straight answer. Case 1) My service takes an indefined number of inputs and treats them all equivalently. These would come in as a Collection. e.g. a multiple sequence alignment service would consume a Collection of sequences Case 2) My servce takes a defined, but multiple number of identical inputs, and treats them differently. The inputs would come in as two (named!!) Simples. e.g. the blast2seq program takes exactly two sequences, so each of these would be a Simple containing a Sequence object, and each Simple would be named something like "sequence_a" and "sequence_b". Case 3) My service takes a defined, multiple number of disparate inputs and treats them individually differently. The inputs come into the service as multiple, named, Simple and or Collection objects. e.g. a service that takes as its input a FASTA Object and a Sequence to blast against that FASTA file. The FASTA Object would be one Simple, and the Sequence would be another Simple. Alternately, the service might consume a Collection of Sequence objects as one input, plus a Simple Sequence object as its second input, to achieve similar results. Hope that helps! (hope you don't mind me forwarding this to the mailing list - it is always better to have these conversations in the public eye to help others who might be having similar problems. M On Wed, 2005-02-02 at 06:43, matthew couchman (JIC) wrote: > Hi Mark, > > thanks for this tip. I'm afraid i've got another question now! How do > you go about setting up a service that takes more than one object as a > parameter? Should they be part of a Collection? > > Thanks, > > Matt. > > > -----Original Message----- > From: Mark Wilkinson [mailto:mwilkinson at mrl.ubc.ca] > Sent: 21 January 2005 21:41 > To: matthew couchman (JIC) > Subject: RE: [moby] debugging workflow > > > Hi Matthew, > > In the Perl/scripts folder of the CVS there is a script called > "debugYourService" that does what you want :-) > > M > > > On Fri, 2005-01-21 at 05:44, matthew couchman (JIC) wrote: > > Hi Mark, > > > > i've been trying to knock up just a small script that will take a file > > containing Moby inputs and send it to a service. I thought it would be > > useful for testing things like this workflow problem using the > > intermediate input results from the Taverna output. Unfortunately I > > haven't got very far - I can't seem to get the input parsed properly. > > Have you got any scripts that do this sort of thing? Sorry to bother > > you, I realise you must be pretty busy at the moment :) > > > > Cheers, > > > > Matt. > > > > -----Original Message----- > > From: Mark Wilkinson [mailto:mwilkinson at mrl.ubc.ca] > > Sent: 20 January 2005 18:05 > > To: Beatrice Schildknecht > > Cc: Rebecca Ernst; matthew couchman (JIC) > > Subject: Re: [moby] debugging workflow > > > > > > On Thu, 2005-01-20 at 09:05, Beatrice Schildknecht wrote: > > > Aaargh...Just logging in to a flood of emails. > > > > :-) Merry Christmas! > > > > M -- Mark Wilkinson Assistant Professor (Bioinformatics) Dept. Medical Genetics, UBC, Canada From bmg at sfu.ca Wed Feb 2 11:52:52 2005 From: bmg at sfu.ca (Benjamin Good) Date: Wed, 2 Feb 2005 08:52:52 -0800 Subject: [MOBY-l] jMoby bug? Message-ID: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> It seems that there is an error with the toXML method in the class MobyDataSimpleInstance . When the class is in CENTRAL_XML_MODE as in when it is being used as a service input in a template service that is sent to central to find other services, this method returns something that looks like this: >>> >>> >> xmlns="http://www.biomoby.org/moby"xmlns:moby="http:// >>> www.biomoby.org/moby" moby:articleName="dummy"> >>> When in fact I think it should look something like this: >>> >>> >>> Object >>> NCBI_gi >>> The problem method is below, followed by a corrected version. Please let me know if I have interpreted this correctly. cheers -Ben /** * Produces a full-blown XML fragment that depending on the value of getXmlMode() is either * a template for use in MOBY Central services, or a Simple element for use in calling a service * instance. * * @return the MOBY XML representation of the data instance public String toXML(){ if(xmlMode == SERVICE_XML_MODE) return "" + dataValue + ""; else{ MobyNamespace[] ns = getNamespaces(); String result = "\n" + getDataType().getName() + "\n"; for(int i = 0; ns != null && i < ns.length; i++){ result += "" + ns[i].getName() + "\n"; } result += ""; return result; } } */ public String toXML(){ if(xmlMode == SERVICE_XML_MODE) return "" + dataValue + ""; else{ MobyNamespace[] ns = getNamespaces(); String result = "\n" + getDataType().getName() + "\n"; for(int i = 0; ns != null && i < ns.length; i++){ result += "" + ns[i].getName() + "\n"; } result += ""; return result; } } From gordonp at ucalgary.ca Wed Feb 2 13:00:08 2005 From: gordonp at ucalgary.ca (Paul Gordon) Date: Wed, 02 Feb 2005 11:00:08 -0700 Subject: [MOBY-l] jMoby bug? In-Reply-To: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> Message-ID: <42011528.7000709@ucalgary.ca> Hi Ben, The class seems to work fine (see the example program below). Are you sure that the right XML mode set for your intended use? ---------------- coe01:/export/home/gordonp/projects/moby-live/Java/src/main 132 % cat TestMDSI.java import org.biomoby.shared.MobyDataSimpleInstance; import org.biomoby.shared.MobyDataType; public class TestMDSI{ public static void main(String[] args){ MobyDataSimpleInstance mdsi = new MobyDataSimpleInstance(new MobyDataType("Object"), "NCBI_gi", "111076"); mdsi.setXmlMode(MobyDataSimpleInstance.CENTRAL_XML_MODE); System.out.println("Central mode: "); System.out.println(mdsi.toXML()); mdsi.setXmlMode(MobyDataSimpleInstance.SERVICE_XML_MODE); System.out.println("Service mode: "); System.out.println(mdsi.toXML()); } } coe01:/export/home/gordonp/projects/moby-live/Java/src/main 133 % javac -classpath ../../lib/axis.jar:../../lib/jaxrpc.jar:. TestMDSI.java coe01:/export/home/gordonp/projects/moby-live/Java/src/main 134 % java -cp .:../../lib TestMDSI Central mode: Object Service mode: From bmg at sfu.ca Wed Feb 2 13:18:57 2005 From: bmg at sfu.ca (Benjamin Good) Date: 02 Feb 2005 10:18:57 -0800 Subject: [MOBY-l] jMoby bug? In-Reply-To: <42011528.7000709@ucalgary.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> Message-ID: <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> Sorry, the example I sent was in the wrong mode, but the problem is the same. The problem is not apparent until you try to use a MobyDataSimpleInstance as part of a template to find services. Here is my code: Central worker = new CentralImpl (); worker.setDebug(true); MobyService templateService = new MobyService("dummy"); MobyDataType type = new MobyDataType("AminoAcidSequence"); MobyDataSimpleInstance input = new MobyDataSimpleInstance (""); input.setDataType (type); input.addNamespace (new MobyNamespace ("NCBI_gi")); input.setId("111076"); //query the registry for services input.setXmlMode(MobyDataSimpleInstance.CENTRAL_XML_MODE); templateService.addInput(input); MobyService[] validServices = worker.findService(templateService); and here I get the error from moby central. problem org.biomoby.shared.MobyException: ===ERROR=== Fault details: [stackTrace: null] Fault string: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. Fault code: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException Fault actor: null When calling: http://mobycentral.cbr.nrc.ca/cgi-bin/MOBY05/mobycentral.pl =========== ----------------------- In this case, the inputs part of the template service looked like AminoAcidSequence NCBI_gi If I change it to look like this AminoAcidSequence NCBI_gi then it works. So basically moby central doesn't like to see the xml namespace in there any more, though I'm pretty sure this worked last summer. -Ben On Wed, 2005-02-02 at 10:00, Paul Gordon wrote: > Hi Ben, > > The class seems to work fine (see the example program below). Are > you sure that the right XML mode set for your intended use? > > ---------------- > > coe01:/export/home/gordonp/projects/moby-live/Java/src/main 132 % cat > TestMDSI.java > > import org.biomoby.shared.MobyDataSimpleInstance; > import org.biomoby.shared.MobyDataType; > > public class TestMDSI{ > public static void main(String[] args){ > MobyDataSimpleInstance mdsi = new MobyDataSimpleInstance(new > MobyDataType("Object"), "NCBI_gi", "111076"); > > mdsi.setXmlMode(MobyDataSimpleInstance.CENTRAL_XML_MODE); > System.out.println("Central mode: "); > System.out.println(mdsi.toXML()); > > mdsi.setXmlMode(MobyDataSimpleInstance.SERVICE_XML_MODE); > System.out.println("Service mode: "); > System.out.println(mdsi.toXML()); > > } > } > coe01:/export/home/gordonp/projects/moby-live/Java/src/main 133 % javac > -classpath ../../lib/axis.jar:../../lib/jaxrpc.jar:. TestMDSI.java > coe01:/export/home/gordonp/projects/moby-live/Java/src/main 134 % java > -cp .:../../lib TestMDSI Central mode: > > Object > > Service mode: > xmlns:moby="http://www.biomoby.org/moby" > moby:articleName="NCBI_gi"> > > > From gordonp at ucalgary.ca Wed Feb 2 13:26:51 2005 From: gordonp at ucalgary.ca (Paul Gordon) Date: Wed, 02 Feb 2005 11:26:51 -0700 Subject: [MOBY-l] jMoby bug? In-Reply-To: <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> Message-ID: <42011B6B.8040409@ucalgary.ca> Aha! I knew I wasn't crazy! I sent a message with regards to MOBY Central not accepting the input properly about a month ago, but didn't figure out that the issue was the non-acceptance of namespaces in the XML. Thanks for catching this. I would be much more inclined to get the MOBY Central maintainers to accept namespaces (especially since it used to) than to reduce the XML to unqualified tags. Mark? > >In this case, the inputs part of the template service looked like > > >AminoAcidSequence >NCBI_gi > > >If I change it to look like this > > > >AminoAcidSequence >NCBI_gi > > >then it works. > >So basically moby central doesn't like to see the xml namespace in there >any more, though I'm pretty sure this worked last summer. > >-Ben > > > > >On Wed, 2005-02-02 at 10:00, Paul Gordon wrote: > > >>Hi Ben, >> >> The class seems to work fine (see the example program below). Are >>you sure that the right XML mode set for your intended use? >> >>---------------- >> >>coe01:/export/home/gordonp/projects/moby-live/Java/src/main 132 % cat >>TestMDSI.java >> >>import org.biomoby.shared.MobyDataSimpleInstance; >>import org.biomoby.shared.MobyDataType; >> >>public class TestMDSI{ >> public static void main(String[] args){ >> MobyDataSimpleInstance mdsi = new MobyDataSimpleInstance(new >>MobyDataType("Object"), "NCBI_gi", "111076"); >> >> mdsi.setXmlMode(MobyDataSimpleInstance.CENTRAL_XML_MODE); >> System.out.println("Central mode: "); >> System.out.println(mdsi.toXML()); >> >> mdsi.setXmlMode(MobyDataSimpleInstance.SERVICE_XML_MODE); >> System.out.println("Service mode: "); >> System.out.println(mdsi.toXML()); >> >> } >>} >>coe01:/export/home/gordonp/projects/moby-live/Java/src/main 133 % javac >>-classpath ../../lib/axis.jar:../../lib/jaxrpc.jar:. TestMDSI.java >>coe01:/export/home/gordonp/projects/moby-live/Java/src/main 134 % java >>-cp .:../../lib TestMDSI Central mode: >> >>Object >> >>Service mode: >>>xmlns:moby="http://www.biomoby.org/moby" >>moby:articleName="NCBI_gi"> >> >> >> >> >> > > > > From mwilkinson at mrl.ubc.ca Wed Feb 2 14:26:00 2005 From: mwilkinson at mrl.ubc.ca (Mark Wilkinson) Date: Wed, 02 Feb 2005 11:26:00 -0800 Subject: [moby] Re: [MOBY-l] jMoby bug? In-Reply-To: <42011B6B.8040409@ucalgary.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> <42011B6B.8040409@ucalgary.ca> Message-ID: <1107372360.8511.99.camel@mobycentral.icapture.ubc.ca> On Wed, 2005-02-02 at 10:26, Paul Gordon wrote: > I would be much more inclined to get the MOBY Central maintainers to > accept namespaces (especially since it used to) than to reduce the XML > to unqualified tags. Mark? ??? it should be even MORE accepting of XML namespaces now that we have switched to XML::LibXML. I'll pass this on to Eddie and see what he says. If it is a problem with the underlying C libxml2 libraries then we are in big trouble! M > >In this case, the inputs part of the template service looked like > > >AminoAcidSequence >NCBI_gi > > >If I change it to look like this > > > >AminoAcidSequence >NCBI_gi > > >then it works. > >So basically moby central doesn't like to see the xml namespace in there >any more, though I'm pretty sure this worked last summer. > -- Mark Wilkinson Assistant Professor (Bioinformatics) Dept. Medical Genetics, UBC, Canada From gordonp at ucalgary.ca Wed Feb 2 14:35:12 2005 From: gordonp at ucalgary.ca (Paul Gordon) Date: Wed, 02 Feb 2005 12:35:12 -0700 Subject: [moby] Re: [MOBY-l] jMoby bug? In-Reply-To: <1107372360.8511.99.camel@mobycentral.icapture.ubc.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> <42011B6B.8040409@ucalgary.ca> <1107372360.8511.99.camel@mobycentral.icapture.ubc.ca> Message-ID: <42012B70.8070807@ucalgary.ca> From my experience, using more compliant parsers often counterintuitively leads to more parsing problems. The problem is not usually the parser, but how the DOM query is formulated. This occurs, for example, when you ask for tag "Simple". A non-namespace compliant or lax parser will give you the qualified Simple, whereas a proper parser will give you nothing, because there is no namespaceless Simple tag in the document, you must qualify your query with foo:Simple, where foo maps to the MOBY namespace, or otherwise somehow declare the moby namespace as the default for your queries. Mark Wilkinson wrote: >On Wed, 2005-02-02 at 10:26, Paul Gordon wrote: > > > >>I would be much more inclined to get the MOBY Central maintainers to >>accept namespaces (especially since it used to) than to reduce the XML >>to unqualified tags. Mark? >> >> > >??? it should be even MORE accepting of XML namespaces now that we have >switched to XML::LibXML. > >I'll pass this on to Eddie and see what he says. If it is a problem >with the underlying C libxml2 libraries then we are in big trouble! > >M > > > >>In this case, the inputs part of the template service looked like >> >> >>AminoAcidSequence >>NCBI_gi >> >> >>If I change it to look like this >> >> >> >>AminoAcidSequence >>NCBI_gi >> >> >>then it works. >> >>So basically moby central doesn't like to see the xml namespace in >> >> >there > > >>any more, though I'm pretty sure this worked last summer. >> >> >> > > > From simont at mcw.edu Thu Feb 3 10:25:04 2005 From: simont at mcw.edu (Twigger Simon) Date: Thu, 3 Feb 2005 09:25:04 -0600 Subject: [MOBY-l] May BioMOBY meeting dates? Message-ID: Hi Mark, I saw from the site that there is another MOBY meeting tentatively scheduled in May - do you have firm dates for that yet? Im trying to plan for other meetings that happen around that time (eg. Biology of Genomes at CSH, May 11-15) and it would be very helpful to know when the MOBY meeting might occur. Cheers, Simon. -- Simon N. Twigger, Ph.D. Assistant Professor, Department of Physiology Medical College of Wisconsin 8701 Watertown Plank Road, Milwaukee, WI, USA tel: 414-456-8802 fax: 414-456-6595 AIM/iChat: simontatmcw From gordonp at ucalgary.ca Thu Feb 3 17:47:43 2005 From: gordonp at ucalgary.ca (Paul Gordon) Date: Thu, 03 Feb 2005 15:47:43 -0700 Subject: [MOBY-l] Re: a question In-Reply-To: <41a7713ce63ee1d1f9c0fa82cac88cea@sfu.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> <42011B6B.8040409@ucalgary.ca> <1107374243.6276.30.camel@pacifico.mrl.ubc.ca> <420134D8.8050406@ucalgary.ca> <41a7713ce63ee1d1f9c0fa82cac88cea@sfu.ca> Message-ID: <4202AA0F.6030107@ucalgary.ca> Benjamin Good wrote: > Hi Paul, > > I'm just backing up a step for the moment. In order to access the dom > element returned from service invocation I had to alter your class (to > unprotect it). I'm working with your unaltered class now and am > running into a different problem - perhaps easier for you to help solve. > > Basically, how can I get the MobyDataSimpleInstance or > MobyDataSetInstance out of a response? It seems that I am supposed to > use the Vector returned by invokeService() but I can't seem to get the > necessary casts to work. Perhaps we could have it return > MobyDataSimpleInstances directly? > [I'm cc'ing the discussion list because the example code may be of interest to people who are looking to write Java clients] Right, this is something I've just document a bit better in MobyRequest. The Vector invokeServices() returns a list of MobyDataInstance[]. This is because a invokeService() may in fact be submitting more than one request at a time. Each input request gets a corresponding response slot in the returned Vector. For each response, there is an array (MobyDataInstance[]) respresenting the data returned (which can be any number of MobyDataSimple and MobyDataSet instances). I scratched my head for a while over why a cast to even the appropriate MobyDataInstance[] type caused a runtime cast exception. It has to do with a fundamental type-safety behaviour of Java arrays, so I used an alternative Vector.toArray method in MobyRequest and now it works (this was committed to the repository a few minutes ago). I've adjusted your client code below too, it now works: ------------- import org.biomoby.client.CentralImpl; import org.biomoby.client.MobyRequest; import org.biomoby.shared.*; import java.util.Iterator; import java.util.Vector; /** * @author benjamgo * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class TestRequest { public static void main(String[] args) { try{ Central worker = new CentralImpl (); worker.setDebug(true); //make template for finding services MobyService templateService = new MobyService("dummy"); MobyDataType type = new MobyDataType("Object"); MobyDataSimpleInstance input = new MobyDataSimpleInstance (""); input.setDataType (type); input.addNamespace (new MobyNamespace ("NCBI_gi")); input.setId("111076"); input.setXmlMode(MobyDataSimpleInstance.CENTRAL_XML_MODE); templateService.addInput(input); templateService.setName("MOBYSHoundGetGenBankff"); // Find services that match this template service System.out.println("finding services matching template: "+templateService); MobyService[] validServices = worker.findService(templateService); // Make sure we have a service to run for this input if(validServices == null || validServices.length == 0){ System.err.println("Could not find any valid services"); } else{ System.out.println("found some services"); } input.setXmlMode(MobyDataSimpleInstance.SERVICE_XML_MODE); MobyDataSimpleInstance[] moby_in = new MobyDataSimpleInstance[1]; moby_in[0] = input; MobyRequest mr = new MobyRequest(worker); mr.setDebugMode(true); mr.setService(validServices[0]); mr.setInput(moby_in); java.util.Vector output = mr.invokeService(); String xresponse = mr.getResponseXML(); String c = ""; Iterator responses = output.iterator(); // The service invocation may have had many requests, there is a response // object for each request while(responses.hasNext()){ Vector response = (Vector) responses.next(); Iterator resultObjects = response.iterator(); // The response for a request may have many objects while(resultObjects.hasNext()){ MobyDataInstance resultObject = (MobyDataInstance) resultObjects.next(); // The response objects may either be simple data, or data sets if(resultObject instanceof MobyDataSimpleInstance){ System.out.println("Plain simple instance is "+resultObject.toXML()); } else if(resultObject instanceof MobyDataSetInstance){ System.out.println("Found a collection:"); MobyPrimaryDataSimple[] simples = ((MobyDataSetInstance) resultObject).getElements(); for(int j = 0; j < simples.length; j++){ System.out.println(" Member instance is \n"+simples[j].toXML()); } } } } }catch(Exception e){ System.out.println("Problem "+e); } } } From bmg at sfu.ca Fri Feb 4 02:28:47 2005 From: bmg at sfu.ca (Benjamin Good) Date: Thu, 3 Feb 2005 23:28:47 -0800 Subject: [MOBY-l] Re: a question In-Reply-To: <4202AA0F.6030107@ucalgary.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> <42011B6B.8040409@ucalgary.ca> <1107374243.6276.30.camel@pacifico.mrl.ubc.ca> <420134D8.8050406@ucalgary.ca> <41a7713ce63ee1d1f9c0fa82cac88cea@sfu.ca> <4202AA0F.6030107@ucalgary.ca> Message-ID: <9f35bb9f7ff6d6156b291b06032f63da@sfu.ca> Hi Paul, I've installed your updated class but am getting another class cast error. I'm absolutely sure I'm running the updated version, I can see where you changed the Vector.toArray method. The casting error has moved to here in the example Vector response = (Vector) responses.next(); It seems that this should be casting to a MobyDataInstance array no? Changing this to an array made the example I'm running work. Below is the current working example. I haven't tried it yet, but it would be great to complete it by taking the response and using it for querying for and executing another round of services. cheers -Ben import org.biomoby.client.CentralImpl; import org.biomoby.client.MobyRequest; import org.biomoby.shared.*; import java.util.Iterator; import java.util.Vector; /** * @author benjamgo * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class TestRequest { public static void main(String[] args) { try{ Central worker = new CentralImpl (); worker.setDebug(true); //make template for finding services MobyService templateService = new MobyService("dummy"); MobyDataType type = new MobyDataType("Object"); MobyDataSimpleInstance input = new MobyDataSimpleInstance (""); input.setDataType (type); input.addNamespace (new MobyNamespace ("NCBI_gi")); input.setId("111076"); input.setXmlMode(MobyDataSimpleInstance.CENTRAL_XML_MODE); templateService.addInput(input); templateService.setName("MOBYSHoundGetGenBankff"); // Find services that match this template service System.out.println("finding services matching template: "+templateService); MobyService[] validServices = worker.findService(templateService); // Make sure we have a service to run for this input if(validServices == null || validServices.length == 0){ System.err.println("Could not find any valid services"); } else{ System.out.println("found some services"); } input.setXmlMode(MobyDataSimpleInstance.SERVICE_XML_MODE); MobyDataSimpleInstance[] moby_in = new MobyDataSimpleInstance[1]; moby_in[0] = input; MobyRequest mr = new MobyRequest(worker); mr.setDebugMode(false); mr.setService(validServices[0]); mr.setInput(moby_in); java.util.Vector output = mr.invokeService(); String xresponse = mr.getResponseXML(); String c = ""; Iterator responses = output.iterator(); // The service invocation may have had many requests, there is a response // object for each request while(responses.hasNext()){ System.out.println("Casting..."); //bmg Vector response = (Vector) responses.next(); MobyDataInstance[] response = (MobyDataInstance[]) responses.next(); //bmg Iterator resultObjects = response.iterator(); // The response for a request may have many objects System.out.println("The actual response contained..."); //bmg while(resultObjects.hasNext()){ for(int i=0;i References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> <42011B6B.8040409@ucalgary.ca> <1107374243.6276.30.camel@pacifico.mrl.ubc.ca> <420134D8.8050406@ucalgary.ca> <41a7713ce63ee1d1f9c0fa82cac88cea@sfu.ca> <4202AA0F.6030107@ucalgary.ca> <9f35bb9f7ff6d6156b291b06032f63da@sfu.ca> Message-ID: <4203886B.8020003@ucalgary.ca> Yes, I am smoking crack. I didn't send you the final version, your latest is the correct version, what I should have sent (note that I even used j as the inner loop variable in the original, not i). If you chain the requests, this would be a nice example to add to the CVS repository, minus all the debug statements... Benjamin Good wrote: > Hi Paul, > > I've installed your updated class but am getting another class cast > error. I'm absolutely sure I'm running the updated version, I can see > where you changed the Vector.toArray method. > > The casting error has moved to here in the example > > Vector response = (Vector) responses.next(); > > It seems that this should be casting to a MobyDataInstance array no? > Changing this to an array made the example I'm running work. > > Below is the current working example. I haven't tried it yet, but it > would be great to complete it by taking the response and using it for > querying for and executing another round of services. > > cheers > > -Ben > > import org.biomoby.client.CentralImpl; > import org.biomoby.client.MobyRequest; > import org.biomoby.shared.*; > > import java.util.Iterator; > import java.util.Vector; > > /** > * @author benjamgo > * > * TODO To change the template for this generated type comment go to > * Window - Preferences - Java - Code Style - Code Templates > */ > public class TestRequest { > > public static void main(String[] args) { > try{ > Central worker = new CentralImpl (); > worker.setDebug(true); > //make template for finding services > MobyService templateService = new MobyService("dummy"); > MobyDataType type = new MobyDataType("Object"); > MobyDataSimpleInstance input = new > MobyDataSimpleInstance (""); > input.setDataType (type); > input.addNamespace (new MobyNamespace ("NCBI_gi")); > input.setId("111076"); > input.setXmlMode(MobyDataSimpleInstance.CENTRAL_XML_MODE); > templateService.addInput(input); > templateService.setName("MOBYSHoundGetGenBankff"); > // Find services that match this template service > System.out.println("finding services matching template: > "+templateService); > MobyService[] validServices = > worker.findService(templateService); > // Make sure we have a service to run for this input > if(validServices == null || validServices.length == 0){ > System.err.println("Could not find any valid > services"); > } > else{ > System.out.println("found some services"); > } > input.setXmlMode(MobyDataSimpleInstance.SERVICE_XML_MODE); > MobyDataSimpleInstance[] moby_in = new > MobyDataSimpleInstance[1]; > moby_in[0] = input; > > MobyRequest mr = new MobyRequest(worker); > > mr.setDebugMode(false); > mr.setService(validServices[0]); > mr.setInput(moby_in); > java.util.Vector output = mr.invokeService(); > String xresponse = mr.getResponseXML(); > String c = ""; > Iterator responses = output.iterator(); > // The service invocation may have had many requests, > there is a response > // object for each request > while(responses.hasNext()){ > > System.out.println("Casting..."); > //bmg Vector response = (Vector) responses.next(); > MobyDataInstance[] response = (MobyDataInstance[]) > responses.next(); > //bmg Iterator resultObjects = response.iterator(); > > // The response for a request may have many objects > System.out.println("The actual response > contained..."); > //bmg while(resultObjects.hasNext()){ > for(int i=0;i //bmg MobyDataInstance resultObject = > (MobyDataInstance) resultObjects.next(); > MobyDataInstance resultObject = response[i]; > // The response objects may either be simple > data, or data sets > if(resultObject instanceof > MobyDataSimpleInstance){ > System.out.println("Plain simple instance > is "+resultObject.toXML()); > } > > else if(resultObject instanceof > MobyDataSetInstance){ > System.out.println("Found a collection:"); > MobyPrimaryDataSimple[] simples = > ((MobyDataSetInstance) resultObject).getElements(); > for(int j = 0; j < simples.length; j++){ > System.out.println(" Member instance > is \n"+simples[j].toXML()); > } > } > } > } > }catch(Exception e){ > System.out.println("Problem "+e); > } > } > } > > _______________________________________________ > moby-l mailing list > moby-l at biomoby.org > http://biomoby.org/mailman/listinfo/moby-l > From mwilkinson at mrl.ubc.ca Fri Feb 4 13:10:37 2005 From: mwilkinson at mrl.ubc.ca (Mark Wilkinson) Date: Fri, 04 Feb 2005 10:10:37 -0800 Subject: [moby] Re: [MOBY-l] Re: a question In-Reply-To: <4203886B.8020003@ucalgary.ca> References: <4131bb1cecfbb8e04c0757dd3234ba60@sfu.ca> <42011528.7000709@ucalgary.ca> <1107368336.6276.10.camel@pacifico.mrl.ubc.ca> <42011B6B.8040409@ucalgary.ca> <1107374243.6276.30.camel@pacifico.mrl.ubc.ca> <420134D8.8050406@ucalgary.ca> <41a7713ce63ee1d1f9c0fa82cac88cea@sfu.ca> <4202AA0F.6030107@ucalgary.ca> <9f35bb9f7ff6d6156b291b06032f63da@sfu.ca> <4203886B.8020003@ucalgary.ca> Message-ID: <1107540636.30133.40.camel@mobycentral.icapture.ubc.ca> On Fri, 2005-02-04 at 06:36, Paul Gordon wrote: > Yes, I am smoking crack. It's official! Paul Gordon is smoking crack! Paul, with habits like that you belong in Vancouver, not CowTown... M -- Mark Wilkinson Assistant Professor (Bioinformatics) Dept. Medical Genetics, UBC, Canada From p.lord at cs.man.ac.uk Tue Feb 8 11:42:38 2005 From: p.lord at cs.man.ac.uk (Phillip Lord) Date: 08 Feb 2005 16:42:38 +0000 Subject: [MOBY-l] CFP: The Eighth Annual Bio-Ontologies Meeting Message-ID: Apologies for multiple posting.... Please note that this year, as well as the traditional research talks, we are also interested in software demonstrations of tool for developing, or using ontologies. The Eighth Annual Bio-Ontologies Meeting Call for Submissions ============================================================= Key Information =============== Organisers: Robert Stevens(1), Phillip Lord(1), Robin McEntire(2), and James.A.Butler(2) (1) School of Computer Science, University of Manchester (2) GlaxoSmithKline Website: http://bio-ontologies.man.ac.uk Location: Detroit, Michigan Main Conference: http://www.iscb.org/ismb2005 General Information =================== The Bio-Ontologies workshop has been a satellite meeting to the annual ISMB conference since 1998, and is now operated as a Special Interest Group at the ISMB Conference. Bio-Ontologies is well established as one of the key meetings for dissemination of latest information and research on ontologies in the life sciences and has drawn the key researchers in the field. Ontologies provide a mechanism for organising, sharing and reconciling data. Within recent years there has been a great deal of interest in the use of ontologies within bioinformatics, particularly in providing computationally accessible annotation, or standard data models for complex data for microarray or pathway information. Meetings such as last years workshop and SOFG have made it clear that there are many important uses of ontologies and a clear realisation of the importance of implementing mechanisms for integrating source ontologies rather than duplicating effort or causing confusion by extending a given ontology to include everything. However, with the increase in scope and use of ontologies within bioinformatics, issues of scalability, expressivity and best practices for modelling are becoming more important. We are particularly interested, therefore, in work involving multiple source ontologies, and which cut across the different levels of granularity implicit within biological systems. BioOntologies is an informal workshop. Submissions will be reviewed by the programme committee. A number of talks will be invited for ***full publication*** as papers in Comparative and Functional Genomics (see http://www3.interscience.wiley.com/cgi-bin/jissue/109860809 for last years papers) Submissions =========== Submission We invite submissions to this years Bio-Ontologies. Suitable topics include but are not restricted to: * Biological Applications of Ontologies. * Reports on Newly Developed or Existing Bio-Ontologies. * Tools for Developing Ontologies. * Use of Semantic Web technologies in BioInformatics * The implications of Bio-Ontologies or the Semantic Web for the drug discovery process * Current Research In Ontology Languages and its implication for Bio-Ontologies This year, for the first time, we would like to have a number of short software or ontology demonstrations, showing new or existing tools for building or using ontologies, or describing the design of ontologies. Submissions for these demonstrations are particularly encouraged. Submission Instructions ======================= Submissions are limited to 2 pages. Please submit using word using the templates available at http://bio-ontologies.man.ac.uk/submissions.html. Alternatively, submissions may be as a text file. Submissions should be emailed to bio-ont-sig at cs.man.ac.uk. We will acknowledge within a day or two. Bio-Ontologies is an informal meeting. Abstracts are reviewed by the programme committee. All accepted abstracts will be published by the organisers on their web site and in the main programme booklet. By submitting your paper, you consent to this publication. Authors of abstracts accepted for full publication as long (8 page) papers in Comparative and Functional Genomics will be notified following the meeting, for publication around October. Full details will be given later. Authors will be informed of acceptance within a few days of the submission deadline. -- Phillip Lord, Phone: +44 (0) 161 275 0683 PostDoctoral Research Associate, Email: p.lord at cs.man.ac.uk (preferred) School of Computer Science : p.lord at russet.org.uk Kilburn Building http://www.cs.man.ac.uk/~phillord University of Manchester http://www.russet.org.uk Oxford Road Manchester M13 9PL From p.lord at cs.man.ac.uk Tue Feb 8 14:07:22 2005 From: p.lord at cs.man.ac.uk (Phillip Lord) Date: 08 Feb 2005 19:07:22 +0000 Subject: [MOBY-l] Re: [MOBY-dev] Mobycentral D'oh? In-Reply-To: <42090C6E.8090902@cs.man.ac.uk> References: <4208FD49.1080508@ncgr.org> <1107889601.10238.37.camel@mobycentral.icapture.ubc.ca> <42090C6E.8090902@cs.man.ac.uk> Message-ID: >>>>> "Duncan" == Duncan Hull writes: Duncan> Mark Duncan> Mark Wilkinson wrote: >> I think the correct quote is: "Doh!" H.J.Simpson >> Duncan> Can't find it in Pubmed Duncan> http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=pubmed&cmd=search&term=Simpson+HJ Duncan> Do you have the year/journal of publication? :) 1998.... http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=pubmed&dopt=Abstract&list_uids=9988570 Phil From mwilkinson at mrl.ubc.ca Wed Feb 9 14:54:38 2005 From: mwilkinson at mrl.ubc.ca (Mark Wilkinson) Date: Wed, 09 Feb 2005 11:54:38 -0800 Subject: [MOBY-l] BioMOBY developers meeting pre-announcement Message-ID: <1107978877.17164.70.camel@mobycentral.icapture.ubc.ca> Hi MOBYers! It's getting to that time again - time for the next (but hopefully not last... touch wood!) BioMOBY developers meeting! Due to overwhelming requests I am happy to host it here in Vancouver again. Alternately, and at higher cost, we could host it in a more exotic location such as the spectacular Whistler Ski Resort (site of the 2010 winter olympics - about 1.5 hours north of Vancouver). The dates are pretty limited. It appears that the first weekend of May (7th and 8th) is clear of other conferences that people might want to attend. Keeping with tradition, I will be using my Genome Canada grant to pay for as much of the local expenses as I can afford, so hopefully the charge to each of you will be primarily for travel, with only a little bit to cover room and board. So... a few questions: 1) Are the dates (May 7-8) going to work for the majority of you core developers? 2) Do you want to meet in Vancouver, or should we make our potentially last meeting a "big blow-out" and have it somewhere more exotic? (yes, Rebecca, we can play hackeysac in either location ;-) ) 3) *** Can people please contact me ASAP indicating their interest in attending so that I can ballpark the expenses and work out how much I can afford to supplement from my grant *** 4) Is there now sufficient interest in MOBY that it is worth having back-to-back developers and implementers meetings? If you are not a "core developer", but would be interested in attending a one-day hands-on meeting with people who have experience in building MOBY Services please let me know. If there is sufficient interest I'll see if I can arrange something like this. Looking forward to seeing you all again soon! Mark -- Mark Wilkinson Assistant Professor (Bioinformatics) Dept. Medical Genetics, UBC, Canada From dag at sonsorol.org Thu Feb 17 08:50:55 2005 From: dag at sonsorol.org (Chris Dagdigian) Date: Thu, 17 Feb 2005 08:50:55 -0500 Subject: [MOBY-l] Important info for all Open-Bio affiliated developers (people with CVS write access...) Message-ID: <4214A13F.6010006@sonsorol.org> Hi folks, apologies for the large cross-posting. Really short summary: We are going to migrate to newer server hardware over the next few months. If you are an OBF developer (someone who has a login account on "pub" with CVS write permission to one or more repositories) then you'll need to make sure we have your most current email address so we can communicate the transition plan directly without spamming N number of mailing lists. We need updated contact info in order to manage the transition. Details below. Long winded details: Our existing servers (the developer CVS repository and the 2nd system that handles websites & mailing lists) are getting a bit old and more importantly are running older Linux distributions that are long past official support dates and are difficult to update, secure and maintain. We have 2 brand new servers sitting online in a Boston area colocation facility and the various OBF sysadmins are starting to think about planning for transitioning services and user accounts. First to move (I suspect) is going to be the pub.open-bio.org system which is the main CVS sourcecode repository for our various projects such as biojava, bioperl, moby, etc. We think the transition will be pretty quick and transparent. It should not be all that hard to migrate the user accounts and copy over the CVS repository tree. We'll be writing scripts to automate the process and can run repeated migration tests before officially switching on the new system. What CVS committers and developers need to do ============================================= 1. SSH login to pub.open-bio.org 2. Run the "chfn" command to edit your user info 3. Make sure a good email address is listed for the Office: or Phone: field. Info about your project and institution would be great as well but is not required. In a week's time I'm going to capture all the email addresses listed and will insert them into a mailing list that we'll use to communicate our plans. This way we can speak to developers directly without cross posting to many mailing lists. Any user account without a full name and working email address will still be migrated but we are going to lockout the password until we hear from the person in question. What OBF Project Leaders need to do ==================================== 1. Login to pub.open-bio.org 2. Check /etc/groups for your project name and examine the users who have write access to your repository -- Email root-l at open-bio.org with the usernames of any inactive members who can safely be deleted. Regards, Chris one of the open-bio admins (root-l at open-bio.org) -- Chris Dagdigian, BioTeam - Independent life science IT & informatics consulting Office: 617-665-6088, Mobile: 617-877-5498, Fax: 425-699-0193 PGP KeyID: 83D4310E iChat/AIM: bioteamdag Web: http://bioteam.net