Иван Бирюков

Fathom, новый JS-фреймворк от Mozilla, позволит браузерам «оценивать» веб-страницы с точки зрения человека

При помощи JavaScript-фреймворка Fathom Mozilla хочет научить браузеры извлекать смысловую нагрузку веб-страниц. Он уже используется в Firefox.

2331

При помощи JavaScript-фреймворка Fathom Mozilla хочет научить браузеры извлекать смысловую нагрузку веб-страниц.

Эрик Роуз, создатель Fathom, позиционирует его как «мини-язык» для написания семантических извлекателей. Фреймворк уже используется в Firefox совместно с трекером веб-трафика Activity Stream, составляя описания страниц, изображений и других элементов. Эрик отметил:

И что может Fathom?

Роуз показал сценарии, в которых Firefox оценивает содержимое страниц точно так же, как и человек. Например, браузер может распознать ссылку для логина и перейти по ней, предоставить сочетание клавиш для отключения уведомлений, спрятать излишне большие секции на устройстве с маленьким экраном и автоматически настроить стили для печати страницы.

Но как он устроен?

Fathom — это язык программирования потоков данных наподобие Prolog. Он извлекает значения веб-страниц, идентифицируя элементы вроде адресных форм, кнопок «Предыдущая / Следующая страница» и текстовых блоков. Фреймворк оценивает и извлекает узлы DOM, опираясь на настроенные под пользователя условия, а система типов и аннотаций выражает зависимости между этапами оценки страницы и управляет состоянием. Уже существующие настройки правил оценки можно расширять, не редактируя их напрямую, что упрощает работу с Fathom третьим лицам.

Наборы правил фреймворка — это данные, похожие на JS-функции, но вызовы создают аннотации в специальной версии синтаксического дерева. Роуз сказал:

О том, как устроен Fathom, вы можете почитать в статье Эрика, опубликованной в блоге Mozilla Hacks.

2331