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

Reply via email to