DATAtourisme

Rdfs:label obligatoire pour les classes ?

Bonjour,

D’après la documentation de l’ontologie, le rdfs:label fait partie des propriétés requises donc obligatoires pour les classes. Sauf erreur de ma part, les classes et sous classes de EntertainmentAndEvent et de PointOfInterest ne semble exposer cette propriété.

Merci pour votre retour à ce sujet.

Bonsoir,

Le rdfs:label est obligatoire pour les instances des PointOfInterest, autrement écrit : la propriété label est obligatoire pour les objets touristiques (POI).
Les classes sont des moules qui « produisent » des objets. Classe (informatique) — Wikipédia
Si vous voulez utiliser les rdfs:label des classes il faut charger l’ontologie.

Le fichier natif RDF est ici → datatourisme.ttl · master · datatourisme / ontology · GitLab

Si vous êtes plus à l’aise avec des données plates, les labels en français sont disponibles en CSV ici → Documentation/classes_fr.csv · master · datatourisme / ontology · GitLab

La première colonne est l’identifiant (URI) de la classe, la deuxième son label en français, la troisième l’identifiant de la classe parente et la dernière le label de cette classe parente.
Les identifiants (URI) sont ceux que vous allez trouver dans vos flux.

Merci d’avoir posé la question, des entêtes seront ajoutées à ces fichiers CSV lors de la prochaine version.

Cordialement.

Merci pour votre retour. Aussi, est-il possible de faire une jointure en requête SPARQL avec le fichier RDF pour récupérer le label des classes ?

Mon objectif est d’obtenir des mots clés relatifs à un objet événement. Les propriétés « hasTheme » répondent à ce besoin. Cependant, les noms des classes, auxquelles se rapportent un objet, apportent des informations intéressantes en terme de mots clés. Ces informations sont complémentaires aux propriétés « hasTheme ». Je ne comprend d’ailleurs pas le logique « métier » de l’ontologie en termes de répartition entre les informations de « hasTheme » et celles des labels de noms de classes.

Voici un extrait de la requête que j’envisage pour être plus concret dans mes propos.

PREFIX rdfs: http://www.w3.org/2000/01/rdf-schema#
PREFIX rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
PREFIX schema: http://schema.org/
PREFIX : https://www.datatourisme.gouv.fr/ontology/core#
PREFIX dt_tour_rsc: https://www.datatourisme.gouv.fr/resource/core#
PREFIX foaf: http://xmlns.com/foaf/0.1/
PREFIX ebucore: http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#
PREFIX dc: http://purl.org/dc/elements/1.1/

SELECT
?nom
?description
(GROUP_CONCAT(DISTINCT LCASE(?mot_cle); SEPARATOR=’;’) AS ?mots_cles) # Mots clés issus de :hasTheme
(GROUP_CONCAT(DISTINCT LCASE(?mot_cle_2); SEPARATOR=’;’) AS ?mots_cles_2) # Mots clés issus des labels des noms de classe
WHERE {
?obj_event rdf:type :EntertainmentAndEvent .
?obj_event rdfs:label ?nom .
?obj_event :hasDescription [
dc:description ?description
] .
OPTIONAL {
?obj_event :hasTheme ?obj_tags .
?obj_tags rdfs:label ?mot_cle .
FILTER(langMatches(lang(?mot_cle), ‹ fr ›)) .
}
?obj_event rdf:type ?rubriques
OPTIONAL {
?obj_event rdf:type [ rdfs:label ?mot_cle_2] .
?mot_cle_2 rdfs:subClassOf :EntertainmentAndEvent .
}
}
GROUP BY
?nom
?description

Merci pour votre aide

Bonjour

Pour des raisons de performances de la plateforme, les requêtes complexes ne peuvent pas être traitées sur l’espace diffuseur.
Vous disposez cependant d’autres manières de réaliser ce que vous voulez :

  • soit en installant l’API (il existe un environnement docker pour vous faciliter la tache datatourisme / docker-stack · GitLab) sur votre poste de travail et en téléchargeant toutes les données ou une sélection, vous pourrez ainsi faire ce que vous souhaitez sans limitation.
  • soit vous installez une instance de blazegraph sur votre poste de travail et téléchargez les données que vous souhaitez pour les charger dedans, vous y chargerez aussi le fichier ttl de l’ontologie disponible sur framagit et vous pourrez lancer la requête que vous voulez
    L’une ou l’autre ne sont pas longues à mettre en oeuvre

Bonjour,

Merci pour votre retour et suggestions de contournement du problème. Je vais investiguer ces pistes. Cependant mon objectif est de pouvoir télécharger quotidiennement le flux à partir de ma plateforme web en utilisant un format d’échange propriétaire en CSV. Je ne suis donc pas certain que les solutions API ou blazer répondent à mon besoin.

Cordialement