DATAtourisme

Avec quel back-end manipulez vous les données?

Bonjour,

Je souhaite savoir comment vous faite pour récupérer et travailler la data.
Vous utilisez une librairie pour Symfony ? Java ?

Si je souhaite utiliser Java c’est possible ? Comment faite vous ? Avec quelle librairie ? Il faut que je travaille avec GraphQL ? merci

Bonjour,

Les données issues de DATAtourisme sont au format RDF, un modèle de graphe destiné à décrire des ressources et leurs relations. L’utilisation GraphQL n’est pas obligatoire, elle offre une alternative simplifiée à la manipulation de données RDF.

Pour profiter de la richesse des données de DATAtourisme, vous pouvez les charger et manipuler grâce à une librairie RDF. Vous pourrez alors, selon l’usage que vous souhaitez en faire, constituer votre propre format de données.

Chez Conjecto, nous utilisons principalement Java pour la manipulation de données RDF. La librairie Apache Jena a notre préférence, mais il en existe d’autres, comme Eclipse RDF4J.

Voici un exemple de chargement et manipulation de données de DATAtourisme grâce à Apache Jena et son composant de stockage sur disque TDB.

  1. Créer une base de données TDB à partir d’un fichier RDF (xml, nt, ttl…) issu de DATAtourisme avec l’utilitaire inclut dans Apache Jena :
tdbloader --loc /home/user/datatourisme fichier.nt fichier2.nt
  1. Utilisation de l’API Jena dans Java :
// Création de l'instance TDB
String directory = "/home/user/datatourisme" ;
Dataset dataset = TDBFactory.createDataset(directory) ;

// début d'une transaction
dataset.begin(ReadWrite.READ) ;

// Récupération du modèle par défaut
Model model = dataset.getDefaultModel() ;

// Récupération des POI
Resource poiType = model.createResource("https://www.datatourisme.gouv.fr/ontology/core#PointOfInterest");
ResIterator iterator = model.listResourcesWithProperty(RDF.type, poiType)
iterator.forEachRemaining(resource -> {
    // Pour chaque POI, afficher son nom
    String label = resource.getProperty(RDFS.label, "fr").getString();
    System.out.println(label);
});
   
// fin de la transaction
dataset.end() ;

Il ne reste plus qu’à vous familiariser avec les concepts de manipulation de données graphe. La documentation de Jena vous aide à les appréhender pas à pas : https://jena.apache.org/tutorials/rdf_api.html

Ce n’est qu’une possibilité parmi tant d’autres. Vous pourriez notamment être intéressé par le language de requête SPARQL.

Cordialement.