1. A computer-implemented method for disambiguating one or more entities in an indicated text segment, comprising: processing the indicated text segment to determine a plurality of terms and their associated parts-of-speech tags and grammatical roles; performing linguistic analysis of the processed text segment to determine one or more potential entities which are referred to in the text segment by potential entity names; generating and storing, for each potential entity, an entity profile data structure storing one or more associated properties that characterize the entity based upon surrounding context and linguistic information, the surrounding context and linguistic information retrieved from the performed linguistic analysis of the processed text segment, by: retrieving, from the linguistic analysis of the processed text segment, actions and/or modifiers associated with the determined potential entity name, the actions and/or modifiers appearing in the context surrounding the potential entity names in the indicated text segment; determining one or more roles that are attributable to the potential entity based upon the retrieved actions and/or modifiers associated with the determined potential entity names; and storing, in the entity profile data structure as part of the properties associated with the potential entity, the determined one or more roles; and disambiguating which entities are being referred to in the indicated text segment by determining one or more most likely entities that are referred to in the text segment by comparing, using both linguistic and contextual information, the entity profiles generated for each potential entity with attributes of one or more candidate entities, including a comparison of the determined one or more roles stored in the profile generated for each potential entity with the one or more roles of each of the candidate entities.