I know this is going to sound like an absurd claim but anyway: I started building something very similar to this in .NET in about 2009. I used .NET's Expression Trees built from a user's query and then executed the query by resolving appropriate services dynamically at run time based on the NLP tags, context (everything from time, date & location to previous queries to info about the user) and transforming the inputs/outputs dynamically as necessary to pass from service to service.
I had a basic Proof of Concept but it was just an enormous task for single developer. Even just the NLP portion would have kept me busy for years at that time. I tried to get some friends on board and pitched it to a university as a research project but I couldn't get any interest.
Anyway, now I'm seeing things like Google Now, Cortana and Viv I'm sad I couldn't get mine off the ground BUT I'm also excited that this is finally starting to be realised. It would be awesome if Cortana could pick up some of these tricks.