DATAtourisme

Récupération des données dans un excel

Bonjour !
Je suis un novice dans l’utilisation de base de donnée.

Mon objectif est à la fois simple mais complexe à mettre en place. Je souhaite pouvoir, à partir d’une macro Excel (VBA) pouvoir interroger la base de donnée. Je cherche à récupérer toutes les POI dans un rayon donné à partir de coordonnées GPS.

L’idéal serait de récupérer tout sous format JSON.

Je ne sais pas comment je pourrais faire cela, j’ai essayé de mettre en place Blazegraph sans succès, lorsque je veux charger le fichier rdf (curl -X POST -H « Content-Type:application/rdf+xml » --data-binary @flux-test.rdf « http://localhost:9999/blazegraph/namespace/kb/sparql ») cela ne fonctionne pas, sans même me donner de message d’erreur.

Si quelqu’un peut me donner un coup de main ça serait vraiment parfait !

Est-ce que vous désirez une intégration automatique complète (saisie des données dans Excel + click sur un bouton et le tableau Excel se remplit) ou semi automatique (création des données d’une manière ou d’une autre au format JSON et intégration dans Excel par VBA) ?
Dans le premier cas il faut que VBA dispose de l’équivalent de la fonction Javascript fetch pour attaquer l’API de Blazegraph. Ca existe ? Ensuite il faudra analyser le flux fourni par Blazegraph et remplir Excel mais alors inutile de passer par du JSON.
Dans le second cas c’est beaucoup plus simple et il existe peut-être des clients Blazegraph qui créent des exports au format JSON. Mais dans ce cas il me semble plus simple d’utiliser Graphdb, ça s’installe en un click, ça vient avec une interface sous forme de client web, intégration des données Datatourisme au format RDF en un click, index et fonction de recherche géographiques, possibilité de créer et mémoriser des requêtes SPARQL, export au format JSON.
Le lien de téléchargement de la version gratuite fonctionnelle et sans limitation de durée n’est pas évident à trouver, le voilà pour Windows (existe aussi pour Mac et Debian) : https://download.ontotext.com/owlim/a27b8814-e670-11ec-861a-42843b1b6b38/GraphDB_Free-9.11.2.exe

1 « J'aime »

Merci de votre réponse !
Je souhaite une intégration complète dans l’Excel.
Je pense qu’il existe un équivalent de cette fonction en VBA. Les API que j’ai utilisé jusque là se présentaient sous forme d’une URL et retournaient un Json que j’utilisais sans problème (voir exemple suivant):

Dim request As New WinHttpRequest
    request.Open "get", "https://www.datajoule.fr/api/records/1.0/search/?dataset=bornes-de-recharge-pour-vehicules-electriques-irve&q=&rows=60&geofilter.distance=" + longitude + "%2C+" + latitude + "%2C+" + distance
    request.send
    If request.Status <> 200 Then
        MsgBox request.responseText
        Exit Sub
    End If
    
    Dim response As Object
    Set response = JsonConverter.ParseJson(request.responseText)

(C’est juste une API qui donne les bornes de véhicules électrique, c’est pas important)

Puis je viens voir ce qu’il y a dans response, ça fonctionne très bien.

Est ce que vous pensez que c’est possible de faire ça avec Blazegraph ? Avoir une URL du genre:
« http://localhost:9999/blazegraph/geofilter.distance=Longitude+latitude+distance » ?

Je suis désolé, mes questions sont peut être un peu naïves, mais l’utilisation de la base de donnée est vraiment compliquée pour des gens qui n’en ont jamais manipulée. Je n’ai pour l’instant même pas réussi à extraire la moindre information ni à faire fonctionner correctement l’API (même avec le tutoriel).