https://cacontology.projectvic.org/sex-offender-registry#RegistrationFrequencyValidationShape
Validates registration frequency requirements based on tier.
Instances of cacontology-registry:RegistrationRecord can have the following properties:
PROPERTY |
MIN COUNT |
MAX COUNT |
TYPE |
|
|---|---|---|---|---|
| cacontology-registry:RegistrationRecord | ||||
| cacontology-registry:expirationDate | 0 | 1 |
xsd:date
|
|
| cacontology-registry:lifetimeRegistration | 1 | 1 |
xsd:boolean
|
|
| cacontology-registry:registrationDate | 1 | 1 |
xsd:date
|
|
| cacontology-registry:registrationNumber | 1 | 1 |
xsd:string
|
|
| cacontology-registry:tier | 1 | 1 |
xsd:integer
|
|
@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 .