четверг, января 11, 2007

Глубокий веб

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

Термин Глубокий веб (deep web, иногда употребляются invisible web, hidden web) обычно относится к веб-страницам, которые по тем или иным причинам не индексируются поисковыми роботами. Соответственно, если вы ищете что-либо своим любимым поисковиком, вы не сможете с его помощью найти страницы, которые этот поисковик не проиндексировал.

Это особенно печально, потому что очень распространено ассоциирование любимого поисковика со всем вебом, да что там с вебом - со всем Интернетом. Причем я вот не знаю откуда берется такое заблуждение. Знаю людей, для которых Интернет и Рамблер это вообще одно и то же. Рамблер ничего путного по запросу выдать не смог, значит в Интернете этого нет.

Почему страница может быть не проиндексирована? Чтобы это выяснить, надо понять как работают поисковые роботы. Стандартное очень упрощенное описание поискового паука: берет страницу, индексирует, ползет по ссылкам с нее, индексирует их, ползет по ссылкам с этих страниц и так далее. Слабость такого паука например в том, что он никогда не найдет страницу, на которую нет ссылки (то есть имеет место зависимость от связности веб-страниц). Такой простой паук найдет только статические страницы. Но обойдет стороной страницы, создаваемые только по запросу пользователя. В качестве примера сайтов с такими страницами в Рунете мне пришли в голову только банки данных вакансий и резюме. В англоязычных источниках упоминаются всякие разные базы данных: базы данных патенов, базы данных научных статей и т.п. Также не будет проиндексирован контент, закрытый паролем, страницы, на которые нет ссылок. Обычно не индексируются страницы, запрещенные к индексированию файлом robots.txt. Некоторое время останутся непроиндексированными новые страницы. Могут остаться непроиндексированными файлы в нетекстовом формате (.pdf, .doc), сайты на флэше.

Первые статьи по глубокому вебу, которые я нашла относятся к 1999 - 2001 годам. Статья, которую больше всего рекомендуют: The Deep Web: Surfacing Hidden Value.
Красивая картинка оттуда:

Статья была написана в 2001 году и примечательна тем, что там приводятся оценки размера и качества глубокого веба. И эти оценки цитируются до сих пор. Оценки получены методами близкими к гаданию на кофейной гуще, имхо. Вообще довольно сложно посчитать то, чего не видно. Плюс ситуация меняется чуть ли не каждый день.
Но ничего другого все равно нет, так что вот они. Глубокий веб по объемам превышает обычный в 400-500 раз. Поисковые роботы индексируют примерно 16 процентов от всего веб-контента. Глубокий веб более качественный (в среднем в три раза качественнее обычного). И еще глубокий веб растет быстрее всего.

С тех далеких времен ситуация изменилась. Глубокий веб пытаются индексировать по мере сил и возможностей. Наиболее показательны здесь старания Google - индексирование pdf, doc, содержимого библиотек, чего угодно. Они сравнительно недавно запатентовали способ поиска в глубоком вебе: Searching through content which is accessible through web-based forms.

В целом борьба за доступность информации в глубоком вебе ведется с трех сторон.
1. Со стороны пользователей. Пользователям советуют искать тщательнее.
Здесь народ пытается найти способы добраться как-нибудь до глубокого веба. Например, попробовать использовать запрос вместе со словом database. В статье How to Search the Invisible Web приводится пример: пользователь пытается найти статистику по катастрофам с самолетами в Аргентине. Если задать запрос в Yahoo вроде "plane crash Argentina", то в ответ вы получите кучу газетных заголовков. А если запросить "aviation database", то найдете NTSB Aviation Accident Database, например. Как раз то, что нужно.
Еще советуют использовать несколько более узкоспециальный поиск: Google Book Search, Google Scholar, Google Code Search

