https://cacontology.projectvic.org/sex-offender-registry#RegistrationFrequencyValidationShape
Validates registration frequency requirements based on tier.
@prefix cacontology-registry: <https://cacontology.projectvic.org/sex-offender-registry#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
cacontology-registry:RegistrationFrequencyValidationShape a sh:NodeShape ;
rdfs:label "Registration Frequency Validation Shape"@en ;
rdfs:comment "Validates registration frequency requirements based on tier."@en ;
sh:sparql [ sh:message "Tier 1 offenders should register annually."@en ;
sh:select """
SELECT $this
WHERE {
$this cacontology-registry:tier 1 ;
cacontology-registry:registrationFrequency ?freq .
FILTER (?freq != "annual")
}
""" ],
[ sh:message "Tier 2 offenders should register semi-annually."@en ;
sh:select """
SELECT $this
WHERE {
$this cacontology-registry:tier 2 ;
cacontology-registry:registrationFrequency ?freq .
FILTER (?freq != "semi-annual")
}
""" ],
[ sh:message "Tier 3 offenders should register quarterly."@en ;
sh:select """
SELECT $this
WHERE {
$this cacontology-registry:tier 3 ;
cacontology-registry:registrationFrequency ?freq .
FILTER (?freq != "quarterly")
}
""" ] ;
sh:targetClass cacontology-registry:RegistrationRecord .