conversational algorithms