Introducing @TroveAirBot

West Australian, 14 January 1937, p. 9

@TroveAirBot is a Twitter bot which tweets links to random articles about aviation from Trove Newspapers. In its first day or so of operation, it has tweeted about...

Australia's first military aviator, Eric Harrison ('as cool and jolly an aeroplane companion as is to be found'):
https://twitter.com/TroveAirBot/status/954989646215368704

Roland Garros being turned into a legend (again):
https://twitter.com/TroveAirBot/status/955055156328058880

A confident but somewhat premature anticipation of cruise missiles or drones or whatever the analogue du jour is:
https://twitter.com/TroveAirBot/status/955198625130348545

The importance of monkeys in early German aviation:
https://twitter.com/TroveAirBot/status/955085382324031493

The brutal rhetoric of Australian air politics:
https://twitter.com/TroveAirBot/status/955281677672177664

The role of women in aviation in 1918:
https://twitter.com/TroveAirBot/status/954964547814809600

The role of women in aviation in 1933:
https://twitter.com/TroveAirBot/status/954954402418380806

The role of women in aviation in 1953 (take that, C.G. Grey):
https://twitter.com/TroveAirBot/status/955062771967807488

Legal advice given to a correspondent writing as 'Aviator':
https://twitter.com/TroveAirBot/status/955153346255642624

And -- mystery aeroplanes!
https://twitter.com/TroveAirBot/status/955274157922627586

This is an article about an aeroplane seen flying over Parramatta in October 1914, for which William Hart, Australia's first licensed pilot, was interviewed. He thought it was a pupil of Maurice Guillaux.

'Do you think that this is the machine that has been seen at night?' said the reporter. 'No, I am sure it is not. For, as a matter of fact, I don't think any machine has been seen at all. There would be nothing gained by flying at night. If a secret enemy wanted information about the locality of different places he could get it quite openly in tbe daytime, or simpler still, by purchasing a book or map. It would be all risk flying at night, without any compensating advantage. There is not the least need for people to be nervous, for no machine is flying in this State [NSW] at night.'

So this is a reference to Australia's first wartime mystery aeroplane scare, which took place as the Anzac convoys were gathering for the voyage to Egypt.

As the last example shows, @TroveAirBot has some utility for research, though nothing that couldn't be found through a more focused Trove search. More valuable is its serendipity, in briefly bringing to to the fore all manner of aviation-related news items, which could suggest a new avenue of inquiry or hint at an unsuspected connection. But ultimately, I think it is most useful for public engagement, giving anybody with a Twitter account access to a little bit of aviation history, day in, day out -- without any further effort from me!

All very clever, but most of the cleverness belongs to Tim Sherratt, who wrote the code and, just as importantly, easy to follow instructions for making your own Trove bot. While I do have some coding experience, it's pretty rusty and was not at all necessary to setting up a basic bot, which took about an hour on a hot Sunday afternoon. Lots of Trove bots have already been created, some by people with little or no coding experience, so if you have an idea, give it a try.

You can also hack the bots to do something different; Tim has provided some guidance for that too. I went a slightly different way, because none of the examples did quite what I had in mind: I wanted to search by text, for the keyword 'aviation', rather than rely on user-generated tags, and I didn't want search across all of Trove's zones or one specific newspaper, but across all newspapers. For anyone who wants to make a similar bot, I made only 4 changes:

  1. added to .env: KEYWORD="aviation"
  2. added to server.py: KEYWORD = os.environ.get('KEYWORD')
  3. changed in server.py (prepare_message): message = 'Another Australian newspaper article about {}! {}: {}'
  4. changed in server.py (tweet_random): url = 'http://api.trove.nla.gov.au/result/?q={}&zone=newspaper&l-category=Article&encoding=json&n=1&s={}&key={}'.format(KEYWORD, start, API_KEY)

Or just remix my (almost completely undocumented and unstreamlined) glitch project, following Tim's instructions, and just change the keyword in .env.

There are further changes I could make, if I felt like it: for example, a more comprehensive set of keywords (aircraft, aeroplane, helicopter, autogyro...) Though 'aviation' seems to do a good job of capturing a wide variety of relevant articles, helped by a fuzzy default search (so 'aviator' seems to be picked up too). The Trove API allows for a lot of possibilities. I could add in the newspaper title, but that's available at the link and I think is less useful to most people than the date and the headline, for example. The recent and much maligned (at least by me!) doubling of the maximum tweet length to 280 characters is really useful here, because it's more than long enough for just about any likely headline length, even allowing for the 'Another Australian newspaper article about aviation!' announcement at the start of each tweet. The only real problem is the frequency of timeouts, which means that many of the scheduled tweets (currently 2 an hour) never get sent. But most people won't notice a missing tweet here or there, and it's better than annoying them with too many tweets.

Over to you, @TroveAirBot:
https://twitter.com/TroveAirBot/status/955417576183619585

Image source: West Australian (Perth), 14 January 1937, p. 9 (and @TroveAirBot's Twitter header).

UPDATE: see here for the new, improved Trove Air Bot (and code).

CC BY-NC-ND 4.0 This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. Permissions beyond the scope of this license may be available at http://airminded.org/copyright/.

Leave a Reply

Your email address will not be published. Required fields are marked *