FileMaker Meet Watson
FileMaker 16 is upon us and new features include native tools to interact with web services as well as the ability to turn FileMaker itself into a web service/REST API. We have been using FileMaker to talk to APIs for years and have watched as SOAP/XML has been eclipsed by REST/JSON. With the help of plugins and “Insert from URL”, FileMaker developers have been able to securely interact with web services. So one might ask, what is so great about having these tools natively?
Certainly, native tools eliminate third-party issues such as maintenance and version compatibility, and generally they fit tighter into scripting methodologies. More subtlety, we have now entered a new phase of the Internet, marketed by the dominance of JavaScript and JSON as the lingua franca of web development.
The FileMaker Platform is adapting to this trend by providing developers with tools to stay competitive in the rapidly changing landscape of software development. We can now “talk” to REST API’s natively, using Insert from URL and cURL, and then parse the resulting JSON that is returned. We can also construct JSON as part of the request.
In practical terms this means that all the API’s out there are now closer and more easily consumed. If you are not familiar with what’s out there, take a look at ProgrammableWeb.
The number of web services out there that you can interact/consume has reached an astounding level. And the takeaway is that we are approaching an inflection point that may change how we develop applications in FileMaker and other environments.
Another current trend is the maturation of AI, Machine Learning, and Expert Systems. For a very long time, the promise of AI has been very much greater than what it’s been able to deliver. It has required huge computing resources, and the means of interacting with AI and Expert systems have been out of the reach of most developers.
I have been watching this ecosystem for many years and now seemed like an excellent time to dip into the waters. There are really two types of systems that are under the rubric AI. The first system uses Neural Networks, or programs that mimic the way that neurons work in the human brain. It uses test data to “train” the system by means of feedback into the network which reinforces some connections and minimizes others. The fact that neural net systems actually work is miraculous. A good example, also available as an API, is Google’s Tensorflow.
IBM's Watson
The other approach to AI is Expert Systems, and IBM has invested greatly on these services providing the bridge to the future from their mainframe business. As you are probably already aware, IBM’s Deep Blue and Watson are expert systems that have won chess championships and Jeopardy. These systems are not AI in the neural net sense. They reflect a specific body of knowledge in an exhaustive manner with a means of querying that body of knowledge with a set of tools that suit the domain. IBM has high-end expert system tools at the present to address medical and legal practices. On the more prosaic side, they have a group of “smart’” services, the Watson Developer Cloud, available through their Bluemix cloud platform, that presently encompass four categories: Language, Speech, Vision and Data Insights.
I have included a demo FileMaker 16 file that ties in to Tone Analyzer, which looks at text input and then returns data that describes the affective content of that text. The example file uses the “Get” method though you can also use Post. It sends the request to Watson and then parses the returning JSON into a FileMaker table that is then represented by a chart.
(We have also experimented with the language translation API as well. The Visual Recognition API requires training sets of images.)
Setting the structure of an URL correctly was the biggest challenge to integrating into the Watson services. Todd Geist’s Generator tool was a great help getting me up to speed with several issues. Once, I got the hang of it, it was relatively easy to come up with scripting routines that parse the JSON in a rational manner. The great thing about FM 16 and the improved data viewer is that it’s easy to use the native tools to see their action on a given body of JSON, which makes it easy to get feedback and suggest parsing approaches. To my mind, JSON is really very similar to XML, although easier to read and parse.
Download the Tone Analyzer.fmp12 sample file.
So what is the takeaway here? Simply put, the confluence of extremely powerful AI/Expert system APIs and FileMaker’s ability to interact with these API’s easily has created a new dynamic where we can offer clients business and creative insights within their FileMaker custom application that were previously out of reach. These services, while not free, are turning computing power into an affordable consumer commodity that will give businesses an edge in competitive environments.
Bonus Read: I’ve been reading this book with fascination. It’s a history of computing that very few know or understand. Highly recommended: