1. A method for providing context based conversations, the method comprising: receiving, by a processor, user data pertaining to a user, wherein the user data comprises registration information of the user and metadata associated with the user; determining, by the processor, a role of the user, wherein the role of the user is pre-defined based on the registration information, and corresponds to one of a registered user, a guest user, and an administrator; providing, by the processor, restricted access to a users' data repository to the user upon ascertaining access privilege of the user based on the role pre-defined for the user; obtaining, by the processor, a text input from the user, wherein the text input pertains to a conversation; generating, by the processor, an expression, based on the text input, wherein the expression is processed semantically and contextually upon generating the expression, wherein the expression is generated using a position of a particular word in the text input; and wherein the generated expression provides flexibility to use the same expression for text inputs with different semantic meaning but same syntactic form; invoking, by the processor, one of a discussion service, a learning service, and an unlearning service, based on the expression and the metadata associated with the user; and retrieving a response, by the processor, based on at least one of the invoked services, and the metadata associated with the user, wherein the response is shared with the user, obtaining, by the processor, conversation data from the discussion service, the learning service, the unlearning service, the metadata associated with the user, user persona data for registered users to be included in a context graph, wherein the context graph enables a conversation system to retain a conversation history that aids in identifying a domain of the conversation with a timestamp.