[OTDev] How to upload a dataset ...
Tobias Girschick tobias.girschick at in.tum.deMon Sep 6 08:48:09 CEST 2010
- Previous message: [OTDev] How to upload a dataset ...
- Next message: [OTDev] How to upload a dataset ...
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On the first glance I'd say, you're not adding the data entries to the dataset after creating them. Try adding a line like this one: dataset.addProperty(OT.dataEntry, dataEntry); regards, Tobias On Fri, 2010-09-03 at 23:28 +0530, surajit ray wrote: > Hi, > > Lemme take a look into that .... > > heres my code creating the dataset ... can you tell me whats wrong with it ? > > ***************************************** > this.resultDataset = createModel(); > Individual dataset = > resultDataset.createIndividual(resultDataset.getOntClass(OT.OTClass.Dataset.getNS())); > OT.OTClass.Dataset.createOntClass(resultDataset); > OT.OTClass.DataEntry.createOntClass(resultDataset); > OT.OTClass.Feature.createOntClass(resultDataset); > OT.OTClass.FeatureValue.createOntClass(resultDataset); > OT.OTClass.Compound.createOntClass(resultDataset); > > > for (int i=0 ; i<this.compoundURIs.length ; i++) { > //create data entry > Individual dataEntry = > resultDataset.createIndividual(OT.OTClass.DataEntry.getOntClass(resultDataset)); > dataset.addProperty(OT.dataEntry, dataEntry); > //add compound to data entry > Individual newcompound = > resultDataset.createIndividual(this.compoundURIs[i], > OT.OTClass.Compound.getOntClass(resultDataset)); > dataEntry.addProperty(OT.compound, newcompound); > //First value > Individual feature1 = > resultDataset.createIndividual(MaxtoxApplicationSettings.getServerRootPath() > + "/feature/" + modelNumber + "_prediction", > OT.OTClass.Feature.getOntClass(resultDataset)); > Individual featureValue1 = > resultDataset.createIndividual(OT.OTClass.FeatureValue.getOntClass(resultDataset)); > featureValue1.addProperty(OT.feature, feature1); > featureValue1.addLiteral(OT.value, > resultDataset.createTypedLiteral(this.predictions[i], > XSDDatatype.XSDstring)); > > //Second value > Individual feature2 = > resultDataset.createIndividual(MaxtoxApplicationSettings.getServerRootPath() > + "/feature/" + modelNumber + "_fingerprint", > OT.OTClass.Feature.getOntClass(resultDataset)); > Individual featureValue2 = > resultDataset.createIndividual(OT.OTClass.FeatureValue.getOntClass(resultDataset)); > featureValue2.addProperty(OT.feature, feature2); > featureValue2.addLiteral(OT.value, > resultDataset.createTypedLiteral(this.fingerprints[i], > XSDDatatype.XSDdouble)); > > //and finally add values to the data entry > dataEntry.addProperty(OT.values, featureValue1); > dataEntry.addProperty(OT.values, featureValue2); > } > ******************************************************* > > > > > On 3 September 2010 22:34, Nina Jeliazkova <jeliazkova.nina at gmail.com> wrote: > > Hi Surajit, > > > > I assume resultDataset variable is a Jena Model? > > > > Here is one of the RDF files you've tried to upload > > > > http://www.ideaconsult.net/downloads/maxtox/ambit2_22761.rdf > > > > First observation there is no any ot:Dataset instance. There are multile > > ot:DataEntry, but no dataset to where they belong. This is definitely a > > reason the dataset could not be imported - the parser simply doesn't find a > > dataset to work with and does nothing. > > > > Second observation - you have defined value of type double, but the value > > itself is a string of 0 and 1s (the fingerprint). This is at least not > > correct and will most probably result in errors when parsing values. > > > > <ot:FeatureValue> > > <ot:value rdf:datatype="http://www.w3.org/2001/XMLSchema#double" > > > >>0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0</ot:value> > > <ot:feature > > rdf:resource="http://localhost:8080/MaxtoxTest/feature/1_fingerprint"/> > > </ot:FeatureValue> > > > Corrected that ... I had interchanged the types between prediction and > fingerprint > > > Ah, and (relatively minor) issue - the feature URI > > http://localhost:8080/MaxtoxTest/feature/1_fingerprint will not be > > dereferencable, even if you are running feature service at your machine - > > just because "localhost" means your machine for you, but my machine to me. > > > > Yeah ... that was during testing from my machine ...I have loaded the > same on the freiburg server which has the correct (absolute) server > path. > > > If you are not running feature service elsewehere it would be better to > > either have anonymous node for it, or create it beforehand (POST to > > http://{host}/ambit2/feature) and provide the URI in the dataset RDF. TUM > > and NTUA developers can share their experience/code as well. > > > > Will try that in a future iteration ... however I have a thought > regarding this. Remoting is good as long as the information load to be > maintained is high and the connection is good. I believe localizing > the smaller stuff is better - as it leads to fewer steps that can fail > (in the course of a bad connection) > > > Third, this code will not work as you might expect: > > > > this.uploaded_URI = output.getText(); , > > > > because task RDF will be returned, not a single URI (you have specified > > request.getClientInfo().getAcceptedMediaTypes().add(new > > Preference<MediaType>(MediaType.APPLICATION_RDF_XML)); > > > > Do I have to drill through the RDF representation to reach the URI ? > Also if its taking a long time what is your polling strategy ? > > Are there any ready pieces of code for polling ? > > > > > Hope this helps, > > Nina > > > > Lastly some links I had left out (for reference) > > models at : http://opentox2.informatik.uni-freiburg.de:8080/MaxtoxTest/model > particular (for ex model no 1) : > http://opentox2.informatik.uni-freiburg.de:8080/MaxtoxTest/model/1 > > models take a dataset as the input and generate the fingerprints and > the predictions. > > Regards > Surajit > > > > > On Fri, Sep 3, 2010 at 6:33 PM, surajit ray <mr.surajit.ray at gmail.com> > > wrote: > >> > >> Hi, > >> > >> Tried uploading using this piece of code > >> > >> ************************************ > >> System.out.println(result_dataset_URI); > >> Representation representation = new > >> OutputRepresentation(MediaType.APPLICATION_RDF_XML) { > >> > >> @Override > >> public void write(OutputStream out) throws IOException { > >> resultDataset.write(out, "RDF/XML-ABBREV"); > >> } > >> }; > >> > >> Request request = new Request(); > >> Client client = new Client(Protocol.HTTP); > >> request.setResourceRef(result_dataset_URI); > >> > >> request.setReferrerRef(MaxtoxApplicationSettings.getServerRootPath()); > >> request.setMethod(Method.POST); > >> request.getClientInfo().getAcceptedMediaTypes().add(new > >> Preference<MediaType>(MediaType.APPLICATION_RDF_XML)); > >> request.setEntity(representation); > >> > >> > >> Response response = client.handle(request); > >> // Get the output from the response > >> Representation output = response.getEntity(); > >> this.uploaded_URI = output.getText(); > >> ************************************ > >> > >> > >> > >> > >> > >> I got this as the result > >> > >> > >> > >> > >> ************************************* > >> 0.0 Error 1283527568408 File import application/rdf+xml [-1] The > >> server has fulfilled the request but does not need to return an > >> entity-body, and might want to return updated metainformation The > >> server has fulfilled the request but does not need to return an > >> entity-body, and might want to return updated metainformation 500 > >> ************************************* > >> > >> Could you clarify ? > >> > >> I am using the http://apps.ideaconsult.net:8080/ambit2/dataset for > >> testing as the other server was down - sorry for that. > > > > > >> > >> I just uploaded > >> twice so you can delete 2 vague looking databases ... > > > > > > > >> > >> Regards > >> Surajit > >> > >> > >> > >> On 3 September 2010 11:46, Nina Jeliazkova <jeliazkova.nina at gmail.com> > >> wrote: > >> > Hi Surajit, > >> > > >> > On Fri, Sep 3, 2010 at 1:50 AM, surajit ray <mr.surajit.ray at gmail.com> > >> > wrote: > >> >> > >> >> From your previous example I gathered this > >> >> > >> >> RDFRepresentation r = new RDFRepresentation(); > >> >> Representation rep = r.createRepresentation(rdfDataset, > >> >> MediaType.APPLICATION_RDF_XML); > >> >> > >> >> The problem is this representation does not exist in the stable > >> >> version of Restlets ! > >> > > >> > If you refer to opentox-client examples, then RDFRepresentation is not a > >> > Restlet class at all, but custom one, using Jena writers for serializing > >> > RDF. > >> > > >> > > >> > https://ambit.svn.sourceforge.net/svnroot/ambit/branches/opentox/opentox-client/src/main/java/org/opentox/rdf/representation/RDFRepresentation.java > >> > > >> > Restlet RDF support is rather minimalistic (graph representation, no > >> > querying, let alone reasoning), I am not sure if any of the partners > >> > actually uses it. If you are working with 1.x Restlet , there is indeed > >> > no > >> > RDF support there. But Restlet RDF support can be safely ignored if you > >> > are > >> > already using Jena (though I would be curious to see performance > >> > comparison > >> > between the two). > >> > > >> > Using StringRepresentation/ FileRepresentation with media type > >> > "application/rdf+xml" does the same job. RDFRepresentation class > >> > discussed > >> > above actually creates OutputStreamRepresentation. > >> > > >> > Upload examples can be found here > >> > > >> > > >> > https://ambit.svn.sourceforge.net/svnroot/ambit/branches/opentox/opentox-client/src/test/java/org/opentox/dataset/test/DatasetTest.java > >> > > >> > https://ambit.svn.sourceforge.net/svnroot/ambit/branches/opentox/opentox-client/src/test/java/org/opentox/dataset/test/FeatureTest.java > >> > > >> > The examples above are cleaned up versions of ambit code. JUnit tests of > >> > ambit dataset services can be found here > >> > > >> > > >> > https://ambit.svn.sourceforge.net/svnroot/ambit/trunk/ambit2-all/ambit2-www/src/test/java/ambit2/rest/test/dataset/DatasetsResourceTest.java > >> > > >> > > >> > > >> >> > >> >> Also the example uses a RemoteTask to achieve the actual upload. > >> >> Therefore I could not exactly fathom how to do the upload. > >> > > >> > Here is a summary > >> > > >> > curl -X POST -d "@filecontent" -H "Content-type:application/rdf+xml" > >> > http://datasetservice/dataset > >> > > >> > This returns Task object (either URI, if -H "Accept:text/uri-list" is > >> > specified or Task RDF representation if -H "Accept:application/rdf+xml" > >> > is > >> > specified). Task RDF representation is defined in > >> > http://opentox.org/api/1_1/opentox.owl > >> > > >> > If the task is still running you'll get result codes 201 or 202 , this > >> > means > >> > you need to query again the returned task URI. If code 200 is returned, > >> > the > >> > URI returned is where the result should be found. In the examples > >> > there is > >> > a RemoteTask class that handles all this. > >> > > >> > > >> > https://ambit.svn.sourceforge.net/svnroot/ambit/branches/opentox/opentox-client/src/main/java/org/opentox/task/RemoteTask.java > >> >> > >> >> On 3 September 2010 03:47, surajit ray <mr.surajit.ray at gmail.com> > >> >> wrote: > >> >> > Hi, > >> >> > > >> >> > I have managed to get a dataset (RDF) made using the results of a > >> >> > model prediction run. Could you please tell me a dataset service > >> >> > where > >> >> > I could upload the same ? > >> > > >> > For testing > >> > > >> > http://ambit-uni-plovdiv.bg:8080/ambit2/dataset > >> > > >> > For your final models/results , especially if you would like them > >> > appearing > >> > in ToxPredict. > >> > > >> > http://apps.ideaconsult.net:8080/ambit2/dataset > >> > > >> > > >> >> > >> >> Also it would be very helpful if you could > >> >> > give an example of an upload request using restlets ... > >> > > >> > See above. > >> > > >> > Hope this helps, > >> > Nina > >> > > >> > > >> >> > > >> >> > Thanx > >> >> > Surajit > >> >> > > >> > > >> > > >> > > > > > > > > > -- > > > > Dr. Nina Jeliazkova > > Technical Manager > > > > > > 4 A.Kanchev str. > > IdeaConsult Ltd. > > > > > > 1000 Sofia, Bulgaria > > Phone: +359 886 802011 > > > > > > > _______________________________________________ > Development mailing list > Development at opentox.org > http://www.opentox.org/mailman/listinfo/development -- Dipl.-Bioinf. Tobias Girschick Technische Universität München Institut für Informatik Lehrstuhl I12 - Bioinformatik Bolzmannstr. 3 85748 Garching b. München, Germany Room: MI 01.09.042 Phone: +49 (89) 289-18002 Email: tobias.girschick at in.tum.de Web: http://wwwkramer.in.tum.de/girschick
- Previous message: [OTDev] How to upload a dataset ...
- Next message: [OTDev] How to upload a dataset ...
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Development mailing list