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
>>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>

Reply via email to