DATAtourisme

Problème de filtre avec GraphQL

Bonjour,

je ne comprends pas pourquoi ma requête ne marche pas. Voici la requête :

{
      poi (
        from: 0,
        size: 20,
        filters: [
          { 
            schema_address: { 
              schema_postalCode: { 
                eq: "38430" 
              } 
            }
          }
        ]
      ) 
      {
        total
        results {
          _uri
          dc_identifier
          rdfs_label
          rdf_type
          isLocatedAt {
            schema_address {
              schema_postalCode
            }
          }
        }
      }
    }

et j’ai l’erreur suivante lorsque je lance mon fichier php :

/bin/php "/home/yoan/Documents/Stage répertoire/Fusion-graphe/Tests-networkX/Representations/graph_datatourisme.php"
array(2) {
  ["data"]=>
  array(1) {
    ["poi"]=>
    NULL
  }
  ["errors"]=>
  array(1) {
    [0]=>
    array(2) {
      ["message"]=>
      string(76) "Not valid type for argument "filters" in query "poi": (no details available)"
      ["locations"]=>
      array(1) {
        [0]=>
        array(2) {
          ["line"]=>
          int(6)
          ["column"]=>
          int(9)
        }
      }
    }
  }
}

J’aurai ensuite une autre question plus générale : comment faire pour automatiser la connexion au flux sachant qu’il faut placer le fichier qu’on récupère via le flux et charger ensuite les données via une commande curl puis se connecter via un docker-compose.

Bonjour,

Il manque un « étage » dans votre filtre (qui est bien présent dans dans la deuxième partie de votre requête).

{
      poi (
        from: 0,
        size: 20,
        filters: [
          { 
            isLocatedAt {
              schema_address: { 
                schema_postalCode: { 
                  eq: "38430" 
                } 
              }
            }
          }
        ]
      ) 
      {
        total
        results {
          _uri
          dc_identifier
          rdfs_label
          rdf_type
          isLocatedAt {
            schema_address {
              schema_postalCode
            }
          }
        }
      }
    }

Pour votre deuxième question :

  • Les flux DATAtourisme sont des dumps

  • Suivant la base de donnée cible il faut importer les données

  • Si vous voulez directement utiliser Blazegraph et GraphQL il faut chaque jour vider la base de donnée RDF et la remplir avec le nouveau dump/flux du jour DATAtourisme.

    • Par exemple avec un script bash qui : Curl pour récupérer le flux DATAtourisme, remplacer le précédent dump dans le dossier data, puis docker compose down -v ; docker compose up -d
    • Ou tout avec Curl : Curl pour récupérer le flux DATAtourisme, Curl pour vider la base de donnée (avec la requête DROP ALL), et Curl pour charger le dump dans Blazegraph

Cordialement