1. A method for solving a problem comprising: storing a user query which comprises at least one of a structured or a non-structured description of the problem; parsing of said user query wherein said user query is non-structured, to create a structured user query, wherein said structured user query comprises a formal semantic representation of said user query; semantically expanding said formal semantic representation of said user query to provide searching for at least one solution relevant to the problem; searching said at least one solution in an Expert Knowledge Base; and semantically sorting said at least one solution to produce a list of at least one solution for the problem.