IT Services



OxPoints




1. What is OxPoints?

OxPoints aims to provde full and accurate geolinking information for the University of Oxford.

The OxPoints dataset consists of names, postal addresses, web addresses and co-ordinates (latitude and longitude) for all the departments, colleges and other buildings/units of the University, along with some of the relationships between them.

The intent is that these data be usable in a wide variety of ways, from simple address queries to more complex maps and mashups.

We encourage all consumers of OxPoints data to join the oxpoints-users@maillist.ox.ac.uk mailing list, which you can subscribe to by sending a blank e-mail to oxpoints-users-subscribe@maillist.ox.ac.uk. The list is used for service change announcements and user discussion and support.

Queries not suitable for a mailing list can be directed to the OxPoints team at OUCS at oxpoints@oucs.ox.ac.uk.



2. What data are stored in OxPoints?

OxPoints is built atop an RDF store, containing descriptions of many entities within the University.



2.1. Types of objects held in OxPoints

Each type of object has its own class in the OxPoints namespace (http://ns.ox.ac.uk/namespace/oxpoints/2009/02/owl#). We currently have good coverage for the following types:
  • College
  • Department
  • Museum
  • Library
  • Building (for those owned by the University)
  • Carpark (for those owned by the University)
Other defined types are:
  • Site (a contiguous space containing buildings or other such entities)
  • Space (a space within a building, including a set of rooms used for the same function)
  • Room
  • WAP (wireless access point)
  • Division (academic or administrative division of the University, e.g. Humanities; Academic Services and University Collections)
  • Faculty
  • Group (a group of people or team working towards some common goal)
  • Image (actually in the FOAF namespace)


2.2. Properties stored in OxPoints

Where possible we use RDF predicates (properties) defined by others as opposed to defining our own. This facilitates interoperability with other parts of the linked data web. We currently make use of the following predicates:
In addition to the above, there are the following OxPoints-specific predicates defined in the OxPoints namespace:
  • oxp:occupies - a unit which occupies the building, site, room etc
  • oxp:hasOUCSCode - the unique code used by OUCS to refer to a unit [list all OUCS codes]
  • oxp:hasOLISCode - the pre-Aleph code used by the Bodleian Libraries to refer to a library [list all OLIS codes]
  • oxp:hasOLISAlephCode - the code used by the Bodleian Libraries to refer to a library [list all OLIS Aleph codes]
  • oxp:hasOBNCode - the unique code used by Estates to refer to a building/room [list all OBN codes]
  • oxp:hasFinanceCode - the unique code used by Finance to refer to a sub-unit or unit (also called a two-three code) [list all Finance codes]
  • oxp:hasDivisionCode - the unique code used by Finance to refer to a division [list all Division codes]
  • oxp:hasDepartmentCode - the unique code used by Finance to refer to a department [list all Department codes]
  • oxp:hasITHomepage - URL for the unit's IT information
  • oxp:hasWeblearn - URL for the unit's WebLearn presence
  • oxp:primaryPlace - the main building/site occupied by the unit
  • oxp:hasLibraryHomepage - URL for the unit's Library homepage


2.3. Time-based queries

OxPoints also holds time-based data, though this is currently not always historically accurate. By adding a date=YYYY-MM-DD query parameter to any query URL, you can request data for that date.

By way of example, consider the Computing Services, which has had three names through the course of its history:

Dates can be given omitting the day or month, in which case they default to the 1st and January, respectively.



3. Querying OxPoints

The data is stored in an RDF datastore and can be accessed by means of pre-defined query URLs or by constructing more complex queries using SPARQL.

The OxPoints service is located at http://oxpoints.oucs.ox.ac.uk/; all queries should be performed relative to this URL.

Queries are constructed from a path (e.g. /occupies/oucs:oucs/), an optional format extension (e.g. .kml) and an optional set of query parameters (e.g. ?date=1999).



3.1. Query paths

Query paths take one of the following forms:
/all
Returns all the data held within OxPoints.
/id/OxpointsID
The canonical URI for an resource controlled by OxPoints. Returns a description of that resource.
/type/TypeName
Retrieves all entities with the type given by TypeName
/Identifier
Identifier may be an OxPoints ID or one of oucs:code, olis:code, obn:code, finance:code. Multiple identifiers may be separated with a pipe or vertical bar (|).
/relation/Identifier
Returns all x such that x relation Identifier is true. Identifier is as described above.
/Identifier/relation
Returns all x such that Identifier relation x is true. Identifier is as described above.

Relations can be any of most of the predicates used in OxPoints. For example, /title/Keble+College returns all entities called "Keble College". /oucs:linc/occupies returns all places occupied by Lincoln College.



3.2. Query parameters

We've already met the date= parameter. Other parameters are:
not
Filters results to exclude those that have the given predicate defined.
indirect
Extends the filter to take into account indirect properties. For example the location of a room would be inferred to be the same as its containing building.
jsCallback
Adds a function call around the returned data for when one is utilising JSONP with the .js format extension.
jsonNesting
Declares the recursion depth when outputting as .json or .js.


3.3. Format extensions

OxPoints can provide data in a number of formats:
  • .xml - RDF/XML (default if format not specified)
  • .n3 - Notation3
  • .nt - N-Triples (a simplified RDF serialization syntax)
  • .json - JavaScript Object Notation
  • .js - Same as .json but adding a callback given by jsCallback (which defaults to "oxpoints")
  • .gpx - GPX waypoints
  • .tomtom - Data suitable for loading into TomTom satellite navigation devices
  • .kml - KML (suitable for use with Google Maps and Google Earth)
  • .txt - Simplified plain text
  • .csv - Comma-separated values

RDF/XML, Notation3 and N-Triples are standard RDF serializations. These and the JSON and JavaScript serializations provide all the available data, whereas the remainder are simplified, omitting various fields.



3.4. Examples

http://oxpoints.oucs.ox.ac.uk/oucs:kebl.json
All information about the unit with OUCS code 'kebl' (Keble College), in JSON format
http://oxpoints.oucs.ox.ac.uk/finance:EN.xml
All information about the unit with finance code 'EN' (the Computing Services), in RDF/XML format
http://oxpoints.oucs.ox.ac.uk/olis:BOD.xml
All information about the unit with OLIS code 'BOD' (the Bodleian Library), in RDF/XML format
http://oxpoints.oucs.ox.ac.uk/obn:154.n3
All information about the Holder Building (number 154)
http://oxpoints.oucs.ox.ac.uk/type/Department.kml
All departments in KML - can be viewed in Google Maps
http://oxpoints.oucs.ox.ac.uk/oucs:exet,jesu,linc.kml
Exeter, Jesus and Lincoln Colleges, selected using their OUCS codes.
http://oxpoints.oucs.ox.ac.uk/type/Library|Museum.n3
All libraries and museums in Notation3 format.
http://oxpoints.oucs.ox.ac.uk/oucs:engsci,bioch/occupies.n3
Everything occupied by either Engineering Science or Biochemistry in Notation3 format.


4. SPARQL endpoint

OxPoints also exposes a SPARQL endpoint at /sparql which will return results as per the W3C SPARQL protocol definition.

SPARQL provides a more expressive way to query OxPoints than can be acheived using the query URLs described above.

[Note: The endpoint currently only supports SELECT queries; we may support more at a later date.]