This is an update post on the spatial semantic web GeoStore project. I have made significant progress on the project and the server part (the part that evaluate queries) had reached a milestone and I have implemented all intended queries which are window query, range query, and nearby (knn) query. These queries are explained in this previous post.

Though all the initial intended aforementioned queries were implemented, there are still a couple more query types or scenarios I’d like to implement and further extend the capability of the query server. You may ask, why implement more queries, which the initial requirements for the paper and the project was already fulfilled? The reason is that the current spatial query filters can only take literal constraints. For example

SELECT ?name ?loc
WHERE {
    ?e <name> ?name.
    ?e <location> ?loc.
    within(?loc, 30.1, 29.5, 500)
}

Notice the arguments for within() are all literals.

I want to extend the filters so that at least the location argument can take variable bindings. This is useful for queries like find the location of “Auburn High School”, and find all gas stations within 2 kilometers radius of it. A sample query of this form would look like

SELECT ?name ?loc
WHERE {
    ?auh <name> "Auburn High School".
    ?auh <location> ?center.
    ?e <name> ?name.
    ?e <location> ?loc.
    within(?loc, ?center, 2000)
}

In addition, I think it’d be nice to to something with UNION.