allow adding constraints to general profiles on the level of the profile using them
Assumption: I have a shape for temperature, and I now want to create another profile for a water bath, in which the temperature represents a bath temperature.
It would be nice to do add a constraint, that the property is called "bath temperature" in the data graph, e.g. like this
sh:property [
sh:qualifiedMinCount 1 ;
sh:name "hat Bad Temperatur"@de, "has Bath Temperature"@en ;
sh:order 1 ;
sh:qualifiedValueShape [
a sh:NodeShape ;
sh:and (<https://w3id.org/nfdi4ing/profiles/cbff1db0-8764-4617-b221-0752ca640258/> [
a sh:NodeShape ;
sh:property [
sh:path rdfs:label ;
sh:maxCount 1;
sh:hasValue "Bath temperature" ;
] ;
]) ;
] ;
sh:path m4i:hasParameter ;
] .
this has not been properly tested SHACL wise - we are unsure of how to properly use sh:qualifiedValueShape and sh:and together
An additional common use case would be to specify the numerical range for the m4i:hasNumericalValue attribute, e.g. >=0.
Important additional scenario: Yet another common (and even trickier?) use case is to specify relations between the nodes behind the attributes. Let's assume we have a multi-step processingstep, which has several parts, which by themselves are processingsteps. E.g. a sample is first heated and then cooled down again, both sub-processes are described via their own profiles derived from processing step (like here). The sub-processes have the "precedes" attribute, and on the level of the composite profile, we want to model that the node pointed to by the heating profile has the "precedes" attribute refering to the cooling process node.