Limitations for the indexing of dimensions according to the current data availability
As a .Stat DE user
In order to never end up with an empty data table or chart
I want to only see facet values for which data actually exists.
Scenario 1: Index only codes in codelists for which data actually exists
Given that I'm using the DE search home and result pages
When I have nothing selected myself (home page) or I made a selection (result page)
And I see facet content generated out of codelists
Then the values in those facets only contain codes for which data actually exists.
Exception: If parent codes do not have any data, but their child codes do, then still include these parents in the facet trees, but in the DE make them non-selectable. Those parents can only be used for the navigation to their children with data. If this behaviour is technically too challenging then exclude those parents and move the now parent-less children up to the next grand-parent-level with data or, if none exist, to the root level.
Technical notes:
- This can be achieved by matching the content of the codelists with the content of the actual content constraints that are also returned by the SDMX NSI web service when querying a dataflow with all its references.
E.g. http://nsi.qa.core.oecd.redpelicans.com/rest/dataflow/OECD/AIR_EMISSIONS_DF/1.0?references=all returns the ContentConstraint "OECD:CR_AIR_EMISSIONS_DF_2a0adfe25d64458cb2534b9454091c(1.0)" of type="Actual" which contains the list of countries ("COU"), pollutants ("POL") and Variables ("VAR") for which data exists. - The content constraint's CubeRegion with property include="true" contains dimension values with available data. Only those dimension values are to be indexed. Extreme case: If any one of the included dimensions is empty (no values) then the whole dataflow has no data and thus should be excluded from the search index.
- The content constraint's CubeRegion with property include="false" contains dimension values for which no data are available. These dimension values are to be excluded from the search index. Extreme case: If for any one of those dimensions all values (as defined in the codelist) are to be excluded then the whole dataflow has no data and thus should be excluded from the search index.
- Each dimension can only be part of one single CubeRegion definition, thus either use include="true" or use include="false".