After interviewing several of my peers who work in laboratories on how they look up data, I realized that we don’t need just another searchable, sortable interface for displaying data. An app like that wouldn’t be enough to get people to use the app, over simply searching for the data in a web browser. What we need is a virtual lab assistant, or homework assistant, something that can listen to our questions and speak the answers back to us. NISTAssist is that virtual assistant.
While NISTAssist does allow you to select any of the supported NIST datasets to browse through at any time, the key feature in NISTAssist is its ability to answer spoken questions out loud using those supported NIST datasets. For example, if you're working on a chemistry problem and need to know the first ionization energy of magnesium, you can simply ask "What is the ionization energy of Magnesium?" and NISTAssist will speak the value back to you, as well as displaying the value as a popup on the screen for you to look at. This feature is what truly provides value to the end users, and sets it apart from any other mobile applications or website that just lets you browse through lists of data. People want a reliable source of information and NIST has an abundance of it. NISTAssist is an innovative new way to get that information to the people when they need it.
Challenges I ran into
The biggest challenge I faced was trying to figure out what exactly the user is asking for when they pose a question to the application. The majority of my development time was spent testing and fixing my spoken word interpreter to better figure out what the user is asking, and to assemble the best possible answer for them.
What's next for NISTAssist
Since so much of the limited development time was spend on the speech interpreter, I'm excited to give a little more attention to NISTAssit's user interface to clean that up. Additionally, since NISTAssist is an application that benefits the most by learning from a large number of users, I'm hoping to get this beta version into more hands to gauge interest in additional features such as favorites, and to build a network of related data values so that NISTAssist can better predict what a user is _ going _ to ask based on the last few items they did ask.
With a background in physics and chemistry, I thought that the best app to create would be a physically interact-able interface that combined the data from all the NIST datasets. However, after conducting a few interviews, I realized that to provide the most value a reference application needs to fit organically into a user's workflow. I immediately thought of every science-fiction movie I'd ever seen, where the scientist can walk around their lab considering some problem and occasionally voicing questions that the lab's artificial intelligence then answers for them. This type of omnipresent "lab assistant" is exactly the innovative application that will bring more students and researchers to the NIST datasets.
How I built it
NISTAssist is built in C# using Xamarin.Forms, so the source code is able to be deployed cross-platform to both Android and iOS devices without any additional coding, effectively cutting development times in half.