1. A method comprising: receiving text in a system that includes a processor; extracting, by the system, a plurality of linguistic entities and associated linguistic entity categories based on the text; determining, by the system, one or more semantic objects of a semantic layer based on the linguistic entity categories, wherein each of the one or more semantic objects of the semantic layer associates one or more physical entities stored in a data source with user-friendly names; determining, by the system, an analysis context based on the text, the linguistic entities, and the associated linguistic entity categories; after determination of the analysis context and the one or more semantic objects by the system, generating, by the system, a query of the semantic layer based on the analysis context determined by the system and the one or more semantic objects determined by the system, wherein the generating the query of the semantic layer comprises: determining, by the system, based on the linguistic entity categories that were extracted, whether the one or more semantic objects are to be filtered, and in response to determining to filter the one or more semantic objects, determining how to filter the semantic objects, wherein when a value from a first linguistic entity category matches a value for one of the one or more semantic objects, using the value from the first linguistic entity category as a query filter, and when only a single entity is mentioned for the first linguistic entity category, including the entity in the query filter and removing the first linguistic entity category from a result of the query of the semantic layer; and receiving a structured data result in response to the query of the semantic layer.