Blog
Renovating Artbot
By Nikhil Dharmaraj on June 20, 2018
Hello! Nikhil here – I’m having a blast staying in Cambridge alone this summer so far, and I’m thrilled to be joining the HyperStudio development team as an intern! My work here this summer will concentrate on Artbot. As a recap, Artbot is a mobile website (www.Artbotapp.com) that serves as an art exhibit recommendation system for users in the Boston area; it is built on top of the open-source parserbot, a natural language processing tool that performs high-level entity extraction developed at HyperStudio. (https://github.com/hyperstudio/parserbot).
Originally, Artbot was designed as a mobile website by HyperStudio Research Assistants Liam Andrew and Desi Gonzalez as a personalized art recommendation system. The concept and approach was explicated in a paper published on Museums and the Web (https://mw2015.museumsandtheweb.com/paper/playful-engineering-designing-and-building-art-discovery-systems/). Currently, Artbot sources from seven different art museums in the Boston Area, and it employs a plethora of different natural-language-processing and entity-extraction services to parse and link related art exhibitions.
This summer, my goals for Artbot can be conceived of as a three-phase process: (1) web scraper improvement, (2) iOS transportation, and (3) adding social capabilities.
First, I hope to fix current bugs in Artbot. The foundation of Artbot relies on scraperbot, a program that scrapes various museum websites to pull different exhibits; afterwards, said art exhibitions are run through a chain of four entity-extraction and tagging services, namely Stanford NER, DBPedia, OpenCalais, and Zemanta. The scraper is designed using BeautifulSoup, a Python framework that allows for scraping and extraction from the HTML content of a given website. Each scraper is custom-designed to one of the eight museums in Artbot’s system right now, meaning that they are all adjusted to the format and structure of their respective webpages. However, the issue arises when considering the dynamic nature of these webpages. Essentially, the static code that was written a while ago does not always properly scrape current museum websites, due to updates and renovations on the page structure. Fixing this issue boils down to a manual task. Essentially, the instructions given to BeautifulSoup must be hand-modified to fit the new structures of some of the museum pages (for example, the DeCordova museum page: https://decordova.org/). In general, given the frequency with which museums remodel their websites, fixing the static scraper code may become something of a headache. However, for now, we hope that performing a broad pass through our BeautifulSoup instructions in scraperbot and updating them will serve to eliminate scraper bugs in Artbot in the foreseeable future. Moreover, with extra time, we hope to also add more web scrapers to expand Artbot’s reach to other museums in the Greater Boston area.
Once the scrapers are fixed and the bugs are eliminated, my second — and more broad — goal for the summer is converting Artbot to an iOS app, downloadable off the app store. Currently, Artbot is a mobile website; essentially, by accessing www.Artbotapp.com on their smartphone and saving it to their home screen, users can make Artbot a quasi-app. I hope to make mobile Artbot a concrete reality by porting it to a native iOS app. Two years ago, I completed an iOS App Development Track at Make School Summer Academy in Silicon Valley; since then, I have created a vast portfolio of iOS apps, all built natively in Xcode using Swift. I hope to now make Artbot fully functional as an iOS app by porting all the current code (written in a combination of Python, JavaScript and Ruby on Rails) to an Xcode-compatible portfolio. Most of the UI design will stay consistent; this task is just a matter of code generation, translation, and Apple Xcode design proficiency.
Finally, once Artbot is available both as a website and a native iOS app, we will work on implementing the final summer deliverable: adding social capabilities. To be sure, Artbot has a simple and specific goal: to recommend art exhibits and galleries and illuminate serendipitous connections in artwork to users. It is by no means to become a social platform in and of itself. Rather than making Artbot a vessel of social interaction, however, we believe that linking the app to certain social media will boost app use and experience. Examples of such connections would include a “Tweet,” “Instagram,” and “Facebook” button where users can share exhibits and galleries they have found on the app. Clicking the Tweet button, for instance, would pull up a suggested tweet that might look like this: “I just found XYZ exhibit on the @DeCordovaSPandM! Check it out #Artbot” In adding these core social connections and features, we hope to give users a positive channel to share their insights without distorting the original purpose and platform of Artbot.
Indeed, I’m very excited about Artbot’s future and growth this summer! With our three-step plan, I think we can truly advance its functionality and enhance its mission. Stay tuned for more updates!