Skip to content

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" .