https://cacontology.projectvic.org/sentencing#LegalChargeShape
Validation shape for legal charge instances.
@prefix cacontology-sentencing: <https://cacontology.projectvic.org/sentencing#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
cacontology-sentencing:LegalChargeShape a sh:NodeShape ;
rdfs:label "Legal Charge Shape"@en ;
rdfs:comment "Validation shape for legal charge instances."@en ;
sh:property [ sh:datatype xsd:string ;
sh:in ( "felony" "misdemeanor" "infraction" "violation" "contempt" "federal_crime" ) ;
sh:maxCount 1 ;
sh:message "Legal charge must specify charge type from the allowed list."@en ;
sh:minCount 1 ;
sh:path cacontology-sentencing:chargeType ],
[ sh:datatype xsd:string ;
sh:in ( "class_a" "class_b" "class_c" "class_d" "class_e" "unclassified" "capital" ) ;
sh:maxCount 1 ;
sh:message "Legal charge must specify charge class from the allowed list."@en ;
sh:minCount 1 ;
sh:path cacontology-sentencing:chargeClass ],
[ sh:datatype xsd:string ;
sh:maxCount 1 ;
sh:maxLength 100 ;
sh:message "Legal charge must specify statute reference (5-100 characters)."@en ;
sh:minCount 1 ;
sh:minLength 5 ;
sh:path cacontology-sentencing:statuteReference ],
[ sh:datatype xsd:decimal ;
sh:maxCount 1 ;
sh:maxInclusive 99.0 ;
sh:message "Maximum penalty must be between 0 and 99 years."@en ;
sh:minCount 1 ;
sh:minInclusive 0.0 ;
sh:path cacontology-sentencing:maximumPenalty ],
[ sh:datatype xsd:string ;
sh:in ( "guilty" "not_guilty" "no_contest" "alford_plea" "not_entered" ) ;
sh:maxCount 1 ;
sh:message "Plea entered must be from the allowed list."@en ;
sh:minCount 0 ;
sh:path cacontology-sentencing:pleaEntered ] ;
sh:targetClass cacontology-sentencing:LegalCharge .