Changes for page 12 Constraints

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

From version 7.3
edited by Helena
on 2025/05/16 14:00
Change comment: There is no comment for this version
To version 7.1
edited by Helena
on 2025/05/15 11:07
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -29,14 +29,23 @@
29 29  Any artefact that inherits from the //ConstrainableArtefact// interface can have constraints defined. The artefacts that can have constraint metadata attached are:
30 30  
31 31  Dataflow
32 +
32 32  ProvisionAgreement
34 +
33 33  DataProvider – this is restricted to release calendar
36 +
34 34  DataStructureDefinition
38 +
35 35  Metadataflow
40 +
36 36  MetaDataProvider – this is restricted to release calendar
42 +
37 37  MetadataProvisionAgreement
44 +
38 38  MetadataSetMetadataStructureDefinition
46 +
39 39  SimpleDataSource – this is a registered data source where the registration references the actual Data Set or Metadata Set
48 +
40 40  //QueryDataSource//
41 41  
42 42  Note that, because the //Constraint// can specify a subset of the component values implied by a specific //Structure// (such as a specific DataStructureDefinition or specific MetadataStructureDefinition), the //ConstrainableArtefact//s must be associated with a specific //Structure//. Therefore, whilst the //Constraint// itself may not be linked directly to a DataStructureDefinition or MetadataStructureDefinition, the artefact that it is constraining will be linked to a DataStructureDefinition or MetadataStructureDefinition. As a DataProvider or a MetadataProvider does not link to any one specific DSD or MSD the type of information that can be contained in a Constraint linked to a DataProvider/MetadataProvider is restricted to ReleaseCalendar.
... ... @@ -55,8 +55,10 @@
55 55  
56 56  The constraint mechanism allows specific constraints to be attached to a //ConstrainableArtefact//. With the exception of ReleaseCalendar these constraints specify a subset of the total set of values or keys that may be present in any of the //ConstrainableArtefacts//.
57 57  
58 -For instance, a DataStructureDefinition specifies, for each Dimension, the list of allowable code values. However, a specific Dataflow that uses the DataStructureDefinition may contain only a subset of the possible range of keys that is theoretically possible from the DataStructureDefinition definition (the total range of possibilities is sometimes called the Cartesian product of the dimension values). In addition to this, a DataProvider that is capable of supplying data according to the Dataflow has a ProvisionAgreement, and the DataProvider may also wish to supply constraint information which may further constrain the range of possibilities in order to describe the data that the provider can supply. It may also be useful to describe the content of a data source in terms of the KeySets or CubeRegions contained within it.
67 +For instance, a DataStructureDefinition specifies, for each Dimension, the list of allowable code values. However, a specific Dataflow that uses the
59 59  
69 +DataStructureDefinition may contain only a subset of the possible range of keys that is theoretically possible from the DataStructureDefinition definition (the total range of possibilities is sometimes called the Cartesian product of the dimension values). In addition to this, a DataProvider that is capable of supplying data according to the Dataflow has a ProvisionAgreement, and the DataProvider may also wish to supply constraint information which may further constrain the range of possibilities in order to describe the data that the provider can supply. It may also be useful to describe the content of a data source in terms of the KeySets or CubeRegions contained within it.
70 +
60 60  A //ConstrainableArtefact// can have two types of //Constraint//s:
61 61  
62 62  1. DataConstraint – is used as a mechanism to specify, either the available set of keys (DataKeySet), or set of component values (CubeRegion) in a //DataSource// such as a Simpledatasource or a database (//QueryDatasource//), or the allowable keys that can be constructed from a DataStructureDefinition. Multiple such DataConstraints may be present for a //ConstrainableArtefact//. For instance, there may be a DataConstraint that specifies the values allowed for the //ConstrainableArtefact //(role is allowableContent) which can be used for validation or for constructing a partial code list for one Dimension, while another provides the validation for another Dimension within the same DSD.