{
  "type": "update",
  "updates": [
    {
      "context": [
        {
          "type": "contextDef",
          "subType": "prefix",
          "key": "foaf",
          "value": {
            "type": "term",
            "subType": "namedNode",
            "value": "http://xmlns.com/foaf/0.1/",
            "loc": {
              "sourceLocationType": "source",
              "start": 14,
              "end": 42
            }
          },
          "loc": {
            "sourceLocationType": "source",
            "start": 0,
            "end": 42
          }
        },
        {
          "type": "contextDef",
          "subType": "prefix",
          "key": "rdf",
          "value": {
            "type": "term",
            "subType": "namedNode",
            "value": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
            "loc": {
              "sourceLocationType": "source",
              "start": 55,
              "end": 100
            }
          },
          "loc": {
            "sourceLocationType": "source",
            "start": 43,
            "end": 100
          }
        }
      ],
      "operation": {
        "type": "updateOperation",
        "subType": "modify",
        "insert": [
          {
            "type": "graph",
            "graph": {
              "type": "term",
              "subType": "namedNode",
              "value": "http://example/addresses",
              "loc": {
                "sourceLocationType": "source",
                "start": 120,
                "end": 146
              }
            },
            "triples": {
              "type": "pattern",
              "subType": "bgp",
              "triples": [
                {
                  "type": "triple",
                  "subject": {
                    "type": "term",
                    "subType": "variable",
                    "value": "person",
                    "loc": {
                      "sourceLocationType": "source",
                      "start": 159,
                      "end": 166
                    }
                  },
                  "predicate": {
                    "type": "term",
                    "subType": "namedNode",
                    "value": "name",
                    "loc": {
                      "sourceLocationType": "source",
                      "start": 168,
                      "end": 177
                    },
                    "prefix": "foaf"
                  },
                  "object": {
                    "type": "term",
                    "subType": "variable",
                    "value": "name",
                    "loc": {
                      "sourceLocationType": "source",
                      "start": 179,
                      "end": 184
                    }
                  },
                  "loc": {
                    "sourceLocationType": "source",
                    "start": 159,
                    "end": 184
                  }
                },
                {
                  "type": "triple",
                  "subject": {
                    "type": "term",
                    "subType": "variable",
                    "value": "person",
                    "loc": {
                      "sourceLocationType": "source",
                      "start": 193,
                      "end": 200
                    }
                  },
                  "predicate": {
                    "type": "term",
                    "subType": "namedNode",
                    "value": "mbox",
                    "loc": {
                      "sourceLocationType": "source",
                      "start": 202,
                      "end": 211
                    },
                    "prefix": "foaf"
                  },
                  "object": {
                    "type": "term",
                    "subType": "variable",
                    "value": "email",
                    "loc": {
                      "sourceLocationType": "source",
                      "start": 213,
                      "end": 219
                    }
                  },
                  "loc": {
                    "sourceLocationType": "source",
                    "start": 193,
                    "end": 219
                  }
                }
              ],
              "loc": {
                "sourceLocationType": "source",
                "start": 159,
                "end": 186
              }
            },
            "loc": {
              "sourceLocationType": "source",
              "start": 114,
              "end": 225
            }
          }
        ],
        "delete": [],
        "where": {
          "type": "pattern",
          "subType": "group",
          "patterns": [
            {
              "type": "pattern",
              "subType": "graph",
              "name": {
                "type": "term",
                "subType": "namedNode",
                "value": "http://example/people",
                "loc": {
                  "sourceLocationType": "source",
                  "start": 245,
                  "end": 268
                }
              },
              "patterns": [
                {
                  "type": "pattern",
                  "subType": "bgp",
                  "triples": [
                    {
                      "type": "triple",
                      "subject": {
                        "type": "term",
                        "subType": "variable",
                        "value": "person",
                        "loc": {
                          "sourceLocationType": "source",
                          "start": 281,
                          "end": 288
                        }
                      },
                      "predicate": {
                        "type": "term",
                        "subType": "namedNode",
                        "value": "name",
                        "loc": {
                          "sourceLocationType": "source",
                          "start": 290,
                          "end": 299
                        },
                        "prefix": "foaf"
                      },
                      "object": {
                        "type": "term",
                        "subType": "variable",
                        "value": "name",
                        "loc": {
                          "sourceLocationType": "source",
                          "start": 301,
                          "end": 306
                        }
                      },
                      "loc": {
                        "sourceLocationType": "source",
                        "start": 281,
                        "end": 306
                      }
                    }
                  ],
                  "loc": {
                    "sourceLocationType": "source",
                    "start": 281,
                    "end": 308
                  }
                },
                {
                  "type": "pattern",
                  "subType": "optional",
                  "patterns": [
                    {
                      "type": "pattern",
                      "subType": "bgp",
                      "triples": [
                        {
                          "type": "triple",
                          "subject": {
                            "type": "term",
                            "subType": "variable",
                            "value": "person",
                            "loc": {
                              "sourceLocationType": "source",
                              "start": 326,
                              "end": 333
                            }
                          },
                          "predicate": {
                            "type": "term",
                            "subType": "namedNode",
                            "value": "mbox",
                            "loc": {
                              "sourceLocationType": "source",
                              "start": 335,
                              "end": 344
                            },
                            "prefix": "foaf"
                          },
                          "object": {
                            "type": "term",
                            "subType": "variable",
                            "value": "email",
                            "loc": {
                              "sourceLocationType": "source",
                              "start": 346,
                              "end": 352
                            }
                          },
                          "loc": {
                            "sourceLocationType": "source",
                            "start": 326,
                            "end": 352
                          }
                        }
                      ],
                      "loc": {
                        "sourceLocationType": "source",
                        "start": 326,
                        "end": 352
                      }
                    }
                  ],
                  "loc": {
                    "sourceLocationType": "source",
                    "start": 315,
                    "end": 354
                  }
                }
              ],
              "loc": {
                "sourceLocationType": "source",
                "start": 238,
                "end": 360
              }
            }
          ],
          "loc": {
            "sourceLocationType": "source",
            "start": 236,
            "end": 362
          }
        },
        "from": {
          "type": "datasetClauses",
          "clauses": [],
          "loc": {
            "sourceLocationType": "noMaterialize"
          }
        },
        "loc": {
          "sourceLocationType": "source",
          "start": 102,
          "end": 362
        }
      }
    }
  ],
  "loc": {
    "sourceLocationType": "inlinedSource",
    "newSource": "PREFIX foaf:  <http://xmlns.com/foaf/0.1/>\nPREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n\nINSERT \n  { GRAPH <http://example/addresses>\n    {\n      ?person  foaf:name  ?name .\n      ?person  foaf:mbox  ?email\n    } }\nWHERE\n  { GRAPH  <http://example/people>\n    {\n      ?person  foaf:name  ?name .\n      OPTIONAL { ?person  foaf:mbox  ?email }\n    } }\n",
    "start": 0,
    "end": 9007199254740991,
    "loc": {
      "sourceLocationType": "source",
      "start": 0,
      "end": 362
    },
    "startOnNew": 0,
    "endOnNew": 362
  }
}
