1. A system comprising: at least one processor; and a memory encoding computer executable instruction that, when executed by the at least one processor, cause the at least one processor to perform a method for contextual language understanding, the method comprising: receiving a first natural language input based on input from a first user; identifying a first set of entities in the first natural language input utilizing a schema; receiving a first response to the first natural language input based on the first set of entities, wherein the first response is generated by the system; identifying a second set of entities in the first response utilizing the schema; receiving a second natural language input; identifying a third set of entities in the second natural language input utilizing the schema; identifying a first set of carryover entities from any previous set of entities for carryover based on the third set of entities; determining a first user intent based on the third set of entities and the first set of carryover entities; and generating a second response based on the first user intent.