A non-transitory computer readable storage medium storing instructions that, when executed, cause at least one processor to perform operations, the operations comprising:
- receiving first natural language input, wherein the first natural language input is free-form input formulated by a user via a user interface input device of a computing device of the user;
- generating an entry for the first natural language input in a personal database of the user stored in one or more computer readable media, wherein generating the entry comprises:
- generating descriptive metadata for the entry, wherein generating the descriptive metadata for the entry comprises:
- generating a semantic label associated with an entity based on one or more terms of the first natural language input, and
- generating an additional semantic label associated with an object based on one or more of the terms of the first natural language input;
- and
- storing, in the entry, the descriptive metadata;
- subsequent to receiving the first natural language input, receiving second natural language input, wherein the second natural language input is free-form input formulated by the user via the user interface input device or an additional user interface input device of an additional computing device of the user, and wherein one or more additional terms of the second natural language input include at least the semantic label associated with the entity and the object;
- determining, based on the second natural language input, at least one search parameter, wherein the at least one search parameter includes the object;
- searching the personal database based on the at least one search parameter;
- determining, based on the searching, that the entry is responsive to the second natural language input, wherein determining that the entry is responsive to the second natural language input is based at least in part on matching the at least one search parameter to at least some of the descriptive metadata;
- and
- in response to determining that the entry is responsive to the second natural language input:
- generating natural language output that includes one or more natural language output terms that are based on the entry;
- and
- providing, for audible presentation to the user via a user interface output device of the computing device, the natural language output.