"},{"metadata":{"colab_type":"text","id":"view-in-github"},"cell_type":"markdown","source":""},{"metadata":{"colab_type":"text","id":"TU0Elp2wIoK_"},"cell_type":"markdown","source":"The [BNB Linked Data Platform](https://bnb.data.bl.uk/) provides access to the [British National Bibliography (BNB)](http://www.bl.uk/bibliographic/natbib.html) published as linked open data and made available through SPARQL services. \n\nThis notebook explains how to query the repository and obtain places of publication (fields blt:publication and blt:projectedPublication ) to show an interactive map. Thanks that the works are linked to [GeoNames](https://www.geonames.org/), the records can be linked to external repositories. This notebook obtains information from [Wikidata](https://www.wikidata.org), showing the benefits of Linked Open Data."},{"metadata":{"colab_type":"text","id":"_SHPlxTyIq-n"},"cell_type":"markdown","source":"
\n\n### Copied / Forked from:\n\nhttps://github.com/hibernator11/notebook-lod-libraries \n\nhttps://github.com/hibernator11/notebook-lod-libraries/blob/master/bnb-lod-extraction-map.ipynb\n\nAuthor: Gustavo Candela (https://github.com/hibernator11), Research and Development department at The Biblioteca Virtual Miguel de Cervantes, University of Alicante, Spain\n\n \n#### :: Adapted to run on Google Colab ::\n
\n\n## Global configuration\n\nIn this section, you can set the author from the BNB by using its identifier. \n\n
"},{"metadata":{"colab":{},"colab_type":"code","id":"jbYUkXcXIoLC","trusted":false},"cell_type":"code","source":"#bnbIdAuthor = 'http://bnb.data.bl.uk/id/person/DickensCharles1812-1870'\n#bnbIdAuthor = 'http://bnb.data.bl.uk/id/person/BlakeWilliam1757-1827'\n#bnbIdAuthor = 'http://bnb.data.bl.uk/id/person/WoolfVirginia1882-1941'\nbnbIdAuthor = 'http://bnb.data.bl.uk/id/person/ShakespeareWilliam1564-1616'","execution_count":0,"outputs":[]},{"metadata":{"colab_type":"text","id":"qt0a7zDeIoLH"},"cell_type":"markdown","source":"## Setting up things"},{"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":343},"colab_type":"code","id":"aNua3QshJK_Y","outputId":"607d6902-bfcf-42b2-c55c-1684df4b1c91","trusted":false},"cell_type":"code","source":"# This is needed for Google Colab, first run\n!pip install --upgrade folium","execution_count":2,"outputs":[{"name":"stdout","output_type":"stream","text":"Collecting folium\n\u001b[?25l Downloading https://files.pythonhosted.org/packages/a4/f0/44e69d50519880287cc41e7c8a6acc58daa9a9acf5f6afc52bcc70f69a6d/folium-0.11.0-py2.py3-none-any.whl (93kB)\n\r\u001b[K |███▌ | 10kB 16.7MB/s eta 0:00:01\r\u001b[K |███████ | 20kB 1.7MB/s eta 0:00:01\r\u001b[K |██████████▌ | 30kB 2.3MB/s eta 0:00:01\r\u001b[K |██████████████ | 40kB 2.5MB/s eta 0:00:01\r\u001b[K |█████████████████▌ | 51kB 2.0MB/s eta 0:00:01\r\u001b[K |█████████████████████ | 61kB 2.3MB/s eta 0:00:01\r\u001b[K |████████████████████████▌ | 71kB 2.5MB/s eta 0:00:01\r\u001b[K |████████████████████████████ | 81kB 2.7MB/s eta 0:00:01\r\u001b[K |███████████████████████████████▌| 92kB 2.9MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 102kB 2.6MB/s \n\u001b[?25hRequirement already satisfied, skipping upgrade: branca>=0.3.0 in /usr/local/lib/python3.6/dist-packages (from folium) (0.4.1)\nRequirement already satisfied, skipping upgrade: requests in /usr/local/lib/python3.6/dist-packages (from folium) (2.23.0)\nRequirement already satisfied, skipping upgrade: jinja2>=2.9 in /usr/local/lib/python3.6/dist-packages (from folium) (2.11.2)\nRequirement already satisfied, skipping upgrade: numpy in /usr/local/lib/python3.6/dist-packages (from folium) (1.18.4)\nRequirement already satisfied, skipping upgrade: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests->folium) (1.24.3)\nRequirement already satisfied, skipping upgrade: chardet<4,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests->folium) (3.0.4)\nRequirement already satisfied, skipping upgrade: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests->folium) (2.9)\nRequirement already satisfied, skipping upgrade: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests->folium) (2020.4.5.1)\nRequirement already satisfied, skipping upgrade: MarkupSafe>=0.23 in /usr/local/lib/python3.6/dist-packages (from jinja2>=2.9->folium) (1.1.1)\n\u001b[31mERROR: datascience 0.10.6 has requirement folium==0.2.1, but you'll have folium 0.11.0 which is incompatible.\u001b[0m\nInstalling collected packages: folium\n Found existing installation: folium 0.8.3\n Uninstalling folium-0.8.3:\n Successfully uninstalled folium-0.8.3\nSuccessfully installed folium-0.11.0\n"}]},{"metadata":{"colab":{},"colab_type":"code","id":"grVj5kG8IoLH","trusted":false},"cell_type":"code","source":"import folium\nimport requests\nimport pandas as pd\nimport json\nimport csv\nimport matplotlib.pyplot as plt\nfrom pandas.io.json import json_normalize ","execution_count":0,"outputs":[]},{"metadata":{"colab_type":"text","id":"OGC6e5K8IoLL"},"cell_type":"markdown","source":"## Let's query the repository by asking the publications related to William Shakespeare\nWe will use the [SPARQL endpoint](https://bnb.data.bl.uk/flint-sparql) to create the query and configure the request to retrieve json as a result."},{"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":34},"colab_type":"code","id":"orhVTXt0IoLL","outputId":"c8eed932-70ed-4a0f-f13e-929738b5a645","trusted":false},"cell_type":"code","source":"url = 'https://bnb.data.bl.uk/sparql'\nquery = \"\"\"\nPREFIX bibo: \nPREFIX bio: \nPREFIX blt: \nPREFIX dct: \nPREFIX event: \nPREFIX foaf: \nPREFIX geo: \nPREFIX isbd: \nPREFIX org: \nPREFIX owl: \nPREFIX rdau: \nPREFIX madsrdf: \nPREFIX rdf: \nPREFIX rdfs: \nPREFIX skos: \nPREFIX void: \nPREFIX xsd: \nPREFIX umbel: \nPREFIX schema: \nPREFIX c4dm: \n\nSELECT DISTINCT ?resource ?title ?date ?place WHERE {{\n graph {{\n ?resource ?p <{0}> ;\n dct:title ?title ;\n schema:datePublished ?date .\n OPTIONAL {{\n ?resource blt:projectedPublication ?publication .\n ?publication c4dm:place ?place .\n FILTER regex(?place, \"geonames\", \"i\") \n }}\n OPTIONAL {{\n ?resource blt:publication ?publication .\n ?publication c4dm:place ?place .\n FILTER regex(?place, \"geonames\", \"i\") \n }}\n }}\n}} LIMIT 500\n\"\"\"\n\nquery = query.format(bnbIdAuthor)\n\n# use json as a result\nheaders = {'Accept': 'application/sparql-results+json'}\nr = requests.get(url, params = {'format': 'application/sparql-results+json', 'query': query}, headers=headers)\nprint('Elements retrieved!')\n#print(r.text)","execution_count":4,"outputs":[{"name":"stdout","output_type":"stream","text":"Elements retrieved!\n"}]},{"metadata":{"colab_type":"text","id":"IPV7YE5QIoLS"},"cell_type":"markdown","source":"## Save as a CSV "},{"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":51},"colab_type":"code","id":"0G0_FjkEIoLT","outputId":"ef049495-254b-4d88-9d3b-5deb72954bec","trusted":false},"cell_type":"code","source":"bnbdata = json.loads(r.text)\n\n# we need to delete bnb_records.csv case it exists from previous runs \n# if it doesn't exist yet, it will give an error \"rm: cannot remove 'bnb_records.csv': No such file or directory\", that's just fine! :)\n!rm bnb_records.csv\n\nwith open('bnb_records.csv', 'w', newline='') as file:\n csv_out = csv.writer(file, delimiter = ',', quotechar = '\"', quoting = csv.QUOTE_MINIMAL) \n\n #csv_out = csv.writer(open('bnb_records.csv', 'w'), delimiter = ',', quotechar = '\"', quoting = csv.QUOTE_MINIMAL)\n csv_out.writerow(['resource', 'place', 'title', 'date'])\n\n for i in bnbdata['results']['bindings']:\n resource = place = title = date =''\n\n resource = i['resource']['value']\n #if \"place\" in i:\n place = i['place']['value']\n title = i['title']['value']\n date = i['date']['value']\n\n csv_out.writerow([resource,place,title,date])\n\nprint('Open the generated CSV to see all its contents -- Google Colab: under \"Files\" > click \"bnb_records.csv\" -- we will also explore it bellow.')","execution_count":5,"outputs":[{"name":"stdout","output_type":"stream","text":"rm: cannot remove 'bnb_records.csv': No such file or directory\nOpen the generated CSV to see all its contents -- Google Colab: under \"Files\" > click \"bnb_records.csv\" -- we will also explore it bellow.\n"}]},{"metadata":{"colab_type":"text","id":"og1n6iQxIoLX"},"cell_type":"markdown","source":"## Exploring the data"},{"metadata":{"colab":{},"colab_type":"code","id":"Ih2izFbnIoLY","trusted":false},"cell_type":"code","source":"# Load the CSV file from GitHub.\n# This puts the data in a Pandas DataFrame\ndf = pd.read_csv('bnb_records.csv')","execution_count":0,"outputs":[]},{"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":419},"colab_type":"code","id":"fenQ2OBoIoLc","outputId":"feefc05e-b73f-4a5b-e6fc-6b4f52331af4","trusted":false},"cell_type":"code","source":"df","execution_count":7,"outputs":[{"data":{"text/html":"
\n\n
\n \n
\n
\n
resource
\n
place
\n
title
\n
date
\n
\n \n \n
\n
0
\n
http://bnb.data.bl.uk/id/resource/013310275
\n
http://sws.geonames.org/6269131/
\n
Macbeth : teachit KS3 interactive pack
\n
2006-01
\n
\n
\n
1
\n
http://bnb.data.bl.uk/id/resource/013310276
\n
http://sws.geonames.org/6269131/
\n
Much ado about nothing : teachit KS3 interacti...
\n
2006-01
\n
\n
\n
2
\n
http://bnb.data.bl.uk/id/resource/013315368
\n
http://sws.geonames.org/6269131/
\n
Hamlet
\n
2006-01
\n
\n
\n
3
\n
http://bnb.data.bl.uk/id/resource/019599478
\n
http://sws.geonames.org/6269131/
\n
Twelfth night
\n
2020-01
\n
\n
\n
4
\n
http://bnb.data.bl.uk/id/resource/019599479
\n
http://sws.geonames.org/6269131/
\n
The tempest : the alexander text
\n
2019-11
\n
\n
\n
...
\n
...
\n
...
\n
...
\n
...
\n
\n
\n
122
\n
http://bnb.data.bl.uk/id/resource/019702130
\n
http://sws.geonames.org/6269131/
\n
The tragedies
\n
2020-01
\n
\n
\n
123
\n
http://bnb.data.bl.uk/id/resource/019702131
\n
http://sws.geonames.org/6269131/
\n
The tragicomedies
\n
2020-01
\n
\n
\n
124
\n
http://bnb.data.bl.uk/id/resource/019755998
\n
http://sws.geonames.org/6269131/
\n
A midsummer night's dream
\n
2020-06
\n
\n
\n
125
\n
http://bnb.data.bl.uk/id/resource/019736523
\n
http://sws.geonames.org/6252001/
\n
William Shakespeare comedies
\n
2020-05
\n
\n
\n
126
\n
http://bnb.data.bl.uk/id/resource/019736524
\n
http://sws.geonames.org/6252001/
\n
William Shakespeare tragedies
\n
2020-05
\n
\n \n
\n
127 rows × 4 columns
\n
","text/plain":" resource ... date\n0 http://bnb.data.bl.uk/id/resource/013310275 ... 2006-01\n1 http://bnb.data.bl.uk/id/resource/013310276 ... 2006-01\n2 http://bnb.data.bl.uk/id/resource/013315368 ... 2006-01\n3 http://bnb.data.bl.uk/id/resource/019599478 ... 2020-01\n4 http://bnb.data.bl.uk/id/resource/019599479 ... 2019-11\n.. ... ... ...\n122 http://bnb.data.bl.uk/id/resource/019702130 ... 2020-01\n123 http://bnb.data.bl.uk/id/resource/019702131 ... 2020-01\n124 http://bnb.data.bl.uk/id/resource/019755998 ... 2020-06\n125 http://bnb.data.bl.uk/id/resource/019736523 ... 2020-05\n126 http://bnb.data.bl.uk/id/resource/019736524 ... 2020-05\n\n[127 rows x 4 columns]"},"execution_count":7,"metadata":{"tags":[]},"output_type":"execute_result"}]},{"metadata":{"colab_type":"text","id":"DMgoGtlyIoLj"},"cell_type":"markdown","source":"## How many items?"},{"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":34},"colab_type":"code","id":"bDsScd1gIoLk","outputId":"300b431e-4663-41e8-a38b-c8a310a2c6e8","trusted":false},"cell_type":"code","source":"# How many items?\nlen(df)","execution_count":8,"outputs":[{"data":{"text/plain":"127"},"execution_count":8,"metadata":{"tags":[]},"output_type":"execute_result"}]},{"metadata":{"colab_type":"text","id":"DXFWETl7IoLn"},"cell_type":"markdown","source":"### Let's count the number of resources per place"},{"metadata":{"colab":{},"colab_type":"code","id":"PjY-cqnqIoLo","trusted":false},"cell_type":"code","source":"places_by_number = df.groupby(\"place\")[\"resource\"].count()","execution_count":0,"outputs":[]},{"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":136},"colab_type":"code","id":"pDX6b-hjIoLs","outputId":"9fafb980-f6e6-4c90-f878-3209fcb74e69","trusted":false},"cell_type":"code","source":"places_by_number","execution_count":10,"outputs":[{"data":{"text/plain":"place\nhttp://sws.geonames.org/1269750/ 2\nhttp://sws.geonames.org/2921044/ 9\nhttp://sws.geonames.org/6251999/ 2\nhttp://sws.geonames.org/6252001/ 30\nhttp://sws.geonames.org/6269131/ 84\nName: resource, dtype: int64"},"execution_count":10,"metadata":{"tags":[]},"output_type":"execute_result"}]},{"metadata":{"colab":{},"colab_type":"code","id":"qFByrGWpIoLz","trusted":false},"cell_type":"code","source":"### We can access the count of each place","execution_count":0,"outputs":[]},{"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":34},"colab_type":"code","id":"ALytexj6IoL3","outputId":"310a5b53-aa01-4150-f8b3-19715daa5aa4","trusted":false},"cell_type":"code","source":"places_by_number[['http://sws.geonames.org/6269131/']][0]","execution_count":12,"outputs":[{"data":{"text/plain":"84"},"execution_count":12,"metadata":{"tags":[]},"output_type":"execute_result"}]},{"metadata":{"colab_type":"text","id":"5ty7tAEtIoL9"},"cell_type":"markdown","source":"### Create a chart to visualize the results\nThis chart shows the number of resources by date."},{"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":545},"colab_type":"code","id":"8MOITWYAIoL_","outputId":"1be68000-7e24-41f9-fd8c-18ee0c4b1ba6","trusted":false},"cell_type":"code","source":"ax = df['date'].value_counts().plot(kind='bar',\n figsize=(14,8),\n title=\"Number of resources per date\")\nax.set_xlabel(\"Dates\")\nax.set_ylabel(\"Resources\")\nplt.show()","execution_count":13,"outputs":[{"data":{"image/png":"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\n","text/plain":"