Bonjour,
je travaille sur les données de DataTourisme.
Je ne connais pas PHP (je suis plutôt Javascript) et je ne peux donc pas utiliser l’API GraphQL.
En SPARQL mes objets (comme dans ?sujet ?predicate ?objet) sont souvent des uri qui me renvoient à d’autres triplets qui eux-même me renvoient à d’autres triplets etc, souvent jusqu’à 5 ou 6 niveaux avant de enfin trouver une donnée. Je dois donc créer des requêtes en cascade. Exemple pour récupérer les données d’un POI :
PREFIX ...
SELECT ?p1 ?value1 ?p2 ?value2 ?p3 ?value3 ?p4 ?value4 ?p5 ?value5
WHERE{
<https://data.datatourisme.gouv.fr/10/000283ba-f94b-3bce-8f57-e5c10bec6cd4> ?p1 ?value1 .
OPTIONAL {?value1 ?p2 ?value2.
OPTIONAL {?value2 ?p3 ?value3.
OPTIONAL {?value3 ?p4 ?value4.
OPTIONAL {?value4 ?p5 ?value5.
OPTIONAL {?value5 ?p6 ?value6. }
}
}
}
}
}
ORDER BY ?p1 ?value1 ?p2 ?value2 ?p3 ?value3 ?p4 ?value4 ?p5 ?value5
Même en filtrant comme je peux à chaque niveau je récupère environ 150 triplets par POI, dont environ 120 inutiles. Et si je remplace l’identifiant d’un POI comme dans l’exemple par une sélection sur une région par exemple je vais récupérer plusieurs milliers de triplets à traiter.
1ème question : Je ne suis pas expert en SPARQL (euphémisme), est-ce que ma requête est bonne ?
2ème question : Est-il de fait obligatoire d’utiliser la base de DataTourisme avec GraphQL, donc PHP ? Dans ce cas je pense monter un serveur Javascript qui enverrait ses syntaxes GraphQL à un serveur PHP, celui du Docker par exemple, pour qu’il les exécute et lui renvoie les données qui seraient alors traitées en Javascript. Je délire ?
Merci de vos réponses