internal IEnumerable <IUpdate> BuildUpdate(String sparqlQuery) { List <IUpdate> spinQueryList = new List <IUpdate>(); SparqlUpdateCommandSet query = new SparqlUpdateParser().ParseFromString(sparqlQuery); query.Optimise(); foreach (SparqlUpdateCommand command in query.Commands) { sparqlQuery = command.ToString(); if (queryCache.ContainsKey(sparqlQuery)) { spinQueryList.Add((IUpdate)queryCache[sparqlQuery]); } else { _currentSparqlGraph = new Graph(); _currentSparqlGraph.BaseUri = UriFactory.Create("sparql-query:" + sparqlQuery); INode q = command.ToSpinRdf(_currentSparqlGraph); if (!_currentSparqlGraph.IsEmpty) { _spinConfiguration.AddGraph(_currentSparqlGraph); IUpdate spinQuery = SPINFactory.asUpdate(Resource.Get(q, this)); queryCache[sparqlQuery] = spinQuery; spinQueryList.Add(spinQuery); } } } return(spinQueryList); }