Hi Andy, Sorry the examples got damaged. Please find them below along with other details.
I had built the source from git tagged at jena-3.0.1-rc1. The versions and other environment details are: 1. Jena - 3.0.1 2. Fuseki - 2.3.1 3. SDB - 3.0.1 4. OS - Windows 7 + Oracle Linux 6 5. Web app server - Tomcat 8 on Windows 7 6. Database server - Oralce 11g on Oracle Linux 6 *Note*: The problem was reproduced even when SDB is configured to connect to MySQL as well! 1. *Fuseki configuration* (place under *C:\etc\fuseki* or */etc/fuseki*) @prefix : <#> . @prefix fuseki: <http://jena.apache.org/fuseki#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> . [] rdf:type fuseki:Server ; # ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "30000" ] ; ja:loadClass "org.apache.jena.sdb.SDB" ; . 2. *SDB configuration* (place under *C:\etc\fuseki\configuration* or */etc/fuseki/configuration*) *(a) For Oracle* @prefix : <#> . @prefix fuseki: <http://jena.apache.org/fuseki#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix sdb: <http://jena.hpl.hp.com/2007/sdb#> . @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> . :service_sdb_all rdf:type fuseki:Service ; rdfs:label "SDB - Oracle" ; fuseki:name "oracle" ; fuseki:serviceQuery "query", "sparql" ; fuseki:serviceUpdate "update" ; fuseki:serviceUpload "upload" ; fuseki:serviceReadWriteGraphStore "data" ; fuseki:serviceReadGraphStore "get" ; fuseki:dataset :sdb_dataset_readwrite ; . :sdb_dataset_readwrite rdf:type sdb:DatasetStore ; sdb:store :rdbms_datastore . :rdbms_datastore rdf:type sdb:Store ; sdb:layout "layout2" ; sdb:connection :oracle_data_conn ; . :oracle_data_conn rdf:type sdb:SDBConnection ; sdb:sdbType "oracle" ; sdb:driver "oracle.jdbc.driver.OracleDriver" ; sdb:jdbcURL "jdbc:oracle:thin:@localhost:1521/xe" ; sdb:sdbUser "username" ; sdb:sdbPassword "password" ; . (b) For MySQL * @prefix : <#> . @prefix fuseki: <http://jena.apache.org/fuseki# <http://jena.apache.org/fuseki#>> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns# <http://www.w3.org/1999/02/22-rdf-syntax-ns#>> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema# <http://www.w3.org/2000/01/rdf-schema#>> . @prefix sdb: <http://jena.hpl.hp.com/2007/sdb# <http://jena.hpl.hp.com/2007/sdb#>> . @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler# <http://jena.hpl.hp.com/2005/11/Assembler#>> . :service_sdb_all rdf:type fuseki:Service ; rdfs:label "SDB - MySQL" ; fuseki:name "mysql" ; fuseki:serviceQuery "query", "sparql" ; fuseki:serviceUpdate "update" ; fuseki:serviceUpload "upload" ; fuseki:serviceReadWriteGraphStore "data" ; fuseki:serviceReadGraphStore "get" ; fuseki:dataset :sdb_dataset_readwrite ; . :sdb_dataset_readwrite rdf:type sdb:DatasetStore ; sdb:store :rdbms_datastore . :rdbms_datastore rdf:type sdb:Store ; sdb:layout "layout2" ; sdb:connection :mysql_data_conn ; sdb:engine "MyISAM" ; . :mysql_data_conn rdf:type sdb:SDBConnection ; sdb:sdbType "MySQL" ; sdb:jdbcURL "jdbc:mysql://localhost:3306/triplestore" ; sdb:driver "com.mysql.jdbc.Driver" ; sdb:sdbUser "user" ; sdb:sdbPassword "password" ; . * 3. *Steps Followed* I have created fuseki.war after including the ojdbc6.jar (or) mysql-connector-java-5.0.8-bin.jar & jena-sdb.3.0.1.jar in the lib folder and deployed it on Tomcat 8. *Step 1:* On successful deploy, I had accessed Fuseki's UI for executing queries and created a named graph with a triple by accessing the sparql update end point http://localhost:8080/fuseki/oracle/update insert data{ graph <urn:providers:search:google>{ <http://www.google.com> <http://www.google.com#tab> <http://www.google.com/images> . } } *Step 2:* Then I executed the below query against sparql query end point http://localhost:8080/fuseki/oracle/query select ?g ?s ?p ?o { graph ?g { ?s ?p ?o } } This returned the triple which was inserted in Step 1. *Step 3:* I had again accessed the sparql update end point. This time to execute the query to drop the named graph. drop graph <urn:providers:search:google> This returned a success status code. *Step 4:* I then again executed the query from Step 2. The named graph and the triple still persisted! *Step 5:* I then tried the query to delete all the triples in the named graph against the sparql update end point. with <urn:providers:search:google> delete {?s ?p ?o} where {?s ?p ?o} This deleted the triples along with the graph! Thanks, Akhilesh On Thu, Feb 4, 2016 at 8:06 PM, Andy Seaborne <[email protected]> wrote: > Akhilesh, > > Please can you provide a complete, minimal example including the Fuseki > configuration together with details of your environment (version numbers of > Jena/Fuseki/SDB, OS, webapp server, etc.) > > There are too many unknowns here at the moment to accurate recreate the > situation. > > Your examples below seem to have got damaged in email. A pastebin might > be safer. > > > Andy > > PS I don't have an Oracle instance for testing - I have MySQL, H2, HSQL, > or Apache Derby. > > > On 04/02/16 08:30, Bangalore Akhilesh wrote: > >> Hi Rob, >> >> The response remained the same even with DROP GRAPH <iri>. >> >> Below are the sequence of requests that were issued: >> >> Step 1: >> >> >> >> Request >> >> Response >> >> POST http://localhost:8080/fuseki/oracle/update >> >> Accept: application/sparql-results+json >> >> Content-Type: application/sparql-update >> >> >> >> insert data{ >> >> graph <urn:providers:search:google>{ >> >> <http://www.google.com> >> >> <http://www.google.com#tab> >> >> <http://www.google.com/images> >> >> } >> >> } >> >> >> >> Status 204 No Content >> >> >> >> >> >> Step 2: >> >> >> >> Request >> >> Response >> >> POST http://localhost:8080/fuseki/oracle/query >> >> Accept: application/sparql-results+json >> >> Content-Type: application/sparql-query >> >> >> >> select ?g ?s ?p ?o >> >> { >> >> graph ?g >> >> { >> >> ?s ?p ?o >> >> } >> >> } >> >> >> >> Status 200 OK >> >> >> >> { >> >> "head": { >> >> "vars": [ >> >> "g", >> >> "s", >> >> "p", >> >> "o" >> >> ] >> >> }, >> >> "results": { >> >> "bindings": [ >> >> { >> >> "g": { >> >> "type": "uri", >> >> "value": "urn:providers:search:google" >> >> }, >> >> "s": { >> >> "type": "uri", >> >> "value": "http://www.google.com" >> >> }, >> >> "p": { >> >> "type": "uri", >> >> "value": "http://www.google.com#tab" >> >> }, >> >> "o": { >> >> "type": "uri", >> >> "value": "http://www.google.com/images" >> >> } >> >> } >> >> ] >> >> } >> >> } >> >> >> >> >> >> Step 3: >> >> >> >> Request >> >> Response >> >> POST http://localhost:8080/fuseki/oracle/update >> >> Accept: application/sparql-results+json >> >> Content-Type: application/sparql-update >> >> >> >> drop graph <urn:providers:search:google> >> >> >> >> Status 204 No Content >> >> >> >> >> >> Step 4: >> >> >> >> Request >> >> Response >> >> POST http://localhost:8080/fuseki/oracle/query >> >> Accept: application/sparql-results+json >> >> Content-Type: application/sparql-query >> >> >> >> select ?g ?s ?p ?o >> >> { >> >> graph ?g >> >> { >> >> ?s ?p ?o >> >> } >> >> } >> >> >> >> Status 200 OK >> >> >> >> { >> >> "head": { >> >> "vars": [ >> >> "g", >> >> "s", >> >> "p", >> >> "o" >> >> ] >> >> }, >> >> "results": { >> >> "bindings": [ >> >> { >> >> "g": { >> >> "type": "uri", >> >> "value": "urn:providers:search:google" >> >> }, >> >> "s": { >> >> "type": "uri", >> >> "value": "http://www.google.com" >> >> }, >> >> "p": { >> >> "type": "uri", >> >> "value": "http://www.google.com#tab" >> >> }, >> >> "o": { >> >> "type": "uri", >> >> "value": "http://www.google.com/images" >> >> } >> >> } >> >> ] >> >> } >> >> } >> >> As you can see, the graph is still available! >> >> I have also tried the below request but the graph still remained. >> >> Request >> >> Response >> >> DELETE >> >> http://localhost:8080/fuseki/oracle/graph?graph=urn:providers:search:google >> >> >> >> Status 204 No Content >> >> >> >> Thanks, >> Akhilesh >> >> On Tue, Feb 2, 2016 at 7:03 PM, Rob Vesse <[email protected]> wrote: >> >> How do you verify that the graph is still present? >>> >>> Also what happens if you run DROP GRAPH <iri>? >>> >>> The SILENT keyword allows for an operation to fail but to ignore the >>> failure and return success so if something is going wrong removing the >>> SILENT keyword allows for the error to be propagated. >>> >>> Rob >>> >>> On 02/02/2016 12:59, "Bangalore Akhilesh" <[email protected]> >>> wrote: >>> >>> Hi All, >>>> >>>> I had setup Fuseki with SDB to work against Oracle. >>>> >>>> Today, I had observed that the command *DROP SILENT GRAPH <GRAPH IRI>* >>>> returned a success code but the graph & the triples remained in the >>>> database. >>>> >>>> Can anyone please help me out to address this problem? >>>> >>>> Thanks, >>>> Akhilesh >>>> >>> >>> >>> >>> >>> >>> >> >
