Schema
type: ShapeDecl
shape expr: Shape
  closed: true
  expression: EachOf
    expressions: TripleConstraint
      predicate: type
      value expr: NodeConstraint
        values: Schema
    expressions: TripleConstraint
      predicate: imports
      min: 0
      max: 1
      value expr: IriList1Plus
    expressions: TripleConstraint
      predicate: startActs
      min: 0
      max: 1
      value expr: SemActList1Plus
    expressions: TripleConstraint
      predicate: start
      min: 0
      max: 1
      value expr: shapeDeclOrExpr
    expressions: TripleConstraint
      predicate: shapes
      min: 0
      max: 1
      value expr: ShapeDeclList1Plus

ShapeDecl
shape expr: Shape
  closed: true
  expression: EachOf
    expressions: TripleConstraint
      predicate: type
      value expr: NodeConstraint
        values: ShapeDecl
    expressions: TripleConstraint
      predicate: abstract
      min: 0
      max: 1
      value expr: NodeConstraint
        values: true
        values: false
    expressions: TripleConstraint
      predicate: shapeExpr
      value expr: shapeExpr

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

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

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

NodeConstraint
type: ShapeDecl
shape expr: Shape
  closed: true
  expression: EachOf
    expressions: TripleConstraint
      predicate: type
      value expr: NodeConstraint
        values: NodeConstraint
    expressions: TripleConstraint
      predicate: nodeKind
      min: 0
      max: 1
      value expr: NodeConstraint
        values: iri
        values: bnode
        values: literal
        values: nonliteral
    expressions: TripleConstraint
      predicate: datatype
      min: 0
      max: 1
      value expr: NodeConstraint
        node kind: iri
    expressions: xsFacets
    expressions: TripleConstraint
      predicate: values
      min: 0
      max: 1
      value expr: valueSetValueList1Plus
    expressions: TripleConstraint
      predicate: semActs
      min: 0
      max: 1
      value expr: SemActList1Plus
    expressions: TripleConstraint
      predicate: annotation
      min: 0
      max: 1
      value expr: AnnotationList1Plus

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

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

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

Annotation
type: ShapeDecl
shape expr: Shape
  closed: true
  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

xsFacets
type: OneOf
min: 0
max: -1
expressions: stringFacet
expressions: numericFacet

stringFacet
type: OneOf
expressions: TripleConstraint
  predicate: length
  value expr: NodeConstraint
    datatype: integer
expressions: TripleConstraint
  predicate: minlength
  value expr: NodeConstraint
    datatype: integer
expressions: TripleConstraint
  predicate: maxlength
  value expr: NodeConstraint
    datatype: integer
expressions: EachOf
  expressions: TripleConstraint
    predicate: pattern
    value expr: NodeConstraint
      datatype: string
  expressions: TripleConstraint
    predicate: flags
    min: 0
    max: 1
    value expr: NodeConstraint
      datatype: string

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

IriStemRange
type: ShapeDecl
shape expr: Shape
  closed: true
  expression: EachOf
    expressions: TripleConstraint
      predicate: type
      value expr: NodeConstraint
        values: IriStemRange
    expressions: TripleConstraint
      predicate: stem
      value expr: ShapeOr
        shape exprs: NodeConstraint
        shape exprs: Wildcard
    expressions: TripleConstraint
      predicate: exclusion
      value expr: IriStemExclusionList1Plus

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

LiteralStemRange
type: ShapeDecl
shape expr: Shape
  closed: true
  expression: EachOf
    expressions: TripleConstraint
      predicate: type
      value expr: NodeConstraint
        values: LiteralStemRange
    expressions: TripleConstraint
      predicate: stem
      value expr: ShapeOr
        shape exprs: NodeConstraint
        shape exprs: Wildcard
    expressions: TripleConstraint
      predicate: exclusion
      value expr: LiteralStemExclusionList1Plus

