Skip to content

Commit

Permalink
Merge branch 'staging'
Browse files Browse the repository at this point in the history
  • Loading branch information
annelhote committed Mar 1, 2024
2 parents 16f40e8 + 603c3bb commit db7fdb0
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 21 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[![Discord Follow](https://dcbadge.vercel.app/api/server/wzNzMtnK?style=flat)](https://discord.gg/wzNzMtnK)
![license](https://img.shields.io/github/license/dataesr/bso-ui)
![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/dataesr/bso-ui)
![Build](https://github.com/dataesr/bso-ui/actions/workflows/production.yml/badge.svg)
[![Production deployment](https://github.com/dataesr/bso-ui/actions/workflows/production.yml/badge.svg)](https://github.com/dataesr/bso-ui/actions/workflows/production.yml)

Application web du Baromètre de la Science Ouverte accessible ici :
* fr : https://barometredelascienceouverte.esr.gouv.fr/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,36 +29,54 @@ function useGetData(observationSnap, domain) {
});
const res = await Axios.post(ES_API_URL, query, HEADERS);
const data = res.data.aggregations.by_year.buckets
// Sort data by publication year ascending
.sort((a, b) => a.key - b.key)
// Filter data on 2012 < publication year < lastObservationYear
.filter(
(el) => el.key < parseInt(lastObservationSnap.substring(0, 4), 10)
&& el.doc_count
&& el.key > 2012,
);
const categories = data.map((year) => year.key);
const series = data[0].by_type.buckets
// Find all years in data (xAxis)
const years = data.map((year) => year.key);
// Find all types accross years (different lines)
const types = [];
data.forEach((year) => year.by_type.buckets
.filter((item) => item.key !== 'preprint')
.map((type) => ({
color: colors[type.key],
data: [],
key: type.key,
name: intl.formatMessage({ id: `app.publication-genre.${type.key}` }),
.forEach((type) => {
if (!types.find((item) => item.key === type.key)) {
types.push({
color: colors[type.key],
data: [],
key: type.key,
name: intl.formatMessage({
id: `app.publication-genre.${type.key}`,
}),
});
}
}));
data.forEach((year) => {
year.by_type.buckets
.filter((item) => item.key !== 'preprint')
.forEach((type) => {
const percents = series.find((item) => item.key === type.key);
const yOa = type.by_oa.buckets.find((item) => item.key === 1)?.doc_count || 0;
const yTot = type.doc_count;
// For each publication type
types.forEach((type) => {
// For each publication year
years.forEach((year) => {
// Find corresponding data for this type for this year
const d = data
.find((item) => item.key === year)
.by_type.buckets.find((item) => item.key === type.key);
if (d) {
const yOa = d.by_oa.buckets.find((item) => item.key === 1)?.doc_count || 0;
const yTot = d.doc_count;
const y = (yOa / yTot) * 100;
percents.data.push({ y, yOa, yTot });
});
type.data.push({ y, yOa, yTot });
} else {
type.data.push({ y: 0, yOa: 0, yTot: 0 });
}
});
});

return {
categories,
series,
categories: years,
series: types,
};
},
[domain, intl],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ function useGetData(beforeLastObservationSnap, intl) {
const [isLoading, setLoading] = useState(true);

const getDataByField = useCallback(async () => {
if (!beforeLastObservationSnap) return {};
const query = getFetchOptions({
key: 'publicationsFromHalWithoutDoi',
objectType: ['publications'],
Expand Down
2 changes: 1 addition & 1 deletion src/translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -1252,7 +1252,7 @@
"app.faq.bso.entry": "What is the BSO used for?",
"app.faq.bso.definition": "The Open Science Monitor (BSO) is a tool to support the national open science policy. Its originality lies in its open approach, without recourse to proprietary sources, consistent with the vision of data sharing, the creation of open services and the promotion of the diversity of French scientific production. It measures the progress of open science in France through indicators of the openness of scientific publications, clinical trials, observational studies, doctoral theses, research data and research software.",
"app.faq.changement.entry": "Why do the figures displayed may change over time?",
"app.faq.changement.definition": "The Monitor is based on a living database, maintained and updated every week by the MESR team. These updates include weekly feedback from institutions, quarterly updates of metadata from Crossref and HAL, and once a year, the inclusion of metadata from PubMed and those collected via web scraping. Thus the scope of publications on which the indicators are calculated changes, generally at the margin, each week, and more substantially each quarter and year, which can lead to variations of a few points in the monitoring indicators.",
"app.faq.changement.definition": "The Monitor is based on a living database, maintained and updated every week by the MESR team. These updates include weekly feedback from institutions, quarterly updates of metadata from Crossref and HAL, and once a year, the inclusion of metadata from PubMed and those collected via web scraping. Thus the scope of publications on which the indicators are calculated changes, generally at the margin, each week, and more substantially each quarter and year, which can lead to variations of a few points in the monitoring indicators.<linebreak></linebreak>As a result, any comparison with previous data would be inconsistent due to the evolution of this perimeter. Only comparisons between different obseravtion dates on a like-for-like basis make sense.",
"app.faq.bso-local.entry": "How to make your own monitor?",
"app.faq.bso-local.definition": "The monitor can be adapted for each French institution, laboratory or funding agency able to compile its own list of publications. A tutorial is available in the tab dedicated to local variations. It is recommended to reconstitute the entire corpus each year.",
"app.faq.classification.entry": "How are the scientific field classifications calculated?",
Expand Down
2 changes: 1 addition & 1 deletion src/translations/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@
"app.faq.apc.entry": "Comment sont calculés les APC ?",
"app.faq.apc.definition": "Si une publication est présente dans <cta0>OpenAPC</cta0>, le montant de son APC est immédiatement extrait de cette source. Sinon, nous avons choisi de calculer une estimation des APC en faisant une moyenne des APC des autres publications de ce journal pour l'année de publication concernée. Si pas ou trop peu de données sont disponibles, cette moyenne a été faite sur les APC des publications de cet éditeur pour l'année de publication concernée. Si les estimations précédentes échouent, la valeur dans le <cta1>DOAJ</cta1> est retenue.",
"app.faq.changement.entry": "Pourquoi les chiffres affichés peuvent changer dans le temps ?",
"app.faq.changement.definition": "Le Baromètre s'appuie sur une base de données vivante, entretenue et mise à jour chaque semaine par l'équipe du MESR. Ces mises à jour incluent les remontées hebdomadaires des établissements, les mises à jour trimestrielles des métadonnées de Crossref et de HAL, et une fois par an, l'inclusion des métadonnées de PubMed et celles collectées via scraping du web. Ainsi le périmètre de publications sur lequel sont calculés les indicateurs change, en général à la marge, chaque semaine, et plus substantiellement chaque trimestre et année, pouvant conduire à des variations de quelques points sur les indicateurs de suivi.",
"app.faq.changement.definition": "Le Baromètre s'appuie sur une base de données vivante, entretenue et mise à jour chaque semaine par l'équipe du MESR. Ces mises à jour incluent les remontées hebdomadaires des établissements, les mises à jour trimestrielles des métadonnées de Crossref et de HAL, et une fois par an, l'inclusion des métadonnées de PubMed et celles collectées via scraping du web. Ainsi le périmètre de publications sur lequel sont calculés les indicateurs change, en général à la marge, chaque semaine, et plus substantiellement chaque trimestre et année, pouvant conduire à des variations de quelques points sur les indicateurs de suivi.<linebreak></linebreak>Par conséquent, toute comparaison avec des données antérieures serait inconsistante en raison de l'évolution de ce périmètre. Seules des comparaisons entre différentes dates d'obseravtion à périmètre constant fait sens.",
"app.faq.bso.entry": "A quoi sert le BSO ?",
"app.faq.bso.definition": "Le Baromètre de la science ouverte (BSO) est l'outil d'accompagnement de la politique nationale de science ouverte. Son originalité réside dans son approche ouverte, sans recours aux sources propriétaires, cohérent avec la vision du partage de données, la création de services ouverts et la valorisation de la diversité de la production scientifique française. Il permet de mesurer la progression de la science ouverte en France par le biais d'indicateurs d'ouverture des publications scientifiques, essais cliniques, études observationnelles, thèses de doctorat, données de la recherche et logiciels de recherche.",
"app.faq.bso-local.entry": "Comment faire son propre Baromètre ?",
Expand Down

0 comments on commit db7fdb0

Please sign in to comment.