← Semantechs home Articles Feed

knowledge graphs · travel · Scotland · Ireland

Across the Water

Knowledge Graphs for a Journey from the Glen to Dingle

· Peter Winstanley · 19 min read

The invitation came from a friend in Dingle, at the far end of a peninsula in County Kerry, for a long weekend in November. From Glenmeadhanach it is a journey of two days. A small bus leaves the road end at ten past six, if somebody has booked it the day before. A train runs to Aberdeen, and another to Glasgow, which arrives at Queen Street, while the train for the coast leaves from Central, a walk away across the city centre. From Ayr a coach runs down the A77 to the ferry port at Cairnryan, and from there a boat crosses to Belfast. A bus into the city, and the Enterprise to Dublin. The next morning there is a tram across Dublin, a train to Tralee and a bus out along the peninsula.

Count them up. There are a dozen legs and eight or nine operators. There are three jurisdictions, two currencies, and signs in three languages: English, Gaelic and Irish. Each operator has its own timetable, its own website, its own app and its own names for the places it serves.

Now ask some ordinary questions:

  • What is the latest the traveller can leave the glen and still catch the boat?
  • If the coach is held up on the A77, will the ferry wait, and who rearranges the rest of the journey?
  • Can one ticket cover the whole trip, and what rights come with it?
  • Will every change be step-free, for a traveller who needs it to be?
  • Does the traveller need a passport, or a travel authorisation, and does a friend visiting from abroad?
  • What is the destination called: Dingle, An Daingean or Daingean Uí Chúis? Will a journey planner find it under any of them?
  • If a storm cancels the sailing, what are the alternatives, and who tells the traveller?

Each question has an answer, and each answer is held by someone different: the council that runs the demand-responsive bus; ScotRail; Traveline Scotland, which publishes the bus timetables; Stena Line, which runs the coach and the ferry; Translink in Northern Ireland; the two railways that jointly run the Enterprise; Transport for Ireland; Iarnród Éireann; Bus Éireann; the Home Office; and the authorities that decide what places are called. Each is good at its own part of the journey. Nobody is responsible for the whole of it, so the traveller becomes the integration layer, with a phone full of apps and a pocket full of tickets.

This is the sixth article in a series on knowledge graphs. The first five were for investigators and analysts (Joining the Dots), on the land question (Who Owns the Glen?), on the food system (Field to Fork and Back Again), on forests (The Wood and the Trees) and on electricity (Down the Line). The earlier pieces followed oats, timber and electrons. This one follows a person. The argument is the same: the facts exist, held by many keepers in many shapes, and the difficulty lies in the joins between them. A journey's bill of materials is its itinerary, and today the traveller assembles it by hand.

A short history of the crossing

For more than a century, the way from Scotland to Ireland was simple to describe. The boat train, known to passengers and railway staff as "the Paddy", ran to Stranraer Harbour, and passengers walked across the pier to the ferry. In November 2011 Stena Line moved its Belfast service a few miles up Loch Ryan to a new port at Cairnryan, and the link between train and boat was broken. Rail passengers for Belfast now leave the train at Ayr and take a coach of about an hour and ten minutes down the A77 to the ferry (irishpost.com). Stena's combined rail and sail ticket today offers one connection a day in each direction, with its own coach between Ayr and Cairnryan (stenaline.co.uk).

Stranraer station is still owned by Stena Line, not Network Rail, though no ferry has left from beside it since 2011. In 2026 a feasibility study looked at moving it nearer the town centre (en.wikipedia.org). A decision by one keeper, a ferry company choosing a better harbour, broke a connection in another keeper's network. The connection had never been anybody's data. It was a walk across a pier.

Across the water, the picture is moving the other way. Belfast Grand Central, a £340 million station built for 20 million journeys a year, opened to trains in October 2024, and the Enterprise to Dublin went hourly at the end of that month (irishtimes.com). Passenger numbers on the Enterprise, which Translink and Iarnród Éireann run jointly, rose by 40% in the following 18 months. Eight new trains, due by late 2028, should cut the journey from just over two hours to under two (irishtimes.com). In July 2024 the two governments on the island published an all-island strategic rail review, with 32 recommendations costed at €35 to 37 billion over the period to 2050 (rte.ie).

One journey, five questions

The themes of the earlier articles return: the glen and the city, money, borders, names and the climate. This time they are all asked of one trip.

