After spending lots of time looking into RDF and how we could use RDF as the data model for the new OxPoints system we finally decided to give it a try. One of the big problems we had with RDF was the difficulty of storing dimensional data as one of the key features of the new OxPoints system should be its ability to record the change of Oxford University over time. However, RDF does not really cope with change and we had to think about how to work around this. We presented a detailed description and two possible workarounds in previous posts:
Both solutions are somewhat similar as they try to add additional RDF statements to define the validity of other statements. Solution one was to use statement reification and to add temporal information on individual statements. The other way we saw was to use named graphs and use different graphs to group statements that talk about the same time span. In the end we decided to go with the second solution, as it seemed to be the cleaner and more efficient solution.
As the platform for the new system we chose Java with Jena as the underlying RDF triple store.
We have spend the last weeks developing the prototype and so far the results are promising. The minimal requirements for the new system were to do everything the old system does, which was basically to allow for point queries (ask for a specific unit, or for a specific type) and to transform the results into KML.
Besides KML the new system offers transformations into JSON and RDF for any kind of resultset produced by the system and it is able to handle the temporal aspect of the data. In fact the new system is much more powerful and not specific to OxPoints at all. It is an RDF to Java object mapper (comparable to object relational mapping systems) and we are currently working on documentation and we are hoping to make more information available soon.
A first demo we produced, built upon the new OxPoints, is a Greasemonkey script that adds links to the OLIS (Oxford Libraries Information System) result pages, to display where a particular library is, using Google maps. The demo is not yet publically available but we are working hard on publishing this and more demos soon.