2. Со стороны владельцев страниц. Владельцам страниц дают советы как обеспечить доступ поисковых роботов к содержимому страницы.
Вот есть у меня динамически формируемый из базы данных контент, который не индексируется поисковыми машинами. Что делать?
Если база данных небольшая, то вывалить все содержимое на одну статичную страницу. Снабдив ссылкой с интерфейсом к базе данных конечно же. Если информации слишком много, то поместить на отдельную страницу хотя бы какую-то избранную.
pdf - файлы, презентации и т.п., перевести в текстовый формат. (Google по pdf'ам прекрасно себе ищет, про остальных не знаю). А аудио и видео выкладывать с описаниями.
Убрать логины и прочие ограничения.
Избавиться от флеша.

3. Со стороны поисковиков.
Вот это самый правильный путь на мой взгляд - попытаться поисковым роботом добраться до глубокого веба. Ибо, как известно, вкалывать должны роботы, а не человек.

Самая часто упоминаемая статья по этому поводу "Indexing the invisible web: a survey", авторы Yanbo Ru и Ellis Horowitz. Я уже было отчаялась найти ее в онлайне, но потом вышла на выложенную в сети через поиск по блогам. Статья посвящена работе с информацией, расположенной в открытых бесплатных базах данных, к которым пользователь может обращаться через веб-формы (это все те же базы данных научных статей и т.п., упомянутые мною выше). То есть, похоже, тому же, чему посвящен Гугловский патент, о котором я говорила. Статья эта исследует варианты решения проблемы и ссылается на большую кучу работ.

Кратенько о чем там. Задачи перед пауком ставлятся следующие: распознать страничку, являющуюся интерфейсом к базе данных и классифицировать ее.
Распознать такую страницу можно по тегу form. Но тег form используется не только для для интерфейсов к базам данных. Это может быть логин куда-либо, это может быть веб форма отправки писем. Как понять что встретилось пауку? В статье обсуждается два подхода. Первый: анализировать саму форму. Ну логично, если в форме есть input с пометкой "пароль", то тут скорее всего предлагается пользователю куда-то залогиниться. Второй путь - послать что либо в форму и посмотреть что получится.

Далее следует классификация страницы, нужно понять это база данных чего. Тут тоже изучаются два пути. Первый - классификация с помощью анализа сайта, на котором веб форма находится. Второй - опять туда чего-нибудь наприсылать и проанализировать ответы.

Нашли, классифицировали. Что дальше - надо этот сайт проиндексировать. Пытаемся задавать запросы, индексируем то, что получили на выходе. Есть еще такой вариант - не индексировать сайт, а хранить где-либо информацию об этом найденном сайте и перенаправлять туда запросы пользователя по мере надобности.
На каждом из вышеперечисленных этапов встречаются свои проблемы и тонкости, в статье об этом всем хорошо написано.
Еще одна интересная статья на эту тему Index Structures for Querying the Deep Web


Ссылки по теме
Research Beyond Google: 119 Authoritative, Invisible, and Comprehensive Resources
The Ultimate Guide to the Invisible Web
CompletePlanet.com - поиск по различным базам данных. Не впечатлил он меня как-то.
Google Unveils More of the Invisible Web - заметка 2001 года о том, что Google начал индексировать нетекстовый контент.
Д.А. Шестаков, Н.С. Воронцова. Структура русскоязычной части глубинного Веба. [.pdf]
В комментариях koudesnik упомянул еще статью по теме Structured Databases on the Web: Observations and Implications

15 коммент.:

Анонимный комментирует...

Я в своё время выработал довольно простой духступенчатый подход для поиска "вручную":
1. Мначала обычным поисковиком находится несколько сайтов с тусовкой по теме (здесь частенько помогает своеобразная рекурсия - поиск сайтов, ссылающихся на уже найденные), на них читаются статьи - но не для поиска нужной информации, а для составления словаря, характерного для этой тусовки и, если повезёт, ссылок на аналогичные сайты или непосредственно сайты по теме. В последнее время в качестве затравки стало удобно использовать википедию.

2. Затем с помощью полученного словаря составляется запрос и обычным же поисковиком ищутся все страницы (обычно блоги/форумы), обсуждающие интересующую тему и уже они обшариваются в поисках ссылок на узкотематические сайты или базы данных.

Анонимный комментирует...

а еще можно просто спросить в тусовке :)

