{
  "type":"Schema",
  "prefixes":{
    "prefix1":"http://all.example/",
    "a":"http://all.example/",
    "prefix":"http://all.example/",
    "base":"http://all.example/",
    "PREFIX":"http://all.example/",
    "BaSe":"http://all.example/",
    "virtual":"http://all.example/",
    "closed":"http://all.example/",
    "extra":"http://all.example/",
    "iri":"http://all.example/",
    "bnode":"http://all.example/",
    "literal":"http://all.example/",
    "nonliteral":"http://all.example/",
    "or":"http://all.example/",
    "pattern":"http://all.example/",
    "S5":"http://all.example/S5",
    "xsd":"http://www.w3.org/2001/XMLSchema#",
    "":"http://all.example/"
  },
  "startActs": [
    { "type": "SemAct", "name": "http://all.example/act1", "code": " START1 "},
    { "type": "SemAct", "name": "http://all.example/act2", "code": " START2 "}
  ],
  "start":"http://all.example/S3",
  "shapes":{
    "http://all.example/S1":{
      "type":"Shape",
      "expression":{
	"type":"EachOf",
	"expressions":[
	  {
	    "type":"TripleConstraint",
	    "predicate":"http://all.example/p1",
	    "valueExpr":{
	      "type":"ValueClass"
	    }
	  },
	  {
	    "type":"TripleConstraint",
	    "predicate":"http://all.example/p2",
	    "valueExpr":{
	      "type":"ValueClass"
	    }
	  },
	  {
	    "type":"TripleConstraint",
	    "predicate":"http://all.example/p3",
	    "valueExpr":{
	      "type":"ValueClass"
	    }
	  }
	]
      },
      "extra":[
	"http://all.example/p1",
	"http://all.example/p2",
	"http://all.example/p3"
      ]
    },
    "http://all.example/S2":{
      "type":"Shape",
      "expression":{
	"type":"EachOf",
	"expressions":[
	  {
	    "type":"TripleConstraint",
	    "predicate":"http://all.example/p1-",
	    "valueExpr":{
	      "type":"ValueClass"
	    }
	  },
	  {
	    "type":"TripleConstraint",
	    "predicate":"http://all.example/p2",
	    "valueExpr":{
	      "type":"ValueClass"
	    }
	  },
	  {
	    "type":"TripleConstraint",
	    "predicate":"http://all.example/p3",
	    "valueExpr":{
	      "type":"ValueClass"
	    }
	  }
	]
      },
      "extra":[
	"http://all.example/p1",
	"http://all.example/p2",
	"http://all.example/p3"
      ]
    },
    "_:b0":{
      "type":"Shape",
      "expression":{
	"type":"TripleConstraint",
	"predicate":"http://all.example/p1",
	"valueExpr":{
	  "type":"ValueClass",
	  "values":[
	    "\"STRING_LITERAL2\"",
	    "\"STRING_LITERAL2\"@en-uk",
	    "http://all.example/",
	    "http://all.example/val1",
	    "http://all.example/",
	    "scheme:!$%25&amp;'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#",
	    "http://a.example/p1",
	    "\"0.0\"^^http://www.w3.org/2001/XMLSchema#decimal",
	    "\"0e0\"^^http://www.w3.org/2001/XMLSchema#double",
	    "\"0e0\"^^http://www.w3.org/2001/XMLSchema#double",
	    "\"false\"^^http://www.w3.org/2001/XMLSchema#boolean",
	    "\"0\"^^http://www.w3.org/2001/XMLSchema#integer",
	    "\"ab\"^^http://all.example/bloodType",
	    "\"o+\"^^http://all.example/bloodType",
	    "\" !\"#$%&():;<=>?@[]^_`{|}~\"",
	    "\"\t\u000b\f\u000e&([]\"",
	    "\"߿ࠀ࿿က쿿퀀퟿�𐀀𿿽񀀀󿿽􀀀􏿽\"",
	    "\"\"\\\"",
	    "\"𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡\"",
	    "\"STRING_LITERAL_LONG2\"@en-uk"
	  ]
	}
      }
    },
    "http://all.example/S3":{
      "type":"Shape",
      "virtual":true,"expression":{
	"type":"EachOf",
	"expressions":[
	  {
	    "type":"TripleConstraint",
	    "predicate":"http://all.example/a",
	    "valueExpr":{
	      "type":"ValueClass"
	    }
	  },
	  {
	    "type":"TripleConstraint",
	    "predicate":"http://all.example/prefix",
	    "valueExpr":{
	      "type":"ValueClass",
	      "datatype":"http://all.example/dt",
	      "length":2
	    },
	    "min":0,"max":1
	  },
	  {
	    "type":"OneOf",
	    "expressions":[
	      {
		"type":"EachOf",
		"expressions":[
		  {
		    "type":"TripleConstraint",
		    "predicate":"http://all.example/base",
		    "valueExpr":{
		      "type":"ValueClass",
		      "nodeKind":"iri"
		    },
		    "min":0,"max":"*"
		  },
		  {
		    "type":"TripleConstraint",
		    "predicate":"http://all.example/PREFIX",
		    "valueExpr":{
		      "type":"ValueClass",
		      "nodeKind":"iri",
		      "pattern":"^http://",
		      "length":5
		    },
		    "min":1,"max":"*"
		  },
		  {
		    "type":"TripleConstraint",
		    "predicate":"http://all.example/BaSe",
		    "valueExpr":{
		      "type":"ValueClass",
		      "reference":"http://all.example/S5"
		    },
		    "min":2,"max":2
		  }
		]
	      },
	      {
		"type":"TripleConstraint",
		"predicate":"http://all.example/virtual",
		"valueExpr":{
		  "type":"ValueClass",
		  "nodeKind":"nonliteral",
		  "reference":"http://all.example/S5"
		},
		"min":2,"max":"*"
	      },
	      {
		"type":"TripleConstraint",
		"predicate":"http://all.example/closed",
		"valueExpr":{
                  "type":"ValueOr",
                  "valueExprs":[
                    {
		      "type":"ValueClass",
		      "nodeKind":"bnode",
		      "reference":"http://all.example/S5"
                    },
                    {
                      "type":"ValueClass",
                      "reference":"http://all.example/S5",
		      "minlength":2,"maxlength":4
                    }
                  ]
		},
		"min":2,"max":"*"
	      },
	      {
		"type":"EachOf",
		"expressions":[
		  {
		    "type":"OneOf",
		    "expressions":[
		      {
			"type":"EachOf",
			"expressions":[
			  {
			    "type":"TripleConstraint",
			    "inverse":true,"predicate":"http://all.example/extra",
			    "valueExpr":{
			      "type":"ValueClass",
			      "reference":"_:b0"
			    },
			    "min":2,"max":3,"semActs": [
                              { "type": "SemAct", "name": "http://all.example/act1", "code": " code1 " }
                            ]
			  },
			  {
			    "type":"TripleConstraint",
			    "negated":true,"predicate":"http://all.example/iri",
			    "valueExpr":{
			      "type":"ValueClass",
			      "nodeKind":"literal"
			    },
			    "min":1,"max":"*",
			    "semActs": [
                              { "type": "SemAct", "name": "http://all.example/act1", "code": " %{printf(\"品川\\n\");%} " }
                            ],
			    "annotations": [
                              { "type": "Annotation", "predicate": "http://a.example/annot1", "object": "http://a.example/IRIREF" },
                              { "type": "Annotation", "predicate": "http://a.example/annot2", "object": "\"STRING_LITERAL2\"" },
                              { "type": "Annotation", "predicate": "http://a.example/annot3", "object": "\"3\"^^http://www.w3.org/2001/XMLSchema#integer" }
			    ]
			  }
			]
		      },
		      {
			"type":"EachOf",
			"expressions":[
			  {
			    "type":"TripleConstraint",
			    "inverse":true,"negated":true,"predicate":"http://all.example/bnode",
			    "valueExpr":{
			      "type":"ValueClass"
			    },
			    "min":1,"max":"*",
			    "semActs": [
                              { "type": "SemAct", "name": "http://all.example/act1", "code": " code1 " }
                            ]
			  },
			  {
			    "type":"TripleConstraint",
			    "inverse":true,"negated":true,"predicate":"http://all.example/literal",
			    "valueExpr":{
			      "type":"ValueClass"
			    },
			    "min":1,"max":"*",
			    "semActs": [
                              { "type": "SemAct", "name": "http://all.example/act1", "code": " code1 " }
                            ]
			  }
			]
		      }
		    ]
		  },
		  {
		    "type":"TripleConstraint",
		    "predicate":"http://all.example/nonliteral",
		    "valueExpr":{
		      "type":"ValueClass",
		      "datatype":"http://www.w3.org/2001/XMLSchema#integer",
		      "mininclusive":5,"maxinclusive":5,"totaldigits":1,"fractiondigits":1
		    }
		  }
		]
	      }
	    ]
	  },
	  {
	    "type":"TripleConstraint",
	    "predicate":"http://all.example/or",
	    "valueExpr":{
	      "type":"ValueClass",
	      "values":[
		"http://a.example/a1",
		{
		  "type":"StemRange",
		  "stem":"http://all.example/",
		  "exclusions":[
		    {
		      "type":"Stem",
		      "stem":"http://all.example/a"
		    },
		    "http://all.example/b"
		  ]
		}
	      ]
	    }
	  },
	  {
		"type":"TripleConstraint",
		"predicate":"http://all.example/pattern",
		"valueExpr":{
		  "type":"ValueClass",
		  "values":[
		    {
		      "type":"StemRange",
		      "stem":{
			"type":"Wildcard"
		      },
		      "exclusions":[
			{
			  "type":"Stem",
			  "stem":"http://all.example/a"
			},
			"http://all.example/b"
		      ]
		    }
		  ]
	        },"semActs": [
                  { "type": "SemAct", "name": "http://all.example/act1", "code": " code1 " },
                  { "type": "SemAct", "name": "http://all.example/act2", "code": " code2 " }
                ]
	  }
	]
      },
      "extra":[
	"http://all.example/a",
	"http://all.example/prefix",
	"http://all.example/base"
      ],"inherit":[
	"http://all.example/S1"
      ]
    },
    "_:a·̀ͯ‿.⁀":{
      "type":"Shape",
      "closed":true,"inherit":[
	"_:a·̀ͯ‿.⁀",
	"http://all.example/S2"
      ]
    },
    "_:AZazÀÖØöø˿ͰͽͿ῿‌‍⁰↏Ⰰ⿯、퟿豈﷏ﷰ�𐀀󯿽":{
      "type":"Shape",
      "expression":"_:a·̀ͯ‿.⁀"
    }
  }
}
