Hi Dennis, Unfortunately one of the much discussed topics about SPARQL endpoints is how it might be possible to authenticate users so they can query over all the RDF they are permitted to access. RDF data is commonly added to triplestores that back SPARQL endpoints as graphs, (individual RDF files). In the case of myExperiment, these graphs would be sufficiently atomic that each user would have permission to access an exact subset of these graphs. SPARQL provides a facility to only query over specific graphs but I don't think anyone has ever tested this with a subset of graphs as large (i.e. in the thousands) as would be required here. If this was possible I would still be nervous that users may have access to RDF data they are not permitted to see, until I had performed significant testing.
A simpler and more robust solution would be to provide users with a service that would allow they to download all the myExperiment RDF they were permitted to access (zipped this would be quite small) that they could then manage their own SPARQL endpoint. This would have the disadvantage of requiring a script on a cron job to regularly update their triplestore. It might be possible for myExperiment to provide a trial service that would allow users to request their up-to-date RDF subset be put in a myExperiment-hosted triplestore that they could they query through a SPARQL endpoint only they can access. I will give this some further thought. Regards David Newman -----Original Message----- From: Dennis Neumann [mailto:[email protected]] Sent: 20 July 2010 11:19 To: List for general discussion and hacking of the Taverna project Subject: Re: [Taverna-hackers] MyExperiment workflow ID Hi, and thanks for your answers! I got it to work now, but only for public workflows. For the non-rdf API, I would use preemptive authentication like this to get a private workflow: String urlString = "http://www.myexperiment.org/workflows.xml?id=12345"; HttpClient client = new HttpClient(); client.getParams().setAuthenticationPreemptive(true); client.getState().setCredentials( new AuthScope("www.myexperiment.org", 80), new UsernamePasswordCredentials("user", "password")); GetMethod get = new GetMethod(urlString); get.setDoAuthentication(true); client.executeMethod(get); I tried a similar thing for the rdf API, but it doesn't work. I get an empty xml result if the workflow requires authentication. So, the uri from David: http://rdf.myexperiment.org/sparql?query=PREFIX+mecontrib%3A+%3Chttp%3A% 2F%2Frdf.myexperiment.org%2Fontologies%2Fcontributions%2F%3E%0D%0APREFIX +rdf%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E% 0D%0APREFIX+mecomp%3A+%3Chttp%3A%2F%2Frdf.myexperiment.org%2Fontologies% 2Fcomponents%2F%3E%0D%0APREFIX+dcterms%3A+%3Chttp%3A%2F%2Fpurl.org%2Fdc% 2Fterms%2F%3E%0D%0ASELECT+%3Fworkflow%0D%0AWHERE+%7B+%0D%0A++%3Fdataflow +dcterms%3Aidentifier+%3Fidentifier+.%0D%0A++%3Fworkflow+mecomp% 3Aexecutes-dataflow+%3Fdataflow+%3B%0D%0A++++rdf%3Atype+mecontrib% 3AWorkflow%0D%0A++FILTER+regex%28%3Fidentifier%2C% 273bd356a4-fc82-4ec8-8fcb-5960f40b2e8f%27%29%0D%0A%7D works fine, but if I replace the id with one of my own, then it doesn't find the workflow. So the question is: Can I use the rdf API to retrieve an id of a private workflow? Regards, Dennis ---------------------------------------------------------------------------- -- This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ taverna-hackers mailing list [email protected] Web site: http://www.taverna.org.uk Mailing lists: http://www.taverna.org.uk/about/contact-us/ Developers Guide: http://www.taverna.org.uk/developers/ ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ taverna-hackers mailing list [email protected] Web site: http://www.taverna.org.uk Mailing lists: http://www.taverna.org.uk/about/contact-us/ Developers Guide: http://www.taverna.org.uk/developers/
