Andy
The URI of the graph is specified using the ?graph form - I attach again a Log Trace from Fuseki (I included one in the original email which showed the use of the ?graph form) this time with the --verbose option on: 10:04:15 INFO Fuseki :: Dataset: in-memory 10:04:15 INFO Fuseki :: Update enabled 10:04:15 INFO Fuseki :: Fuseki 0.1.0 10:04:15 INFO Fuseki :: Jetty 7.x.y-SNAPSHOT 10:04:15 INFO Fuseki :: Dataset = /dataset 10:04:15 INFO Fuseki :: Started 2011/01/28 10:04:15 GMT on port 3030 10:04:21 INFO Fuseki :: [1] PUT http://localhost:3030/dataset/data?graph=http%3A%2F%2Fexample.org%2FfusekiTest 10:04:21 INFO Fuseki :: [1] Content-Type application/rdf+xml 10:04:21 INFO Fuseki :: [1] Host localhost:3030 10:04:21 INFO Fuseki :: [1] Content-Length 2265 10:04:21 INFO Fuseki :: [1] Expect 100-continue 10:04:21 INFO Fuseki :: [1] Connection Keep-Alive 10:04:21 INFO Fuseki :: [1] Body: Content-Length=2265, Content-Type=application/rdf+xml, Charset=null => RDF/XML 10:04:21 INFO Fuseki :: [1] 201 Created 10:04:21 INFO Fuseki :: [2] PUT http://localhost:3030/dataset/data?graph=http%3A%2F%2Fexample.org%2FfusekiTest2 10:04:21 INFO Fuseki :: [2] Content-Type application/rdf+xml 10:04:21 INFO Fuseki :: [2] Host localhost:3030 10:04:21 INFO Fuseki :: [2] Content-Length 5209 10:04:21 INFO Fuseki :: [2] Expect 100-continue 10:04:21 INFO Fuseki :: [2] Body: Content-Length=5209, Content-Type=application/rdf+xml, Charset=null => RDF/XML 10:04:21 INFO Fuseki :: [2] 201 Created 10:04:21 INFO Fuseki :: [3] DELETE http://localhost:3030/dataset/data?graph=http%3A%2F%2Fexample.org%2FfusekiTest 10:04:21 INFO Fuseki :: [3] Host localhost:3030 10:04:21 INFO Fuseki :: [3] 204 No Content Tried the same using --debug option as well as --verbose but doesn't give any additional output. Unfortunately a complete minimal example in this case would require me to compile you up a standalone Windows executable which I will do if you really want? I can't run the sequence you did as I'm running Fuseki under Windows and don't have the appropriate tools installed to run the SOH scripts. In the following code this._serviceUri is a variable containing the URI of the /data endpoint of the Fuseki server to which we are communicating. My PUT code: /// <summary> /// Saves a Graph to the Protocol Server /// </summary> /// <param name="g">Graph to save</param> public virtual void SaveGraph(IGraph g) { String saveUri = this._serviceUri; if (g.BaseUri != null) { saveUri += "?graph=" + Uri.EscapeDataString(g.BaseUri.ToString()); } try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(saveUri)); request.Method = "PUT"; request.ContentType = MimeTypesHelper.RdfXml[0]; RdfXmlWriter writer = new RdfXmlWriter(); writer.Save(g, new StreamWriter(request.GetRequestStream())); using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { //If we get here then it was OK response.Close(); } } catch (WebException webEx) { throw new RdfStorageException("A HTTP Error occurred while trying to save a Graph to the Store", webEx); } } My DELETE code: /// <summary> /// Deletes a Graph from the store /// </summary> /// <param name="graphUri">URI of the Graph to delete</param> public virtual void DeleteGraph(String graphUri) { String deleteUri = this._serviceUri; if (!graphUri.Equals(String.Empty)) { deleteUri += "?graph=" + Uri.EscapeDataString(graphUri); } try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(deleteUri)); request.Method = "DELETE"; using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { //If we get then it was OK response.Close(); } } catch (WebException webEx) { throw new RdfStorageException("A HTTP Error occurred while trying to delete a Graph from the Store", webEx); } } Rob -----Original Message----- From: Andy Seaborne [mailto:[email protected]] Sent: 28 January 2011 09:59 To: [email protected] Subject: Re: Fuseki DELETE doesn't seem to work On 28/01/11 09:22, Rob Vesse wrote: > Hi Andy > > Ok good to know about the 204 being a valid success code > > As far as I was aware this isn't the default graph. I am doing a PUT to a > specific Graph URI so surely I should be able to DELETE it at that specific > URI as well? What is the URI of the graph? ?graph= form or server local URI? (complete, minimal example please!) > For the record I am only putting one Graph in there so is it being treated as > the default graph since it is the only Graph? What does Fuseki count as > being the default graph? The default graph is the graph specified ?default. Named graphs are What happens if you run the sequence I did? > It would be helpful if the Fuseki documentation was expanded somewhat to > cover points like this. Yes - submissions welcome. I've also suggested the spec notes the behaviour on the default graph, rather than just deferring to DROP DEFAULT. Andy
