=== SHACL validation - good data (data/claim-example.ttl) ===
Validation Report
Conforms: True


=== SHACL validation - seeded bad data (data/claim-bad-example.ttl) ===
Validation Report
Conforms: False
Results (14):
Constraint Violation in InConstraintComponent (http://www.w3.org/ns/shacl#InConstraintComponent):
	Severity: sh:Violation
	Source Shape: [ sh:in ( cstat:Reported cstat:Open cstat:PendingReview cstat:Approved cstat:Denied cstat:Closed cstat:Reopened ) ; sh:maxCount Literal("1", datatype=xsd:integer) ; sh:message Literal("Claim status must be exactly one concept from the claim-status scheme.") ; sh:minCount Literal("1", datatype=xsd:integer) ; sh:path claim:hasClaimStatus ; sh:severity sh:Violation ]
	Focus Node: ex:BAD-claim-status
	Value Node: cstat:InSubrogation
	Result Path: claim:hasClaimStatus
	Message: Claim status must be exactly one concept from the claim-status scheme.
Constraint Violation in MinCountConstraintComponent (http://www.w3.org/ns/shacl#MinCountConstraintComponent):
	Severity: sh:Violation
	Source Shape: [ sh:class claim:Claim ; sh:maxCount Literal("1", datatype=xsd:integer) ; sh:message Literal("A payment must be made on exactly one claim (no orphan payments — CLM-11).") ; sh:minCount Literal("1", datatype=xsd:integer) ; sh:path claim:paymentOnClaim ; sh:severity sh:Violation ]
	Focus Node: ex:BAD-payment
	Result Path: claim:paymentOnClaim
	Message: A payment must be made on exactly one claim (no orphan payments — CLM-11).
Constraint Violation in MinCountConstraintComponent (http://www.w3.org/ns/shacl#MinCountConstraintComponent):
	Severity: sh:Violation
	Source Shape: [ sh:class claim:Loss ; sh:maxCount Literal("1", datatype=xsd:integer) ; sh:message Literal("A claim must respond to exactly one loss occurrence.") ; sh:minCount Literal("1", datatype=xsd:integer) ; sh:path claim:hasLoss ; sh:severity sh:Violation ]
	Focus Node: ex:BAD-claim-orphan
	Result Path: claim:hasLoss
	Message: A claim must respond to exactly one loss occurrence.
Constraint Violation in MinCountConstraintComponent (http://www.w3.org/ns/shacl#MinCountConstraintComponent):
	Severity: sh:Violation
	Source Shape: [ sh:class policy:Policy ; sh:maxCount Literal("1", datatype=xsd:integer) ; sh:message Literal("A claim must be filed under exactly one policy (no orphan claims — CQ-C8).") ; sh:minCount Literal("1", datatype=xsd:integer) ; sh:path claim:underPolicy ; sh:severity sh:Violation ]
	Focus Node: ex:BAD-claim-orphan
	Result Path: claim:underPolicy
	Message: A claim must be filed under exactly one policy (no orphan claims — CQ-C8).
Constraint Violation in MinCountConstraintComponent (http://www.w3.org/ns/shacl#MinCountConstraintComponent):
	Severity: sh:Violation
	Source Shape: [ sh:datatype xsd:date ; sh:maxCount Literal("1", datatype=xsd:integer) ; sh:message Literal("A loss must have exactly one loss date.") ; sh:minCount Literal("1", datatype=xsd:integer) ; sh:path claim:lossDate ; sh:severity sh:Violation ]
	Focus Node: ex:Loss-bad
	Result Path: claim:lossDate
	Message: A loss must have exactly one loss date.
Constraint Violation in MinCountConstraintComponent (http://www.w3.org/ns/shacl#MinCountConstraintComponent):
	Severity: sh:Violation
	Source Shape: [ sh:datatype xsd:dateTimeStamp ; sh:maxCount Literal("1", datatype=xsd:integer) ; sh:message Literal("Every lifecycle event must carry exactly one timestamp (CQ-C11 depends on it).") ; sh:minCount Literal("1", datatype=xsd:integer) ; sh:path claim:eventTimestamp ; sh:severity sh:Violation ]
	Focus Node: ex:BAD-event
	Result Path: claim:eventTimestamp
	Message: Every lifecycle event must carry exactly one timestamp (CQ-C11 depends on it).
Constraint Violation in MinCountConstraintComponent (http://www.w3.org/ns/shacl#MinCountConstraintComponent):
	Severity: sh:Violation
	Source Shape: [ sh:in ( cpay:Indemnity cpay:ExpenseALAE cpay:ExpenseULAE cpay:Defense cpay:RecoveryOffset ) ; sh:maxCount Literal("1", datatype=xsd:integer) ; sh:message Literal("Payment type must be exactly one concept from the claim-payment-type scheme.") ; sh:minCount Literal("1", datatype=xsd:integer) ; sh:path claim:paymentType ; sh:severity sh:Violation ]
	Focus Node: ex:BAD-payment
	Result Path: claim:paymentType
	Message: Payment type must be exactly one concept from the claim-payment-type scheme.
Constraint Violation in MinCountConstraintComponent (http://www.w3.org/ns/shacl#MinCountConstraintComponent):
	Severity: sh:Violation
	Source Shape: [ sh:in ( cur:USD cur:EUR cur:GBP ) ; sh:maxCount Literal("1", datatype=xsd:integer) ; sh:message Literal("A money amount must have exactly one ISO 4217 currency — a bare decimal is not money (CLM-7).") ; sh:minCount Literal("1", datatype=xsd:integer) ; sh:path core:hasCurrency ; sh:severity sh:Violation ]
	Focus Node: ex:BAD-amt
	Result Path: core:hasCurrency
	Message: A money amount must have exactly one ISO 4217 currency — a bare decimal is not money (CLM-7).
Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent):
	Severity: sh:Violation
	Source Shape: shapes:ClaimIdUniqueShape
	Focus Node: ex:BAD-dup-a
	Value Node: Literal("CLM-9099")
	Source Constraint: [ rdf:type sh:SPARQLConstraint ; sh:message Literal("claimId is used by more than one claim.") ; sh:prefixes <https://data.chubb.com/shapes/ins/claim/> ; sh:select Literal("
            SELECT $this ?value WHERE {
                $this  <https://data.chubb.com/ontology/ins/claim/claimId> ?value .
                ?other <https://data.chubb.com/ontology/ins/claim/claimId> ?value .
                FILTER ($this != ?other)
            }") ]
	Message: claimId is used by more than one claim.
Constraint Violation in SPARQLConstraintComponent (http://www.w3.org/ns/shacl#SPARQLConstraintComponent):
	Severity: sh:Violation
	Source Shape: shapes:ClaimIdUniqueShape
	Focus Node: ex:BAD-dup-b
	Value Node: Literal("CLM-9099")
	Source Constraint: [ rdf:type sh:SPARQLConstraint ; sh:message Literal("claimId is used by more than one claim.") ; sh:prefixes <https://data.chubb.com/shapes/ins/claim/> ; sh:select Literal("
            SELECT $this ?value WHERE {
                $this  <https://data.chubb.com/ontology/ins/claim/claimId> ?value .
                ?other <https://data.chubb.com/ontology/ins/claim/claimId> ?value .
                FILTER ($this != ?other)
            }") ]
	Message: claimId is used by more than one claim.
Validation Result in MinCountConstraintComponent (http://www.w3.org/ns/shacl#MinCountConstraintComponent):
	Severity: sh:Warning
	Source Shape: [ sh:class claim:ClaimEvent ; sh:message Literal("A claim must have at least one lifecycle event (its FNOL).") ; sh:minCount Literal("1", datatype=xsd:integer) ; sh:path claim:hasClaimEvent ; sh:severity sh:Warning ]
	Focus Node: ex:BAD-claim-orphan
	Result Path: claim:hasClaimEvent
	Message: A claim must have at least one lifecycle event (its FNOL).
Validation Result in MinCountConstraintComponent (http://www.w3.org/ns/shacl#MinCountConstraintComponent):
	Severity: sh:Warning
	Source Shape: [ sh:class claim:ClaimEvent ; sh:message Literal("A claim must have at least one lifecycle event (its FNOL).") ; sh:minCount Literal("1", datatype=xsd:integer) ; sh:path claim:hasClaimEvent ; sh:severity sh:Warning ]
	Focus Node: ex:BAD-claim-status
	Result Path: claim:hasClaimEvent
	Message: A claim must have at least one lifecycle event (its FNOL).
Validation Result in MinCountConstraintComponent (http://www.w3.org/ns/shacl#MinCountConstraintComponent):
	Severity: sh:Warning
	Source Shape: [ sh:class claim:ClaimEvent ; sh:message Literal("A claim must have at least one lifecycle event (its FNOL).") ; sh:minCount Literal("1", datatype=xsd:integer) ; sh:path claim:hasClaimEvent ; sh:severity sh:Warning ]
	Focus Node: ex:BAD-dup-a
	Result Path: claim:hasClaimEvent
	Message: A claim must have at least one lifecycle event (its FNOL).
Validation Result in MinCountConstraintComponent (http://www.w3.org/ns/shacl#MinCountConstraintComponent):
	Severity: sh:Warning
	Source Shape: [ sh:class claim:ClaimEvent ; sh:message Literal("A claim must have at least one lifecycle event (its FNOL).") ; sh:minCount Literal("1", datatype=xsd:integer) ; sh:path claim:hasClaimEvent ; sh:severity sh:Warning ]
	Focus Node: ex:BAD-dup-b
	Result Path: claim:hasClaimEvent
	Message: A claim must have at least one lifecycle event (its FNOL).
