so now the logic is 1. Check if graph exist a. if graph doesn't exist then createDefaultModel b. if graph does exist getModel() 2. putModel(GRAPH_NAME,model)
correct? On Wed, Feb 4, 2015 at 1:36 PM, Trevor Donaldson <[email protected]> wrote: > Ah!!!! Thanks Claude. Appreciate it. > > On Wed, Feb 4, 2015 at 1:04 PM, Rob Vesse <[email protected]> wrote: > >> Your logic looks a little strange, comments inline: >> >> On 04/02/2015 09:02, "Trevor Donaldson" <[email protected]> wrote: >> >> >Not sure if this is right but I am pretty much implementing this logic. >> >boolean modelExist = true; >> >if(datasetaccessor.containsModel(GRAPH_NAME)){ >> > model = datasetAccessor.getModel(GRAPH_NAME); >> >} else{ >> > model = ModelFactory.createDefaultModel(); >> > modelExist = false; >> >} >> > >> >build triples do model manipulation..... >> > >> >if(!modelExist){ >> > datasetAccessor.put(GRAPH_NAME,model); >> >> If the model doesn't exist you add it as a named graph >> >> >} else{ >> > datasetAccessor.add(model); >> >> However if the model does exist you add it to the default graph, the Model >> object does not carry around a graph name which seems to have been your >> assumption here >> >> So you are changing different graphs depending on whether the graph >> already exists, in the case where it does the changes you make aren't >> being saved where you expect them to and so won't be seen the next time >> the code runs and loads the existing graph (it'll still be the same graph >> as before because you put your actual changes in the default graph not the >> named graph. >> >> Additionally using add() means that any local deletions will not be >> reflected because add will only add the current state of the model and >> won't overwrite any data that was already in that graph so any triples you >> deleted locally will still be present in the remote graph and seen next >> time you load it. >> >> Therefore you likely want to change this line like so: >> >> datasetAccessor.put(GRAPH_NAME, model); >> >> Which means you can actually eliminate that second if statement and just >> call this method since you want to do the same thing whether the graph >> already exists or not. >> >> Rob >> >> >} >> > >> > >> >On Wed, Feb 4, 2015 at 11:48 AM, Trevor Donaldson <[email protected]> >> >wrote: >> > >> >> How do I create a model with a graph name if it doesn't exist? I have >> >> tried >> >> Model model = ModelFactory.createDefaultModel(); >> >> datasetaccessor.put("http:example.org#exampleGraph",model); >> >> >> >> That doesn't seem to work. >> >> >> >> >> >> >> >
