PREFIX sh: <http://www.w3.org/ns/shacl#>
PREFIX shui: <http://www.w3.org/ns/shacl-ui#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

shui:ScoreShape a sh:NodeShape ;
    sh:targetClass shui:WidgetScore ;
    sh:property [
        sh:path shui:widget ;
        sh:minCount 1 ;
        sh:maxCount 1 ;
        sh:nodeKind sh:BlankNodeOrIRI ;
        sh:message "A Widget Score must have exactly one shui:widget" ;
    ] ;
    sh:property [
        sh:path shui:score ;
        sh:minCount 1 ;
        sh:maxCount 1 ;
        sh:or (
            [ sh:datatype xsd:decimal ]
            [ sh:datatype xsd:integer ]
        ) ;
        sh:message "A Widget Score must have exactly one shui:score with datatype xsd:decimal or xsd:integer" ;
    ] ;
    sh:property [
        sh:path shui:dataGraphShape ;
        sh:nodeKind sh:BlankNodeOrIRI ;
        sh:message "A Widget Score's dataGraphShape must reference a valid node" ;
    ] ;
    sh:property [
        sh:path shui:shapesGraphShape ;
        sh:nodeKind sh:BlankNodeOrIRI ;
        sh:message "A Widget Score's shapesGraphShape must reference a valid node" ;
    ] .