For the past few weeks, I’ve been working on the client side of my research project. To recap, the research is to integrate geospatial query filtering capabilities into RDF triple stores and I’m using RDF-3X as the backend triple store. The preview few entries (1, 2) are about the server part of the system where our idea of integrating and evaluating spatial capabilities are implemented. The server is mostly done, so I’ve moved to the client part, which submits a query to the server and obtain the results.

For the client, I decided to make it web-based (a website). The server talks through TCP/IP connection, so the client doesn’t have to be web-based. The reason I choose to implement a web-based client is that I want to integrate a map into the interface for the user to build geospatial query filters. The most simple map library is Google Maps API and it’s primarily web-based interfaced via JavaScript. I’m been working tremendously with JavaScript which is good for me to learn more advanced features of the language, and I have been very satisfied with the Maps API with its good documentation and ease of use.

Query Builder

Currently, the query builder of the client looks like the following figure.

The client interface is divided into 3 parts. The first part is a SPARQL query editor, where user can type in the SPARQL query. The second part is the query builder where parameters of query pattern and spatial query filters can be built. The geographic regions on the map in the figure above can be interpreted as filtering the query results to within 1km from Auburn Library, 2km from Auburn High School, and within the rectangular region between Thach Ave and Opelika Road. After the user click on the Insert button of the query builder, a pattern or a filter is inserted into the editor. The third and final part of the interface are the sample queries which are listed under the query builder.