(Latin: loco[s co]lligo ≈ 'I link places')
Locolligo is a single-page, browser-based javascript application or the formatting, linking, and geolocation of datasets, with a particular focus on Cultural Heritage. The greatest barrier to the visualisation, sharing, and linking of datasets that have a locational facet is the variety of ways and formats in which information has been collected, recorded, and stored. Locolligo seeks to dissolve that barrier. It can be used on a standalone PC, tablet, or smartphone, without any dependency on a database or other server infrastructure; basic features will even work without an internet connection.
This software originated as an output of the AHRC-funded Locating a National Collection (LaNC) project. Based at the British Library in London, the project was part of the AHRC programme Towards a National Collection: Opening UK Heritage to the World. Locolligo addresses the LaNC project's aim of helping cultural heritage organisations to use geospatial data, and together with development of Peripleo is a major step in scoping 'technical recommendations for the development of a national discovery system whereby objects about a topic of interest can be readily discovered from a variety of sources, represented in the context of their historic environment, and referenced in time and landscape'.
Locolligo employs standards developed by the Pelagios Network, and will (for example) conform datasets for use in the Network's Peripleo map visualisation and Recogito annotation software, and generate metadata for the submission of datasets to the Network's historical geodata Registry.
It facilitates the linking of related records (subjects and objects) based on definable criteria (predicates):
- between datasets,
- to points within existing gazetteers of places-names, and
- to coordinates picked on modern or historical maps.
The knowledge graphs (collections of semantic triples which are the basis of RDF) thereby created will enable the automated discovery (within a knowledge base) of further links between data records.
Because Locolligo runs in the browser, no installation is necessary, but you are encouraged to read the User Guides before heading to https://docuracy.github.io/Locolligo/.
- Convert CSV to JSON (extended Linked Places Format)
- Conform geodata to WGS84 from:
- OSGB (Ordnance Survey of Great Britain)
- EPSG:29900 (Irish Grid Eastings & Northings)
- Standardisation of annotation fragment selectors (see here). Useful for display of IIIF fragments.
- Implementation of schema.org vocabulary to facilitate dataset indexing and discovery.
- Fetch CITATION.cff and incorporate in dataset as CSL-JSON.
- Facilitate editing of dataset metadata.
- Add converted datasets to user's local GeoData Library (indexedDB store).
- Find places in map view (using GeoNames API).
- Data Linking
- Curated interlinking of datasets (using GeoData Library)
- Programmatic linking of Wikidata settlements (best text match within 15km, using Levenshtein algorithm).
- Cultural Heritage sites within radius: Wikidata.
- GeoNames toponyms.
- World Historical Gazetteer.
- Wikipedia articles: GeoNames API.
- Archaeological finds within radius: PAS API.
- Historical Plaques: OpenPlaques.org API.
- Geograph photographs: Geograph Syndicator API..
- Geocoding of place-names (Geonames).
- URLs and Persistent IDs (PIDs)
- Geocoding of un-gazetteered places
- Create or adjust feature coordinates with reference to basemap.
- Use georeferenced historical basemaps.
Further development is as-yet unfunded, but continues on an ad hoc basis. If you have any particular requirements or requests, please tag @docuracy on Twitter using the hashtag #Locolligo, or use other contact details given here. The following are ideas currently under consideration:
- Pelagios Registry metadata generation.
- Recogito meta-gazetteer generation.
- Map preview of Geocoding suggestions.
- Local (private) storage of API keys.
- Use of IndexedDB for persistent storage of currently- and recently-edited datasets.
- Export of datasets in Turtle (TTL) or other RDF formats.
- Improved JSON editing, perhaps using JSONedtr.
- Support for multi-location records and for line and polygon geometries.
- Capture historical basemap citations when georeferencing.
- Improve place-name spotting in textual data by training Google Vertex AI on archival descriptions.
Dataset size is limited by local device memory, although a PC with 16GB of memory easily copes with 25,000 records in a 12-field csv input file. It may be possible to implement chunking if necessary for larger files. Memory use is mitigated by use of a spatially-indexed IndexedDB store for a local GeoData Library.
Much of the functionality of this software is provided through the use of pre-existing JavaScript libraries, notably the following:
- JQuery simplifies cross-browser implementation of HTML document traversal and manipulation, event handling, animation, and Ajax: https://jquery.com/
- Papa Parse is 'the first (and so far only) multi-threaded CSV parser', for converting between delimited text and JSON: https://www.papaparse.com/
- JSON Formatter renders JSON objects in HTML with a collapsible navigation: https://azimi.me/json-formatter-js/
- UUIDJS generates RFC-compliant Universally Unique IDentifiers (UUIDs) in JavaScript: https://github.com/uuidjs/uuid
- Movable Type Scripts convert between latitude/longitude & OS National Grid References: https://www.movable-type.co.uk/scripts/latlong-os-gridref.html
- Proj4js transforms point coordinates from one system to another: https://github.com/proj4js/proj4js
- shp2geojson.js converts zipped shapefiles to geoJSON: https://github.com/gipong/shp2geojson.js
- Citation.js fetches citation data from a CITATION.cff file and converts it to CSL-JSON: https://github.com/citation-js
All original work within this software is offered under the terms of the CC-BY 4.0 International licence detailed here.
Please tag @docuracy on Twitter using the hashtag #Locolligo, or use other contact details given here.