Contributing to a Pleiades Ecosystem

Pleiades is a gazetteer of ancient places, but one of the things that makes it really useful is that they publish their data in open, easily-consumable formats. This post will highlight some recent experiments in re-using that data – my goal in developing most was primarily becoming familiar with new formats, tools, and data, but I hope that by giving them back to the community others can benefit from them, either through use or looking behind the scenes at their code.

The pleiades-geojson repository was initially motivated by GitHub’s recent support for GeoJSON views and embeds. I just wanted to see what Pleiades GeoJSON would look like on GitHub. Of course, Pleiades offers GeoJSON representations of places themselves, but I wanted to get the entire thing into a GitHub repo, in a sustainable, updatable – and polite – way. That meant using the data dumps Pleiades makes available. I started with CSV as it’s a relatively straightforward representation to work with, though it does require some understanding of the Pleiades place model to use effectively. The result was a script which can ingest the CSV dumps and produce GeoJSON which is mostly similar to the representation served up by Pleiades. The primary difference (to my knowledge) is the lack of authorship information. Future work with the richer RDF dumps might make it possible to put more data in the GeoJSON output.

A direct result of this is the ability to see GitHub GeoJSON views of Pleiades data. An interesting question that arises from keeping GeoJSON in Git is how to visualize diffs and changes over time – I’d welcome pointers to any existing tools or work in this area.

Another side effect of putting this on GitHub is being able to use GitHub GeoJSON embeds, which leads me into my next project: Pleiades Static Search. “Static” in the name may be somewhat confusing, but all it refers to is that there’s no dynamic server-side process necessary. The result is a client-side search that populates results relatively fast in most cases. The code for this process is also available on GitHub – you can see just how simple it is, leveraging existing resources and frameworks.

The last project I’d like to highlight I’ve actually had brewing as a pure experiment for a while and am just finally taking this as an opportunity to round off some edges and kick it out the door. Itinerarium is an experiment in visualizing itineraries of ancient places – itineraries were a popular way of representing spatial relationships from antiquity through medieval times. This gave me a good opportunity to learn about and play with the Flickr/Instagram geographic search APIs, as well as a Javascript library named Davis for handling app routing/state. The Hadrian’s Wall itinerary was created by longitudinal sorting of the places in the Pleiades “Hadrian’s Wall” place. The Vicarello itineraries were a quick last-minute extraction from the RDF source provided by Pelagios, and may have some rough edges (pull requests accepted!). You can also call into Itinerarium with a list of Pleiades IDs (or just one), or a custom URL with your own JSON so long as it supports CORS. The result of visualizing itineraries of ancient places this way is an interesting mish-mash of ancient and modern: ancient sites and cultural heritage intermixed with modern scenes of day-to-day life. It can also turn up some very interesting photos, such as beautiful, richly annotated aerial photography of Hadrian’s Wall.