Creating geometry object from two lat/long doubles in SPARQL

213 views Asked by At

I would like to get some places from DBPedia in certain area, and that would be easy if those points would had geometry property. However, all they have is georss:point. I have converted this to two doubles, but I cannot convert them to geo:geometry object that can be supplied to location filter.

The code I have thus far:

PREFIX  xsd:  <http://www.w3.org/2001/XMLSchema#>
SELECT  ?name
        ?abstract 
        ?ns 
        ?ew
WHERE
  {  ?m                               foaf:name  ?name
  .  ?m                            georss:point  ?coord
  .  ?m  <http://dbpedia.org/ontology/abstract>  ?abstract
  .  BIND( xsd:double(strbefore( ?coord, " " ))  AS  ?ns )
     BIND(  xsd:double(strafter( ?coord, " " ))  AS  ?ew )
     BIND(                  geo:Point(?ew, ?ns)  AS  ?geo ) # <-- I have problem with this
     FILTER (bif:st_intersects (?geo, bif:st_point(?geo), 10))
     FILTER (LANG(?abstract) = "en")
  }

If you know any way to convert those or other filtering method, please enlighten me. :)

1

There are 1 answers

0
TallTed On

There is not enough information here to give you a simple and clear answer.

However, I think you may be able to figure it out from the examples in the GEOSPARQL documentation for Virtuoso, the DBMS engine which hosts DBpedia. There's more here.