Узнать, где находятся друзья, позволяют сервисы Google Latitude или Foursquare, причём оба умеют оповещать о приближении знакомых. Контекстозависимость частично реализована и в Siri — автоматическом ассистенте, имеющемся в последних моделях iPhone. Siri можно сказать, например: «Напомни починить ручку двери, когда приду домой,» — и она сделает это. Тем не менее Siri далеко до идеала. Ей не под силу догадаться о том, чем в действительности занят пользователь и когда и о каких делах есть смысл напоминать.
Современные поисковые системы пришли к контекстозависимости другим путём. Двусмысленность естественного языка не позволяет интерпретировать запросы однозначно. В результате поисковикам не остаётся ничего, кроме как пытаться уловить истинные желания пользователя по косвенным признакам — иными словами, по контексту.
Бывший генеральный директор Google Эрик Шмидт ещё в 2007 году предсказывал, что в будущем поисковым системам придётся научиться угадывать намерения пользователей. 'Наша цель — сделать так, чтобы пользователи Google могли задавать такие вопросы как «Чем мне заняться завтра?» и «Какую работу мне выбрать?», — говорил Шмидт. Ближе всего к реализации этой полуфантастической идеи разработчики Google подошли в системе Google Now, встроенной в последние версии Android.
Google Now внимательно следит за пользователем, а затем использует полученные знания, чтобы самостоятельно подбирать полезную ему информацию. Когда пользователь отправляется в путь, система заранее предупреждает о пробках на маршруте, который он часто использует в такое время, сама отыскивает результаты спортивных матчей, если замечает интерес к тому или иному виду спорта или команде, и сама напоминает о событиях ещё нескольких типов. Пока что функциональность Google Now оставляет желать лучшего, но в Google планируют значительно расширить её. Чуть ли не каждое подразделение компании готовит собственный модуль, и остается лишь разобраться с ранжированием результатов. Это, впрочем, в Google тоже отлично умеют делать.
Всё это созвучно изначальной идее Шилита «предсказывать действия людей на основании ситуации». Google Now уже умеет извлекать данные из истории запросов к поисковой системе, а в будущем начнёт анализировать и письма из Gmail, календарь, данные о социальных связях из Google+ и так далее.
Миниатюризация электроники, распространение GPS и беспроводной связи устранили большинство препятствий, мешавших разработке контекстозависимых устройств и приложений. Но главное, чего не было во времена ParcTab, — это обширные базы данных, которые существуют сегодня. Google, Yelp или Foursquare могут без труда сказать, где находится ближайшая, например, аптека, а в будущем, вероятно, такие сервисы будут знать и о том, какие в этой аптеке есть лекарства.
Важное подспорье для электронных помощников — социальные сети. Они хранят бесценные архивы наших личных данных, знают всё о наших социальных связях и даже о наших предпочтениях. Представим простую жизненную ситуацию: один пользователь хочет пригласить в кино другого, но нужно определиться с деталями: когда и куда идти? Какой фильм смотреть? Не проблема: система, которой известны вкусы обоих пользователей, расположение кинотеатров и их программа, легко может выдать рекомендации, отсортированные в порядке потенциальной полезности.
Всё это не значит, что проблем не осталось. Некоторых ключевых технологий по-прежнему не хватает. Например, до сих пор нет стандартного средства определения местоположения внутри зданий (инфракрасная сеть ParcTab, кстати, давала эту возможность, но в реальных офисах или магазинах, вероятнее всего, шанс есть у аналогов технологии, разрабатываемой в Nokia). Не помешал бы и протокол, по которому телефоны могли бы опознавать присутствие друг друга, чтобы, к примеру, напомнить хозяевам обсудить какое-то дело или передать вещь.
Есть и более фундаментальные препятствия. Зачастую очень трудно понять, что именно делает и хочет сделать человек. И неудивительно — люди и сами не всегда ясно осознают это. Предположим, что пользователь зашёл в комнату, где находится предмет, о котором система должна напомнить. С одной стороны, её долг — напомнить пользователю об этом. Но с другой, если в этот момент человек занят чем-то совсем другим, то напоминание лишь отвлечёт его.
Идеальная контекстозависимая система должна понимать, чем в действительности занят пользователь. Для полного решения этой задачи необходим искусственный интеллект, которого пока, увы, нет. Впрочем, справились же, пусть и неидеально, с автоматическим переводом или распознаванием речи. Контексты никак не труднее. Тем не менее эта проблема существенно усложняет разработку контекстозависимых систем. Если даже такие простые вещи, как напоминания, срабатывающие при смене местоположения, сложны в реализации, то что говорить о более изощрённых случаях?
Если ограничить сферу применения контекстозависимой системы, сократив тем самым количество факторов, которые необходимо учитывать, то она будет способна худо-бедно обойтись и без настоящего понимания происходящего. Кирпичики для таких персональных систем уже доступны. Среди них — программы, автоматически меняющие настройки компьютера в зависимости от локации. В пример можно привести приложения Sidekick и MarcoPolo для Mac OS X, способные автоматически сменить множество настроек компьютера при изменении тех или иных условий.
Ещё одна программа для той же системы — Airlock позволяет выполнять разные действия в зависимости от приближения или удаления мобильного телефона, использующего Bluetooth. Кроме программ есть и устройства — например, Twine. Эти универсальные датчики можно разложить по дому и самостоятельно запрограммировать реакцию на срабатывание.
Другая трудность, связанная с контекстозависимыми системами, не имеет технического решения. Она сводится к тому, что всезнающие программы и устройства по определению знают о человеке всё. Даже если мы доверяем им, остаётся множество вопросов, связанных с приватностью. Всегда ли мы хотим, чтобы друзья и знакомые видели, где мы находимся и что делаем? Хотим ли мы, чтобы офисное здание всегда знало, в какой мы комнате? Безусловно, это будет полезно для многих приложений, но заодно работодатель сумеет без труда подсчитать, сколько времени было проведено за рабочим столом, а сколько — в курилке. Для кого-то это может прозвучать как лишний довод в пользу тотального контроля и учёта, но не всем нравится лишний раз ощущать себя винтиками большого механизма, а уж об опасениях по поводу возможных утечек и неправомерного использования информации и говорить нечего. С учётом приватности и разграничения доступа к личным данным разработка контекстозависимых систем усложняется ещё сильнее.
Однако выигрыш от применения контекстов велик и по большей части очевиден. Устройства могут напомнить нам о сотнях дел или просто повышать комфорт — к примеру, автоматически регулировать громкость музыки, управлять освещением и обогревом. Примеров можно придумать множество. Любое из этих приложений стоит усилий, а также проб и ошибок, которые предстоит совершить первопроходцам.
Колумнисты