Alena комментирует...

а еще можно просто спросить в тусовке

Работа с коммьюнити выливается в ряд проблем. Самая главная из них - это немгновенность ответа. Информация обычно нужна прямо сейчас. А ответа можно прождать и пару дней (и не дождаться, кстати). Это при том, что информация уже есть, лежит, ждет вас буквально, только вы не знаете где. Короче говоря, если бы поисковик "видел" всё, было бы гораздо удобнее. А пока дела обстоят так, как они обстоят - да, спрашивать в тусовке очень разумный путь.

мониторинг сайтов на основе сенсоров

Прочла, не понравилось. Насколько я понимаю, предлагается владельцам серверов устанавливает отдельную софтину для общения с роботами. То есть проблема индексирования контента частично сваливается на клиента. Про существование robots.txt знают немногие, а с софтиной точно никто не станет возиться.
Да, причем работа ориентирована не на индексирование глубокого веба, а на снижение нагрузки на сервер со стороны поисковых роботов и слежение за актуальностью информации. Муж на своем хостинге периодически видит этих роботов - ну не такая там большая нагрузка по сравнению с общим числом пользователей. Информация-то текстовая, весит мало...
На счет актуальности обновлений - на часто обновляемых сайтах ставят RSS. А поисковик уже может работать с RSS. Как сделано в Яндексовском поиске по блогам и форумам, например.

Ivan Sagalaev комментирует...

Муж на своем хостинге периодически видит этих роботов - ну не такая там большая нагрузка по сравнению с общим числом пользователей.

Да нет, Ален. Как раз роботов -- подавляющее большинство, гораздо больше чем людей. Достаточно посмотреть статистику за какой-нибудь полный день: http://softwaremaniacs.org/referers/.

Так что, облегчение работы роботам -- это само по себе хорошо, и у того же Google есть целая программа помощи веб-мастерам в этом: Webmaster Tools. Но такой подход помогает именно авторам сайтов, которые хотят и могут в этом участвовать. А их просто очень мало, и для всего веба это капля в море. Поэтому да, я согласен, что верный путь сейчас -- поисковикам искать умнее и глубже.

Денис Радченко комментирует...

Имхо проблема глубокого веба может полностью исправиться веб разработчиками. Если у вас конечное число информации то его можно выводить в виде обычных страниц, а не только через веб форму.

Just J0ker комментирует...

Решение:

1) личная off-line коллекция интересных ссылок
2) общение с профессионалами on-line

Анонимный комментирует...

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

Анонимный комментирует...

Еще можно упомянуть другую сторону глубокого веба - сайты, создатели которго сознательно не хотят чтобы поисковики их находили. Понятно, что такие сайты обычно представляют нечто не совсем законное. Лично я знаю, например, пару хакерских/кардерских форумов с очень большим количеством постов и очень качественных по контенту, но доступ туда только по приглашениям или даже по личному знакомству с командой сайта. Ясно что никаким поисковиком эти форумы не обнаруживаются.

Анонимный комментирует...

Отличный пост!

Просто пара замечаний, но не критических, а просто чтобы добавить информации :)
В качестве примера сайтов с такими страницами в Рунете мне пришли в голову только банки данных вакансий и резюме.
Полно таких сайтов с глубинными бд: например, поиск автомобилей. Не знаю почему, но что наши что иностранные автоискалки практически совсем не индексируются поисковиками.

