I think what will also help hal the most is a alexa or cortana approach in data access, response to hals users "but" with a "very" good filter that also keeps hal from learning trash and racist comments etc. (in another words , DO NOT MAKE MICROSOFT'S A.I. MISTAKE .) Microsoft had online users posting all kinds of bad crap stuff and the A.I. LEARNED IT! (ALSO what i am talking about is not posted responses from internet users in forum type context but rather internet pages (again using filters to keep out racist or hate speech, etc. ) maybe a optional user check list on whats permitted and what's not ?) .
Maybe a system within hal that when a person is talking about various subjects , hal will (1. decide on the subject or subjects if multiple subjects are mentions ) and pull info. from the internet from many many different sites, filter whats on the web and talk about that subject in conversation back to the user . Unlike cortana and alexia what is need for hal is not just to acess the internet for answers to a question but to go beyond that with decisions on subjects from the user and using text from the internet various pages create conversation out of the subject matter back to the user , to in effect create a more human like flow of conversation .
This is what's needed to make hal more like cortana or alexa , "BUT" with a learning ability choosing what the best subject response should be to reply back to the user and at the same time add to the current hal data base .
This is just my opinion only of what i think is needed within hals programing . in a plug in .
doable or not .. that is the question !!