1. A method for providing, by a self-service user support software application for assisting customers having a product or service problem, information, received via a search conducted over an Internet computer network using a refined user query, to a user in response to a received input user query, said method comprising: receiving, by a processor of a computer system, an input user query from a user interface component in a screen, said received input user query expressed in a free-form text format, said computer system comprising the screen, said input user query pertaining to a problem of the user which is a problem that the user experiences with a product or service; said processor performing a natural language analysis to generate substrings relevant to the received input user query, wherein said performing the natural language analysis comprises extracting details from the user query, and wherein said performing the natural language analysis comprises identifying a language of text in the input user query, recognizing a misspelling of one word in the input user query, determining a canonical form of another word in the input user query, recognizing a term in the input user query pertaining to a technical support domain, and semantically recognizing an incident expressed in the input user query; after said performing the natural language analysis, said processor performing an ontology analysis to output terms of an ontology of domain-specific information specific to a domain pertaining to products and to further output relationships between pairs of said terms, said outputted terms constrained to match the relevant substrings generated by said performing the natural language analysis; said processor capturing, via an ontology model included in the ontology, elements of a perfect or complete query, wherein the elements of the perfect or complete query include information pertaining to the problem of the user; during said performing the ontology analysis, said processor identifying multiple outputted terms that match one of the relevant substrings, requesting from the user a selection of one outputted term of the multiple outputted terms, and receiving from the user the selection of the one outputted term of the multiple outputted terms; after said performing the ontology analysis, said processor performing a query analysis to analyze the input user query with respect to the outputted terms and relationships between the terms; said processor refining the input user query based on the outputted terms and relationships between the terms; said processor generating a search query based on the refined user query; said processor initiating a search by sending the search query across the Internet computer network to a search engine configured to perform the search, based on the search query, via one or more databases; said processor receiving from the search engine results of the search via the user interface component in the screen; and after said performing the ontology analysis, said processor performing a query analysis to analyze the input user query with respect to the outputted terms and relationships between the terms.