{
  "type": "ShapeTest",
  "node": "http://a.example/base/n",
  "shape": "http://a.example/base/S4",
  "solution": {
    "type": "EachOfSolutions",
    "solutions": [
      {
        "type": "EachOfSolution",
        "expressions": [
          {
            "type": "TripleConstraintSolutions",
            "predicate": "http://a.example/a",
            "valueExpr": {
              "type": "ShapeRef",
              "reference": "http://a.example/base/P"
            },
            "solutions": [
              {
                "type": "TestedTriple",
                "subject": "http://a.example/base/n",
                "predicate": "http://a.example/a",
                "object": "http://a.example/base/p"
              },
              {
                "type": "TestedTriple",
                "subject": "http://a.example/base/n",
                "predicate": "http://a.example/a",
                "object": "http://a.example/base/pt1"
              }
            ],
            "min": 2,
            "max": 2
          },
          {
            "type": "TripleConstraintSolutions",
            "predicate": "http://a.example/a",
            "valueExpr": {
              "type": "ShapeRef",
              "reference": "http://a.example/base/T"
            },
            "solutions": [
              {
                "type": "TestedTriple",
                "subject": "http://a.example/base/n",
                "predicate": "http://a.example/a",
                "object": "http://a.example/base/pt2"
              },
              {
                "type": "TestedTriple",
                "subject": "http://a.example/base/n",
                "predicate": "http://a.example/a",
                "object": "http://a.example/base/t"
              }
            ],
            "min": 2,
            "max": 2
          }
        ]
      }
    ]
  }
}