Статья, которую больше всего рекомендуют: The Deep Web: Surfacing Hidden Value.
Во-первых, это не статья, это white paper. Т.е. это не научная работа. Отсюда, к тем оценкам, что в ней приводятся нужно относиться очень-очень осторожно. Насколько я знаю то, что глубинный веб в 400-550 раз больше в последние года два стали менее активно упоминать. Более того видел даже критику этой работы (забыл где правда) - т.е. там в суть в частности в том, что Бергман считал что у бд в среднем такой размер, а на самом деле средний размер бд меньше и отсюда общий размер глуб.Веба меньше. Во-вторых, работа все же хорошая в том смысле, что пожалуй первая в которой относительно четко было написано что к чему про глуб.Веб.
Для оценки числа бд в глуб.Вебе уже есть более хорошая (и научная!) работа - Structured Databases on the Web: Observations and Implications by Chang et al. В ней оценки за 2004год. Но размер в этой работе не оценивался. Косвенно, размер части глуб.Веба (русскоязычной части) считался в "Структура русскоязычной части глубинного Веба" (у вас она упоминается внизу), и там вроде как получается что размер русскояз.глуб.Веба примерно такой же порядка что русскояз.индексируемого Веба (т.е. возможно рус.глуб.Веб больше рус.индекс.Веба в 5-10 раз, но почти наверняка он не может быть больше в 50-100 раз)

И, наконец, насчет самого трудного этапа в процессе автоматического извлечения веб-страниц за формами. Самое сложно заполнить форму автоматически. Потому что в принципе найти интерфейсы так или иначе можно - даже в ручную. Если смог заполнить форму то вытащить данные из страниц тоже можно (много работ было уже сделано - 100%-качества при извлечении не будет, но 70-80% методы могут уже сейчас). А вот как заполнять формы толком никто пока не знает - куча сложностей, например, как узнать автоматически что в это поле надо вбивать марку машины. Для человека это легко и понятно - посмотрел на страницу и все увидел, а машина работатает c HTML-кодом в котором все это уже совершенно неочевидно.


koudesnik

Alena комментирует...

Просто пара замечаний, но не критических, а просто чтобы добавить информации :)

Спасибо, замечания действительно очень информативные.

Во-первых, это не статья, это white paper. Т.е. это не научная работа.

Угу, я не смогла придумать адекватный перевод. Как вообще народ white paper обычно на русский переводит?

Анонимный комментирует...

Как вообще народ white paper обычно на русский переводит?
Если честно, то не знаю :)
Несколько переводов дает http://multitran.ru.
В моем понимании это такой отчет или обзор какого-то вопроса, направления, темы и т.д., написанный экспертом (-ами) по данной тематике. Обычно я сталкивался с white paper от компаний, т.е. это и не пресс-релиз, и не тех.документация о каком-то продукте, а какой-то такой документ, который грубо говоря рассказывает о проблеме и потом указывает как продукты, сервисы данной компании решают эту проблему. Что-то вроде, чтобы продемонстрировать, что компания не только делает, но еще и знает что и как делает :) В любом случае, white paper должен в конечном счете помогать продать продукт, а потому научной "объективности" в нем ожидать по определению не следует.

koudesnik

Анонимный комментирует...

Здравствуйте, Елена!

Спасибо за отличную статью.
Я разместил Ваш материал со ссылкой на главную страницу Вашего блога и непосредственно на страницу со статьей на моем сайте по адресу http://ci-razvedka.com/Elena_Sagalaeva.html

Вы не возражаете? Если вдруг у Вас есть возражения, сообщите пожалуйста мне по электронной почте и я уберу материал. Но я надеюсь, что Вы не будете возражать и мой сайт станет еще одной площадкой, где Ваша статья будет доступна людям.

С уважением,
Евгений Ющук

Just J0ker комментирует...

еще о "скрытом" интернете - в спорной статье Лёхи Андреева на http://webplanet.ru/node/19435/print#

Just J0ker комментирует...

кстати, о "скрытом" интернете есть материалы в книге Дмитрия Ландэ "Поиск знаний в Internet" - очень профессиональная книга, кстати!

Unknown комментирует...

к теме скрытого веба: ссылки в коментах в этом блоге не ссылки