Role Realization
Every role must be realised in at least one process. This shape enforces that each instance of BFO_0000023 (Role) carries a BFO_0000054 (realized in) link to the process that brings the role into actuality. In the MatWerk KG this ensures that roles such as "principal investigator" or "reviewer" are never recorded without the process they participate in.
Visualization
SHACL Constraint
| Property | Value |
|---|---|
| Target Class | obo:BFO_0000023 (Role) |
| Constraint | Must have at least one obo:BFO_0000054 (realized in) relationship |
| Severity | Violation |
Shape Definition
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ex: <http://www.example.org/#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
#
# a "role" should always "realized in" something
#
ex:RoleRealizaionShape
a sh:NodeShape ;
sh:targetClass <http://purl.obolibrary.org/obo/BFO_0000023> ; # bfo:role
sh:property [
sh:path <http://purl.obolibrary.org/obo/BFO_0000054> ; # bfo:inheres in
sh:minCount 1 ;
sh:message "a 'role' (BFO_0000023) must always 'realized in' (BFO_0000054) something"
] ;
.
Example Data
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix obo: <http://purl.obolibrary.org/obo/> .
@prefix nfdi: <https://nfdi.fiz-karlsruhe.de/ontology/> .
@prefix matwerk: <https://nfdi.fiz-karlsruhe.de/matwerk/> .
matwerk:reviewer_role_01
a obo:BFO_0000023 ;
rdfs:label "Peer reviewer role" ;
obo:BFO_0000054 matwerk:process_peer_review .
matwerk:process_peer_review
a obo:BFO_0000015 ;
rdfs:label "Peer review of corrosion resistance dataset" .