DATAtourisme

Requête avec coordonnées géographique

Bonjour,

Après plusieurs tentatives infructueuses via GraphDB, pouvez vous m’aider sur l’élaboration d’une requête SPARQL qui récupérerait l’ensemble des POI à moins de 30km de plusieurs points centraux ?
Cette reqûete doit retourner l’ensemble des POI à moins de 30km du point central A ainsi que ceux à moins de 30km du point B, ect… en excluant les POI en doublons

Cette requête m’aidera à générer un flux sur dataTourisme que je traiterais ensuite via un ETL.

Merci d’avance pour votre réponse

Bonjour,

Est-ce que quelqu’un avec de l’exprience en SPARQL aurait une idée svp ou citer un endroit où je pourrais approndir mes recherches pour arriver à une solution ?

L’éditeur de requête visuel permet de faire une recherche par rayon :

CONSTRUCT { 
  ?res <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <urn:resource>. 
} WHERE { 
<http://www.bigdata.com/queryHints#Query> <http://www.bigdata.com/queryHints#optimizer> "None".
  ?res <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://www.datatourisme.fr/ontology/core#PointOfInterest>.
  ?res <https://www.datatourisme.fr/ontology/core#isLocatedAt> ?654389455e045.
  ?654389455e045 <http://schema.org/geo> ?654389455e0c6.
  {
    SERVICE <http://www.bigdata.com/rdf/geospatial#search> {
      ?654389455e0c6 <http://www.bigdata.com/rdf/geospatial#search> "inCircle".
      ?654389455e0c6 <http://www.bigdata.com/rdf/geospatial#predicate> <https://www.datatourisme.fr/ontology/core#latlon>.
      ?654389455e0c6 <http://www.bigdata.com/rdf/geospatial#searchDatatype> <http://www.bigdata.com/rdf/geospatial/literals/v1#lat-lon>.
      ?654389455e0c6 <http://www.bigdata.com/rdf/geospatial#spatialCircleCenter> "48.112765203533#-1.67429". 
      ?654389455e0c6 <http://www.bigdata.com/rdf/geospatial#spatialCircleRadius> "30".
    }
    <http://www.bigdata.com/queryHints#SubQuery> <http://www.bigdata.com/queryHints#optimizer> "Static".
  } 
}

Vous pouvez faire un UNION pour ajouter d’autre localisation, même si nous vous suggérons plutôt de faire des flux différents :

CONSTRUCT { 
  ?res <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <urn:resource>. 
} WHERE { 
  <http://www.bigdata.com/queryHints#Query> <http://www.bigdata.com/queryHints#optimizer> "None".
  {
    ?res <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://www.datatourisme.fr/ontology/core#PointOfInterest>.
    ?res <https://www.datatourisme.fr/ontology/core#isLocatedAt> ?654389455e045.
    ?654389455e045 <http://schema.org/geo> ?654389455e0c6.
    {
      SERVICE <http://www.bigdata.com/rdf/geospatial#search> {
        ?654389455e0c6 <http://www.bigdata.com/rdf/geospatial#search> "inCircle".
        ?654389455e0c6 <http://www.bigdata.com/rdf/geospatial#predicate> <https://www.datatourisme.fr/ontology/core#latlon>.
        ?654389455e0c6 <http://www.bigdata.com/rdf/geospatial#searchDatatype> <http://www.bigdata.com/rdf/geospatial/literals/v1#lat-lon>.
        ?654389455e0c6 <http://www.bigdata.com/rdf/geospatial#spatialCircleCenter> "43.529742#5.447427". 
        ?654389455e0c6 <http://www.bigdata.com/rdf/geospatial#spatialCircleRadius> "30".
      }
      <http://www.bigdata.com/queryHints#SubQuery> <http://www.bigdata.com/queryHints#optimizer> "Static".
    }
  }
  UNION
  {
    ?res <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://www.datatourisme.fr/ontology/core#PointOfInterest>.
    ?res <https://www.datatourisme.fr/ontology/core#isLocatedAt> ?654389455e045.
    ?654389455e045 <http://schema.org/geo> ?654389455e0c6.
    {
      SERVICE <http://www.bigdata.com/rdf/geospatial#search> {
        ?654389455e0c6 <http://www.bigdata.com/rdf/geospatial#search> "inCircle".
        ?654389455e0c6 <http://www.bigdata.com/rdf/geospatial#predicate> <https://www.datatourisme.fr/ontology/core#latlon>.
        ?654389455e0c6 <http://www.bigdata.com/rdf/geospatial#searchDatatype> <http://www.bigdata.com/rdf/geospatial/literals/v1#lat-lon>.
        ?654389455e0c6 <http://www.bigdata.com/rdf/geospatial#spatialCircleCenter> "48.112765203533#-1.67429". 
        ?654389455e0c6 <http://www.bigdata.com/rdf/geospatial#spatialCircleRadius> "30".
      }
      <http://www.bigdata.com/queryHints#SubQuery> <http://www.bigdata.com/queryHints#optimizer> "Static".
    }
  }
}

Cordialement

1 « J'aime »