{
  "context": [
    {
      "type": "contextDef",
      "subType": "prefix",
      "key": "",
      "value": {
        "type": "term",
        "subType": "namedNode",
        "value": "http://people.example/",
        "loc": {
          "sourceLocationType": "source",
          "start": 9,
          "end": 33
        }
      },
      "loc": {
        "sourceLocationType": "source",
        "start": 0,
        "end": 33
      }
    },
    {
      "type": "contextDef",
      "subType": "prefix",
      "key": "",
      "value": {
        "type": "term",
        "subType": "namedNode",
        "value": "http://people.example/",
        "loc": {
          "sourceLocationType": "source",
          "start": 43,
          "end": 67
        }
      },
      "loc": {
        "sourceLocationType": "source",
        "start": 34,
        "end": 67
      }
    }
  ],
  "subType": "select",
  "where": {
    "type": "pattern",
    "subType": "group",
    "patterns": [
      {
        "type": "pattern",
        "subType": "bgp",
        "triples": [
          {
            "type": "triple",
            "subject": {
              "type": "term",
              "subType": "namedNode",
              "value": "alice",
              "loc": {
                "sourceLocationType": "source",
                "start": 97,
                "end": 103
              },
              "prefix": ""
            },
            "predicate": {
              "type": "term",
              "subType": "namedNode",
              "value": "knows",
              "loc": {
                "sourceLocationType": "source",
                "start": 104,
                "end": 110
              },
              "prefix": ""
            },
            "object": {
              "type": "term",
              "subType": "variable",
              "value": "y",
              "loc": {
                "sourceLocationType": "source",
                "start": 111,
                "end": 113
              }
            },
            "loc": {
              "sourceLocationType": "source",
              "start": 97,
              "end": 113
            }
          }
        ],
        "loc": {
          "sourceLocationType": "source",
          "start": 97,
          "end": 115
        }
      },
      {
        "type": "pattern",
        "subType": "group",
        "patterns": [
          {
            "type": "query",
            "subType": "select",
            "where": {
              "type": "pattern",
              "subType": "group",
              "patterns": [
                {
                  "type": "pattern",
                  "subType": "bgp",
                  "triples": [
                    {
                      "type": "triple",
                      "subject": {
                        "type": "term",
                        "subType": "variable",
                        "value": "y",
                        "loc": {
                          "sourceLocationType": "source",
                          "start": 177,
                          "end": 179
                        }
                      },
                      "predicate": {
                        "type": "term",
                        "subType": "namedNode",
                        "value": "name",
                        "loc": {
                          "sourceLocationType": "source",
                          "start": 180,
                          "end": 185
                        },
                        "prefix": ""
                      },
                      "object": {
                        "type": "term",
                        "subType": "variable",
                        "value": "name",
                        "loc": {
                          "sourceLocationType": "source",
                          "start": 186,
                          "end": 191
                        }
                      },
                      "loc": {
                        "sourceLocationType": "source",
                        "start": 177,
                        "end": 191
                      }
                    }
                  ],
                  "loc": {
                    "sourceLocationType": "source",
                    "start": 177,
                    "end": 193
                  }
                }
              ],
              "loc": {
                "sourceLocationType": "source",
                "start": 169,
                "end": 199
              }
            },
            "datasets": {
              "type": "datasetClauses",
              "clauses": [],
              "loc": {
                "sourceLocationType": "noMaterialize"
              }
            },
            "context": [],
            "solutionModifiers": {
              "group": {
                "type": "solutionModifier",
                "subType": "group",
                "groupings": [
                  {
                    "type": "term",
                    "subType": "variable",
                    "value": "y",
                    "loc": {
                      "sourceLocationType": "source",
                      "start": 209,
                      "end": 211
                    }
                  }
                ],
                "loc": {
                  "sourceLocationType": "source",
                  "start": 200,
                  "end": 211
                }
              }
            },
            "variables": [
              {
                "type": "term",
                "subType": "variable",
                "value": "y",
                "loc": {
                  "sourceLocationType": "source",
                  "start": 131,
                  "end": 133
                }
              },
              {
                "type": "pattern",
                "subType": "bind",
                "expression": {
                  "type": "expression",
                  "subType": "aggregate",
                  "aggregation": "min",
                  "distinct": false,
                  "loc": {
                    "sourceLocationType": "source",
                    "start": 135,
                    "end": 145
                  },
                  "expression": [
                    {
                      "type": "term",
                      "subType": "variable",
                      "value": "name",
                      "loc": {
                        "sourceLocationType": "source",
                        "start": 139,
                        "end": 144
                      }
                    }
                  ]
                },
                "variable": {
                  "type": "term",
                  "subType": "variable",
                  "value": "minName",
                  "loc": {
                    "sourceLocationType": "source",
                    "start": 149,
                    "end": 157
                  }
                },
                "loc": {
                  "sourceLocationType": "source",
                  "start": 134,
                  "end": 158
                }
              }
            ],
            "loc": {
              "sourceLocationType": "source",
              "start": 124,
              "end": 211
            }
          }
        ],
        "loc": {
          "sourceLocationType": "source",
          "start": 118,
          "end": 215
        }
      }
    ],
    "loc": {
      "sourceLocationType": "source",
      "start": 93,
      "end": 217
    }
  },
  "solutionModifiers": {},
  "datasets": {
    "type": "datasetClauses",
    "clauses": [],
    "loc": {
      "sourceLocationType": "noMaterialize"
    }
  },
  "variables": [
    {
      "type": "term",
      "subType": "variable",
      "value": "y",
      "loc": {
        "sourceLocationType": "source",
        "start": 75,
        "end": 77
      }
    },
    {
      "type": "term",
      "subType": "variable",
      "value": "minName",
      "loc": {
        "sourceLocationType": "source",
        "start": 78,
        "end": 86
      }
    }
  ],
  "loc": {
    "sourceLocationType": "inlinedSource",
    "newSource": "PREFIX : <http://people.example/>\nPREFIX : <http://people.example/>\nSELECT ?y ?minName\nWHERE {\n  :alice :knows ?y .\n  {\n    SELECT ?y (MIN(?name) AS ?minName)\n    WHERE {\n      ?y :name ?name .\n    } GROUP BY ?y\n  }\n}\n",
    "start": 0,
    "end": 9007199254740991,
    "loc": {
      "sourceLocationType": "source",
      "start": 0,
      "end": 217
    },
    "startOnNew": 0,
    "endOnNew": 217
  },
  "type": "query"
}
