Where rsx:validationApproach specifies which validation approaches that are available to the SHACL engine.
The order of the items in the list are the preferred order and the SHACL engine must choose the first validation approach that is possible to use.
All shapes support transactional validation and legacy bulk validation. A transaction that adds or modifies a shape must always use a bulk validation. So the following rules apply:
rsx:transactionalValidationApproach is optional
rsx:sparqlBulkValidationApproach is optional
rsx:legacyBulkValidationApproach must always be in the list
The SHACL engine usually decides how a shape should be validated based on what operations are in the transaction and the size of the transaction.
It would also be good to limit what the SHACL engine is allowed to do for a particular shape, in case there is an issue with a particular approach.
Something like:
Where
rsx:validationApproach
specifies which validation approaches that are available to the SHACL engine.The order of the items in the list are the preferred order and the SHACL engine must choose the first validation approach that is possible to use.
All shapes support transactional validation and legacy bulk validation. A transaction that adds or modifies a shape must always use a bulk validation. So the following rules apply:
Default
Never use the transactional approach, only bulk
Never use the transactional approach, only bulk, and only the legacy bulk approach
If bulk validation is required, only use the legacy approach and not SPARQL
The following are illegal