The glen. Rural Scotland is where the bus is weakest. Local bus services in Scotland covered 12% fewer kilometres in 2024 than in 2019. Of people who had used a bus the previous day, 61% lived in large urban areas and 2% in remote rural ones, which are home to 6% of the population. In the last month, 57% of people in large towns and cities had used a bus, against 17% in remote rural areas (transport.gov.scot). Ireland has a plan for its rural buses, called Connecting Ireland, which added 65 new routes in 2023, 45 in 2024 and 36 in 2025, but only four in the first half of 2026, as funding tightened (irishexaminer.com). On both sides of the water, the first and last miles are the hardest, and they are the miles about which journey planners know least.

The fare. ScotRail abolished peak fares for good on 1 September 2025, so the same ticket costs the same at any time of day (transform.scot). That makes the Scottish legs simpler. The whole journey is not. It needs separate tickets from several operators, paid for in pounds and then euros, and each ticket comes with its own terms if something goes wrong. In May 2026 the European Commission proposed that passengers should be able to buy a single ticket combining several rail operators in one transaction, on a platform of their choice, with full rights to assistance, rerouting, reimbursement and compensation if a connection is missed. Platforms would have to present options neutrally, including sorting them by greenhouse gas emissions where feasible (transport.ec.europa.eu). If adopted, that would cover the Irish half of this journey, but not the Scottish half.

The border. For a British or Irish citizen there is no passport control on the way. The UK does not operate routine immigration controls on journeys within the Common Travel Area, and there are no immigration controls at all on the land border between Ireland and Northern Ireland. Most other visitors need a visa or an Electronic Travel Authorisation to enter the UK, though legal residents of Ireland from countries whose citizens do not need a UK visa are exempt from the authorisation, if they can prove their residence (homeofficemedia.blog.gov.uk). So the same crossing involves no papers for one person and an authorisation for another, depending on facts about the traveller that no timetable holds. The ferry carries goods as well as people, and as the food article described, the rules for the food lorries on the same boat are changing too.

The names. In 2004 a placenames order made under the Official Languages Act removed "Dingle" as the town's official name and replaced it with An Daingean. Townspeople objected that An Daingean had never been the town's Irish name, which was Daingean Uí Chúis, and that An Daingean was the name of a town in County Offaly. In 2006 they voted overwhelmingly for "Dingle-Daingean Uí Chúis" (irishtimes.com). The new name was approved in 2011, and promptly turned out to be too long for the road signs (irishexaminer.com). The row flared up again in 2019, when a new local electoral area was named An Daingean. Scotland has its own authority for Gaelic place names, Ainmean-Àite na h-Alba (ainmean-aite.scot), and Ireland's Placenames Database, Logainm, is published under an open licence (data.gov.ie). The traveller only wants to know that Dingle, An Daingean and Daingean Uí Chúis are the same place. A graph can hold all three as names of one thing, each tagged with its language, and keep the identifier steady while the names change.

The climate. The alternative to all of this is the car. In April 2025 the Scottish Government dropped its target of cutting car kilometres by 20% by 2030, which Audit Scotland had warned was unlikely to be met (agcc.co.uk). If the traveller drives an electric car, the electricity article's data problems come along too. Since November 2024, operators of public charge points in the UK have had to publish data about them in a standard format, the Open Charge Point Interface, so that drivers can find chargers, see whether they are working and compare prices (gov.uk).

Every one of these questions is about the same journey. Each is answered by different people, with different data, under different rules.

Sentences about a journey

As in the earlier articles, the basic parts are short sentences of subject, verb and object. A slice of the journey might read:

Leg 6 — is part of —> the journey to Dingle

Leg 6 — departs from —> Ayr station

Leg 6 — is operated by —> Stena Line

Leg 7 — connects from —> Leg 6

Stena Line — owns —> Stranraer station

Dingle — is also called —> Daingean Uí Chúis

(All invented except the last two.) Semantic Arts' gist (github.com), used throughout the series, has the pieces a journey needs:

  • Parts (gist:isPartOf). Each leg is part of the journey.
  • Scheduled events (gist:ScheduledEvent). Each leg is an event with a planned start and end (gist:plannedStartDateTime, gist:plannedEndDateTime) and, once it has happened, an actual start and end. The gap between planned and actual is a delay, and a delay is what breaks a connection.
  • Places (gist:isGeoContainedIn). Each stop lies within a town, and each town within a council area and a jurisdiction.
  • Ownership (gist:owns). Stena Line owns a railway station that no ferry serves.

