Table of Contents |
---|
...
Issues that were already identified
The following issues have been identified:
archiving of "old" datasets (where data is from a long time ago, but is as up to date as it can be eg. ebola 2013) - this is done
tag cleanup - dataset tags should not be freeform, they should be from a fixed list with the facility to request to add more - some of this is done
fixing data URLs so that charts, reports etc. don't break - USAID have asked for this and there is a Jira Epic for it (the Fixed Data URLs Idea goes further than what USAID have asked for)
a workflow that tries to alert a contributor when an update to a resource they are making has unexpected field names, data type changes, etc. - USAID have asked for this and there is a Jira Epic for it
a system whereby automated users (and maybe normal users as well) can register to receive important information about a dataset they are using eg. a breaking change to the format, no longer being updated etc. - USAID have asked for this and there is a Jira Epic for it
we need to be able to distinguish data resources from auxiliary ones - helpful to DP's work on QAing datasets
distinguishing API resources from others
resources can't keep growing indefinitely - we need a way to split a resource once it grows beyond a certain size
keeping a history of data (versioning) - newly added data may contain errors so it may be helpful to be able to fall back to a previous version of the data eg. if a dashboard cannot load latest/xxx.csv, it could try 1/xxx.csv
a service whereby if a contributor uploads data in a particular format/structure that we specify, then the data is served out disaggregated in multiple ways
finding data by API needs to be simpler. Currently the limitation there is the capabilities of the CKAN API search. It can be helped by adding more metadata into the dataset for example the list of fields and HXL tags in the data
more generally a search tailored to what users want to search for eg. if a user types "wheat price kandahar" they would like to get back that price.
How data is currently structured
...
We need to define a list of file extensions that we regard as "tabular data" eg. csv, xls, xlsx etc.
We need to define a list of file extensions that we regard as "map data" eg. geojson, zipped shapefile etc.
This might be implemented using CKAN tag vocabularies as described above for tag cleanup
In the dataset edit UI, the resource name field should be labelled "Title of Resource"
It should not be prepopulated from the filename (as it is currently) because we want contributors to write a descriptive resource title
If there is a file extension, it should be used to prepopulate the "File type" field
The "File type" should not be allowed to be different to any provided file extension
If a file extension is not provided, the resource could be sniffed to try to guess the file type to prepopulate the field eg. using https://github.com/ahupp/python-magic
When adding a resource, the "File type" field needs to be locked down to a list of possible formats for the contributor to pick from
There should be a separate option to add a format not in the list
There should be an option to add more file types (ie. upload same data in different formats like csv, xls etc.)
One resource with multiple file types will translate into separate resources in dataset metadata
The resource metadata should have a new field containing the categorisation eg. category which could be "tabular", "map" or "auxiliary"
Once the "File type" is selected, the dataset edit UI should show how the resource was categorised:
"Tabular data"
"Map data"
"Auxiliary data"
The contributor should have the option to recategorise "Tabular data" or "Map data" to "Auxiliary data"
Showcases should just point to websites and visualisations with pdfs being auxiliary resources?
The contributor should have the option to flag to us that "Auxiliary data" has been incorrectly categorised - this will alert us to new tabular or map file formats to add to our lists
Yumi's new design has resources in one tab and metadata in another. Building on this, the "Data and Resources" tab should be divided into the categories
The "Download" button should be replaced with the "File type" with a small download symbol
If more than one resource has the same "Title of Resource", but different "File types" (within the same category), they can be shown as one resource with more than one file type download buttons
Example: Missing Migrants ↓csv ↓xls
Proposed Solution for Handling Different Structures of data
...
The idea is to have a meta service/API that would link to other services/APIs and allow the easy download of data given a standard set of input parameters. On top of such a meta service/API would be a user interface which would allow setting of those parameters and download by non technical users. Using the "wheat price kandahar" example, I could imagine a meta sercieservice/API user choosing parameters like "service": "prices", "type": "commodities", "provider": "WFP", "country": "Afghanistan", "adm1": "Kandahar", "Commodity": "wheat", "date": "08/03/2022".
Could this power the HDX UI allowing searches like "wheat price kandahar" to produce helpful results?
Idea for a Data Cube
Typically we make data available in different forms like by indicator or by country by making separate datasets with their own data. This makes accessing the data fast but complicates scrapers which must do the breakdowns so mostly data is just broken down by country on HDX. A data cube enables data to be modelled and viewed in multiple dimensions. Is there a way that data which could be stored in some sort of data cube so that it can be viewed in different ways like by country, admin 1 or indicator could be stored in some sort of data cubewithout keeping multiple copies of the data?