1. A method, comprising: receiving, with a processor of a computer, a query with keywords that each identify a key concept, relevant words that capture a context of the keywords, and one or more selected services; calculating a general relevance indicator for each service among services in a category using: GRI Q = ∑ i = 1 M qk ⁢ ⁢ KRI i + ∑ i = 1 Mq r ⁢ ⁢ α i 2 × RRI i ( ( M qk + ∑ i = 1 Mq r ⁢ ⁢ α i ) ⁢ ( ∑ i = 1 M sk ⁢ ⁢ KRI i 2 + ( ∑ i = 1 M sr ⁢ ⁢ α i 2 × RRI i 2 ) ) ) 1 2 wherein KRI i is a keyword relevance indicator of a keyword i, from the keywords, associated with a service of the services in the category, wherein M k is a total number of the keywords in the query, wherein RRI j is a relevant word relevance indicator of a relevant word i, from the relevant words, associated with the service, wherein Mr is a total number of the relevant words in the query, and wherein α i is a weight for the relevant word i; ranking the services in the category based on the general relevance indicator for each service; and in response to determining that at least one of the selected services is not ranked high with reference to the ranked services in the category, recommending synonyms to be used to substitute corresponding keywords and synonyms to be used to substitute relevant words in the query; recommending new relevant words by: retrieving names of properties and names of relationships of a concept identified by a keyword among the keywords in an ontology database as candidate relevant words; and in response to determining that the candidate relevant words are not in the query and no synonyms are found, providing a recommendation that the candidate relevant words be included in the query as the new relevant words; and recommending one or more additional services to be included in the query.