Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Metawal Valid : alerte indexation thesaurus InfraSig #897

Open
marceaulouis opened this issue Aug 19, 2024 · 17 comments
Open

Metawal Valid : alerte indexation thesaurus InfraSig #897

marceaulouis opened this issue Aug 19, 2024 · 17 comments
Assignees
Labels

Comments

@marceaulouis
Copy link

marceaulouis commented Aug 19, 2024

~ 750 fiches ont une alerte indiquant que le mot clé "Open Data" n'est pas dans le thesaurus InfraSig

image

Modifier la fiche corrige l'alerte (et le mot clé reste bien présent...)

Idem pour des mots clé HVD, mais là je suppose que je dois ré-intégrer le thesaurus ?

@fxprunayre
Copy link

Est-ce que c'est le même problème avec "Reporting INSPIRENO" en prod eg. https://metawal.wallonie.be/geonetwork/srv/fre/catalog.search#/metadata/409969f0-8f68-4edc-8c36-047c19599794 ?

@marceaulouis
Copy link
Author

Je n'avais jamais remarqué en prod, ça a l'air d'être la même chose oui

@fxprunayre
Copy link

En local, j'ai, dans l'index

http://localhost:9200/mw-records/_doc/999ef018-235f-4a38-94c9-cc0c79da61b8

      {
        "string": "indexingErrorMsg-keywordNotFoundInThesaurus",
        "type": "warning",
        "values": {
          "keyword": "Open Data",
          "thesaurus": "geonetwork.thesaurus.external.theme.infraSIG"
        }
      }
    ],

En XML
http://localhost:8080/geonetwork/srv/api/records/999ef018-235f-4a38-94c9-cc0c79da61b8/formatters/xml

      </mri:descriptiveKeywords>
      <mri:descriptiveKeywords>
        <mri:MD_Keywords>
          <mri:keyword>
            <gco:CharacterString>Extraction_DIGNO</gco:CharacterString>
          </mri:keyword>
          <mri:keyword>
            <gco:CharacterString>BDInfraSIGNO</gco:CharacterString>
          </mri:keyword>
          <mri:keyword>
            <gco:CharacterString>DGO3_BDREF</gco:CharacterString>
          </mri:keyword>
          <mri:keyword>
            <gco:CharacterString>WalOnMap</gco:CharacterString>
          </mri:keyword>
          <mri:keyword>
            <gco:CharacterString>Open Data</gco:CharacterString>
          </mri:keyword>
          <mri:keyword>
            <gco:CharacterString>PanierTelechargementGeoportail</gco:CharacterString>
          </mri:keyword>
          <mri:keyword>
            <gco:CharacterString>Reporting INSPIRENO</gco:CharacterString>
          </mri:keyword>
          <mri:type>
            <mri:MD_KeywordTypeCode codeList="http://standards.iso.org/iso/19115/resources/Codelists/cat/codelists.xml#MD_KeywordTypeCode" codeListValue="theme" />
          </mri:type>
          <mri:thesaurusName>
            <cit:CI_Citation>
              <cit:title>
                <gcx:Anchor xlink:href="https://metawal.wallonie.be/thesaurus/infrasig">Mots-clés InfraSIG</gcx:Anchor>
              </cit:title>
              <cit:date>

Lors de l'indexation, la requête faite sur le thésaurus

