File tree Expand file tree Collapse file tree 1 file changed +47
-0
lines changed Expand file tree Collapse file tree 1 file changed +47
-0
lines changed Original file line number Diff line number Diff line change @@ -5038,6 +5038,53 @@ <h4>sh:or</h4>
5038
5038
</ div >
5039
5039
</ div >
5040
5040
</ aside >
5041
+
5042
+ < p >
5043
+ Note that all constraints in SHACL get ANDed for execution. Consider the following example:
5044
+ </ p >
5045
+
5046
+ < aside class ="example ">
5047
+ < div class ="shapes-graph ">
5048
+ < div class ="turtle ">
5049
+ ex:shapeRoot a sh:NodeShape;
5050
+ sh:or
5051
+ (ex:shapeA ex:shapeB),
5052
+ (ex:shapeC ex:shapeD).
5053
+ </ div >
5054
+ < div class ="jsonld ">
5055
+ < pre class ="jsonld "> {
5056
+ "@id": "ex:shapeRoot",
5057
+ "@type": "sh:NodeShape",
5058
+ "sh:or": [
5059
+ {
5060
+ "@list": [
5061
+ {
5062
+ "@id": "ex:shapeA"
5063
+ },
5064
+ {
5065
+ "@id": "ex:shapeB"
5066
+ }
5067
+ ]
5068
+ },
5069
+ {
5070
+ "@list": [
5071
+ {
5072
+ "@id": "ex:shapeC"
5073
+ },
5074
+ {
5075
+ "@id": "ex:shapeD"
5076
+ }
5077
+ ]
5078
+ }
5079
+ ]
5080
+ }</ pre >
5081
+ </ div >
5082
+ </ div >
5083
+ </ aside >
5084
+ < p >
5085
+ The correct interpretation is (< code > shapeA</ code > OR < code > shapeB</ code > ) AND (< code > shapeC</ code > OR < code > shapeD</ code > ).
5086
+ The target nodes need to conform to < code > shapeA</ code > or < code > shapeB</ code > , and then also < code > shapeC</ code > or < code > shapeD</ code > .
5087
+ </ p >
5041
5088
</ section >
5042
5089
5043
5090
< section id ="XoneConstraintComponent ">
You can’t perform that action at this time.
0 commit comments