I am a consultant and the author of 20+ books on artificial intelligence, machine learning, and the semantic web. 55 US patents. My favorite languages are Common Lisp, Haskell, Clojure, and Python. I live in Sedona Arizona. My personal web site with free downloads of my eBooks
My blog is hosted on Google's Blogger service that uses tracking cookies.
Interesting article on graph/lattice theory leads me to a good looking library
After reading Mark Chu-Carroll's extremely interesting article on using lattices for representing information, I started a hunt for good graph representation and analysis libraries. I looked for Lisp, Ruby, and Java libraries, and found a great looking library written in Ruby (gratr). One caveat: I spent 30 minutes enjoying reading through the library source code, but otherwise I have just experimented with the tests and examples. Thanks to Shawn Patrick Garbett, Luke Kanies and Horst Duchene.
I often find interesting/useful software this way: I get excited reading a good technical paper or blog, and then go and look for relevant software tools.
I prototyped a simple natural language question answering demo in about 90 minutes. I accept a query like “where does Bill Gates work?”, find the likely URI for Bill Gates, collect some comment text for this DBPedia entity, and then pass the original query to the transformer model with the “context” being the comment text collected via a SPARQL query. I run this on Google Colab. Note that I saved my Jupyter Notebook as a python file that is in the listing below. Note the use of ! to run shell commands (e.g., !pip install transformers). # -*- coding: utf-8 -*- """DbPedia QA system.ipynb Automatically generated by Colaboratory. Original file is located at https://colab.research.google.com/drive/1FX-0eizj2vayXsqfSB2ONuJYG8BaYpGO **DBPedia Question Answering System** Copyright 2021 Mark Watson. All rights reserved. License: Apache 2 """ !pip install transformers !pip install SPARQLWrapper from transformers import pipeline qa = pipeli
Here are some of my of my recent notes that might save you some time, or teach you a new trick. I have had good results using the py4cl library if I wrap API calls to TensorFlow or spaCy in a short Python library that calls Python libraries and returns results in simple types like strings and dictionaries. I just committed a complete example (Python library and Common Lisp client code) to the public repo for my book Loving Common Lisp, or the Savvy Programmer's Secret Weapon that will be added to the next edition of my book. Here is a link to the subdirectory with this new example in my repo: https://github.com/mark-watson/loving-common-lisp/tree/master/src/spacy I frequently make standalone executable programs using SBCL and I just noticed a great tip from Zach Beane for compressing the size of standalone executables. Start with rebuilding SBCL from source to add the compression option; get the source code and: ./make.sh --with-sb-thread --with-sb-core-compression sh in
I retired (my last job was Master Software Engineer and the manager of a deep learning team at Capital One) a year ago April and was enjoying time with friends and family, doing personal research in hybrid AI, lots of writing, and volunteering at our local food bank. I stopped my volunteer work with COVID-19 and welcomed the opportunity last month to start work at Olive AI working on a very strong Knowledge Graph team. I believe in their mission and the work and the people are great! It is refreshing to leave the deep learning field, at least for a while. My heart is in developing stronger AI that can explain its actions and adapt flexibly to help people in their lives. I always take a humans-first stand on technology. AI systems should help us get our work done efficiently and remove tedium, allow us more time for creative activities, and generally enjoy our own humanity.