Schema
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: type
    value expr: NodeConstraint
      values: Schema
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: startActs
    value expr: SemActList1Plus
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: start
    value expr: shapeExpr
  expressions: TripleConstraint
    min: 0
    max: -1
    predicate: shapes
    value expr: shapeExpr
closed: true

ShapeNot
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: type
    value expr: NodeConstraint
      values: ShapeNot
  expressions: TripleConstraint
    predicate: shapeExpr
    value expr: shapeExpr
closed: true

SemAct
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: type
    value expr: NodeConstraint
      values: SemAct
  expressions: TripleConstraint
    predicate: name
    value expr: NodeConstraint
      node kind: iri
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: code
    value expr: NodeConstraint
      datatype: string
closed: true

shapeExprList1Plus
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: first
    value expr: shapeExpr
  expressions: TripleConstraint
    predicate: rest
    value expr: ShapeOr
      shape exprs: NodeConstraint
        values: nil
      shape exprs: shapeExprList1Plus
closed: true

Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: type
    value expr: NodeConstraint
      values: Shape
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: closed
    value expr: NodeConstraint
      values: true
      values: false
  expressions: TripleConstraint
    min: 0
    max: -1
    predicate: extra
    value expr: NodeConstraint
      node kind: iri
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: expression
    value expr: tripleExpression
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: semActs
    value expr: SemActList1Plus
closed: true

TripleConstraint
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: type
    value expr: NodeConstraint
      values: TripleConstraint
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: inverse
    value expr: NodeConstraint
      values: true
      values: false
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: negated
    value expr: NodeConstraint
      values: true
      values: false
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: min
    value expr: NodeConstraint
      datatype: integer
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: max
    value expr: NodeConstraint
      datatype: integer
  expressions: TripleConstraint
    predicate: predicate
    value expr: NodeConstraint
      node kind: iri
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: valueExpr
    value expr: shapeExpr
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: semActs
    value expr: SemActList1Plus
  expressions: TripleConstraint
    min: 0
    max: -1
    predicate: annotation
    value expr: Annotation
closed: true

ShapeAnd
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: type
    value expr: NodeConstraint
      values: ShapeAnd
  expressions: TripleConstraint
    predicate: shapeExprs
    value expr: shapeExprList2Plus
closed: true

ShapeExternal
type: Shape
expression: TripleConstraint
  predicate: type
  value expr: NodeConstraint
    values: ShapeExternal
closed: true

ShapeOr
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: type
    value expr: NodeConstraint
      values: ShapeOr
  expressions: TripleConstraint
    predicate: shapeExprs
    value expr: shapeExprList2Plus
closed: true

NodeConstraint
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: type
    value expr: NodeConstraint
      values: NodeConstraint
  expressions: OneOf
    expressions: TripleConstraint
      predicate: nodeKind
      value expr: NodeConstraint
        values: iri
        values: bnode
        values: literal
        values: nonliteral
    expressions: TripleConstraint
      predicate: datatype
      value expr: NodeConstraint
        node kind: iri
    expressions: stringFacet
    expressions: numericFacet
    expressions: TripleConstraint
      min: 1
      max: -1
      predicate: values
      value expr: valueSetValueList1Plus
closed: true

IriStem
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: type
    value expr: NodeConstraint
      values: IriStem
  expressions: TripleConstraint
    predicate: stem
    value expr: NodeConstraint
      datatype: string
closed: true

valueSetValueList1Plus
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: first
    value expr: valueSetValue
  expressions: TripleConstraint
    predicate: rest
    value expr: ShapeOr
      shape exprs: NodeConstraint
        values: nil
      shape exprs: valueSetValueList1Plus
closed: true

EachOf
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: type
    value expr: NodeConstraint
      values: EachOf
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: min
    value expr: NodeConstraint
      datatype: integer
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: max
    value expr: NodeConstraint
      datatype: integer
  expressions: TripleConstraint
    predicate: expressions
    value expr: tripleExpressionList2Plus
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: semActs
    value expr: SemActList1Plus
  expressions: TripleConstraint
    min: 0
    max: -1
    predicate: annotation
    value expr: Annotation
closed: true

IriStemRange
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: type
    value expr: NodeConstraint
      values: IriStemRange
  expressions: TripleConstraint
    predicate: stem
    value expr: ShapeOr
      shape exprs: NodeConstraint
        datatype: string
      shape exprs: Wildcard
  expressions: TripleConstraint
    min: 0
    max: -1
    predicate: exclusion
    value expr: ShapeOr
      shape exprs: objectValue
      shape exprs: IriStem
closed: true

Annotation
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: type
    value expr: NodeConstraint
      values: Annotation
  expressions: TripleConstraint
    predicate: predicate
    value expr: NodeConstraint
      node kind: iri
  expressions: TripleConstraint
    predicate: object
    value expr: objectValue
closed: true

SemActList1Plus
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: first
    value expr: SemAct
  expressions: TripleConstraint
    predicate: rest
    value expr: ShapeOr
      shape exprs: NodeConstraint
        values: nil
      shape exprs: SemActList1Plus
closed: true

shapeExprList2Plus
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: first
    value expr: shapeExpr
  expressions: TripleConstraint
    predicate: rest
    value expr: shapeExprList1Plus
closed: true

tripleExpressionList1Plus
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: first
    value expr: tripleExpression
  expressions: TripleConstraint
    predicate: rest
    value expr: ShapeOr
      shape exprs: NodeConstraint
        values: nil
      shape exprs: tripleExpressionList1Plus
closed: true

OneOf
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: type
    value expr: NodeConstraint
      values: OneOf
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: min
    value expr: NodeConstraint
      datatype: integer
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: max
    value expr: NodeConstraint
      datatype: integer
  expressions: TripleConstraint
    predicate: expressions
    value expr: tripleExpressionList2Plus
  expressions: TripleConstraint
    min: 0
    max: 1
    predicate: semActs
    value expr: SemActList1Plus
  expressions: TripleConstraint
    min: 0
    max: -1
    predicate: annotation
    value expr: Annotation
closed: true

tripleExpressionList2Plus
type: Shape
expression: EachOf
  expressions: TripleConstraint
    predicate: first
    value expr: tripleExpression
  expressions: TripleConstraint
    predicate: rest
    value expr: tripleExpressionList1Plus
closed: true

Wildcard
shape exprs: NodeConstraint
  node kind: bnode
shape exprs: Shape
  expression: TripleConstraint
    predicate: type
    value expr: NodeConstraint
      values: Wildcard
  closed: true
type: ShapeAnd