Schema.org, the vocabulary that search engines read, has types for bus trips, train trips and boat trips, and for train and boat reservations (schema.org). Booking confirmations can carry them. Google documents how a rail operator should embed a train reservation in its confirmation emails as JSON-LD, so that the traveller's mail and calendar can show the trip (developers.google.com). Some travellers already receive their itinerary as RDF without knowing it, one email per operator.

The transport industry also has a reference model of its own. Transmodel, a European standard, describes stops, lines, journeys, fares and connections, and it underlies NeTEx for timetables and fares and SIRI for real-time information. Alongside them sit GTFS, the format Google popularised, and in Great Britain TransXChange for bus timetables and NaPTAN for stops. Ireland has written an Irish profile of NeTEx, though its National Transport Authority does not yet publish data in it (data.gov.ie).

Some of this already speaks RDF:

  • The railways' register. Since 2021 the EU Agency for Railways has published the register of Europe's railway infrastructure as an RDF knowledge graph with a SPARQL endpoint: about 33.6 million triples in 56 named graphs, with infrastructure managers contributing their data to graphs of their own, and SHACL shapes to validate them (arxiv.org).
  • A Transmodel ontology. Researchers at the Universidad Politécnica de Madrid have published parts of Transmodel in OWL (w3id.org).
  • Route planning on linked data. At Ghent University, Linked Connections publishes timetables as linked data that a traveller's own device can plan routes over, which spreads the work away from a central server (ruben.verborgh.org).
  • Catalogues. The national access points through which EU countries publish transport data are described in mobilityDCAT-AP, an RDF profile maintained by NAPCORE, the network of those access points (w3id.org).

As with the electricity grid, parts of the core already speak RDF. What doesn't is the journey itself: the joins between one operator's last stop and the next operator's first, between a timetable and a delay, and between a place and its names.

Master data for a journey

The last two articles argued for data-centric architecture in Dave McComb's sense: a single, simple model that applications visit, with the data allowed to stay where it lives. Transport shows the cost of the alternative in a form everybody has met.

Identifiers. A stop in Great Britain has a NaPTAN code. Ireland and Northern Ireland keep stop registers of their own. Each is sound on its own ground, and the joins between them are made by hand, or by matching names, which is how Dingle gets lost.

Detail. Scotland's bus timetables are already published openly, through the Traveline National Data Set. But, as Transport Scotland's own consultation put it, that dataset "is based on the requirements of bus registration and is not always detailed enough to use in journey planning" (transport.gov.scot). The data was collected for one application, the registration of services with the regulator, and it shows. Transport Scotland now plans regulations for bus open data, brought in in phases. Councils would have to keep the NaPTAN register of stops up to date six months after the rules start, and operators would have to supply timetables in the required standard six months after that (transport.gov.scot). The consultation set out the standards in play: TransXChange for timetables, NeTEx for fares and SIRI for real-time information.

Connections. The coach from Ayr to Cairnryan exists in Stena's data. The train to Ayr exists in ScotRail's. The fact that one is meant to meet the other lives on a booking page, and in the knowledge of anyone who has made the trip before. A connection is a relationship between two events run by two keepers, and in most systems it belongs to neither. In a graph it can be stated, with the minimum time it needs and the rules for what happens when it fails.

Events. A journey is planned, and then it happens. The planned times belong to the operators' timetables. The actual times arrive later, from the vehicles and the staff, and they are what the traveller cares about. RDF 1.2 can attach to each statement who made it and when, so that "the coach left Ayr at 12:04" carries its source, whether that was the driver, a tracking system or a passenger's phone.

The traveller's own data. Some facts belong to the traveller: a concession card, a need for step-free access, a booking, and the nationality and residence that decide whether an authorisation is needed. Today each operator asks for them again. The electricity article described how Estonia lets a household's meter data move to a third party only with the household's consent. Finland's Act on Transport Services goes further for travel: a mobility service acting for a traveller can, at the traveller's request, use the traveller's account with a transport operator to buy tickets (traficom.fi). That is the same idea: data that stays with its owner and moves with permission.

Each of these problems is what an application-centric architecture leaves behind: identifiers that serve one system, data collected for one purpose, relationships owned by nobody, and a person who has to tell every system the same thing. McComb's alternative applies to the journey as it does to the forest: one identifier for each stop, place, leg and traveller, a small shared model of how they relate, and applications (journey planners, ticket machines, apps, the noticeboard at the road end) that visit the data rather than keeping private copies of it.

Holons for a journey

The journey divides naturally into holons, in Koestler's sense of wholes that are also parts. Each operator's network is a whole, with its own timetable, rules and staff, and also a part of every journey that uses it. The journey is a whole too, and the traveller is the only party for whom it is one.

