Идея простая до безобразия. Есть входной портал - сайт, доступный для любого пользователя Интернета. Юзер вводит запрос в произвольной форме. Единственное требование - запрос должен предполагать в ответ конкретную информацию, а не философствования или растекание мыслью по древу. Запрос идёт на вход базы знаний системы. Здесь его обрабатывает простейший синтаксический анализатор - выделяет ключевые слова и отношения. Система пытается по максимуму отработать автоматически. Она ищет ответ в базе, но возвращает его только в случае стопроцентного попадания (вариант: возвращает при любом попадании с указанием, что есть такая-то вероятность ошибки - юзер может потребовать дальнейшего уточнения). При этом заведомо бессмысленные с точки зрения системы запросы типа "покажите мне Смысл Жизни" или "что я ел сегодня на завтрак?" отсекаются сразу - звыняйте, мол, не по адресу. Если запрос на первый взгляд корректный, но чёткого попадания нет, система пытается классифицировать запрос - по ключевым словам обозначить тематику, к которой он может относиться. Затем запрос вместе с результатами классификации идёт на следующий уровень.
На следующем уровне у нас координаторы, которых может быть n и у которых есть индикаторы текущего состояния "занят/свободен". Выбирается случайным образом кто-то из свободных. Координатор никаких ответов не даёт. Он только уточняет (либо подтверждает) классификацию и, при необходимости, переформулирует запрос в более формальном виде. Или отсекает как некорректный, если система не сумела это сделать. А затем, если запрос всё-таки корректный, снова отдаёт его системе. Система анализирует тематику и, таким образом, выбирает подмножество экспертов, которые потенциально могут ответить на вопрос.
Эксперты - это следующий уровень. У них тоже есть индикаторы "занят/свободен", а также, при больших загрузках, некоторое значение, определяющее длину очереди. Соответственно, выбирается один из экспертов по данной тематике, который свободен либо очередь к нему минимальна. Эксперт получает запрос, ищет ответ в любых доступных ему источниках и возвращает его системе. Если он не находит ответ (или истекает некоторое критическое время ожидания, которое может задать сам юзер), система переадресует запрос другому эксперту. Как только ответ получен, он возвращается юзеру, а также заносится в базу знаний - таким образом, следующий юзер с таким же запросом получит ответ автоматически, без обращения к экспертам.
Экспертом в общем случае может стать любой юзер, если должным образом подтвердит свою квалификацию в той или иной предметной области. После чего он через одного из координаторов регистрируется в системе. При этом на него не накладывается абсолютно никаких обязательств. Фактически, с точки зрения работы системы вообще не роялит, кто конкретно из экспертов ответил на той или иной вопрос. Т.е., если он не отвечает, то ничего при этом не теряет и ничего не получает. А вот активное участие эксперта в пополнении базы знаний должно повышать его статус в системе и каким-то образом поощряться.
Насколько я понимаю, техническая реализация подобной штуки не намногим сложнее какого-нибудь p2p-клиента, и уж на порядок проще операционной системы :) Основное здесь - грамотно разработать структуру базы знаний. Причём желательно с самого начала учесть всё по максимуму, чтобы потом не перестраивать уже в процессе. Гораздо больше тут может быть сложностей организационного характера - поддержка всего этого дела, взаимодействие с координаторами и экспертами, которые могут находиться в любой точке планеты. Кроме того, на начальном этапе, когда база ещё не будет как следует заполнена, нагрузка на координаторов и экспертов может оказаться очень большой. С другой стороны, можно и не давать систему в общий доступ, пока как следует не заполнится база и не наберётся достаточно координаторов и экспертов. Так что, на первый взгляд, ничего непреодолимого тут нет.
Идеальный вариант реализации: проект полностью некоммерческий, существует на энтузиазме участников в условиях их полной свободы. При этом участие всё же даёт им определённые привилегии (подумать, какие).
Оптимальный вариант: проект поддерживается государственными структурами стран-участников.
Реальный вариант: проект поддерживается корпорациями-участниками, а также спонсорами, дающими свою рекламу на входном портале и т.п.
Необходимое уточнение: для юзеров система должна быть бесплатной при любом варианте.
Теперь вопросы:
1. Возможно, что-то подобное уже существует, пусть и не в таком глобальном масштабе?
2. Если нет, то чего я не учёл? Я имею в виду, какие реальные сложности могут возникнуть при создании такой системы, кроме упомянутых выше?
Дополнение: слабые места.
1. При том, что количество выданных автоматикой ответов будет расти, количество отсеянных некорректных запросов не уменьшится и скорее всего тоже будет расти по мере обращения к системе всё большего количества юзеров - соответственно, будет увеличиваться нагрузка на координаторов.
2. Ответы экспертов никак не проверяются - при такой модели всё построено на доверии к ним и система не застрахована от их случайных ошибок или намеренного саботажа.
Не то чтобы я так прямо брался за создание подобного проекта ;) Но почему бы и не порассуждать, каким он должен быть? Идея-то, по-моему, стоящая.