{"id":4907,"date":"2019-02-19T12:59:42","date_gmt":"2019-02-19T12:59:42","guid":{"rendered":"https:\/\/discoverpassenger.com.temp.link\/?p=4907"},"modified":"2026-08-07T07:26:00","modified_gmt":"2026-08-07T06:26:00","slug":"developing-an-api-to-highlight-inaccuracies-in-uk-open-data","status":"publish","type":"post","link":"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/","title":{"rendered":"Developing an API to Highlight Inaccuracies in UK Open Data"},"content":{"rendered":"<div class=\"block-core-quote\">\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Originally posted on our &#8216;Base&#8217; Medium account. <br>In September 2019, <a href=\"https:\/\/medium.com\/@mrtmqy\/going-all-in-4c20d902fe2a\">Base became Passenger<\/a>.<\/p><\/blockquote>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/busstopchecker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Bus Stop Checker<\/a>&nbsp;was the first project on which I took the reins at Passenger.<\/p>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">Originally kicked off by Manuel Martin Salvador, a former employee, Bus Stop Checker was an initiative launched to visualise potential errors in the National Public Transport Access Nodes (NaPTAN) database. We suspected that this set of open data, which contains information about all bus stops and other points of access to public transport around the UK, involved numerous inconsistencies. We wanted to make these inconsistencies undeniable and evident.<\/p>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">The original reason for the initial development work was to better calculate journey ETAs for our Passenger products. Things started to shift as we discovered discrepancies, and the project evolved into what the Bus Stop Checker is today.<\/p>\n<\/div>\n\n<div class=\"block-core-image\">\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1260\" src=\"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta.png\" alt=\"\" class=\"wp-image-12741\" srcset=\"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta.png 2560w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta-300x148.png 300w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta-1024x504.png 1024w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta-768x378.png 768w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta-1536x756.png 1536w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta-2048x1008.png 2048w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta-1568x772.png 1568w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption>Bus Stop Checker Beta<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">Manuel had written a Python script which calculated the road bearing of a stop in NaPTAN against&nbsp;<a href=\"https:\/\/www.openstreetmap.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">OpenStreetMap (OSM)<\/a>&nbsp;for Dorset. When it started to throw up potential errors, we began plotting them using Google Maps. This was a useful experiment as it clearly illustrated that something was wrong with the NaPTAN data \u2014 and confirmed the feedback we had previously received from end-users of Passenger mobile apps.<\/p>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">At this stage, that was all this was \u2014 an experiment. However, the Passenger team wanted to scale these findings into something that could effectively show that NaPTAN problems existed across the whole of Great Britain, in an easily searchable and penetrable way. The hope was that the results of the project would spark discussion around the dataset and get people thinking about how it could be improved. Passenger could then be brought into the discussion around the upkeep of NaPTAN data \u2014 which largely occurred behind the seemingly inaccessible walled garden of local transport authorities.<\/p>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\"><a rel=\"noreferrer noopener\" href=\"https:\/\/www.discoverpassenger.com\/2018\/10\/29\/introducing-bus-stop-checker-initiative-improve-open-data-national-public-transport\/\" target=\"_blank\">Read a more thorough introduction to the Bus Stop Checker project<\/a><\/p>\n<\/div>\n\n<div class=\"block-core-separator\">\n<hr class=\"wp-block-separator\"\/>\n<\/div>\n\n<div class=\"block-core-heading\">\n<h2 class=\"wp-block-heading\" id=\"2da0\">The Python script<\/h2>\n<\/div>\n\n<div class=\"block-core-image\">\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1016\" src=\"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/snippetofmanuelspythonscript.png\" alt=\"\" class=\"wp-image-12742\" srcset=\"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/snippetofmanuelspythonscript.png 1920w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/snippetofmanuelspythonscript-300x159.png 300w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/snippetofmanuelspythonscript-1024x542.png 1024w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/snippetofmanuelspythonscript-768x406.png 768w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/snippetofmanuelspythonscript-1536x813.png 1536w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/snippetofmanuelspythonscript-1568x830.png 1568w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><figcaption>Snippet of Manuel&#8217;s Python script<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">Manuel\u2019s Python script would follow this process:<\/p>\n<\/div>\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\"><li>Loop through nodes in the OSM data file and import these nodes into MongoDB<\/li><li>Loop through each NaPTAN stop in MongoDB<\/li><li>Find the closest 4 OSM nodes to the stop using&nbsp;<a href=\"http:\/\/project-osrm.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">OSRM<\/a>&nbsp;over HTTP<\/li><li>Try to match a road name in OSM to the one in NaPTAN using the Levenshtein distance<\/li><li>Calculate the bearing of the road and the bus stop and output this data in a CSV<\/li><\/ul>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">Armed with this Python script, I set out to build Bus Stop Checker.<\/p>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">I started by updating the script\u2019s dependencies (mainly&nbsp;<a href=\"https:\/\/osmcode.org\/pyosmium\/\" target=\"_blank\" rel=\"noreferrer noopener\">PyOsmium<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/api.mongodb.com\/python\/current\/\" target=\"_blank\" rel=\"noreferrer noopener\">PyMongo<\/a>) and fixing the script so it could once again work for Dorset. The next step was to download the larger Great Britain dataset and see how the script would cope with it.<\/p>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">7 hours or so later the Osmium Python bindings had crashed, but we had substantially more data to work with than before: Around 35% of the whole of Great Britain. When sifting through this data it was clear there were substantial errors in the dataset. The Google Maps front-end just about managed to render this chunk of data (every single stop at once) and provided some useful feedback around edge cases that would require a little more scrutiny.<\/p>\n<\/div>\n\n<div class=\"block-core-separator\">\n<hr class=\"wp-block-separator\"\/>\n<\/div>\n\n<div class=\"block-core-heading\">\n<h2 class=\"wp-block-heading\" id=\"3019\">Addressing issues<\/h2>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">I now had more substantial data, which was great, but this also made it difficult to uncover issues using the old Google Maps viewer. I decided to write an API using PHP (the primary server-side language Passenger and Base use) which would import this data into PostgreSQL. This presented some endpoints our front-end team could use to start building an early Bus Stop Checker prototype user interface.<\/p>\n<\/div>\n\n<div class=\"block-core-image\">\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"954\" height=\"963\" src=\"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/earlybusstopchecker.png\" alt=\"\" class=\"wp-image-12743\" srcset=\"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/earlybusstopchecker.png 954w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/earlybusstopchecker-297x300.png 297w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/earlybusstopchecker-150x150.png 150w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/earlybusstopchecker-768x775.png 768w\" sizes=\"auto, (max-width: 954px) 100vw, 954px\" \/><figcaption>Early Bus Stop Checker prototype user interface<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">Once we had an early front-end version of Bus Stop Checker, we could start looking for issues and address them.<\/p>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">For example, at this stage, the Python script for Bus Stop Checker would obtain the 4 closest OSM nodes to any given stop location \u2014 but this was sometimes not enough.<\/p>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">\u2018Nodes\u2019 are the points of data which make up a \u2018way\u2019, a \u2018way\u2019 is the road on which these points are located. Some ways are defined by very few nodes, others by many. By obtaining only the 4 closest nodes we would often not return enough data to match the correct road, as a nearby road (but not the actual road NaPTAN says it\u2019s on) may have many incredibly detailed points, and thus would return false data.<\/p>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">I fixed this by collecting all nodes within a fixed radius around the stop, rather than just the closest 4. I also improved the error handling of the script by storing its last processed stop and continuing from that stop in the event a failure occurred.<\/p>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">At this point I re-ran the script on the OSM data for Great Britain.<\/p>\n<\/div>\n\n<div class=\"block-core-separator\">\n<hr class=\"wp-block-separator\"\/>\n<\/div>\n\n<div class=\"block-core-heading\">\n<h2 class=\"wp-block-heading\" id=\"c0bf\">Improving the process<\/h2>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">16 hours later the script had finished and was producing more accurate results. Further investigation of the new data showed that the Python Osmium bindings were still rather unreliable for a production system, so at this point I started researching other options.<\/p>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">I decided to use&nbsp;<a href=\"https:\/\/nodejs.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">NodeJS<\/a>, as it has official&nbsp;<a href=\"http:\/\/project-osrm.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">OSRM<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/Osmium\" target=\"_blank\" rel=\"noreferrer noopener\">Osmium<\/a>&nbsp;bindings, would remove our reliance on the Python bindings and would also eliminate the overhead of the HTTP call to OSRM, thus speeding up processing.<\/p>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">I wrote the NodeJS project closely matching the Python script, with some changes:<\/p>\n<\/div>\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\"><li>Directly reading the NaPTAN CSV rather than importing into MongoDB first<\/li><li>Using LevelDB rather than MongoDB for increased speed<\/li><li>Directly writing the results into PostgreSQL rather than into a CSV<\/li><li>Multi-threading the verification process: each stop would be read by the main thread and passed to a free child thread, where the actual processing would happen (this greatly improved performance)<\/li><li>Outputting to a file using&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Protocol_Buffers\" target=\"_blank\" rel=\"noreferrer noopener\">protocol buffers<\/a>&nbsp;for efficient historical logging<\/li><\/ul>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">The final project using the NodeJS bindings produced far more reliable results, and in an average of 53 minutes for the whole of the UK!<\/p>\n<\/div>\n\n<div class=\"block-core-image\">\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"657\" height=\"838\" src=\"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/prototypeUI.png\" alt=\"\" class=\"wp-image-12744\" srcset=\"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/prototypeUI.png 657w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/prototypeUI-235x300.png 235w\" sizes=\"auto, (max-width: 657px) 100vw, 657px\" \/><figcaption>Prototype UI with final data<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">Now I had to get this project running at a regular interval with production reliability \u2014 not an easy task.<\/p>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">I created an Alpine Linux-based container which would pull in the OSM data and process it ready for OSRM. I also set up a container that would run the NodeJS project and perform the verification. I loaded these containers into&nbsp;<a href=\"https:\/\/aws.amazon.com\/ecs\/\" target=\"_blank\" rel=\"noreferrer noopener\">Amazon Web Services\u2019 ECS<\/a>, added some job definitions, job queues and compute environments for&nbsp;<a href=\"https:\/\/aws.amazon.com\/batch\/\" target=\"_blank\" rel=\"noreferrer noopener\">AWS Batch<\/a>&nbsp;and created some&nbsp;<a href=\"https:\/\/aws.amazon.com\/cloudwatch\/\" target=\"_blank\" rel=\"noreferrer noopener\">AWS CloudWatch<\/a>&nbsp;rules to trigger the containers on the last day of each month.<\/p>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">Some further tweaks to the algorithm, including expanding the API to give the front-end team all the data they required, and Bus Stop Checker was complete.<\/p>\n<\/div>\n\n<div class=\"block-core-image\">\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1349\" src=\"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/finalbusstopcheckerui.png\" alt=\"\" class=\"wp-image-12745\" srcset=\"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/finalbusstopcheckerui.png 2560w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/finalbusstopcheckerui-300x158.png 300w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/finalbusstopcheckerui-1024x540.png 1024w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/finalbusstopcheckerui-768x405.png 768w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/finalbusstopcheckerui-1536x809.png 1536w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/finalbusstopcheckerui-2048x1079.png 2048w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/finalbusstopcheckerui-1568x826.png 1568w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption>Final Bus Stop Checker UI<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"block-core-image\">\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1260\" src=\"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta.png\" alt=\"\" class=\"wp-image-12741\" srcset=\"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta.png 2560w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta-300x148.png 300w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta-1024x504.png 1024w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta-768x378.png 768w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta-1536x756.png 1536w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta-2048x1008.png 2048w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/busstopcheckerbeta-1568x772.png 1568w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption>Final Bus Stop Checker UI \u2014 view of an authority<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">The project spanned 3 programming languages in the end: Python, PHP and NodeJS, and was ultimately a complete success. Since launch, Passenger has been involved in discussions with the Department for Transport about how to improve the NaPTAN dataset and some local transport authorities have actually&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/twitter.com\/acsnottingham\/status\/1068171815728676864\" target=\"_blank\">used the tool to improve their area\u2019s data<\/a>.<\/p>\n<\/div>\n\n<div class=\"block-core-image\">\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1637\" height=\"899\" src=\"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/peekatfinaldatabase.png\" alt=\"\" class=\"wp-image-12746\" srcset=\"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/peekatfinaldatabase.png 1637w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/peekatfinaldatabase-300x165.png 300w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/peekatfinaldatabase-1024x562.png 1024w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/peekatfinaldatabase-768x422.png 768w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/peekatfinaldatabase-1536x844.png 1536w, https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/peekatfinaldatabase-1568x861.png 1568w\" sizes=\"auto, (max-width: 1637px) 100vw, 1637px\" \/><figcaption>A peek at the final database<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"block-core-paragraph\">\n<p class=\"wp-block-paragraph\">It\u2019s been extremely heartening to see the development work on Bus Stop Checker produce real results that will improve the public transport experience for people all across the UK.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>An initiative to visualise potential errors in the National Public Transport Access Nodes (NaPTAN) database. <\/p>\n","protected":false},"author":7,"featured_media":12740,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[21],"tags":[],"class_list":["post-4907","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-making-passenger","making-passenger"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Developing an API to Highlight Inaccuracies in UK Open Data - Masabi<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Developing an API to Highlight Inaccuracies in UK Open Data - Masabi\" \/>\n<meta property=\"og:description\" content=\"An initiative to visualise potential errors in the National Public Transport Access Nodes (NaPTAN) database.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/\" \/>\n<meta property=\"og:site_name\" content=\"Masabi\" \/>\n<meta property=\"article:published_time\" content=\"2019-02-19T12:59:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-07T06:26:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/1_Ywsyg6bz1DhHw55ICEwdqQ-scaled-1.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"TomQuay\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"TomQuay\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/news\\\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/news\\\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\\\/\"},\"author\":{\"name\":\"TomQuay\",\"@id\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/#\\\/schema\\\/person\\\/7f9321d16421f5dd31179aec75bd022d\"},\"headline\":\"Developing an API to Highlight Inaccuracies in UK Open Data\",\"datePublished\":\"2019-02-19T12:59:42+00:00\",\"dateModified\":\"2026-08-07T06:26:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/news\\\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\\\/\"},\"wordCount\":1234,\"image\":{\"@id\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/news\\\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.masabi.com\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/1_Ywsyg6bz1DhHw55ICEwdqQ-scaled-1.jpeg\",\"articleSection\":[\"Making Passenger\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/news\\\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\\\/\",\"url\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/news\\\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\\\/\",\"name\":\"Developing an API to Highlight Inaccuracies in UK Open Data - Masabi\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/news\\\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/news\\\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.masabi.com\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/1_Ywsyg6bz1DhHw55ICEwdqQ-scaled-1.jpeg\",\"datePublished\":\"2019-02-19T12:59:42+00:00\",\"dateModified\":\"2026-08-07T06:26:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/#\\\/schema\\\/person\\\/7f9321d16421f5dd31179aec75bd022d\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/news\\\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.masabi.com\\\/es\\\/news\\\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/news\\\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.masabi.com\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/1_Ywsyg6bz1DhHw55ICEwdqQ-scaled-1.jpeg\",\"contentUrl\":\"https:\\\/\\\/www.masabi.com\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/1_Ywsyg6bz1DhHw55ICEwdqQ-scaled-1.jpeg\",\"width\":2560,\"height\":1707},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/news\\\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Developing an API to Highlight Inaccuracies in UK Open Data\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/\",\"name\":\"Masabi\",\"description\":\"Making shared transport the first choice\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.masabi.com\\\/es\\\/#\\\/schema\\\/person\\\/7f9321d16421f5dd31179aec75bd022d\",\"name\":\"TomQuay\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/670e69485b65f2c5a6ee3fb9d0e3ed3163fb4107b7ab9ade42394576b7d42571?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/670e69485b65f2c5a6ee3fb9d0e3ed3163fb4107b7ab9ade42394576b7d42571?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/670e69485b65f2c5a6ee3fb9d0e3ed3163fb4107b7ab9ade42394576b7d42571?s=96&d=mm&r=g\",\"caption\":\"TomQuay\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Developing an API to Highlight Inaccuracies in UK Open Data - Masabi","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/","og_locale":"es_ES","og_type":"article","og_title":"Developing an API to Highlight Inaccuracies in UK Open Data - Masabi","og_description":"An initiative to visualise potential errors in the National Public Transport Access Nodes (NaPTAN) database.","og_url":"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/","og_site_name":"Masabi","article_published_time":"2019-02-19T12:59:42+00:00","article_modified_time":"2026-08-07T06:26:00+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/1_Ywsyg6bz1DhHw55ICEwdqQ-scaled-1.jpeg","type":"image\/jpeg"}],"author":"TomQuay","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"TomQuay","Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/#article","isPartOf":{"@id":"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/"},"author":{"name":"TomQuay","@id":"https:\/\/www.masabi.com\/es\/#\/schema\/person\/7f9321d16421f5dd31179aec75bd022d"},"headline":"Developing an API to Highlight Inaccuracies in UK Open Data","datePublished":"2019-02-19T12:59:42+00:00","dateModified":"2026-08-07T06:26:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/"},"wordCount":1234,"image":{"@id":"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/#primaryimage"},"thumbnailUrl":"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/1_Ywsyg6bz1DhHw55ICEwdqQ-scaled-1.jpeg","articleSection":["Making Passenger"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/","url":"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/","name":"Developing an API to Highlight Inaccuracies in UK Open Data - Masabi","isPartOf":{"@id":"https:\/\/www.masabi.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/#primaryimage"},"image":{"@id":"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/#primaryimage"},"thumbnailUrl":"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/1_Ywsyg6bz1DhHw55ICEwdqQ-scaled-1.jpeg","datePublished":"2019-02-19T12:59:42+00:00","dateModified":"2026-08-07T06:26:00+00:00","author":{"@id":"https:\/\/www.masabi.com\/es\/#\/schema\/person\/7f9321d16421f5dd31179aec75bd022d"},"breadcrumb":{"@id":"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/#primaryimage","url":"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/1_Ywsyg6bz1DhHw55ICEwdqQ-scaled-1.jpeg","contentUrl":"https:\/\/www.masabi.com\/wp-content\/uploads\/2019\/09\/1_Ywsyg6bz1DhHw55ICEwdqQ-scaled-1.jpeg","width":2560,"height":1707},{"@type":"BreadcrumbList","@id":"https:\/\/www.masabi.com\/es\/news\/developing-an-api-to-highlight-inaccuracies-in-uk-open-data\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.masabi.com\/es\/"},{"@type":"ListItem","position":2,"name":"Developing an API to Highlight Inaccuracies in UK Open Data"}]},{"@type":"WebSite","@id":"https:\/\/www.masabi.com\/es\/#website","url":"https:\/\/www.masabi.com\/es\/","name":"Masabi","description":"Making shared transport the first choice","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.masabi.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.masabi.com\/es\/#\/schema\/person\/7f9321d16421f5dd31179aec75bd022d","name":"TomQuay","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/670e69485b65f2c5a6ee3fb9d0e3ed3163fb4107b7ab9ade42394576b7d42571?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/670e69485b65f2c5a6ee3fb9d0e3ed3163fb4107b7ab9ade42394576b7d42571?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/670e69485b65f2c5a6ee3fb9d0e3ed3163fb4107b7ab9ade42394576b7d42571?s=96&d=mm&r=g","caption":"TomQuay"}}]}},"_links":{"self":[{"href":"https:\/\/www.masabi.com\/es\/wp-json\/wp\/v2\/posts\/4907","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.masabi.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.masabi.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.masabi.com\/es\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.masabi.com\/es\/wp-json\/wp\/v2\/comments?post=4907"}],"version-history":[{"count":0,"href":"https:\/\/www.masabi.com\/es\/wp-json\/wp\/v2\/posts\/4907\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.masabi.com\/es\/wp-json\/wp\/v2\/media\/12740"}],"wp:attachment":[{"href":"https:\/\/www.masabi.com\/es\/wp-json\/wp\/v2\/media?parent=4907"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.masabi.com\/es\/wp-json\/wp\/v2\/categories?post=4907"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.masabi.com\/es\/wp-json\/wp\/v2\/tags?post=4907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}