Thursday, January 05, 2017

AI: Assistants, Skills, Bots, Functions... Smart Web?

"We're not in Kansas anymore" with "Assistant" software tools,
like Apple Siri, Google Assistant, Microsoft Cortana, Amazon Alexa, Facebook M... 
They can be integrated, embedded, and extended with "skills"
Here is what will come soon from Microsoft:

During this interview with a marketing person, on question what "languages" are supported,
meaning programming languages, the answer was "English" and Chinese :)
The actual programming language supported is JavaScript (node.js) for now.
It is likely HTTP REST endpoint. 

Cortana is available on Windows 10, as well as app on iOS and Android. On very basic level it is voice recognition and syntheses and integration with some intelligent processing of messages in human languages. Then it is extensible with web services (REST) calls, as well as local calls.
The features of Agents can be extended via "skills" extensions. 
The line with "bots" and "cloud functions" for processing and extensions is blurred. 

There are no common standards, it is mostly a mix (or mess) of custom web services APIs and ad-hock natural language processing. It would be much better if "Semantic Web" produced some standardized and widely used "Ontologies" (controlled vocabularies). Since it didn't, maybe at least Simple English could be used...

It is all getting very complex like it was with document formats and hypertext before WWW (HTML + HTTP) came to unify all. Best option would be to get WWW extended for "natural language / voice" interfaces. Otherwise, we will end up in similar complexity like in mobile apps with too many incompatible ways to solve same requirements.

We could imagine (and create!) "semantic / smart web services" that could recognize messages based on well defined vocabularies, like Simple English. XML or JSON could be used for packaging, not for meaning. Bots already support custom parsing, sometimes AI assisted.
Semantic structures are already widely used by search engines, just not exposed to public.
Metaweb - Wikipedia 
Wikidata - Wikipedia

A (not quite realistic) future: downloading skills on demand :)

AI: meta-programming (probabilistic programming)

Data Science / Machine Learning techniques and tools can help us better understand data
by creating models from learning from large amounts of training data.

Similar techniques could be used to analyze behavior of programs,
doing meta-analysis of results of running such programs.
Those results could be used for selecting best-match programs for various situations.

podcast interview:
Introducing model-based thinking into AI systems - O'Reilly Media
from MIT labs

Get the Data Newsletter

04 AMPLab and Some Recent Trends in Data Ben Lorica - YouTube

Automatic Statistician (meta-programming without AI)