SPARQl/Update sumission - just the submission part. // -------- // [done] INSERT/DELETE DATA [INTO? or FROM? ] {} => INSERT/DELETE DATA { GRAPH {}} // [done] INSERT INTO? {} (WHERE {})? => INSERT { GRAPH {} } WHERE {} // [done] DELETE FROM? {} (WHERE {})? => DELETE { GRAPH {} } WHERE {} // [done] MODIFY [*] D{} I{} W{} => WITH* D{} I{} W{} // [done] LOAD (INTO )? ==> LOAD (INTO GRAPH ) // [done] CLEAR / CREATE / DROP // GRAPH no change // empty => DEFAULT // -------- #ifdef UPDATE_SUBMISSION void Update() : { } { { startUpdateRequest() ; } ( Update1() )+ { finishUpdateRequest() ; } } void Update1() : { UpdateSubmission up = null ; GraphMgt mgt ; } { ( up = Modify() | up = Insert() | up = Delete() | up = Load() | up = Clear() | up = Create() | up = Drop() ) { getUpdateRequestSubmission().addUpdate(up) ; } } UpdateModify Modify() : { UpdateModify up = new UpdateModify() ; String iri ; Template template ; Element el ; } { ( iri = GraphIRI() { up.addGraphName(iri) ; } )* template = ConstructTemplate() { up.setDeleteTemplate(template) ; } template = ConstructTemplate() { up.setInsertTemplate(template) ; } ( el = UpdatePattern() { up.setPattern(el) ; } )? { return up ; } } UpdateSubmission Delete() : { UpdateSubmission up ; } { ( up = DeleteData() | up = DeleteTemplate() ) { return up ; } } UpdateSubmission DeleteData() : { UpdateDeleteData update = new UpdateDeleteData() ; String iri ; Template template ; Token t ; } { t = (()? iri = IRIref() { update.addGraphName(iri) ; } )* template = ConstructTemplate() { Graph triples = convertTemplateToTriples(template, t.beginLine, t.beginColumn) ; update.setData(triples) ; return update ; } } UpdateSubmission DeleteTemplate() : { UpdateDelete up = new UpdateDelete() ; String iri ; Template template ; Element el ; } { (()? iri = IRIref() { up.addGraphName(iri) ; } )* template = ConstructTemplate() { up.setDeleteTemplate(template) ; } ( el = UpdatePattern() { up.setPattern(el) ; } )? { return up ; } } UpdateSubmission Insert() : { UpdateSubmission up ; } { ( up = InsertData() | up = InsertTemplate() ) { return up ; } } UpdateSubmission InsertData() : { UpdateInsertData update = new UpdateInsertData() ; String iri ; Template template ; Token t ; } { t = (()? iri = IRIref() { update.addGraphName(iri) ; } )* template = ConstructTemplate() { Graph triples = convertTemplateToTriples(template, t.beginLine, t.beginColumn) ; update.setData(triples) ; return update ; } } UpdatePattern InsertTemplate() : { UpdateInsert up = new UpdateInsert() ; String iri ; Template template ; Element el ; } { (()? iri = IRIref() { up.addGraphName(iri) ; } )* template = ConstructTemplate() { up.setInsertTemplate(template) ; } ( el = UpdatePattern() { up.setPattern(el) ; } )? { return up ; } } String GraphIRI() : { String iri ; } { iri = IRIref() { return iri ; } } UpdateLoad Load() : { UpdateLoad up = new UpdateLoad() ; String iri ;} { ( iri = SourceSelector() { up.addLoadIRI(iri) ; } )+ ( iri = IRIref() { up.setGraphName(iri) ; } )? { return up ; } } UpdateClear Clear() : { UpdateClear up = new UpdateClear(); String iri ; } { ( iri = GraphIRI() { up.setGraphName(iri) ; } )? { return up ; } } UpdateCreate Create() : { boolean silent = false ; String iri ; } { ( { silent = true ; } )? iri = GraphIRI() { return new UpdateCreate( iri, silent); } } UpdateDrop Drop() : { boolean silent = false ; String iri ; } { ({ silent = true ; } )? iri = GraphIRI() { return new UpdateDrop(iri, silent) ; } } Element UpdatePattern() : { Element el ; } { () el = GroupGraphPattern() { return el ; } } // void Transaction() : {} // { // TransBegin() | TransCommit() | TransAbort() // } // // void TransBegin() : {} // { // (IRIref())? // { System.out.println("++ Begin") ; } // } // // void TransCommit() : {} // { // (IRIref())? // { System.out.println("++ Commit") ; } // } // // void TransAbort() : {} // { // (IRIref())? // { System.out.println("++ Abort") ; } // } // End UPDATE_SUBMISSION #endif