Language
type: ShapeDecl
shape expr: Shape
  closed: true
  expression: EachOf
    expressions: TripleConstraint
      predicate: type
      value expr: NodeConstraint
        values: Language
    expressions: TripleConstraint
      predicate: languageTag
      value expr: NodeConstraint
        datatype: string

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

LanguageStemRange
type: ShapeDecl
shape expr: Shape
  closed: true
  expression: EachOf
    expressions: TripleConstraint
      predicate: type
      value expr: NodeConstraint
        values: LanguageStemRange
    expressions: TripleConstraint
      predicate: stem
      value expr: ShapeOr
        shape exprs: NodeConstraint
        shape exprs: Wildcard
    expressions: TripleConstraint
      predicate: exclusion
      value expr: LanguageStemExclusionList1Plus

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

NotYetResolvedInclusion
type: ShapeDecl
shape expr: Shape
  closed: true

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

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

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

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

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

IriList1Plus
type: ShapeDecl
shape expr: Shape
  closed: true
  expression: EachOf
    expressions: TripleConstraint
      predicate: first
      value expr: NodeConstraint
        node kind: iri
    expressions: TripleConstraint
      predicate: rest
      value expr: ShapeOr
        shape exprs: NodeConstraint
        shape exprs: IriList1Plus

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

ShapeDeclList1Plus
type: ShapeDecl
shape expr: Shape
  closed: true
  expression: EachOf
    expressions: TripleConstraint
      predicate: first
      value expr: ShapeDecl
    expressions: TripleConstraint
      predicate: rest
      value expr: ShapeOr
        shape exprs: NodeConstraint
        shape exprs: ShapeDeclList1Plus

shapeDeclOrExprList2Plus
type: ShapeDecl
shape expr: Shape
  closed: true
  expression: EachOf
    expressions: TripleConstraint
      predicate: first
      value expr: shapeDeclOrExpr
    expressions: TripleConstraint
      predicate: rest
      value expr: shapeDeclOrExprList1Plus

shapeDeclOrExprList1Plus
type: ShapeDecl
shape expr: Shape
  closed: true
  expression: EachOf
    expressions: TripleConstraint
      predicate: first
      value expr: shapeDeclOrExpr
    expressions: TripleConstraint
      predicate: rest
      value expr: ShapeOr
        shape exprs: NodeConstraint
        shape exprs: shapeDeclOrExprList1Plus

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

AnnotationList1Plus
type: ShapeDecl
shape expr: Shape
  closed: true
  expression: EachOf
    expressions: TripleConstraint
      predicate: first
      value expr: Annotation
    expressions: TripleConstraint
      predicate: rest
      value expr: ShapeOr
        shape exprs: NodeConstraint
        shape exprs: AnnotationList1Plus

IriStemExclusionList1Plus
type: ShapeDecl
shape expr: Shape
  closed: true
  expression: EachOf
    expressions: TripleConstraint
      predicate: first
      value expr: ShapeOr
        shape exprs: NodeConstraint
        shape exprs: IriStem
    expressions: TripleConstraint
      predicate: rest
      value expr: ShapeOr
        shape exprs: NodeConstraint
        shape exprs: IriStemExclusionList1Plus

LiteralStemExclusionList1Plus
type: ShapeDecl
shape expr: Shape
  closed: true
  expression: EachOf
    expressions: TripleConstraint
      predicate: first
      value expr: ShapeOr
        shape exprs: NodeConstraint
        shape exprs: LiteralStem
    expressions: TripleConstraint
      predicate: rest
      value expr: ShapeOr
        shape exprs: NodeConstraint
        shape exprs: LiteralStemExclusionList1Plus

LanguageStemExclusionList1Plus
type: ShapeDecl
shape expr: Shape
  closed: true
  expression: EachOf
    expressions: TripleConstraint
      predicate: first
      value expr: ShapeOr
        shape exprs: NodeConstraint
        shape exprs: LanguageStem
    expressions: TripleConstraint
      predicate: rest
      value expr: ShapeOr
        shape exprs: NodeConstraint
        shape exprs: LanguageStemExclusionList1Plus