As with the hillside and the grid, the divisions overlap. The route crosses two states and three jurisdictions; two currencies; the areas of several transport authorities, from the south-west of Scotland's regional partnership to Translink and Ireland's National Transport Authority; the fares and conditions of each operator; and the Gaeltacht, where the placenames orders apply. None of these divisions is the journey, and the journey belongs to none of them.

The five tests for dividing a graph, from the forestry article, work here too:

  1. Custody. Each operator keeps its own timetable and its own record of what actually ran. The naming authorities keep the names, and the traveller keeps the traveller's data.
  2. Rules. Each holon has its own rules, such as minimum connection times, ticket conditions, check-in times and passenger rights.
  3. Audience. A journey planner, a paper timetable at the road end, a screen at the station and an accessibility guide are projections of the same facts.
  4. Sensitivity. A timetable is public. A traveller's nationality and residence and a booking are not.
  5. Time. A timetable is planned months ahead, a delay is known minutes ahead, and a cancellation in a storm is known when the captain decides.

The European railway register shows what this looks like at scale. Its infrastructure managers each contribute to their own named graph. A recent study notes that SHACL was designed for a single flat graph. It applies an extension, SHACL-DS, that states which graphs a check covers and records which graph each fact came from (arxiv.org). That is the holon idea, a whole that keeps its own data under its own rules, arrived at by a European agency for practical reasons.

I should declare an interest once more: HOLOS (pypi.org), the triplestore I have been building, organises data as holons of named graphs, each with its own shapes, event log and access policy. The limits I described in the earlier articles still apply.

Connections as shapes

A connection is a rule waiting to be written down. The next leg needs a certain number of minutes after the last one arrives. For a ferry that means check-in, and for a train at a different station it means the walk.

I wrote an invented itinerary for the first day of the journey in RDF, using gist's planned and actual times and schema.org's trip types, with names in English, Gaelic and Irish. Then I wrote a SHACL shape that checks every connection: the time between one leg's arrival and the next one's departure must be at least the minimum the next operator sets, measured from the actual arrival where one has been recorded. The heart of it is two lines of SPARQL:

BIND (COALESCE(?actual, ?planned) AS ?end)
BIND ((DAY(?start) * 1440 + HOURS(?start) * 60 + MINUTES(?start))
    - (DAY(?end) * 1440 + HOURS(?end) * 60 + MINUTES(?end)) AS ?slack)

My SHACL engine and HOLOS's validator found the same two problems. In Glasgow, the walk from Queen Street to Central left three minutes for a train that needed five. At Cairnryan, a coach delayed on the A77 arrived 32 minutes before sailing, when check-in needed 45. A corrected itinerary passed in both. The same graph answered a simple question in SPARQL: every stop on the way, with its names in each language the data holds, from Obar Dheathain to Béal Feirste and Baile Átha Cliath.

Other rules fit the same pattern:

  • the conditions of a rail and sail ticket, including which coach it covers;
  • the minimum connection times operators publish at their stations and ports;
  • step-free access, checked leg by leg, for a traveller who needs it;
  • the rights that come with a single ticket, if the Commission's proposal is adopted.

Shapes check records, not boats. Someone still has to decide whether to hold the ferry. What shapes change is when the traveller finds out, and whether every system that holds a piece of the journey finds out at the same time.

The rules are moving

As in the earlier articles, regulation is moving towards more data, tied to places, shared between keepers:

  • Europe. The Commission's passenger package of May 2026 would bring single tickets across rail operators, rights for missed connections, and neutral presentation of options by booking platforms. Separately, the EU's rules on multimodal travel information, revised in 2024, require each member state to run a national access point for transport data, and name NeTEx and SIRI among the formats for timetables and real-time information (eur-lex.europa.eu).
  • Scotland. Bus open data regulations, phased in from 2026. Peak rail fares abolished. The 20% target for cutting car use dropped, with a replacement promised. A study of moving Stranraer station.
  • Ireland. New Enterprise trains by 2028, the all-island rail review's programme to 2050, and Connecting Ireland's rural routes, now slowed by funding.
  • Borders. Electronic Travel Authorisations for visitors to the UK, with the Common Travel Area and its exemptions alongside.
  • Charging. Open data from public charge points across the UK since 2024.

Read across the list and the same facts keep coming up: where a stop is and what it is called, when a service is planned to run and when it actually ran, who runs it and on what terms, who may travel and with what papers. That is the data-centric argument once more. Hold each fact once, with its keeper and its provenance, and a new rule becomes a new shape and a new projection, not another app.

