         let dataset = try parseDatasetClauses() // TODO
         try attempt(token: .keyword("WHERE"))
         let ggp = try parseGroupGraphPattern()
+        
+        if star {
+            
+        }
         return ggp // TODO: wrap DESCRIBE so that it produces a set of triples
     }
     

    private mutating func parseBlankNodePropertyListAsNode() throws -> (Node, [TriplePattern]) { fatalError("implement") }
    
    private mutating func parseTriplesNodePathAsNode() throws -> (Node, [Algebra]) {
        if try attempt(token: .lparen) {
            return try triplesByParsingCollectionPathAsNode()
        } else {
            return try parseBlankNodePropertyListPathAsNode()

                fatalError("DISTINCT aggregation is unimplemented")
            }
            let expr = try parseNonAggregatingExpression()
            try expect(token: .rparen)
            fatalError("implement MIN aggregate \(expr)")
        case "MAX":
            try expect(token: .lparen)
            if try attempt(token: .keyword("DISTINCT")) {
                fatalError("DISTINCT aggregation is unimplemented")
            }
            let expr = try parseNonAggregatingExpression()
            try expect(token: .rparen)
            fatalError("implement MAX aggregate \(expr)")
        case "AVG":
            try expect(token: .lparen)
            if try attempt(token: .keyword("DISTINCT")) {
