INTERSTAT / Statistics-Contextualized

Models for the dissemination of contextualized statistical data
6 stars 3 forks source link

Specify SEP client application #11

Open FranckCo opened 2 years ago

FranckCo commented 2 years ago

First mockup at the end of November

francescadag commented 2 years ago

The following document contains an analysis of how the client application for the SEP pilot could be structured. The mockups of the services of this application are also shared. INTERTSTAT Client Applications Analysis - SEP pilot.docx

SEP pilot mockups.zip

francescadag commented 2 years ago

Check the possibility to add language annotations to both age group and gender labels, to distinguish the labels (in the GraphDB sep-test repository). In the Figure an example of lables to which the annotations should be added.

SEP_label_1

SEP_label_2

francescadag commented 2 years ago

Problem regarding the French NUTS: in the sep-test repository many NUTS labels have duplicate Codes. The wrong NUTS (that are not connected to any data triple) must be removed, cleaning the repository from unnecessary triples (Figure shows an example of the duplicates). nuts

francescadag commented 2 years ago

Problem regarding the Italian Census data, only for the observations concerning the female gender: these observations erroneously contain two values. The highest is incorrect because it is the total value (male and female) present in the source data.

The following figure shows an example SEP female

The following figures show the observation values extrapolated from the source data famale_obs

tot_obs

francescadag commented 2 years ago

Front-end: Improve the user experience in the interaction with the Geographic map component (improving the dynamism of the component, always adding the position of the Municipality selected by the user, etc.).

francescadag commented 2 years ago

Front-end: Correct typo errors (e.g., Municipality in capital letter and lowercase, etc.) and possibly modify/enrich the service descriptions to provide further indications and information to the user.

FranckCo commented 2 years ago

I'm not sure I understand the point on language tags. If you browse https://interstat.eng.it/graphdb/resource/isc/age-Y10-14 and export as Turtle, you will see that the language tags are in the triple store, although they do not appear on the workbench interface.

age-y10-14

Same thing for https://interstat.eng.it/graphdb/resource/isc/sex-2, for example.

francescadag commented 2 years ago

I'm not sure I understand the point on language tags. If you browse https://interstat.eng.it/graphdb/resource/isc/age-Y10-14 and export as Turtle, you will see that the language tags are in the triple store, although they do not appear on the workbench interface.

age-y10-14

Same thing for https://interstat.eng.it/graphdb/resource/isc/sex-2, for example.

Hi Franck, regardless of how the resource is displayed in GraphDB (see image I had shared), the problem I had encountered was in the query results where I was getting both strings in both languages and therefore I had duplicate results; the filter on the language was not working. I shared an example query with the language filter and commented you can see the filters I had to add to get around the problem:

PREFIX qb: <http://purl.org/linked-data/cube#>
PREFIX sdmx-measure: <http://purl.org/linked-data/sdmx/2009/measure#>
PREFIX isc: <http://id.cef-interstat.eu/sc/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX ap_Istat: <http://www.interstat.it/air_pollution#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

select distinct ?nuts3 ?nuts3_Code ?gender ?age_Class ?ageClassURI
where {
?obs qb:dataSet isc:ds1 ;
sdmx-measure:obsValue ?population ;
isc:att-nuts3 ?nuts3URI ;
isc:dim-sex ?sexURI ;
isc:dim-lau ?lauURI ;
isc:dim-age ?ageClassURI .
?nuts3URI skos:prefLabel ?nuts3 .
?nuts3URI skos:notation ?nuts3_Code .
?ageClassURI skos:prefLabel ?age_Class .
?sexURI skos:prefLabel ?gender .

FILTER (regex (?nuts3_Code , "^(IT)")).

FILTER (lang(?age_Class) = 'en').
FILTER (lang(?gender) = 'en').

#FILTER contains(str(?age_Class), "years") .
#FILTER contains(lcase(str(?gender)), "male") .
}
LIMIT 20

But now, language filters actually work. I don't know if these annotations were added later or if I had made some mistake in the queries, but I remember that the problem was there.

In any case, the important aspect is that it is now resolved, thanks