MTES-MCT / metadata-postgresql

Plume : gestion des métadonnées du patrimoine PostgreSQL
https://mtes-mct.github.io/metadata-postgresql/
GNU Affero General Public License v3.0
0 stars 1 forks source link

Erreur : Couverture géographique #152

Closed StormKlaus closed 8 months ago

StormKlaus commented 11 months ago

Dans Plume, suite à la saisie suivante (en mode édition) : -> dans le champ "Couverture géographique", je choisis les "Département français (INSEE)" et sélectionne ensuite mon département "Landes"

Lorsque je consulte la fiche de MD Plume, un URL se met en place sur le mot "Landes" de ma "Couverture géographique", et cet URL n'est pas fonctionnel. Voici l'URL de la page Internet (Erreur 404) : https://id.insee.fr/geo/departement/40

Cordialement,

WREATCHED commented 11 months ago

Confirmation, sur l'ensemble des codes (https://id.insee.fr/geo/departement/27) seul https://id.insee.fr ne retourne pas d'erreur

alhyss commented 11 months ago

Je confirme que les URI du registre INSEE ne sont plus valides en tant qu'URL, depuis déjà quelque temps. J'espérais que ce serait corrigé, mais ça ne semble pas parti pour.

À changer de notre côté, donc. Par défaut Plume utilise les URI des termes de vocabulaire pour les hyperliens, mais il est possible de spécifier un autre URL en ajoutant des propriétés foaf:page aux termes. C'est ce que je vais faire. Il s'agira soit d'URL de requête sur le registre INSEE, de la forme https://rdf.insee.fr/sparql/describe?uri=http%3A%2F%2Fid.insee.fr%2Fgeo%2Fdepartement%2F40 (l'URI devient un paramètre de l'URL), soit d'autres URL renvoyant vers des pages plus intelligibles par un être humain.

alhyss commented 11 months ago

Corrigé : tous les vocabulaires INSEE ont de nouvelles URL pour les hyperliens. Je suis partie sur des requêtes sur le registre INSEE pour le moment. Les remplacer ultérieurement ne posera aucun problème tant que les nouvelles URL peuvent être générées automatiquement à partir des termes de vocabulaire.

À toute fin utile, les commandes utilisées pour cette fois :

from urllib.parse import quote
from plume.rdf.namespaces import FOAF, RDF, SKOS
from plume.rdf.rdflib import URIRef
from plume.rdf.utils import graph_from_file, abspath

for vocabulary in ('insee_department', 'insee_commune', 'insee_region', 'insee_individual_territories'):
    g = graph_from_file(abspath(f'rdf/data/vocabularies/{vocabulary}.ttl'), format='turtle')
    for s in g.subjects(RDF.type, SKOS.Concept):
        h = g.add((s, FOAF.page, URIRef(f'https://rdf.insee.fr/sparql/describe?uri={quote(str(s))}')))
    with open(abspath(f'rdf/data/vocabularies/{vocabulary}.ttl'), 'wb') as dest:
        dest.write(g.serialize(encoding='utf-8'))