The Database API reference discovery
This page describes how the (version 6) University Map Database API can be used to navigate among geographical objects and thereby determine relevant ref codes.
Introduction
API calls of the form
http://map.cam.ac.uk/v6.json?ref=ref|ref|...
yield the geographical entities (buildings, sites, colleges, entrances and nonuniversity premises known to the map) with the given refs.
However, this assumes you know what the refs are.
For those buildings etc which have names, searching for them by name either with the API or the interactive map will provide the record from which its ref can be determined. But (a) colleges yield the institution not the geographical college site when looked up by name, and (b) many entities, especially entrances, do not have names at all.
Therefore, the API also provides the ability to look up all the subordinate geographical entities for some entity (the geographical entities are arranged in a hierarchy) using a wildcard and thereby determine related (and ultimately, if necessary, all) references.
Geographical entity hierarchy
There are five kinds of geographical entity stored in the University Map database:
- site (comprising university properties grouped in one physical location)
- college (which is like a site, but refers to college properties)
- building
- entrance (to a building or to a site)
- nonuniversity (selected buildings/sites useful to display and reference)
Except for nonuniversity, which stands alone, these are organised into a hierarchy.
site/college | |----- subsite | | | |----- building/sub-building | | | | | |----- (building) entrance | | | |----- (site) entrance | | | |----- (staircase) entrance | |----- building/sub-building | | | |----- (building) entrance | |----- (site) entrance | |----- (staircase) entrance
A subsite looks just like a site, but represents a lesser group of buildings. It is not geographically contained within a site, but is linked to a parent site because of the way in which University Property Codes have historically been organised, and in the case of colleges because many colleges have separate outlying subsites.
A sub-building is just a convenient mechanism for broadening the property codes while keeping the underlying numbering scheme.
References explained
The hierarchy is reflected in the syntax of references, the codes which uniquely identify these entities. These reference codes are store along with their outlines in OpenStreetMap from which the data is obtained, using the property ("tag") ref.
References derive originally from University Estates Department property codes. These do not include college properties, so the numbering scheme has been extended to include these, and do not originally have any concept of subsites.
These property codes comprise an upper case letter which identifies a site followed by three digits identifying the building. For example M039 is the Cockcroft Building on the New Museums Site ("M"). (Estates did use an earlier numbering scheme which can be seen on the white sign boards at many entrances to the central sites. However these were abandoned in favour of this more regular scheme, and the sign boards have just not been updated).
Sometimes it is useful to represent an "Estates" building as more than one building, either because it actually is more than one (usually abutting) physical structure, or a code has been used to cover a group of not-very-distinct buildings, as in some of the farms, or it is useful to break up a large building into pieces where it is occupied in distinct parts (the Austin Robinson Building on the Sidgwick Site for example). These are represented by adding a period and another number to the reference (a decimal part, if you like). For example, the southern part of the Austin Robinson Building (the bit with the Sidgwick Buttery) is S012.3
Entrances are then represented by the building (for doors) or site (for gates etc) by the building or site code followed by a dash and one or more upper case letters. For example S012.3-A
Subsites are formed by following the site code with a slash and some more upper case letters. For example L/MATHS is the group of buildings and grounds of the Centre for Mathematical Studies.
Colleges follow the same pattern. Their codes for their main sites are their sub-domain names in upper case. For example CLARE for Clare College. Outliers are just like subsites, hence CLARE/MEM is Clare's Memorial Court property. Note that LUCY-CAV is unusual, being the only one with a dash in the code.
Finally, college staircases, though individually part of particular buildings, are actually represented college-wide. Hence they are subiordinate to college sites and subsites, and their letter is separated from the site code by two dashes. Thus DOW--P is Downing's P staircase, which happens to be in the East Range though there is nothing to tell you that.
In detail
If X stands for one or more upper case letters, nnn for three digits and n for digits in general,
sites/colleges: | X | |||
subsites: | X/X | |||
site and subsite entrances: | X-X | X/X-X | ||
buildings: | Xnnn | X/Xnnn | ||
sub-buildings: | Xnnn.n | X/Xnnn.n | ||
building entrances: | Xnnn-X | Xnnn.n-X | X/Xnnn.n-X | X/Xnnn.n-X |
college staircases: | X--X | X/X--X |
Wildcards
Finally, then, you can ask for the descendants of a referenced item using an asterisk as a wildcard in place of the relevant piece.
There can only be one wildcard per ref. Also, it is not a general regular expression: a wildcard matches the whole of one piece, i.e. X, nnn and n above.
A single asterisk provides a starting point in the absence of any other, providing all the top-level sites and colleges, thus:
http://map.cam.ac.uk/v6.json?ref=*
Given a particular site, CLARE say (obtained from the result of the above) one can then obtain all its subsites (if any), thus:
http://map.cam.ac.uk/v6.json?ref=CLARE/*
Note that buildings of a site or subsite yields sub-buildings as well, because they aren't actually subdivisions, thus:
http://map.cam.ac.uk/v6.json?ref=S*
includes S031.3 (as in the example above). However, one can also obtain the sub-buildings of a building code even if the building that would be represented with that code does not actually exist. Hence:
http://map.cam.ac.uk/v6.json?ref=S031.*
This is useful in circumstances where you have the original property code but don't know whether it is divided up or not in the map. This will be useful in those circumstances.
http://map.cam.ac.uk/v6.json?ref=SO31%7CS031.*
All the staircases at Clare College (main site only):
http://map.cam.ac.uk/v6.json?ref=CLARE--*
and at Memorial Court:
http://map.cam.ac.uk/v6.json?ref=CLARE/MEM--*
Combining patterns
As with non-wildcard references, several can be requested at once, separating them with a vertical bar. Therefore, all entrances of both M031.1, M031.2 and M031.3 can be obtained thus:
http://map.cam.ac.uk/v6.json?ref=M031.1-*%7CM031.2-*%7CM031.3-*
Note that you can't use ref=M031.*-* as you can only have one wildcard per reference.
Non university premises
In general, non-university premises do not have standard University property codes, for obvious reasons. They may not even have ref tags in OpenStreetMap. Therefore their "reference" is more general, comprising the name of the operator of the premises, followed by a colon, followed the the 'ref' if there is one or the building or site name (which may be the same as the operator name) if not. For example:
Arbury Road Baptist Church:Arbury Road Baptist Church Anglia Ruskin University:Anglia Ruskin University (Cambridge Campus)
No particular distinction is made between sites and buildings for non-university properties in the record returned (though they are drawn differently on the map).
There are a few buildings operated by non-university organisations which do actually have University property codes (usually because they are leased from the University). Hence MRC-CBU occupies:
Medical Research Council:L050
In this case, note that all its entrances can be obtained with
http://map.cam.ac.uk/v6.json?ref=L050-*
not including the "Medical Research Council:" part.