Query [query=SELECT DISTINCT id,uppc,lowc,fre_prefLabel,fre_note FROM {id} rdf:type {skos:Concept},[{id} gml:BoundedBy {} gml:upperCorner {uppc}],[{id} gml:BoundedBy {} gml:lowerCorner {lowc}],[{id} skos:prefLabel {fre_prefLabel} WHERE lang(fre_prefLabel) LIKE "fr" IGNORE CASE],[{id} skos:scopeNote {fre_note} WHERE lang(fre_note) LIKE "fr" IGNORE CASE] WHERE fre_prefLabel LIKE "Open Data" USING NAMESPACE skos=<http://www.w3.org/2004/02/skos/core#>,gml=<http://www.opengis.net/gml#>, interpreter=KeywordResultInterpreter]

Mais dans le thésaurus
https://github.com/SPW-DIG/metawal-core-geonetwork/blob/metawal-4.4.x/web/src/main/webapp/WEB-INF/data/config/codelist/external/thesauri/theme/infraSIG.rdf#L42

<rdf:Description rdf:about="https://metawal.wallonie.be/thesaurus/infrasig/Opendata">
	<skos:prefLabel xml:lang="fr">Open data</skos:prefLabel>
</rdf:Description>

Open data au lieu d'Open Data.

Donc j'aurai tendance à dire que c'est un problème de différentes versions du datadir (qui contient les thésaurus) dans les environnements.

On peut déjà tester en valid de :

  • supprimer le thésaurus infraSIG
  • importer celui de prod
  • réindexer

Ensuite on regarde les alertes restantes et mettre à jour les thésuarus dans github pour qu'on utilise les mêmes versions.

@GeryNi
Copy link

GeryNi commented Aug 21, 2024

Merci Francois pour l'explication. Ok pour moi je test ça demain matin.

@GeryNi
Copy link

GeryNi commented Aug 21, 2024

J'ai corrigé en VALID, cela me semble correct.
@marceaulouis , peux tu me confirmer ?

@marceaulouis
Copy link
Author

Ca semble ok pour InfraSIG. Je suppose qu'on doit faire pareil pour
geonetwork.thesaurus.external.theme.high-value-dataset-applicable-legislation et geonetwork.thesaurus.external.theme.high-value-dataset-category
qui indiquent encore les mêmes messages

@GeryNi
Copy link

GeryNi commented Aug 21, 2024

Merci Marceau, voilà c'est fait. Je vois encore 65 Warnings, je regarde ça demain.

@GeryNi
Copy link

GeryNi commented Sep 19, 2024

Question en test moissonage de la prod: pourquoi rajoute t'on l'application profile ?
image

@vbombaerts
Copy link

Sans avoir regardé en détail, je dirais qu'on ajoute ça pour le classer dans le bon élément de l'index pour le Géoportail nouvelle version.
C'est ça qui pose problème ?

@GeryNi
Copy link

GeryNi commented Sep 26, 2024

Je propose de mettre à jour la règle dans le harvester avec:

  {
    "condition": "count(./mdb:distributionInfo/mrd:MD_Distribution/mrd:transferOptions/mrd:MD_DigitalTransferOptions/mrd:onLine[cit:CI_OnlineResource/cit:linkage/gco:CharacterString[contains(.,'https://geoportail.wallonie.be/walonmap')]]) > 0 and count(./mdb:distributionInfo/mrd:MD_Distribution/mrd:transferOptions/mrd:MD_DigitalTransferOptions/mrd:onLine[cit:CI_OnlineResource/cit:applicationProfile]) < 1",
    "xpath": "/mdb:MD_Metadata/mdb:distributionInfo/mrd:MD_Distribution/mrd:transferOptions/mrd:MD_DigitalTransferOptions/mrd:onLine[cit:CI_OnlineResource/cit:linkage/gco:CharacterString[contains(.,'https://geoportail.wallonie.be/walonmap')]]/cit:CI_OnlineResource",
    "value": "<gn_add><cit:applicationProfile xmlns:cit=\"http://standards.iso.org/iso/19115/-3/cit/2.0\" xmlns:gco=\"http://standards.iso.org/iso/19115/-3/gco/1.0\"><gco:CharacterString>mw-gp-wom</gco:CharacterString></cit:applicationProfile></gn_add>"
  }

@vbombaerts
Copy link

A vérifier, mais la règle dans le harvester ne sera plus nécessaire si on fait les modifications directement sur les fiches en prod
--> cf. #916

@fxprunayre
Copy link

59 erreurs restantes sur temp

image

Dans les fiches

image

Quelques avertissements qui reviennent souvent:

pour infraSIG

  • Mot-clé Reporting INSPIRENO introuvable dans geonetwork.thesaurus.external.theme.infraSIG.

autres thésaurus

  • Mot-clé eau introuvable dans geonetwork.thesaurus.external.theme.httpinspireeceuropaeucodelistEnvironmentalDomain-EnvironmentalDomain.
  • Mot-clé Économie, Business, PME, Développement économique, Emploi introuvable dans geonetwork.thesaurus.local.theme.themes_ODWB.
  • Mot-clé masse d'eau au titre de la directive-cadre sur l'eau (2000/60/CE) introuvable dans geonetwork.thesaurus.external.theme.httpinspireeceuropaeucodelistZoneTypeCode-ZoneTypeCode.
  • Mot-clé district hydrographique introuvable dans geonetwork.thesaurus.external.theme.httpinspireeceuropaeucodelistZoneTypeCode-ZoneTypeCode.
  • Mot-clé Location of sites (Habitats Directive) introuvable dans geonetwork.thesaurus.external.theme.httpinspireeceuropaeumetadatacodelistPriorityDataset-PriorityDataset.
  • Mot-clé directive CE relative à la protection de l'eau introuvable dans geonetwork.thesaurus.external.theme.gemet.
  • Mot-clé aquifère introuvable dans geonetwork.thesaurus.external.theme.gemet.
  • Mot-clé Observation de la terre et environnement introuvable dans geonetwork.thesaurus.external.theme.high-value-dataset-category.

@vbombaerts
Copy link

J'ai fait un alignement des environnement en ce qui concerne les thésaurus ce matin...

@vbombaerts
Copy link

Les erreurs sont présentes en metawal-temp. Donc ça ne vaut pas la peine de les corriger puisque le contenu sera écrasé par le contenu de metawal.wallonie.
Les mêmes fiches sont d'ailleurs en erreur mais en environnement de prod actuel, les erreurs sont bien remontées au niveau du listing. Une idée ?

En temp
image

En prod
image

Le filtre sur les erreurs est quand même bien pratique pour batcher les corrections !

@fxprunayre
Copy link

Oui en fait c'est lié aux messages qui sont maintenant multilingues. Donc dans l'index, le champ erreur contient la même clé de base (ie. mot clé introuvable) et ensuite on a des variables qui indiquent quel mot clé.

image

"indexingErrorMsg": [
                        {
                            "string": "indexingErrorMsg-keywordNotFoundInThesaurus",
                            "type": "warning",
                            "values": {
                                "keyword": "Open Data",
                                "thesaurus": "geonetwork.thesaurus.external.theme.infraSIG"
                            }
                        }
                    ],

Mais pas dans le même champ. Je vais voir si on peut faire une aggrégation sur les 2.

@fxprunayre
Copy link

fxprunayre commented Oct 8, 2024

Caractéristique du champ indexingErrorMsg

"indexingErrorMsg": {
          "properties": {
            "string": {
              "type": "keyword"
            },
            "type": {
              "type": "keyword"
            },
            "values": {
              "type": "nested",
              "properties": {
                "keyword": {
                  "type": "text",
                  "fields": {
                    "keyword": {
                      "type": "keyword",
                      "ignore_above": 256
                    }
                  }
                },
                "record": {
                  "type": "text",
                  "fields": {
                    "keyword": {
                      "type": "keyword",
                      "ignore_above": 256
                    }
                  }
                },
                "schema": {
                  "type": "text",
                  "fields": {
                    "keyword": {
                      "type": "keyword",
                      "ignore_above": 256
                    }
                  }
                },
                "thesaurus": {
                  "type": "text",
                  "fields": {
                    "keyword": {
                      "type": "keyword",
                      "ignore_above": 256
                    }
                  }
                }
              }
            }
          }
        },

Une aggrgéation de type

GET gn-records/_search
{
  "aggs": {
    "indexingErrorMsg": {
      "terms": {
        "field": "indexingErrorMsg.values.keyword.keyword"
      }
    }
  },
  "size": 0
}

ne fonctionne pas.

On pourrait faire:

GET gn-records/_search
{
  "aggs": {
    "indexingErrorKeyword": {
      "nested": {
        "path": "indexingErrorMsg.values"
      },
      "aggs": {
        "thesaurus": {
          "terms": {
            "field": "indexingErrorMsg.values.thesaurus.keyword"
          },
          "aggs": {
            "keywords": {
              "terms": {
                "field": "indexingErrorMsg.values.keyword.keyword"
              }
            }
          }
        }
      }
    }
  },
  "size": 0
}

mais on ne supporte pas le rendu des aggrégations de ce type (sur nested field + sub aggs)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants