{
  "type": "ShapeTest",
  "node": "http://a.example/n1",
  "shape": "http://a.example/S1",
  "solution": {
    "type": "TripleConstraintSolutions",
    "predicate": "http://a.example/p1",
    "solutions": [
      {
        "type": "TestedTriple",
        "subject": "http://a.example/n1",
        "predicate": "http://a.example/p1",
        "object": "_:n2",
        "referenced": {
          "type": "ShapeTest",
          "node": "_:n2",
          "shape": "http://a.example/S1",
          "solution": {
            "type": "TripleConstraintSolutions",
            "predicate": "http://a.example/p1",
            "solutions": [
              {
                "type": "TestedTriple",
                "subject": "_:n2",
                "predicate": "http://a.example/p1",
                "object": "_:n2",
                "referenced": {
                  "type": "Recursion",
                  "node": "_:n2",
                  "shape": "http://a.example/S1"
                }
              }
            ],
            "valueExpr": {
              "type": "ShapeOr",
              "shapeExprs": [
                {
                  "type": "ShapeAnd",
                  "shapeExprs": [
                    {
                      "type": "NodeConstraint",
                      "nodeKind": "bnode"
                    },
                    {
                      "type": "ShapeRef",
                      "reference": "http://a.example/S1"
                    }
                  ]
                },
                {
                  "type": "ShapeAnd",
                  "shapeExprs": [
                    {
                      "type": "NodeConstraint",
                      "minlength": 20
                    },
                    {
                      "type": "ShapeRef",
                      "reference": "http://a.example/S1"
                    }
                  ]
                }
              ]
            }
          }
        }
      }
    ],
    "valueExpr": {
      "type": "ShapeOr",
      "shapeExprs": [
        {
          "type": "ShapeAnd",
          "shapeExprs": [
            {
              "type": "NodeConstraint",
              "nodeKind": "bnode"
            },
            {
              "type": "ShapeRef",
              "reference": "http://a.example/S1"
            }
          ]
        },
        {
          "type": "ShapeAnd",
          "shapeExprs": [
            {
              "type": "NodeConstraint",
              "minlength": 20
            },
            {
              "type": "ShapeRef",
              "reference": "http://a.example/S1"
            }
          ]
        }
      ]
    }
  }
}
