Alice
type: Person
ssn: 987-65-432A

Bob
type: Person
ssn: 123-45-6789
ssn: 124-35-6789

Calvin
type: Person
birth date: 1999-09-09
works for: UntypedCompany

PersonShape
type: NodeShape
closed: true
ignored properties: type
property:
  path:
    inverse path: worksFor
  name: employee
target class: Person

path: ssn
datatype: string
max count: 1
pattern: ^\d{3}-\d{2}-\d{4}$

Test of personexample
type: Validate
result: ValidationReport
  conforms: false
  result: ValidationResult
    focus node: Alice
    result path: ssn
    result severity: Violation
    source constraint component: PatternConstraintComponent
    value: 987-65-432A
  result: ValidationResult
    focus node: Bob
    result path: ssn
    result severity: Violation
    source constraint component: MaxCountConstraintComponent
  result: ValidationResult
    focus node: Calvin
    result path: birthDate
    result severity: Violation
    source constraint component: ClosedConstraintComponent
    source shape: PersonShape
    value: 1999-09-09
  result: ValidationResult
    focus node: Calvin
    result path: worksFor
    result severity: Violation
    source constraint component: ClassConstraintComponent
    value: UntypedCompany
status: approved