Monthly Archives: March 2011

Why rewrite EATS using Topic Maps?

There are a few reasons I am rewriting EATS as a Topic Maps application. The first impetus was wanting to have the option of treating some or all of the infrastructural data (such as authorities, entity types, and name types) as entities in the system. As it stands, there is a strict separation between the two: infrastructural data allows one to make statements about entities, but it is not possible to make statements about the infrastructural data.

The most obvious use case here is with authorities. If I am using EATS to keep track of books and publishers, and I myself am a publisher, I will want to be both an authority and an entity, and it would be silly if those two elements are not linked (if not actually the same).

Now, I could easily extend the existing EATS to link these two, and the same for the other pieces of infrastructural data, but it’s hardly an elegant solution. The EATS model is tied directly into the underlying database storage model, making this sort of extension invasive and ugly. By building the EATS model as a topic map, I’m adding in a layer that isolates the EATS view of the world from the specifics of storing the data. This frees me to be able to extend or modify the model arbitrarily.

For example, I want to be able to handle the part of Through the Looking-Glass, and What Alice Found There where the Knight talks about the name of the song being called one thing, while it’s name is another, and the song itself is some third identifier. This is easy to do if, as in a topic map, almost everything is a topic and the EATS system simply needs to be told that a particular topic is typed as an entity, and can therefore be edited and displayed as such. Marvellous!

Another reason for using Topic Maps is that it has a defined procedure for handling automatic merging of topic maps. This is very useful for a system that is all about collecting information from multiple sources. If my EATS system has a record for an entity, and your EATS system has a record for that same entity, it would be great if I could just merge in the information from your record (or all the records from your system) and sort everything out – remove duplicate information, etc. Again, I could implement this in the old EATS, but it would be an EATS-specific thing — I wouldn’t have the benefits of being able to use other people’s code, merge in non-EATS data, and the like.

Finally, in doing this rewrite, I’ve been forced to take a step back and reconsider the application as a whole. This has lead to some insights (authority records are useless, and the way they are used in old EATS is flat out wrong) and refinements (I’m not going to bother with anything other than IRIs as identifiers). In turn, that will simplify usage and hopefully make it easier to interlink EATS systems and whatever they might point to.

Pelagios Linking Open Data Workshop

Linking Open Data: the Pelagios Ontology Workshop

(A reminder that all KCL colleagues are welcome to attend this event, but registration is essential. To register please visit

The Pelagios workshop is an open forum for discussing the issues associated with and the infrastructure required for developing methods of linking open data (LOD), specifically geodata. There will be a specific emphasis on places in the ancient world, but the practices discussed should be equally applicable to contemporary named locations. The Pelagios project will also make available a proposal for a lightweight methodology prior to the event in order to focus discussion and elicit critique.

The one-day event will have 3 sessions dedicated to:
1) Issues of referencing ancient and contemporary places online
2) Lightweight ontology approaches
3) Methods for generating, publishing and consuming compliant data

Each session will consist of several short (15 min) papers followed by half an hour of open discussion. The event is FREE to all but places are LIMITED so participants are advised to register early. This is likely to be of interest to anyone working with digital humanities resources with a geospatial component.

Preliminary Timetable
10:30-1:00 Session 1: Issues
2:00-3:30 Session 2: Ontology
4:00-5:30 Session 3: Methods

Confirmed Speakers:

Johan Alhlfeldt (University of Lund) Regnum Francorum online
Ceri Binding (University of Glamorgan) Semantic Technologies Enhancing
Links and Linked data for Archaeological Resources
Gianluca Correndo (University of Southampton) EnAKTing
Claire Grover (University of Edinburgh) Edinburgh Geoparser
Eetu Mäkelä (University of Aalto) CultureSampo
Adam Rabinowitz (University of Texas at Austin) GeoDia
Sebastian Rahtz (University of Oxford) CLAROS
Sven Schade (European Commission)
Monika Solanki (University of Leicester) Tracing Networks
Humphrey Southall (University of Portsmouth) Great Britain Historical
Geographical Information System
Jeni Tennision (

Pelagios Partners also attending are:

Mathieu d’Aquin (KMi, The Open University) LUCERO
Greg Crane (Tufts University) Perseus
Reinhard Foertsch (University of Cologne) Arachne
Sean Gillies (Institute for the Study of the Ancient World, NYU) Pleiades
Mark Hedges, Gabriel Bodard (KCL) SPQR
Rainer Simon (DME, Austrian Institute of Technology) EuropeanaConnect
Elton Barker (The Open University) Google Ancient Places
Leif Isaksen (The University of Southampton) Google Ancient Places

Topic Maps with Django

As part of a rewrite of the Entity Authority Tool Set, I have written an implementation of the Topic Maps API in Django, cunningly titled TMAPI in Django.

As it stands, it passes its 288 unit tests, but has no UI, since I only need it for the internal use of EATS. It would of course be useful to have both a visualisation and an editing interface added to it, but I won’t be doing it any time soon without some inducement.

I mention it here as a spur to encourage CCH (and anyone else in the DH community) to start seriously working with these sorts of technologies.