Changes for page 10 Constraints

Last modified by Helena on 2025/09/10 11:19

From version 14.1
edited by Helena
on 2025/05/16 00:20
Change comment: There is no comment for this version
To version 15.1
edited by Helena
on 2025/05/16 12:25
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -146,7 +146,7 @@
146 146  
147 147  The following logic explains how the inheritance mechanism works. Note that this is conceptual logic and actual systems may differ in the way this is implemented.
148 148  
149 -*
149 +*
150 150  *1. Determine all possible keys that are valid at the higher level.
151 151  *1. These keys are deemed to be inherited by the lower-level constrained object, subject to the Constraints specified at the lower level.
152 152  *1. Determine all possible keys that are possible using the Constraints specified at the lower level.
... ... @@ -155,7 +155,7 @@
155 155  
156 156  === 10.3.4 Constraints Examples ===
157 157  
158 -==== 10.3.4.1 Data Constraint and Cascading ====
158 +==== 10.3.4.1 Data Constraint and Cascading ====
159 159  
160 160  The following scenario is used.
161 161  
... ... @@ -215,128 +215,18 @@
215 215  
216 216  DSD Constraint
217 217  
218 -**<str:DataConstraint agencyID="SDMX" id="DATA_CONSTRAINT" version="1.0.0draft" type="Allowed">**
218 +[[image:1747386911707-332.png]]
219 219  
220 -**<com:Name xml:lang="en">SDMX 3.0 Data Constraint sample</com:Name>**
221 -
222 -**<str:ConstraintAttachment>**
223 -
224 -**<str:DataStructure>urn:sdmx:org.sdmx.infomodel.datastructure.**
225 -
226 -**DataStructure=CENSUSHUB:CENSUS(1.0.0)</str:DataStructure>**
227 -
228 -**</str:ConstraintAttachment>**
229 -
230 -**<str:CubeRegion include="true">**
231 -
232 -**<!~-~- the ability to exclude values is illustrated – i.e., all values valid except this one ~-~->**
233 -
234 -**<com:KeyValue id="AGE" include="false">**
235 -
236 -**<com:Value>001</com:Value>**
237 -
238 -**</com:KeyValue>**
239 -
240 -**</str:CubeRegion>**
241 -
242 -**</str:DataConstraint>**
243 -
244 244  Dataflow Constraints
245 245  
246 -**<str:DataConstraint agencyID="SDMX" id="DATA_CONSTRAINT_2" version="1.0.0draft" type="Allowed">**
222 +[[image:1747386933952-158.png]]
247 247  
248 -**<com:Name xml:lang="en">SDMX 3.0 Data Constraint sample</com:Name>**
224 +[[image:1747386970127-658.png]]
249 249  
250 -**<str:ConstraintAttachment>**
251 -
252 -**<str:Dataflow>urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=**
253 -
254 -**CENSUSHUB:CENSUS_CUBE1(1.0.0)</str:Dataflow>**
255 -
256 -**</str:ConstraintAttachment>**
257 -
258 -**<str:CubeRegion include="true">**
259 -
260 -**<com:KeyValue id="AGE" include="true">**
261 -
262 -**<com:Value>002</com:Value>**
263 -
264 -**<com:Value>003</com:Value>**
265 -
266 -**</com:KeyValue>**
267 -
268 -**<com:KeyValue id="CAS">**
269 -
270 -**<com:Value>003</com:Value>**
271 -
272 -**<com:Value>004</com:Value>**
273 -
274 -**</com:KeyValue>**
275 -
276 -**</str:CubeRegion>**
277 -
278 -**</str:DataConstraint>**
279 -
280 -**<str:DataConstraint agencyID="SDMX" id="DATA_CONSTRAINT_3" version="1.0.0draft" type="Allowed">**
281 -
282 -**<com:Name xml:lang="en">SDMX 3.0 Data Constraint sample</com:Name>**
283 -
284 -**<str:ConstraintAttachment>**
285 -
286 -**<str:Dataflow>urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=**
287 -
288 -**CENSUSHUB:CENSUS_CUBE2(1.0.0)</str:Dataflow>**
289 -
290 -**</str:ConstraintAttachment>**
291 -
292 -**<str:CubeRegion include="true">**
293 -
294 -**<com:KeyValue id="CAS" include="true">**
295 -
296 -**<com:Value>TOT</com:Value>**
297 -
298 -**<com:Value>NAP</com:Value>**
299 -
300 -**</com:KeyValue>**
301 -
302 -**</str:CubeRegion>**
303 -
304 -**</str:DataConstraint>**
305 -
306 306  Provision Agreement Constraint
307 307  
308 -**<str:DataConstraint agencyID="SDMX" id="DATA_CONSTRAINT_4" version="1.0.0draft" type="Allowed">**
228 +[[image:1747386991329-805.png]]
309 309  
310 -**<com:Name xml:lang="en">SDMX 3.0 Data Constraint sample</com:Name>**
311 -
312 -**<str:ConstraintAttachment>**
313 -
314 -**<str:ProvisionAgreement>urn:sdmx:org.sdmx.infomodel.registry.**
315 -
316 -**ProvisionAgreement=CENSUSHUB:CENSUS_CUBE1_IT(1.0.0)**
317 -
318 -**</str:ProvisionAgreement>**
319 -
320 -**<str:ProvisionAgreement>urn:sdmx:org.sdmx.infomodel.registry.**
321 -
322 -**ProvisionAgreement=CENSUSHUB:CENSUS_CUBE2_IT(1.0.0)**
323 -
324 -**</str:ProvisionAgreement>**
325 -
326 -**</str:ConstraintAttachment>**
327 -
328 -**<str:CubeRegion include="true">**
329 -
330 -**<com:KeyValue id="GEO" include="true">**
331 -
332 -**<com:Value cascadeValues="true">IT</com:Value>**
333 -
334 -**</com:KeyValue>**
335 -
336 -**</str:CubeRegion>**
337 -
338 -**</str:DataConstraint**
339 -
340 340  ==== 10.3.4.2 Combination of Constraints ====
341 341  
342 342  The possible combination of constraining terms are explained in this section, following a few examples.
... ... @@ -343,57 +343,39 @@
343 343  
344 344  Let’s assume a DSD with the following Components:
345 345  
346 -|Dimension|FREQ
347 -|Dimension|JD_TYPE
348 -|Dimension|JD_CATEGORY
349 -|Dimension|VIS_CTY
350 -|TimeDimension|TIME_PERIOD
351 -|Attribute|OBS_STATUS
352 -|Attribute|UNIT
353 -|Attribute|COMMENT
354 -|MetadataAttribute|CONTACT
355 -|Measure|MULTISELECT
356 -|Measure|CHOICE
236 +[[image:1747387057775-838.png]]
357 357  
238 +[[image:1747387089210-741.png]]
239 +
358 358  On the above, let’s assume the following use cases with their constraining requirements:
359 359  
360 360  ===== 10.3.4.2.1 Use Case 1: A Constraint on allowed values for some Dimensions =====
361 361  
362 362  R1: Allow monthly and quarterly data
363 -
364 364  R2: Allow Mexico for vis-à-vis country
365 365  
366 366  This is expressed with the following CubeRegion:
367 367  
368 -|FREQ|M, Q
369 -|VIS_CTY|MX
249 +[[image:1747387154981-708.png]]
370 370  
371 371  ===== 10.3.4.2.2 Use Case 2: A Constraint on allowed combinations for some Dimensions =====
372 372  
373 373  R1: Allow monthly data for Germany
374 -
375 375  R2: Allow quarterly data for Mexico
376 376  
377 377  This is expressed with the following DataKeySet:
378 378  
379 -|(% rowspan="2" %)Key1|FREQ|M
380 -|VIS_CTY|DE
381 -|(% rowspan="2" %)Key2|FREQ|Q
382 -|VIS_CTY|MX
258 +[[image:1747387188821-467.png]]
383 383  
384 -===== 10.3.4.2.3 Use Case 3: A Constraint on allowed values for some Dimensions combined with allowed values for some Attributes =====
260 +===== 0.3.4.2.3 Use Case 3: A Constraint on allowed values for some Dimensions combined with allowed values for some Attributes =====
385 385  
386 386  R1: Allow monthly and quarterly data
387 -
388 388  R2: Allow Mexico for vis-à-vis country
389 -
390 390  R3: Allow present for status
391 391  
392 392  This may be expressed with the following CubeRegion:
393 393  
394 -|FREQ|M, Q
395 -|VIS_CTY|MX
396 -|OBS_STATUS|A
268 +[[image:1747387231598-634.png]]
397 397  
398 398  ===== 10.3.4.2.4 Use Case 4: A Constraint on allowed combinations for some =====
399 399  
... ... @@ -400,32 +400,22 @@
400 400  //**Dimensions combined with specific Attribute values**//
401 401  
402 402  R1: Allow monthly data, for Germany, with unit euro
403 -
404 404  R2: Allow quarterly data, for Mexico, with unit usd
405 405  
406 406  This is may be expressed with the following DataKeySet:
407 407  
408 -|(% rowspan="3" style="width:87px" %)Key1|(% style="width:1327px" %)FREQ|M
409 -|(% style="width:1327px" %)VIS_CTY|DE
410 -|(% style="width:1327px" %)UNIT|EUR
411 -|(% rowspan="3" style="width:87px" %)Key2|(% style="width:1327px" %)FREQ|Q
412 -|(% style="width:1327px" %)VIS_CTY|MX
413 -|(% style="width:1327px" %)UNIT|USD
279 +[[image:1747387252077-954.png]]
414 414  
281 +[[image:1747387281625-859.png]]
282 +
415 415  ===== 10.3.4.2.5 Use Case 5: A Constraint on allowed values for some Dimensions together with some combination of Dimension values =====
416 416  
417 417  R1: For annually and quarterly data, for Mexico and Germany, only A status is allowed
418 -
419 419  R2: For monthly data, for Mexico and Germany, only F status is allowed
420 420  
421 421  Considering the above examples, the following CubeRegions would be created:
422 422  
423 -|(% rowspan="3" %)CubeRegion1|FREQ|Q, A
424 -|VIS_CTY|MX, DE
425 -|OBS_STATUS|A
426 -|(% rowspan="3" %)CubeRegion2|FREQ|M
427 -|VIS_CTY|MX, DE
428 -|OBS_STATUS|F
290 +[[image:1747387330751-405.png]]
429 429  
430 430  The problem with this approach is that according to the business rule for Constraints, only one should be specified per Component. Thus, if a software would perform some conflict resolution would end up with empty sets for FREQ and OBS_STATUS (as they do not share any values).
431 431  
... ... @@ -433,36 +433,22 @@
433 433  
434 434  DSD CubeRegion:
435 435  
436 -|FREQ|M, Q, A
437 -|VIS_CTY|MX, DE
438 -|OBS_STATUS|A, F
298 +[[image:1747387369822-932.png]]
439 439  
440 440  Dataflow1 CubeRegion:
441 441  
442 -|FREQ|Q, A
443 -|VIS_CTY|MX, DE
444 -|OBS_STATUS|F
302 +[[image:1747387387944-676.png]]
445 445  
446 446  Dataflow2 CubeRegion:
447 447  
448 -|FREQ|M
449 -|VIS_CTY|MX, DE
450 -|OBS_STATUS|A
306 +[[image:1747387401689-306.png]]
451 451  
452 452  ===== 10.3.4.2.6 Use case 6: A Constraint on allowed values for some Dimensions combined with allowed values for Measures =====
453 453  
454 454  R1: Allow monthly data, for Germany, with unit euro, and measure choice is 'A'
455 -
456 456  R2: Allow quarterly data, for Mexico, with unit usd, and measure choice is 'B' This is may be expressed with the following DataKeySet:
457 457  
458 -|(% rowspan="4" %)Key1|FREQ|M
459 -|VIS_CTY|DE
460 -|UNIT|EUR
461 -|CHOICE|A
462 -|(% rowspan="4" %)Key2|FREQ|Q
463 -|VIS_CTY|MX
464 -|UNIT|USD
465 -|CHOICE|B
313 +[[image:1747387437317-733.png]]
466 466  
467 467  ===== 10.3.4.2.7 Use Case 7: A Constraint with wildcards for Codes and removePrefix property =====
468 468  
... ... @@ -469,43 +469,32 @@
469 469  For this example, we assume that the VIS_CTY representation has been prefixed with prefix ‘AREA_’. In this Constraint, we need to remove the prefix.
470 470  
471 471  R1: Allow monthly and quarterly data
472 -
473 473  R2: Allow vis-à-vis countries that start with M
474 -
475 475  R3: Remove the prefix ‘AREA_’
476 476  
323 +[[image:1747387461703-763.png]]
324 +
477 477  This may be expressed with the following CubeRegion:
478 478  
479 -|FREQ|M, Q
480 -|VIS_CTY (removePrefix=’AREA_’)|M%
481 -
482 482  ===== 10.3.4.2.8 Use Case 8: A Constraint with multilingual support on Attributes =====
483 483  
484 484  R1: Allow monthly and quarterly data
485 -
486 486  R2: Allow Mexico for vis-à-vis country
487 -
488 488  R3: Allow a comment, in English, which includes the term adjusted for status
489 489  
490 490  This may be expressed with the following CubeRegion:
491 491  
492 -|FREQ|M, Q
493 -|VIS_CTY|MX
494 -|COMMENT (lang=’en’)|%adjusted%
335 +[[image:1747387484366-337.png]]
495 495  
496 496  ===== 10.3.4.2.9 Use Case 9: A Constraint on allowed values for Dimensions combined with allowed values for Metadata Attributes =====
497 497  
498 498  R1: Allow monthly and quarterly data
499 -
500 500  R2: Allow Mexico for vis-à-vis country
501 -
502 502  R3: Allow John Doe for contact
503 503  
504 504  This may be expressed with the following CubeRegion:
505 505  
506 -|FREQ|M, Q
507 -|VIS_CTY|MX
508 -|CONTACT|John Doe
345 +[[image:1747387514061-293.png]]
509 509  
510 510  ==== 10.3.4.3 Other constraining terms ====
511 511  
1747386911707-332.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +47.1 KB
Content
1747386933952-158.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +35.3 KB
Content
1747386970127-658.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +59.4 KB
Content
1747386991329-805.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +56.5 KB
Content
1747387057775-838.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +13.1 KB
Content
1747387089210-741.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +8.3 KB
Content
1747387135817-339.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +3.8 KB
Content
1747387154981-708.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +3.8 KB
Content
1747387188821-467.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +8.2 KB
Content
1747387231598-634.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +6.2 KB
Content
1747387252077-954.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +5.1 KB
Content
1747387281625-859.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +6.0 KB
Content
1747387330751-405.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +15.8 KB
Content
1747387369822-932.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +6.9 KB
Content
1747387387944-676.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +6.2 KB
Content
1747387401689-306.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +6.0 KB
Content
1747387437317-733.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +13.9 KB
Content
1747387461703-763.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +6.5 KB
Content
1747387484366-337.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +9.0 KB
Content
1747387514061-293.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.helena
Size
... ... @@ -1,0 +1,1 @@
1 +6.3 KB
Content