What others have learned

  • Norway: one register for every stop. Entur runs Norway's national stop register, described as the master database for public transport stops in Norway, and publishes it daily as open data. NeTEx is the official format for public transport data in Norway, and all parties are required to submit their data in it, though Entur admits "we're not there yet" (developer.entur.no).
  • Finland: open interfaces by law. Finland's Act on Transport Services requires providers of passenger transport to make essential data, including routes, stops, timetables, prices, and the availability and accessibility of services, freely accessible through open interfaces, whatever the mode of transport (traficom.fi).
  • Belgium: planning on the traveller's side. Linked Connections showed that publishing timetables as linked data lets more route-planning queries be answered on the same hardware than a central planner can manage, at the cost of more bandwidth (ruben.verborgh.org).
  • Europe: the register as a federation. The railway infrastructure register shows that dozens of organisations can each keep their own named graph and still be queried and validated as one.
  • The EU's own evidence. The Commission's impact assessment found, in an analysis of 100 representative routes, that multimodal options existed in 76% of cases, but that very few platforms offered them (cdep.ro). The journeys exist. What is missing is the joined-up data to sell them.

The lessons for Scotland and its neighbours:

  • give every stop one identifier that every party uses, and keep a register of them;
  • publish timetables in a standard detailed enough for journey planning, not just for regulation;
  • record connections as data, with their minimum times and who is responsible for them;
  • carry planned and actual times side by side, with their sources;
  • let the traveller's data move with the traveller's consent.

A proposal for the crossing

The earlier articles proposed federations of holons for Scotland's land, food, forests and electricity. A journey needs the same, with one difference: it crosses borders, so the federation must too.

The hooks are already there:

  • Scotland's bus open data regulations and the Traveline data set;
  • the councils' duty to keep the NaPTAN register up to date;
  • the study of Stranraer station, and the regional transport partnership behind it;
  • Translink's open timetable data, and Ireland's NeTEx profile;
  • the Commission's single-ticket proposal, which would apply in Ireland;
  • the all-island rail review and Connecting Ireland.

What I would propose has five elements:

  1. A single, simple, shared model for the joins. gist at the top; Transmodel's concepts, through its ontology, for the network; schema.org for trips and reservations; GeoSPARQL for place; PROV for provenance; and the national identifiers for stops, with the naming authorities' records for place names in English, Gaelic and Irish.
  2. Holons for those who keep the facts: each operator's timetable and record of what actually ran, each authority's register of stops, the naming authorities, the ports, and the traveller.
  3. Rules as shapes: connection times, ticket conditions, accessibility and passenger rights, each kept by whoever owns the rule.
  4. Projections for each audience:
    • a journey planner that sees the whole trip;
    • a paper timetable for the noticeboard at the road end, which still matters in the glen;
    • an accessibility view, leg by leg;
    • the operators' own view of who is booked onto a connection that is about to fail.
  5. Pilots before platforms:
    • Road end to rail. A demand-responsive bus in the north-east joined to the railway timetable, so that a booking for the bus knows which train it is for.
    • Rail and sail. The Glasgow to Belfast connection, held as shared data across ScotRail, Stena Line and Translink, with planned and actual times.
    • Across the border. Belfast to Dublin to Kerry, joining Translink's data and Ireland's.
    • One storm. A cancelled sailing passed as an event to every booking it affects, with the alternatives worked out.
    • One name in three languages. Stops linked to the Gaelic and Irish naming authorities' records, so that Dingle is found as Daingean Uí Chúis.

None of this needs a single app first. If you run a service:

  • use the national stop identifiers, and publish your own;
  • publish your timetable in a standard a journey planner can use;
  • say which other services you connect with, and how long the connection needs;
  • publish what actually ran, as well as what was planned;
  • reuse schema.org and the existing standards rather than inventing a format.

Into the west

The bus from Tralee follows the coast road out along the peninsula, and the signs at the edge of the town say Daingean Uí Chúis and Dingle. The traveller has crossed two borders without showing a passport, changed currency halfway, read three languages and bought half a dozen tickets, and has done the joining-up personally, as travellers always have. A knowledge graph would not have shortened the sea crossing or straightened the A77. What it could have done is let every keeper of the journey, from the council that runs the bus at the road end to the bus company in Kerry, see the same journey: one trip, one set of names, one record of what was planned and what happened. The friend is waiting at the bus stop. In the journey this article imagines, nobody would have had to phone ahead about the late coach, because the friend could have watched the journey too.