Информационно-поисковые системы

advertisement
Информационно-поисковые системы. Вопросы к экзамену
Вопрос 1. Понятие информации. Виды информации. Свойства.
Информация (от лат. informatio - осведомление, разъяснение, изложение) - в широком смысле
абстрактное понятие, имеющее множество значений, в зависимости от контекста. В узком смысле
этого слова - сведения (сообщения, данные) независимо от формы их представления. В настоящее
время не существует единого определения термина информация. С точки зрения различных
областей знания, данное понятие описывается своим специфическим набором признаков.
Информация - совокупность данных, зафиксированных на материальном носителе, сохранённых и
распространённых во времени и пространстве.
Информация - это осознанные сведения об окружающем мире, которые являются объектом
хранения, преобразования, передачи и использования.
Основные виды информации по ее форме представления, способам ее кодирования и хранения,
что имеет наибольшее значение для информатики, это:
* графическая или изобразительная - первый вид, для которого был реализован способ хранения
информации об окружающем мире в виде наскальных рисунков, а позднее в виде картин,
фотографий, схем, чертежей на бумаге, холсте, мраморе и др. материалах, изображающих картины
реального мира;
* звуковая - мир вокруг нас полон звуков и задача их хранения и тиражирования была решена с
изобретение звукозаписывающих устройств в 1877 г. (см., например, историю звукозаписи на
сайте - http://radiomuseum.ur.ru/index9.html); ее разновидностью является музыкальная информация
- для этого вида был изобретен способ кодирования с использованием специальных символов, что
делает возможным хранение ее аналогично графической информации;
* текстовая - способ кодирования речи человека специальными символами - буквами, причем
разные народы имеют разные языки и используют различные наборы букв для отображения речи;
особенно большое значение этот способ приобрел после изобретения бумаги и книгопечатания;
* числовая - количественная мера объектов и их свойств в окружающем мире; особенно большое
значение приобрела с развитием торговли, экономики и денежного обмена; аналогично текстовой
информации для ее отображения используется метод кодирования специальными символами цифрами, причем системы кодирования (счисления) могут быть разными;
* видеоинформация - способ сохранения «живых» картин окружающего мира, появившийся с
изобретением кино.
Существуют также виды информации, для которых до сих пор не изобретено способов их
кодирования и хранения - это тактильная информация, передаваемая ощущениями,
органолептическая, передаваемая запахами и вкусами и др.
Свойства информации
Как и всякий объект, информация обладает свойствами. Характерной отличительной
особенностью информации от других объектов природы и общества, является дуализм: на
свойства информации влияют как свойства исходных данных, составляющих ее содержательную
часть, так и свойства методов, фиксирующих эту информацию.
С точки зрения информатики наиболее важными представляются следующие общие качественные
свойства: объективность, достоверность, полнота, точность, актуальность, полезность, ценность,
своевременность, понятность, доступность, краткость и пр.
1. Объективность информации. Объективный – существующий вне и независимо от человеческого
сознания. Информация – это отражение внешнего объективного мира. Информация объективна,
если она не зависит от методов ее фиксации, чьего-либо мнения, суждения.
Пример. Сообщение «На улице тепло» несет субъективную информацию, а сообщение «На улице
22°С» – объективную, но с точностью, зависящей от погрешности средства измерения.
Объективную информацию можно получить с помощью исправных датчиков, измерительных
приборов. Отражаясь в сознании человека, информация может искажаться (в большей или
меньшей степени) в зависимости от мнения, суждения, опыта, знаний конкретного субъекта, и,
таким образом, перестать быть объективной.
2. Достоверность информации. Информация достоверна, если она отражает истинное положение
дел. Объективная информация всегда достоверна, но достоверная информация может быть как
объективной, так и субъективной. Достоверная информация помогает принять нам правильное
решение. Недостоверной информация может быть по следующим причинам:
* преднамеренное искажение (дезинформация) или непреднамеренное искажение субъективного
свойства;
* искажение в результате воздействия помех («испорченный телефон») и недостаточно точных
средств ее фиксации.
3. Полнота информации. Информацию можно назвать полной, если ее достаточно для понимания
и принятия решений. Неполная информация может привести к ошибочному выводу или решению.
4. Точность информации определяется степенью ее близости к реальному состоянию объекта,
процесса, явления и т. п.
5. Актуальность информации – важность для настоящего времени, злободневность, насущность.
Только вовремя полученная информация может быть полезна.
6. Полезность (ценность) информации. Полезность может быть оценена применительно к нуждам
конкретных ее потребителей и оценивается по тем задачам, которые можно решить с ее помощью.
Самая ценная информация – объективная, достоверная, полная, и актуальная. При этом следует
учитывать, что и необъективная, недостоверная информация (например, художественная
литература), имеет большую значимость для человека. Социальная (общественная) информация
обладает еще и дополнительными свойствами:
* имеет семантический (смысловой) характер, т. е. понятийный, так как именно в понятиях
обобщаются наиболее существенные признаки предметов, процессов и явлений окружающего
мира.
* имеет языковую природу (кроме некоторых видов эстетической информации, например
изобразительного искусства). Одно и то же содержание может быть выражено на разных
естественных (разговорных) языках, записано в виде математических формул и т. д.
Вопрос 2. Основные термины из теории информационного поиска:
Документ, информационная потребность, пертинентность документа, релевантность.
Важные понятия в информационном поиске - документ и запрос. Документ определяется как
средство закрепления любым способом на специальном материале любой информации о фактах,
событиях, явлениях объективной действительности и мыслительной деятельности человека.
Документы имеют различную форму представления. В автоматизированных документальных
ИПС это прежде всего текстовая информация на естественных языках в машиночитаемой форме.
Запрос представляет собой информационную потребность, сформулированную на естественном
языке. Результат «перевода» информационного запроса на информационно-поисковый язык
называют поисковым образом запроса (ПОЗ) или поисковым предписанием (ПП). Под этим
понимают выражение на языке запросов, который включает в себя как собственно ИПЯ, так и
средства управления поиском. Синтаксис и семантика языков запросов определяется структурой и
наполнением документов и общими задачами системы.
Третья часть информационного обеспечения - так называемая «выдача», результаты поиска.
Выдача существует в двух видах: краткие описания документов и собственно документы.
Информационная потребность - потребность, возникающая, когда цель, стоящая перед
пользователем в процессе его профессиональной деятельности либо в его социально-бытовой
практике, не может быть достигнута без привлечения дополнительной информации.
Пертинентность (лат. pertineo - касаюсь, отношусь) - соответствие найденных информационнопоисковой системой документов информационным потребностям пользователя, независимо от
того, как полно и как точно эта информационная потребность выражена в тексте
информационного запроса. Иначе говоря, это соотношение объёма полезной информации к
общему объёму полученной информации.
Релевантность (лат. relevo - поднимать, облегчать) в информационном поиске - семантическое
соответствие поискового запроса и поискового образа документа. В более общем смысле, одно из
наиболее близких понятию качества «релевантности» - «адекватность», то есть не только оценка
степени соответствия, но и степени практической применимости результата, а также степени
социальной применимости варианта решения задачи.
Вопрос 3. Информационно-поисковая система. Определение. Структура ИПС.
Поиск - в информационном смысле: стремление найти что-либо, действие ищущего напрвленное
на получение нового или утеряного, новых данных, знаний, закономерностей. Поиском так же
называется один из способов обучения, обеспечение полезных знаний о природе, языке, обществе.
Подразумевается получение знаний через самостоятельные мыслительные действия для решения
задач.
Система - множество взаимосвязанных объектов и ресурсов организованных процессом
системогенза в единое целое и возможно противопоставимое среде.
Система в системном анализе - совокупность существующих и связей между ними, выделенных
из среды на определенное время, с определенной целью.
Информационная система - организованная совокупность программно-тхнических и других
вспомогательных средств и технологических процессов, функционально-определенных групп
работников, обеспечивающая сбор, представление и накопление информационных ресурсов в
определенной предметной области, поиск и выдача сведений необходимых для удовлетворения
определенных потребностей.
Информационно-поисковая система - упорядоченая совокупность документов и информационных
технологий предназначенных для хранения и поиска информации, текстов или данных.
Субъективно под целью информационного поиска понимается нахождение всех только
пертинентных документов.
Для того чтобы было с чем сравнивать необходимо некоторое количество непертинентных
документов. Они называются «шум». Слишком большой шум затрудняет выделение
пертинентных документов, малый не дает уверенности в том, что документы пертинентны.
Когда документов много используется ИПС.
В этом случае информационная потребность должна быть выражена средствами, которые
понимает конкретная информационная система (поисковая). Т.е. должен быть сформулирован
запрос. Запрос может редко выразить информационную потребность однако многие ИПС по
разным причинам не могут определить, соответствует тот или иной документ запросу. Степень
соответствия запросу называется релевантностью.
Релевантный документ может оказаться непертинентным.
Особенности ИПС:
Поисковые процессы представлены четырьмя стадиями:
1. Формулировка (До начала поиска)
2. действие (начался поиск)
3. обзор результатов
4. усовершенствование
Структура - это множество элементов системы и взаимосвязи между ними.
Входы и выходы - это материальные потоки или потоки сообщений, поступающие в систему или
выводимые ею. Поступающую инф-цию мы будем рассматривать как набор символов {x(i)},
значение которого образует вектор X. Данные сообщения проходят обработку в системе и
находятся в прямой зависимости от времени. Аналогично множество выходных - {y(i, t)} образует
вектор Y.
Цель и ограничения. Порядок функционирования системы описывается рядом переменных: U1,
U2…, Un. Часть этих переменных должна всегда поддерживаться в экстремальном положении max U1 и т. п. U1 = f (X, t, Y, …), тогда U1 наз-ся целевой функцией системы. Данная функция
определяет соответствие целей системы результатам ее функционирования.
Закон проведения системы. Это функция f(х), связывающая изменение входа и выхода системы.
Среди известных свойств системы можно выделить следующие: относительность, делимость и
целостность.
ИС представляет собой систему, функционирование которой во времени заключается в сборе,
хранении, обработке, распределении инф-и о деятельности какого-либо экономического объекта
реального мира
-Вопрос 4. Типы информационно-поисковых систем в зависимости от
характера выдаваемой информации.
По методу определения релевантность различается:
Формальная - соответсвие определяется алгоритмически, путем сравнения поискового
предписания и поискового образа документа на основании применяемого ИПС критерия выдачи.
Содержательная - соответствие документа информационому запросу определяется неформальным
путем.
Вопрос 5. Функции информационно-поисковой системы.
Информационно-поисковая система - система, выполняющая функции:
- хранения больших объемов информации;
- быстрого поиска требуемой информации;
- добавления, удаления и изменения хранимой информации;
- вывода информации в удобном для человека виде.
Различают:
- автоматизированные (coputerised);
- библиографические (reference);
- диалоговые (online);
- документальные и фактографические информационно-поисковые системы.
Вопрос 6. Исторические предпосылки развития поисковых систем.
Обратимся к истории возникновения сети Internet, которая была создана в связи с возникшей
необходимостью совместного использования информационных ресурсов, распределенных между
различными компьютерными системами. Большинство первых приложений, включая FTP и
электронную почту, были разработаны исключительно для обмена данными между хосткомпьютерами Internet.
Другие приложения, такие как Telnet, создавались для того, чтобы пользователь получил
возможность доступа не только к информации, но и к рабочим ресурсам удаленной системы. По
мере развития Internet (увеличения пользователей и хост-компьютеров) прежние методы обмена
данными перестали отвечать возросшим потребностям пользователей. Возникла необходимость
разработки новых способов поиска сетевых ресурсов и доступа к ним, которые позволяли бы
использовать информацию независимо от ее формата и расположения.
Для удовлетворения таких потребностей сначала были созданы поисковая система Archie,
решающая задачу локализации ресурсов на FTP-сервере, и система Gopher, упрощающая доступ к
различным сетевым ресурсам. Затем были разработаны сетевые информационные системы WWW
и WAIS, предлагающие абсолютно новые методы получения информации. Принципы работы этих
систем позволяют легко ориентироваться в огромном количестве информационных ресурсов без
необходимости предоставления механизмов работы самой сети Internet. Такой подход позволяет
говорить уже не просто о ресурсах взаимосвязанных компьютерных систем, а об особых
информационных пространствах сети.
Система Archie представляет собой комплекс программных средств, работающих со
специальными базами данных. В этих базах данных содержится постоянно пополняющаяся
информация о файлах, к которым можно получить доступ через сервис FTP. Пользуясь услугами
системы Archie, можно осуществить поиск файла по шаблону его имени. При этом пользователь
получит список файлов с точным указанием места их хранения в сети, а также с информацией о
типе, времени создания и размере файлов. Доступ к информационно-поисковой системе Archie
может осуществляться различными путями, начиная от запросов по электронной почте и с
помощью сервиса Telnet и заканчивая использованием графических Archie-клиентов.
Система Gopher была разработана для упрощения процесса локализации FTP-ресурсов Internet и
для более удобного представления сведений о содержании хранящихся на FTP-серверах файлов.
Система Gopher дает возможность в удобной форме (в виде меню) представлять пользователям об
имеющихся файлах и их содержании. Меню Gopher-серверов могут содержать ссылки на другие
Gopher- и FTP-серверы. Таким образом, пользователь получает возможность “путешествовать” по
Internet, не обращая внимания на местонахождение интересующих его ресурсов, и получать
доступ к этим ресурсам.
Система Veronica используется для поиска информации в Gopher-пространстве по заголовкам
пунктов меню. После ввода ключевого слова, система Veronica выясняет, встречается ли оно в
меню на каком-либо Gopher-сервере, и в качестве результатов поиска выдает список заголовков
пунктов меню, содержащих ключевое слово. Поскольку система Veronica не является автономной
поисковой программой, а тесно связана с системой Gopher, она обладает тем же, что и система
Gopher, недостатком: далеко не всегда по заголовку можно сказать, что собой представляет тот
или иной информационный ресурс. Достоинства системы заключается в том, что нет
необходимости узнавать, где расположена найденная информация, достаточно выбрать требуемую
запись из списка.
Вопрос 7. История развития автоматизированных документальных
информационно-поисковых систем, этапы развития. Особенности
современного этапа.
Переход к информационному обществу XXI века породил беспрецедентный рост объемов и
концентрации информации в глобальных компьютерных сетях. Это резко обострило проблему
создания информационно-поисковых систем (ИПС) и их эффективного использования.
История автоматизированных информационно-поисковых систем исчисляется полувеком.
Типичная ИПС первых лет - это человеко-машинная система, где анализ и описание содержания
документов (индексирование) выполняется вручную, а поиски проводятся машиной.
Первоначально основу ИПС составляли информационно-поисковые языки (ИПЯ), основным
элементом которых являются дескрипторные словари и тезаурусы. Сегодня, однако, большинство
работающих ИПС относится к классу вербальных систем бестезаурусного типа, когда
индексационные термины выбираются непосредственно из текстов документов. Лавинообразный
рост объемов электронной документальной информации, ее видовое, тематическое и языковое
разнообразие являются как причиной кризиса современного информационного поиска, так и
стимулом его совершенствования.
Проблема поиска ресурсов в сети Интернет была осознана достаточно скоро, и в ответ появились
различные системы и программные инструменты для поиска, среди которых следует назвать
системы Gopher, Archie, Veronica, WAIS, WHOIS и др. В последнее время на смену этим
инструментам пришли «клиенты» и «серверы» всемирной паутины WWW.
Достигнутые в течение последнего десятилетия результаты развития средств вычислительной
техники, методов проектирования программного и информационного обеспечения систем
автоматизации различного уровня и назначения способствовали существенному пересмотру
принятых ранее подходов к созданию информационных систем, и, прежде всего, к созданию
новой информационной технологии, основными принципами которой являются:
Обеспечение общения конечного пользователя (исследователя, проектировщика, конструктора,
технолога, оператора ИПК. и ГАП, плановика) с системой автоматизации на профессиональноограниченном естественном языке, представление входной и результирующей информации в
привычной и удобной пользователю форме.
Обеспечение возможности решения задач планирования, управления, проектирования, подготовки
производства и научных исследований по их постановкам и исходным данным независимо от
сложности и наличия формальных математических моделей этих задач.
Создание конечному пользователю таких условий работы, при которых он осуществляет процессы
управления, планирования, проектирования и поиска новых решений в режиме активного,
расширяющегося диалога с ЭВМ, оперируя понятиями своей предметной области, используя
профессиональный опыт и навыки и принимая решения одновременно по множеству критериев,
часть из которых не описана формально и не имеет количественного выражения.
Вопрос 8. Характеристики ИПС.
Опишем основные характеристики поисковых систем:
* Полнота
Полнота - одна из основных характеристик поисковой системы, представляющая собой отношение
количества найденных по запросу документов к общему числу документов в сети Интернет,
удовлетворяющих данному запросу. К примеру, если в Интернете имеется 100 страниц,
содержащих словосочетание «как выбрать автомобиль», а по соответствующему запросу было
найдено всего 60 из них, то полнота поиска будет 0,6. Очевидно, что чем полнее поиск, тем
меньше вероятность того, что пользователь не найдет нужный ему документ, при условии, что он
вообще существует в Интернете.
* Точность
Точность - еще одна основная характеристика поисковой машины, которая определяется степенью
соответствия найденных документов запросу пользователя. Например, если по запросу «как
выбрать автомобиль» находится 100 документов, в 50 из них содержится словосочетание «как
выбрать автомобиль», а в остальных просто наличествуют эти слова («как правильно выбрать
магнитолу и установить в автомобиль»), то точность поиска считается равной 50/100 (=0,5). Чем
точнее поиск, тем быстрее пользователь найдет нужные ему документы, тем меньше различного
рода «мусора» среди них будет встречаться, тем реже найденные документы не будут
соответствовать запросу.
* Актуальность
Актуальность - не менее важная составляющая поиска, которая характеризуется временем,
проходящим с момента публикации документов в сети Интернет, до занесения их в индексную
базу поисковой системы. Например, на следующий день после появления интересной новости,
большое количество пользователей обратились к поисковым системам с соответствующими
запросами. Объективно с момента публикации новостной информации на эту тему прошло
меньше суток, однако основные документы уже были проиндексированы и доступны для поиска,
благодаря существованию у крупных поисковых систем так называемой «быстрой базы», которая
обновляется несколько раз в день.
* Скорость поиска
Скорость поиска тесно связана с его устойчивостью к нагрузкам. Например, по данным ООО
«Рамблер Интернет Холдинг», на сегодняшний день в рабочие часы к поисковой машине Рамблер
приходит около 60 запросов в секунду. Такая загруженность требует сокращения времени
обработки отдельного запроса. Здесь интересы пользователя и поисковой системы совпадают:
посетитель желает получить результаты как можно быстрее, а поисковая машина должна
отрабатывать запрос максимально оперативно, чтобы не тормозить вычисление следующих
запросов.
* Наглядность
Наглядность представления результатов является важным компонентом удобного поиска. По
большинству запросов поисковая машина находит сотни, а то и тысячи документов. Вследствие
нечеткости составления запросов или неточности поиска, даже первые страницы выдачи не всегда
содержат только нужную информацию. Это означает, что пользователю зачастую приходится
производить свой собственный поиск внутри найденного списка. Различные элементы страницы
выдачи поисковой системы помогают ориентироваться в результатах поиска.одробные пояснения
по странице результатов поиска, например у «Яндекса» можно посмотреть по ссылке
Вопрос 9. Поисковый запрос. Определение. Виды поисковых запросов.
Поисковый запрос - исходная информация для осуществления поиска с помощью поисковой
системы. Формат поискового запроса зависит как от устройства поисковой системы, так и от типа
информации для поиска. Чаще всего поисковый запрос задаётся в виде набора слов или фразы,
иногда - используя расширенные возможности языка запросов поисковой системы.
Система запроса
1. Фиксация информационно потребности на естественном языке.
2. Выбор поисковых сервисов в сети и формализация записей информационной потребностей на
конкретных информационно поисковых языках.
3. Выполнение созданных запросов.
4. Предварительная обработка и выбор документа из списка.
5. Обращение по выбранныым адресам за искомыми документами.
6. Предварительный просмотр найденных документов.
7. Сохранение релевантного документа
8. Извлечение из них ссылок для расширения запроса.
9. Изучение всего массива сохранных документов.
10. При необходимости возврат к первому этапу.
Вопрос 10. Лингвистическое обеспечение ИПС.
Лингвистическое обеспечение - это логико-семантический аппарат, состоящий из
информационно-поискового языка, правил применения (методик индексирования), критерия
выдачи и других языковых средств.
Вопрос 11. Информационно-поисковый язык ИПС. Структура. Типы и виды
ИПЯ.
Информационно-поисковый язык системы
Однако, индекс - это только часть поискового аппарата, причем не видная глазу пользователя.
Второй частью этого аппарата является информационно-поисковый язык. ИПЯ позволяет
сформулировать запрос к системе в довольно простой и доходчивой форме. Уже давно осталась
позади романтика создания ИПЯ, как естественного языка. Именно этот подход использовался в
системе Wais на первых стадиях ее реализации. Если даже пользователю предлагается вводить
запросы на естественном языке, то это не значит, что система будет осуществлять семантический
разбор запроса пользователя. Проза жизни заключается в том, что обычно фраза разбивается на
слова, из этого списка удаляются запрещенные и общие слова, иногда производится нормализация
лексики, а затем все слова связываются либо логическим AND, либо OR. Таким образом запрос
типа:
>Software that is used on Unix Platform
будет преобразован в:
>Unix AND Platform AND Software
что будет означать примерно следующее: "Найди все документы, в которых слова Unix, Platform и
Software встречаются одновременно".
Возможны и варианты. Так в большинстве систем фраза "Unix Platform" будет опознана как
ключевая фраза, и не будет разделяться на отдельные слова. Вообще говоря, и все три слова могут
быть опознаны как одна ключевая фраза. Другой подход заключается в вычислении близости
между запросом и документом. Именно этот подход используется в Lycos, например. В этом
случае, в соответствии с векторной моделью представления документов и запросов вычисляется
мера близости. К настоящему времени известно около дюжины различных мер близости.
Наиболее часто применяется cos угла между поисковым образом документа и запросом
пользователя. Именно эти проценты соответствия документа запросу и выдаются в качестве
справочной информации при списке найденных документов.
Наиболее продвинутым языком запросов из современных информационно-поисковых систем
Internet обладает AltaVista[4]. Кроме обычного набора AND, OR, NOT, эта система позволяет
использовать еще и NEAR. Последний оператор позволяет организовать контекстный поиск. Все
документы в системе разбиты на поля, поэтому в запросе можно указать в какой части документа
пользователь хочет увидеть ключевое слово (в ссылке, заголовке и т.п.). Можно также задать поле
ранжирования выдачи и критерий близости документов запросу.
3.6.4. Типы информационно-поисковых языков
Главная задача информационно-поисковой системы - это поиск информации релевантной
информационным потребностям пользователя. Слово релевантность означает соответствие между
желаемой и действительно получаемой информацией. Релевантность можно еще представить как
меру близости между реально полученными документами и тем, что следовало бы получить из
системы. Естественно, что здесь возникает две задачи, которые следует решить: представление
информации в системе и формулирование информационных потребностей пользователя. Эти две
проблемы тесно связаны друг с другом. Руководства по многим информационно-поисковым
системам Internet (Yahoo, OpenText и др.), что система реализует запрос типа "найди похожее". Но
что значит эта фраза в реальности? Как вычислить эту самую похожесть?
Наиболее распространенными моделями представления документов в информационно-поисковой
системе являются различные вариации на тему векторной модели, когда документ представляется
как набор терминов. Как уже упоминалось ранее, это не весь текст документа, а только небольшой
набор терминов, который отражает его содержание. Базируясь на таком представлении о
документе и рассмотрим различные информационно-поисковые языки.
3.6.5. Традиционные информационно-поисковые языки и их модификации
Наиболее распространенным ИПЯ является язык, позволяющий составить логические выражения
из набора терминов. При этом используются булевые операторы AND, OR, NOT. Запрос при этом
может выглядеть следующим образом:
((информационная and система ) or ИПС) not СУБД
В данном случае эта фраза означает: "Найди все документы, которые содержат одновременно
слова "информационная" и "система", либо слово "ИПС", но не содержат слова "СУБД"".
Запрос можно рассматривать как и реальный документ из базы данных. В нашем случае,
фактически, мы имеем дело с двумя запросами:
информационная and система not СУБД
и
ИПС not СУБД
каждый из которых подразумевает как бы два действия: сначала найти все документы,
содержащие необходимые пользователю термины, а потом отсеять те, которые содержат термин
"СУБД".
Такая схема достаточно проста, и поэтому наиболее широко применяется в современных
информационно-поисковых системах. Но еще 20 лет тому назад были хорошо известны и ее
недостатки.
Булевый поиск плохо масштабирует выдачу. Оператор AND может очень сильно сократить число
документов, которые выдаются на запрос. При этом все будет очень сильно зависеть от того,
насколько типичными для базы данных являются поисковые термины. Оператор OR напротив
может привести к неоправданно широкому запросу, в котором полезная информация затеряется за
информационным шумом. Для успешного применения этого ИПЯ следует хорошо знать лексику
системы и ее тематическую направленность. Как правило, для системы с таким ИПЯ создаются
специальные документально лексические базы данных со сложными словарями, которые
называются тезаурусами и содержат информацию о связи терминов словаря друг с другом.
Модификацией булевого поиска является взвешенный булевый поиск. Идея такого поиска
достаточно проста. Считается, что термин описывает содержание документа с какой-то
точностью, и эту точность выражают в виде веса термина. При этом взвешивать можно как
термины документа, так и термины запроса. Запрос может формулироваться на ИПЯ, описанном
выше, но выдача документов при этом будет ранжироваться в зависимости от степени близости
запроса и документа. При этом измерение близости строится таким образом, чтобы обычный
булевый поиск был бы частным случаем взвешенного булевого поиска.
Языки типа "Like this"
При внимательном рассмотрении взвешенного поиска закрадывается естественное желание
вообще обойтись без логических коннекторов и измерять близость документа и запроса какимилибо другими критериями. Наиболее простой моделью этого типа является линейная модель
индексирования и поиска, когда близость документа и запроса рассматривается как угол между
ними. В этом случае высчитывается sin угла, который получают как скалярное произведение двух
векторов. В соответствии со значением меры близости происходит ранжирование документов при
выдаче ссылок на них пользователю. Вообще говоря, скалярное произведение не очень хорошо
подходит для информационно-поисковых систем Internet, так как длина запроса обычно невелика.
Это в традиционных системах существовали специальные службы, которые отлаживали длинные
запросы, а в Internet такие службы только нарождаются. Поэтому реально применяются другие
меры близости, но принцип остается тот же: сначала вычисляется мера, а потом происходит
ранжирование.
Рассмотренный подход дает возможность более мягкого расширения и уточнения запросов, но он
также не гарантирует высоких показателей релевантности, в случае выбора неудачной лексики.
Поиск в нечетких множествах
При этом типе поиска весь массив документов описывается как набор нечетких множеств
терминов. Каждый термин определяет некую монотонную функцию принадлежности документам
документального массива. Когда запрашивается AND, то это интерпретируется как минимум из
двух функций, соответствующих терминам запросов, OR - как максимум, NOT - как 1-<значение
функции>. В соответствии с полученными значениями результат поиска также ранжируется, как и
в случае с поиском по мерам близости.
Следует сразу сказать, что этот метод поиска используется только в исследовательских системах и
распространен крайне ограничено.
Вопрос 12. Фактографические информационно-поисковые системы.
Библиографический поиск как вид фактографического.
Фактографические ИПС реализуют поиск и выдачу фактов, текстов, документов, содержащих
сведения, которые могут удовлетворить поступивший запрос пользователя. В этом случае
осуществляется поиск не какого-то конкретного документа, а всей совокупности сведений по
данному запросу, хранящихся в информационном фонде ИПС или ИСС. Отметим, что основным
отличием фактографических информационно-поисковых систем от документальных является то,
что эти системы выдают пользователю. не какой-либо ранее введенный документ, а уже в той или
иной степени обработанную информацию.
В зависимости от того, как в фактографической ИПС реализована подобная обработка
информации, различают три поколения таких систем.
ИС первого поколения обеспечивают накопление и поиск информации по одному типу объектов и
реализуют один тип запросов при использовании для фактографического описания данных
фиксированного формата.
В фактографических системах второго поколения возможен уже выбор типа запроса из
представленного набора. Отображаемые объекты могут принадлежать к различным классам,
формат фактографического описания задается для класса объектов.
В фактографических ИПС третьего поколения, которые являются, по сути дела, разновидностью
интеллектуальных диалоговых систем, реализуется поиск информации по нерегламентированному
перечню запросов, поисковый образ задается пользователем в произвольной форме,
предусматриваются операции синтеза информации для удовлетворения запросов пользователей,
имеется специальный аппарат анализа вновь вводимой информации на смысловую и формальную
релевантности хранящимся в информационном фонде данным.
Вопрос 13. Интеллектуальные информационно-поисковые системы.
Структура интеллектуальной системы
С развитием компьютерных технологий менялся смысл, вкладываемый в понятие
информационной системы. Современная информационная система - это набор информационных
технологий, направленных на поддержку жизненного цикла информации и включающего три
основных процесса: обработку данных, управление информацией и управление знаниями. В
условиях резкого увеличения объемов информации переход к работе со знаниями на основе
искусственного интеллекта является, по всей вероятности, единственной альтернативой
информационного общества [85].
Согласно определению Д.А. Поспелова [79], "Система называется интеллектуальной, если в ней
реализованы следующие основные функции:
* накапливать знания об окружающем систему мире, классифицировать и оценивать их с точки
зрения прагматической полезности и непротиворечивости, инициировать процессы получения
новых знаний, осуществлять соотнесение новых знаний с ранее хранимыми;
* пополнять поступившие знания с помощью логического вывода, отражающего закономерности в
окружающем систему мире в накопленных ею ранее знаниях, получать обобщенные знания на
основе более частных знаний и логически планировать свою деятельность;
* общаться с человеком на языке, максимально приближенном к естественному человеческому
языку;
* получать информацию от каналов, аналогичных тем, которые использует человек при
восприятии окружающего мира;
* уметь формировать для себя или по просьбе человека (пользователя) объяснение собственной
деятельности;
* оказывать пользователю помощь за счет тех знаний, которые хранятся в памяти, и тех
логических средств рассуждений, которые присущи системе".
Перечисленные функции можно назвать функциями представления и обработки знаний,
рассуждения и общения. Наряду с обязательными компонентами, в зависимости от решаемых
задач и области применения в конкретной системе эти функции могут быть реализованы в
различной степени, что определяет индивидуальность архитектуры. На рис. 2.1 в наиболее общем
виде представлена структура интеллектуальной системы в виде совокупности блоков и связей
между ними [85].
База знаний представляет собой совокупность сред, хранящих знания различных типов.
Рассмотрим кратко их назначение.
База фактов (данных) хранит конкретные данные, а база правил - элементарные выражения,
называемые в теории искусственного интеллекта продукциями.
База процедур содержит прикладные программы, с помощью которых выполняются все
необходимые преобразования и вычисления.
База закономерностей включает различные сведения, относящиеся к особенностям той среды, в
которой действует система.
База метазнаний (база знаний о себе) содержит описание самой системы и способов ее
функционирования: сведения о том, как внутри системы представляются единицы информации
различного типа, как взаимодействуют различные компоненты системы, как было получено
решение задачи.
База целей содержит целевые структуры, называемые сценариями, позволяющие организовать
процессы движения от исходных фактов, правил, процедур к достижению той цели, которая
поступила в систему от пользователя либо была сформулирована самой системой в процессе ее
деятельности в проблемной среде.
Управление всеми базами, входящими в базу знаний, и организацию их взаимодействия
осуществляет система управления базами знаний. С ее же помощью реализуются связи баз знаний
с внешней средой. Таким образом, машина базы знаний осуществляет первую функцию
интеллектуальной системы.
Выполнение второй функции обеспечивает часть интеллектуальной системы, называемая
решателем и состоящая из ряда блоков, которые управляются системой управления решателя.
Часть из блоков реализует логический вывод.
Блок дедуктивного вывода осуществляет в решателе дедуктивные рассуждения, с помощью
которых из закономерностей из базы знаний, фактов из базы фактов и правил из базы правил
выводятся новые факты. Кроме этого, данный блок реализует эвристические процедуры поиска
решений задач как поиск путей решения задачи по сценариям при заданной конечной цели. Для
реализации рассуждений, которые не носят дедуктивного характера, т. е. для поиска по аналогии,
по прецеденту и т. д., используются блоки индуктивного и правдоподобного выводов.
Блок планирования применяется в задачах планирования решений совместно с блоком
дедуктивного вывода.
Назначение блока функциональных преобразований состоит в решении задач расчетнологического и алгоритмического типов.
Рис. 2.1. Общая структура интеллектуальной системы
Третья функция - функция общения - реализуется как с помощью компоненты естественноязыкового интерфейса, так и с помощью рецепторов и эффекторов, которые осуществляют так
называемое невербальное общение и используются в интеллектуальных роботах.
2.2. Разновидности интеллектуальных систем
В зависимости от набора компонентов, реализующих рассмотренные функции, можно выделить
следующие основные разновидности интеллектуальных систем:
* интеллектуальные информационно-поисковые системы;
* экспертные системы (ЭС);
* расчетно-логические системы;
* гибридные экспертные системы.
Интеллектуальные информационно-поисковые системы являются системами взаимодействия с
проблемно-ориентированными (фактографическими) базами данных на естественном, точнее
ограниченном как грамматически, так и лексически (профессиональной лексикой) естественном
языке (языке деловой прозы). Для них характерно использование (помимо базы знаний,
реализующей семантическую модель представления знаний о проблемной области)
лингвистического процессора.
Экспертные системы являются одним из бурно развивающихся классов интеллектуальных систем.
Данные системы в первую очередь стали создаваться в математически слабоформализованных
областях науки и техники, таких как медицина, геология, биология и другие. Для них характерна
аккумуляция в системе знаний и правил рассуждений опытных специалистов в данной предметной
области, а также наличие специальной системы объяснений.
Расчетно-логические системы позволяют решать управленческие и проектные задачи по их
постановкам (описаниям) и исходным данным вне зависимости от сложности математических
моделей этих задач. При этом конечному пользователю предоставляется возможность
контролировать в режиме диалога все стадии вычислительного процесса. В общем случае, по
описанию проблемы на языке предметной области обеспечивается автоматическое построение
математической модели и автоматический синтез рабочих программ при формулировке
функциональных задач из данной предметной области. Эти свойства реализуются благодаря
наличию базы знаний в виде функциональной семантической сети и компонентов дедуктивного
вывода и планирования.
В последнее время в специальный класс выделяются гибридные экспертные системы. Указанные
системы должны вобрать в себя лучшие черты как экспертных, так и расчетно-логических и
информационно-поисковых систем. Разработки в области гибридных экспертных систем
находятся на начальном этапе.
Наиболее значительные успехи в настоящее время достигнуты в таком классе интеллектуальных
систем, как экспертные системы.
Важное место в теории искусственного интеллекта (ИИ) занимает проблема представления
знаний. В настоящее время выделяют следующие основные типы моделей представления знаний:
* семантические сети, в том числе функциональные;
* фреймы и сети фреймов;
* продукционные модели.
Семантические сети определяют как граф общего вида, в котором можно выделить множество
вершин и ребер. Каждая вершина графа представляет некоторое понятие, а дуга - отношение
между парой понятий. Метка и направление дуги конкретизируют семантику. Метки вершин
семантической нагрузки не несут, а используются как справочная информация.
Различные разновидности семантических сетей обладают различной семантической мощностью,
следовательно, можно описать одну и ту же предметную область более компактно или громоздко.
Фреймом называют структуру данных для представления и описания стереотипных объектов,
событий или ситуаций. Фреймовая модель представления знаний состоит из двух частей:
* набора фреймов, составляющих библиотеку внутри представляемых знаний;
* механизмов их преобразования, связывания и т. д.
* Существует два типа фреймов:
* образец (прототип) - интенсиональное описание некоторого множества экземпляров;
* экземпляр (пример) - экстенсиональное представление фрейм-образца.
В общем виде фрейм может быть представлен следующим кортежем:
<ИФ, (ИС, ЗС, ПП),..., (ИС, ЗС, ПП)>,
где ИФ - имя фрейма; ИС - имя слота; ЗС - значение слота; ПП - имя присоединенной процедуры
(необязательный параметр).
Слоты - это некоторые незаполненные подструктуры фрейма, заполнение которых приводит к
тому, что данный фрейм ставится в соответствие некоторой ситуации, явлению или объекту.
В качестве данных фрейм может содержать обращения к процедурам (так называемые
присоединенные процедуры). Выделяют два вида процедур: процедуры-демоны и процедурыслуги. Процедуры-демоны активизируются при каждой попытке добавления или удаления данных
из слота. Процедуры-слуги активизируются только при выполнении условий, определенных
пользователем при создании фрейма.
Продукционные модели - это набор правил вида "условия-действие", где условиями являются
утверждения о содержимом базы данных, а действия представляют собой процедуры, которые
могут изменять содержимое базы данных.
Формально продукция определяется следующим образом:
(i); Q;P;С; QA В; N,
где (i) - имя продукции (правила); Q - сфера применения правила; Р - предусловие (например,
приоритетность); С - предикат (отношение); А -> В - ядро; N - постусловия (изменения, вносимые
в систему правил).
Практически продукции строятся по схеме "ЕСЛИ" (причина или, иначе, посылка), "ТО"
(следствие или, иначе, цель правила).
Полученные в результате срабатывания продукций новые знания могут использоваться в
следующих целях:
* понимание и интерпретация фактов и правил с применением продукций, фреймов,
семантических цепей;
* решение задач с помощью моделирования;
* идентификация источника данных, причин несовпадений новых знаний со старыми, получение
метазнаний;
* составление вопросов к системе;
* усвоение новых знаний, устранение противоречий, систематизация избыточных данных.
Процесс рассмотрения компьютером набора правил (выполнение программы) называют
консультацией. Ее наиболее удобная для пользователя форма - дружественный диалог с
компьютером. Интерфейс может быть в форме меню, на языке команд и на естественном языке.
Диалог может быть построен на системе вопросов, задаваемых пользователем, компьютером, или
фактов - данных, хранящихся в базе данных. Возможен смешанный вариант, когда в базе данных
недостаточно фактов.
При прямом поиске пользователь может задавать две группы вопросов, на которые компьютер
дает объяснения:
* как получено решение. При этом компьютер должен выдать на экран трассу в виде ссылок на
использованные правила;
* почему компьютер задал какой-то вопрос. При этом на экран выдается своеобразная трасса,
которую компьютер хотел бы использовать для вывода после получения ответа на задаваемый
вопрос. Вопрос почему может быть задан как в процессе консультации, так и после выполнения
программы.
Специфичен алгоритм поиска, реализуемый логическими языками: он является фактически
последовательным перебором по дереву сверху вниз - слева направо.
-Вопрос 14. Нормирование лексики в ИПС.
Вопрос 15. Индексирование в ИПС.
Под индексированием понимается процесс, состоящий из двух этапов:
определение тем, которые отражаются в данном документе;
выражение этих тем на языке, принятом в информационно-поисковой системе, и запись в виде
поисковых образов, которые связываются с документом.
Для того чтобы при помощи ИПС можно было отыскать документы, соответствующие некоторому
информационному запросу, сам запрос также должен быть заиндексирован. Процесс поиска
осуществляется путем сопоставления поисковых образов документов с поисковым образом
запроса. При полном или частичном совпадении образов документ считается соответствующим
запросу и выдается пользователю.
Вопрос 16. Модели поиска. Языковые средства представления и
структурирования электронных документов. Языки метаданных.
Метаданные в HTML-документах
Константин А. Рыбаков
Известно, что метаданные несут в себе справочную и управляющую информацию, которая
используется разными агентами (клиентскими приложениями, поисковыми роботами) в
различных целях.
В данной статье будут рассмотрены мета тэги, включение которых в документ, как правило,
преследует следующие основные цели: управление процессом индексации документа (или всего
сайта в целом) поисковыми роботами, описание содержимого данного документа (опять же для
поисковых роботов) и управление некоторыми функциями броузеров. Все мета тэги описывать
будет лишним, так как многие из них являются довольно абстрактными, то есть не несут никакой
полезной информации с точки зрения агентов и просто ими игнорируются.
Мета тэги делятся две на группы: эквиваленты HTTP-заголовка и информационно-управляющую
часть, не входящую в заголовок HTTP. Такое разделение связано, в основном, с синтаксисом
(<META HTTP-EQUIV="..." CONTENT="..."> и <META NAME="..." CONTENT="...">
соответственно) и стандартом. Если же говорить о самих метаданных, то такое деление будет в
какой-то степени условным, то есть речь идет не о том, что тэги NAME могут выступать в роли
HTTP-заголовков, просто заголовок HTTP также является носителем справочно-управляющей
информации. Вообще, эквиваленты HTTP имеют более низкий приоритет перед "истинным"
заголовком, который генерируется WEB-сервером. Следует также отметить общий формат
декларирования мета-тэгов в HTML-документе, как это показано ниже:
<HTML>
<HEAD>
<TITLE>...<TITLE>
<!-- HTTP-эквиваленты //-->
<META HTTP-EQUIV="..." CONTENT="...">
<!-- другие теги группы HTTP-EQUIV //-->
<!-- группа NAME //-->
<META NAME="..." CONTENT="...">
<!-- другие теги группы NAME //-->
</HEAD>
<BODY>
...
</BODY>
</HTML>
Далее следует описание наиболее часто встречающихся (в силу их полезности) мета тэгов. Их
синаксис будет ясен из примеров, приведенных ниже.
Группа HTTP-EQUIV
1. EXPIRES (дата устаревания документа)
После истечения указанного срока документ будет каждый раз загружаться заново, а не браться из
кэша.
Формат даты: RFC850
Пример: <META HTTP-EQUIV="EXPIRES" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
2. PRAGMA (управление кэшированием)
Возможно одно значение NO-CACHE, то есть данный документ не кэшируется броузером.
Пример: <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
3. CONTENT-TYPE (Тип документа и его кодировка)
Было много споров относительно этого тэга... Он в основном требуется для правильного выбора
кодировки броузером, но это актуально только тогда, когда WEB-сервер не поддерживает
автоматическую перекодировку документов (например, для иностранных серверов,
предоставляющих бесплатное место для вашего сайта, такая возможность не предусмотрена), в
ином случае CONTENT-TYPE может только привести к путанице.
Пример: <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=koi8-r">
4. CONTENT-LANGUAGE
Явное указание языка документа. Данные этого тэга могут использоваться как поисковыми
роботами, так и WEB-серверами.
Формат: <Язык>-<Диалект>
Пример: <META HTTP-EQUIV="CONTENT-LANGUAGE" CONTENT="en-GB">
5. REFRESH
Время (в секундах), через которое произойдет автоматическая перезагрузка документа или
переход на другой документ с заданным URL.
Формат: <ВРЕМЯ> или <ВРЕМЯ>; <URL>
Пример: <META HTTP-EQUIV="REFRESH" CONTENT="5; http://algo.ekaboka.com/">
6. CACHE-CONTROL (управление кэшированием)
Возможные случаи: кэширование в общем (PUBLIC) / частном (PRIVATE) кэше. Документ
вообще не кэшируется (NO-CACHE) или кэшируется но не сохраняется (NO-STORE).
Пример: <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-STORE">
Группа NAME
1. DESCRIPTION (описание документа)
Наряду с описанием ключевых слов этот тэг является, на наш взгляд, наиболее важным. Именно
информация, содержащаяся в нем выводится в результатах поиска, выдаваемых поисковыми
серверами на запрос пользователя.
В общем случае вид результатов поиска как правило выглядит так:
а) URL документа
б) Название документа (содержимое <TITLE>...</TITLE>)
в) Описание документа, то есть DESCRIPTION или несколько сотен байт начала документа
(включая атрибуты ALT, TITLE у картинок), если DESCRIPTION отсутствует. В первом случае
пользователь получает достаточно краткое, но в то же время емкое описание документа, хотя это,
конечно, зависит от автора документа, а во втором случае информация о документе носит
довольно скудный характер, а именно это может быть бессмысленный набор слов или несколько
первых предложений, которые, возможно, и не относятся к общей теме документа и,
соответственно, его никак не характеризуют.
г) Рейтинг (коэффициент соответствия документа запросу пользователя).
Пример: <META NAME="DESCRIPTION" CONTENT="Описание данного документа, до 100
символов">
2. KEYWORDS (ключевые слова)
Под словом "ключевые", понимается набор слов и фраз, наиболее полно характеризующих данный
документ. Они активно используются поисковыми роботами при индексации. В конечном счете
эти слова учитываются при выдаче результатов поиска и способствуют повышению рейтинга.
Пример: <META NAME="KEYWORDS" CONTENT="Ключевые слова, разделенные запятой, до
1000 символов">
Как видно из описания применение DESCRIPTION и KEYWORDS никогда не является лишним,
их наличие, при условии грамотного описания и правильного подбора ключевых слов, будет
увеличивать рейтинг документа при выдаче результатов поиска поисковыми системами.
3. DOCUMENT-STATE (статус документа)
Данный тэг управляет частотой индексации и может принимать два значения: STATIC (документ
статичен, то есть не меняется, и, следовательно, индексировать его нужно только один раз) и
DYNAMIC (для часто изменяющися документов, которые нужно реиндексировать)
Пример: <META NAME="DOCUMENT-STATE" CONTENT="STATIC">
4. ROBOTS (управление процессом индексации)
Возможные варианты:
a) INDEX - возможность индексирования данного документа (иначе NOINDEX)
б) FOLLOW - возможность индексирования всех документов, на которые есть ссылки в данном
HTML файле (иначе NOFOLLOW)
в) ALL - одновременное выполнение условий INDEX и FOLLOW
г) NONE - одновременное выполнение условий NOINDEX и NOFOLLOW
Пример: <META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW">
5. RESOURCE-TYPE (тип ресурса)
Для обычных HTML документов значение этого мета тэга устанавливается равным "DOCUMENT"
Пример: <META NAME="RESOURCE-TYPE" CONTENT="DOCUMENT">
6. URL (расположение основного сайта)
Базовый URL (не путать с BASE) определяет какой документ следует индексировать (чтобы не
обрабатывать "зеркала")
Пример: <META NAME="URL" CONTENT="http://algo.ekaboka.com/">
Допустимо добавлять в мета тэги атрибут LANG, указывающий язык данных, но это не
обязательно.
Вопрос 17. Информационные ресурсы и их представление в
информационно-поисковой системе.
Как видно из схемы (рисунок 3.41) документальным массивом ИПС Internet является все
множество документов шести основных типов: WWW-страницы, Gopher-файлы, документы Wais,
записи архивов FTP, новости Usenet, статьи почтовых списков рассылки. Все это довольно
разнородная информация, которая представлена в виде различных, никак несогласованных друг с
другом форматов данных. Здесь есть и текстовая информация, и графическая информация, и аудио
информация и вообще все, что есть в указанных выше хранилищах. Естественно встает вопрос,
как информационно-поисковая система должна со всем этим работать. В традиционных системах
есть понятие поискового образа документа - ПОД'а. ПОД (Поисковый Образ Документа) - это
нечто, что заменяет собой документ и используется при поиске вместо реального документа.
Поисковый образ является результатом применения некоторой модели информационного массива
документов к реальному массиву. Наиболее популярной моделью является векторная модель[7], в
которой каждому документу приписывается список терминов, наиболее адекватно отражающих
его смысл. Если быть более точным, то документу приписывается вектор, размерность которого
равна числу терминов, которыми можно воспользоваться при поиске. При булевой векторной
модели элемент вектора равен 1 или 0, в зависимости от наличия термина в ПОД'е документа или
его отсутствия. В более сложных моделях термины взвешиваются, т.е. элемент вектора равен не 1
или 0, а некоторому числу, которое отражает соответствие данного термина документу. Именно
последняя модель наиболее популярна в информационно-поисковых системах Internet[4,6,7].
Вообще говоря, существуют и другие модели описания документов: вероятностная модель
информационных потоков и поиска, и модель поиска в нечетких множествах[7]. Анализ
преимуществ и недостатков применения этих моделей при реализации информационно-поисковых
систем в Internet - это тема специального исследования. Здесь имеет смысл обратить внимание
читателя только на то, что пока именно линейная модель применяется в системах Lycos,
WebCrawler, AltaVista, OpenText, AliWeb и ряде других. Исследования по применению других
моделей также ведутся, например, в рамках проекта AltaVista[4] или научными группами[6].
Таким образом, первая задача, которою должна решить информационно-поисковая система - это
приписывание списка ключевых слов документу или информационному ресурсу. Именно эта
процедура и называется индексированием. Часто, однако, индексированием называют составление
файла инвертированного списка, в котором каждому термину индексирования ставится в
соответствие список документов, в которых он встречается. Такая процедура является только
частным случаем, а точнее техническим аспектом создания поискового аппарата информационнопоисковой системы.
Проблема, связанная с индексированием, заключается в том, что приписывание поискового образа
документу или информационному ресурсу опирается на представление о словаре, из которого эти
термины выбираются, как о фиксированной совокупности терминов. В традиционных системах
существовало разбиение на системы с контролируемым словарем и системы со свободным
словарем. Контролируемый словарь предполагал ведение некоторой лексической базы данных,
добавление терминов в которую производилось администратором системы. Таким образом, все
новые документы могли быть заиндексированы только теми терминами, которые были в этой базе
данных. Свободный словарь пополнялся автоматически по мере появления новых документов.
Однако, на момент актуализации словарь также фиксировался. Актуализация предполагала
полную перезагрузку базы данных. В момент этого обновления перегружались сами документы и
обновлялся словарь, а после его обновления производилась переиндексация документов.
Процедура актуализации занимала достаточно много времени и доступ к системе в момент ее
актуализации закрывался.
Теперь представим себе возможность такой процедуры в анархичном Internet, где ресурсы
появляются и исчезают ежедневно. При создании программы Veronica для GopherSpace
предполагалось, что все серверы должны быть зарегистрированы и таким образом велся учет
наличия или отсутствия ресурса. Veronica раз в месяц проверяла наличие документов Gopher и
обновляла свою базу данных ПОД'ов документов Gopher. В World Wide Web ничего подобного
нет. Для решения этой задачи используются программы сканирования сети или роботыиндексировщики. Разработка роботов - это довольно нетривиальная задача, т.к. существует
опасность зацикливания робота или попадания на виртуальные страницы. Все системы имеют
своего робота. Робот просматривает сеть, находит новые ресурсы, приписывает им термины и
помещает в базу данных индекса. Главный вопрос заключается в том, какие термины приписывать
документам, откуда их брать, ведь ряд ресурсов вообще не является текстом. В настоящее время
различные роботы используют для индексирования следующие источники для пополнения своих
виртуальных словарей: гипертекстовые ссылки, заголовки (title), заглавия (H1, H2 и т.п.),
аннотации, списки ключевых слов и полные тексты документов, сообщения администраторов о
своих Web-страницах[9]. Для индексирования telnet, gopher, ftp, нетекстовой информации
используются главным образом URL, для новостей Usenet и почтовых списков - поля Subject и
Keywords. Наибольший простор для построения ПОД'ов дают HTML-документы. Однако не
следует думать, что все термины из перечисленных выше элементов документов попадают в их
поисковые образы. Очень активно используются списки запрещенных слов (stop-words), которые
не могут быть использованы для индексирования, общих слов (предлоги, союзы и т.п.), а также
часто производится нормализация лексики. Таким образом, даже то, что в OpenText, например,
называется полнотекстовым индексированием реально является выбором слов из текста документа
и сравнением с целым набором различных словарей, после которого термин попадает в поисковый
образ документа, а потом и в индекс системы. Для того, чтобы не раздувать словарей и индексов, а
индекс Lycos, например, равен 4TB, применяется такое понятие как "вес" термина[10]. Документ
обычно индексируется 40[6] - 100[8] наиболее "тяжелых" терминами.
После того, как ресурсы заиндексированы, т.е. система составила массив поисковых образов
документов, начинается построение поискового аппарата системы. Совершенно очевидно, что
лобовой просмотр файла или файлов ПОД'ов займет много времени, что абсолютно не приемлемо
для интерактивной системы, которой является Web. Для того, чтобы можно было быстро находить
информацию в базе данных ПОД'ов строится индекс. Индекс в большинстве систем - система
связанных между собой файлов, которая нацелена на быстрый поиск данных по запросу
пользователя. Структура и состав индексов различных систем могут отличаться друг от друга и
зависят от многих факторов. К этим факторам можно отнести и размер массива поисковых
образов, и информационно-поисковый язык системы, и размещения различных компонентов
системы и т.п. Рассмотрим структуру индекса на примере системы[6]. Этот проект выбран потому,
что он позволяет реализовывать не только примитивный булевый поиск, но и контекстный поиск,
взвешенный поиск и ряд других возможностей, которые отсутствуют во многих поисковых
системах, например Internet, Yahoo.
Индекс рассматриваемой системы состоит из таблицы идентификаторов страниц (page-ID),
таблицы ключевых слов (Keyword-ID), таблицы модификации страниц, таблицы заголовков,
таблицы гипертекстовых связей, инвертированного списка (IL) и прямого списка (FL).
Page-ID отображает идентификаторы станиц в URL этих страниц, Keyword-ID отображает каждое
ключевое слов в уникальный идентификатор этого слова, таблица заголовков отображает
идентификатор страницы в заголовок страницы, таблица гипертекстовых ссылок отображает
идентификатор страниц в гипертекстовую ссылку на эту страницу. Инвертированный список
ставит в соответствие каждому ключевому слову список пар (номер документа, идентификатор
страницы, позиция слова в странице), а прямой список - это массив поисковых образов страниц.
Все эти файлы так или иначе используются при поиске, но главным среди них, безусловно,
является файл инвертированного списка. Результат поиска в этом файле - это объединение и/или
пересечение списков идентификаторов страниц. Результирующий список, который
преобразовывается в список заголовков, снабженных гипертекстовыми ссылками, возвращается
пользователю в его программу просмотра Web. Для того, чтобы быстро искать записи
инвертированного списка, над ним надстраивается еще несколько файлов, например, файл
буквенных пар с указанием записей инвертированного списка, с этих пар начинающихся, а также
применяется механизм прямого доступа к данным - хеширование.
Для обновления индекса применяется комбинация двух подходов. Первый можно назвать
коррекцией индекса "на ходу". Для этого служит таблица модификации страниц. Суть такого
решения довольно проста: старая запись индекса ссылается на новую, которая и используется при
поиске. Когда число таких ссылок становится достаточным для того, чтобы ощутить это при
поиске, то происходит полное обновление индекса, т.е. его перезагрузка.
-Вопрос 18. Функционирование и эксплуатация ИПС.
-Вопрос 19. Средства и методы решения лексико-семантических проблем в
ИПС. Проблемы составления поисковых предписания. Обратная связь по
релевантности.
Вопрос 20. Информационный поиск в сети Интернет.
Переход к информационному обществу XXI века породил беспрецедентный рост объемов и
концентрации информации в глобальных компьютерных сетях. Это резко обострило проблему
создания информационно-поисковых систем (ИПС) и их эффективного использования.
История автоматизированных информационно-поисковых систем исчисляется полувеком.
Типичная ИПС первых лет - это человеко-машинная система, где анализ и описание содержания
документов (индексирование) выполняется вручную, а поиски проводятся машиной.
Первоначально основу ИПС составляли информационно-поисковые языки (ИПЯ), основным
элементом которых являются дескрипторные словари и тезаурусы. Сегодня, однако, большинство
работающих ИПС относится к классу вербальных систем бестезаурусного типа, когда
индексационные термины выбираются непосредственно из текстов документов. Лавинообразный
рост объемов электронной документальной информации, ее видовое, тематическое и языковое
разнообразие являются как причиной кризиса современного информационного поиска, так и
стимулом его совершенствования.
Проблема поиска ресурсов в сети Интернет была осознана достаточно скоро, и в ответ появились
различные системы и программные инструменты для поиска, среди которых следует назвать
системы Gopher, Archie, Veronica, WAIS, WHOIS и др. В последнее время на смену этим
инструментам пришли «клиенты» и «серверы» всемирной паутины WWW.
Если попытаться дать классификацию ИПС сети Интернет, то можно выделить следующие
основные типы:
1. ИПС вербального типа (поисковые системы – search engines)
2. Классификационные ИПС (каталоги – directories)
3. Электронные справочники («желтые» страницы и т.п.)
4. Специализированные ИПС по отдельным видам ресурсов
5. Интеллектуальные агенты.
Глобальный учет всех ресурсов Интернета обеспечивается вербальными и отчасти
классификационными системами.
Классификационные ИПС реализуют навигацию в веб-пространстве на основе специальных
указателей, представляющих собой тематические «деревья», строящиеся на основе
классификаций. Схемы классификации ресурсов в Интернете - это, как правило, древесные
структуры, узлы которых названы словами естественного языка. Различные классификационные
схемы отличаются друг от друга по объему и методологии их составления. Одним из недостатков
универсальных иерархических классификаций является то, что они консервативны и отстают от
развития науки, техники и жизни вообще. Главная проблема классификационных поисковых
служб - это автоматизация классификации. До сих пор задача автоматической классификации
удовлетворительного решения не нашла. Регистрация веб-сайтов и веб-страниц в каталогах, как
правило, осуществляется людьми - индексаторами и модераторами данной системы. И поэтому
объем базы данных систем классификационного типа сравнительно невелик по сравнению с
информационной емкостью всего Интернета.
Для решения проблемы максимального охвата ресурсов Интернета создаются системы,
называемые метапоисковыми (metasearch engines). Они не имеют собственных поисковых баз
данных, не содержат никаких индексов и при поиске используют ресурсы других поисковых
систем. За счет этого вероятность нахождения нужной информации возрастает. Для передачи
запроса к поисковой системе используется специальный метапоисковый агент, который отвечает
за процесс ретрансляции запроса в другие системы. После обработки полученного запроса каждая
система возвращает метапоисковому агенту множество описаний и ссылок на документы, которые
считает релевантными данному запросу. При всей привлекательности метапоисковых систем
следует помнить и об их минусах и недостатках. Прежде всего, отсутствие единого стандарта
языка запросов не позволяет метасистемам добиваться от поисковых систем, выполняющих
запросы метапоисковых систем, такого же результата, какого может добиться опытный
пользователь при работе с каждой машиной в отдельности.
Основным средством поиска информации в сети сегодня следует считать глобальные ИПС
вербального типа (search engines), индексирующие (по крайней мере, претендующие на это) все
Интернет-пространство. К числу главных поисковых систем этого типа (в первую очередь, по
объему базы данных) можно отнести Google, Fast (AlltheWeb), AltaVista, HotBot, Inktomi, Teoma,
WiseNut, MSN Search. Среди российских систем главными являются три: Яндекс (Yandex),
Рамблер (Rambler) и Апорт! (Aport). Полнота поисковой базы и оперативность индексирования
веб-сайтов является главной проблемой всех ИПС в Интернете. Как правило, системы с бульшим
объемом базы дают в результате поиска и большее количество документов. Большая, как
лингвистическая, так и программная проблема - многоязычие информационного пространства
Интернета и многообразие форматов представления данных. Тем не менее, основные глобальные
системы с этими проблемами справляются.
Именно вербальным ИПС и уделено основное внимание в практической части пособия. Прежде
всего, моделируется уровень пользователя, выражающийся в языках запросов и в запросноответных интерфейсах. Производится сравнительный анализ языков запросов различных ИПС
сети Интернет.
Особенность современных систем - полнотекстовый поиск. Многие вербальные ИПС сети
Интернет вычисляют релевантность документов запросам путем сопоставления элементов запроса
с полными текстами документов, размещенных в сети. Что касается информационно-поискового
языка, то, как правило, в качестве поисковых элементов выступают обычные слова естественных
языков. Запросы формулируются через специальный интерфейс, реализуемый в виде экранных
форм в программах-броузерах.
Полезно представлять, как эти системы устроены. В составе любой поисковой системы можно
выделить три основные части.
Робот - подсистема, обеспечивающая просмотр (сканирование) Интернета и поддержание
инвертированного файла (индексной базы данных) в актуальном состоянии. Этот программный
комплекс является основным средством сбора информации о наличии и состоянии
информационных ресурсов сети.
Поисковая база данных - так называемый индекс - специальным образом организованная база
(англ. index database), включающая, прежде всего, инвертированный файл, который состоит из
лексических единиц, взятых из проиндексированных веб-документов, и содержит разнообразную
информацию о них (в частности, их позиции в документах), а также о самих документах и сайтах в
целом.
Поисковая система - подсистема поиска, обеспечивающая обработку запроса (поискового
предписания) пользователя, поиск в базе данных и выдачу результатов поиска пользователю.
Поисковая система общается с пользователем через пользовательские интерфейсы - экранные
формы программ-броузеров: интерфейс формирования запросов и интерфейс просмотра
результатов поиска.
Индексный файл (или просто индекс) представляет собой набор связанных между собой файлов,
ориентированных на быстрый поиск данных по запросу. В основе индекса всегда лежит
инвертированный файл. Инвертированная (инверсная) схема организации поискового массива
основана на принципе обеспечения доступа к документам через их идентификаторы содержания
(поисковые признаки: дескрипторы, ключевые слова, термины, другие признаки). Такую схему
получают путем обработки последовательного массива документов с целью создания специальных
вспомогательных инвертированных файлов - точек доступа.
Каждая запись такого вспомогательного массива идентифицирована соответствующим
идентификатором содержания (дескриптор, ключевое слово, просто термин, имя автора, название
организации и т.п.) и содержит имена (адреса хранения) всех документов, в поисковых образах
которых он содержится. Для каждого идентификатора содержания (поискового элемента данных)
в инвертированном массиве вместе с адресом (номером, именем) документа может храниться (и
обычно хранится) дополнительная информация, как-то: имя поля, номер предложения, в составе
которых данный элемент встретился в данном документе, номер слова в предложении и т.д.
Фиксация положения слова в тексте с точностью до номера предложения и номера этого слова в
предложении позволяет построить гибкий язык запросов, позволяющий задавать расстояние
между словами и предложениями в документе. Позиционные характеристики также используются
при вычислении коэффициента релевантности и ранжировании документов в выдаче.
Нахождение необходимых документов через инвертированный файл осуществляется не
сплошным просмотром всего массива, а просмотром лишь тех идентификаторов содержания в
инвертированном файле, которые заданы в поисковом предписании, т.е. число операций
сравнения слов при поиске пропорционально числу терминов поискового предписания. Такой
способ работы систем снижает время на поиск и позволяет обслуживать потребителей
информации в реальном масштабе времени.
Поиск в индексе - это операции над списками идентификаторов поисковых элементов в
соответствии с моделью поиска и критерием соответствия. Результирующий список релевантных
документов (в современной терминологии «отклик»), который преобразуется в ранжированный
список кратких описаний документов, снабженных гипертекстовыми ссылками и другими
характеристиками, возвращается пользователю в его клиентскую программу-броузер. Щелчок
мышью по названию документа в его кратком описании (по гиперссылке) запрашивает этот
документ либо непосредственно с того сервера, на котором он находится, либо через базу данных
поисковой системы.
Важным компонентом современных ИПС являются так называемые интерфейсные веб-страницы,
т.е. экранные формы, через которые пользователь общается с поисковой системой. Различают два
основных типа интерфейсных страниц: страницы запросов и страницы результатов поиска.
Содержательная проблема при индексировании веб-сайтов заключается в том, какие термины
приписываются документам, откуда они берутся. Особенности построения и структура индекса
напрямую связаны с языком запросов и возможностями поисковых систем. Наиболее важными с
точки зрения пользователя представляются следующие особенности ИПС:
? индексирование полных текстов возможно большего числа сайтов;
? «грамотная» работа со словоформами - способность ИПС отождествлять разные словоформы
одной и той же лексемы, по-другому, порождать каноническую форму - лемму, и возможность
выделять среди множества словоформ конкретную форму;
? поиск слов с заданным или произвольным усечением, как правым, так и левым;
? работа со словосочетаниями - учет расстояния между словами в словосочетаниях и порядка их
следования;
? эффективные алгоритмы вычисления коэффициента смысловой релевантности и ранжирования
результатов поиска.
Также важно, какую информацию и в каком виде можно извлечь из выходных интерфейсов ИПС.
Интерфейс выдачи (форма представления результатов) у разных систем включает такие
параметры: статистика слов из запроса, количество найденных документов, количество сайтов,
средства управления сортировкой документов в выдаче, краткое описание документов и др.
Описание каждого документа, в свою очередь, может содержать в своем составе: заглавие
документа, URL (адрес в сети), объем документа, дату создания, название кодировки, аннотацию,
шрифтовое выделение в аннотации слов из запроса, указание на другие релевантные веб-страницы
того же сайта, ссылка на рубрику каталога, к которой относится найденный документ или сайт,
коэффициент релевантности, другие возможности поиска (поиск похожих документов, поиск в
найденном). Большой интерес представляют также частотные характеристики - сведения о
количестве найденных документов и отождествленных языковых единиц. Некоторые системы
ведут журнал запросов с возможностью повторных поисков и выдачей статистики по запросам.
Полезной и интересной возможностью является также отнесение документов к тематическим
классам.
Покажем особенности разных систем, наиболее популярных и обладающих наиболее развитым
лингвистическим обеспечением (см. Табл., с. 14). В первую очередь, это российские ИПС Яндекс,
Рамблер и Апорт. Возможно, наиболее мощный лингвистический аппарат имеет ИПС «Артефакт»
(фирма «Интегрум-ТЕХНО», г. Москва), однако эта система является коммерческой и ее база
данных по составу заметно отличается от других. Из западных систем, в большинстве своем не
обладающих развитыми лингвистическими средствами анализа текстового материала, возьмем
хорошо известные ИПС Google и AltaVista. Кратко охарактеризуем особенности этих систем
(наличие или отсутствие соответствующих возможностей помечено знаками «+» и «-»).
«Поиск по лексемам» означает, что результат сравнения слов документов и запросов признается
положительным при наличии в документе любой формы слова из запроса, что обеспечивается
механизмом автоматической лемматизации.
«Поиск по словоформам» означает, что результат сравнения документов и запросов признается
положительным при наличии в документе словоформы, точно совпадающей со словом из запроса,
что происходит при отсутствии автоматической лемматизации или обеспечивается особым
механизмом учета словоформ.
«Частота подокументная» означает, что в результате поиска выдается сообщение о количестве
релевантных документов, т. е. документов, содержащих данное слово (словоформу) или
словосочетание.
«Частота пословная» означает, что в результате поиска дополнительно выдаются сведения об
общем количестве словоупотреблений данной лексемы или конкретной словоформы в поисковой
базе данных (индексе).
Вопрос 21. Архитектура современных информационно-поисковых систем
World Wide Web.
Прежде чем описать проблемы построения информационно-поисковых систем Web и пути их
решения рассмотрим типовую схему такой системы. В различных публикациях, посвященных
конкретным системам, например [5,6], приводятся схемы, которые отличаются друг от друга
только способом применения конкретных программных решений, а не принципом организации
различных компонентов системы. Поэтому рассмотрим эту схему на примере, взятом из работы
[6] (рис. 1).
Client (клиент) на этой схеме - это программа просмотра конкретного информационного ресурса.
Наиболее популярны сегодня мультипротокольные программы типа Netscape Navigator. Такая
программа обеспечивает просмотр документов WWW, Gopher, Wais, FTP-архивов, почтовых
списков рассылки и групп новостей Usenet. В свою очередь все эти информационные ресурсы
являются объектом поиска информационно-поисковой системы.
User interface (пользовательский интерфейс) - это не просто программа просмотра, в случае
информационно-поисковой системы под этим словосочетанием понимают также способ общения
пользователя с поисковым аппаратом: системой формирования запросов и просмотров
результатов поиска.
Search engine (поисковая машина) - служит для трансляции запроса на информационно-поисковом
языке (ИПЯ), в формальный запрос системы, поиска ссылок на информационные ресурсы Сети и
выдачи результатов этого поиска пользователю.
Index database (индекс базы данных) - индекс, который является основным массивом данных ИПС
и служит для поиска адреса информационного ресурса. Архитектура индекса устроена таким
образом, чтобы поиск происходил максимально быстро и при этом можно было бы оценить
ценность каждого из найденных информационных ресурсов сети.
Queries (запросы пользователя) - сохраняются в его (пользователя) личной базе данных. На
отладку каждого запроса уходит достаточно много времени, и поэтому чрезвычайно важно
запоминать запросы, на которые система дает хорошие ответы.
Index robot (робот-индексировщик) - служит для сканирования Internet и поддержания базы
данных индекса в актуальном состоянии. Эта программа является основным источником
информации о состоянии информационных ресурсов сети.
WWW sites - это весь Internet или точнее - информационные ресурсы, просмотр которых
обеспечивается программами просмотра.
Рассмотрим теперь назначение и принципу построения каждого из этих компонентов более
подробно и определим, в чем отличие данной системы от традиционной ИПС локального типа.
Вопрос 22. Особенности лингвистического и информационного обеспечения
в Интернет.
Информационно-поисковые языки Internet
При описании и классификации информационно-поисковых систем ставилась задача
проанализировать наиболее популярные и наиболее типичные системы, которыми пользуются в
Сети.
Lycos
Как и большинство систем, Lycos дает возможность использовать простой запрос и более
изощренный метод поиска. В простом запросе в качестве поискового критерия вводится
предложение на естественном языке. Lycos производит нормализацию запроса, удаляя из него так
называемые stop-слова, и только после этого приступает к его выполнению. Почти сразу выдается
информация о числе документов на каждое слово, а уже позже и список ссылок на формально
релевантные документы. В списке напротив каждого документа указывается его мера близости
запросу, число слов из запроса, которые попали в документ и оценочная мера близости, которая
может быть больше или меньше формально вычисленной. На апрель 1996 года в Lycos не был
реализован булевый поиск, такие планы были анонсированы. Последнее предложение
подразумевает только то, что нельзя вводить эти операторы в строке вместе с терминами, но
использовать логику через систему меню Lycos позволяет. Последнее относится к расширенной
форме запроса, который предназначен для использования искушенными пользователями системы,
которые уже научились пользоваться этим механизмом.
Таким образом мы видим, что Lycos относится к системе с языком запросов типа "Like this", но
предполагается его расширения и на другие способы организации поисковых предписаний.
AltaVista
Наиболее интересным с точки зрения информационно-поискового языка в AltaVista является
возможность расширенного поиска. Здесь стоит сразу выделить, что в отличии от многих систем
AltaVista поддерживает одноместный оператор NOT. Кроме этого есть еще и оператор NEAR,
который реализует возможность контекстного поиска, когда термины должны располагаться
рядом в тексте документа. AltaVista разрешает поиск по ключевым фразам, при этом она имеет
довольно большой словарь этих фраз. Кроме всего прочего, при поиске в АltaVista можно задать
имя поля где должно встретиться слово. Это может быть гипертекстовая ссылка, applet, название
образа, заголовок и ряд других полей. К сожалению, подробно процедура ранжирования в
документации по системе не описана, но сказано, что ранжирование применяется как при простом
поиске, так и при расширенном запросе.
Реально эту систему можно отнести к системе с расширенным булевым поиском.
Yahoo
Данная система появилась в сети одной из первых, и поэтому говорить будем о сегодняшнем
состоянии Yahoo, а не о состоянии годовой давности. В настоящее время Yahoo сотрудничает со
многими производителями средств информационного поиска и на различных ее серверах
используется различное программное обеспечение. На мой взгляд, это самая незатейливая
информационная служба, которая сосредоточилась на информации о Web как таковой. ИПЯ Yahoo
достаточно прост: все слова следует вводить через пробел и они соединяются либо AND, либо OR.
При выдаче не выдается степени соответствия документа запросу, а только подчеркиваются слова
из запроса, которые встретились в документе. При этом не производится нормализация лексики и
не проводится анализ на "общие" слова. Хорошие результаты поиска получаются только тогда,
когда пользователь знает, что информация в базе данных Yahoo точно есть. Ранжирование
производится по числу терминов запроса в документе.
Yahoo относится к классу простых традиционных систем с ограниченными возможностями
поиска.
OpenText
Информационная система OpenText представляет из себя самый коммерциализированный
информационный продукт в сети. Все описания больше напоминают рекламу, чем реальное
руководство по работе. Система позволяет провести поиск с использованием логических
коннекторов, размер запроса ограничен тремя терминами или фразами. В данном случае речь идет
о расширенном поиске. При выдаче результатов поиска сообщается степень соответствия
документа запросу и размер документа. Система позволяет также улучшить результаты поиска в
стиле традиционного булевого поиска.
OpenText можно было бы отнести без сомнения к разряду традиционных информационнопоисковых систем, если бы не механизм ранжирования.
InfoSeek
Система InfoSeek обладает довольно развитым информационно-поисковым языком, который
позволяет не просто указывать какие термины должны встречаться в документах, но и
своеобразно взвешивать их. Достигается это при помощи специальных знаков "+" - термин обязан
быть в документе, "-" - термин обязан отсутствовать в документе. Кроме этого InfoSeek позволяет
проводит то, что называется контекстным поиском. Это значит, что используя специальную
форму запроса можно потребовать последовательной совместной встречаемости слов. Кроме этого
можно указать, что некоторые слова должны совместно встречаться не только в одном документе,
а даже в отдельном параграфе или заголовке. Есть возможность и указания ключевых фраз.
Ключевая фраза от последовательной встречаемости отличается тем, что фраза всегда ищется как
единое целое, а при последовательной встречаемости слова могут стоять рядом, но в
произвольном порядке. Ранжирование при выдаче осуществляется по числу терминов запроса в
документе, по числу фраз запроса в документе, за вычетом общих слов. Все эти факторы
используются как вложенные процедуры.
Подводя краткое резюме можно сказать, что InfoSeek относится к традиционным системам с
элементом взвешивания терминов при поиске.
WAIS
WAIS является одной из наиболее изощренных поисковых систем Internet. В отличии от многих
поисковых машин, ИПЯ системы позволяет строить не только вложенные булевые запросы,
считать формальную релевантность по различным мерам близости, взвешивать термины запроса и
документа, но и осуществлять коррекцию запроса по релевантности. Система также позволяет
использовать усечение терминов, разбиение документов на поля и ведение распределенных
индексов. Не случайно именно эта система была выбрана в качестве основной поисковой машины
для реализации энциклопедии "Британика" на Internet.
Применение языков на практике
Рассмотрим теперь небольшой сравнительный пример использования описанных выше поисковых
машин. В качестве запроса использовалась фраза:
"Best on the Web"
Подразумевалось, что следует найти документ, связанный с конкурсами "Лучший на Сети".
Понятно, что уже в самом запросе есть определенная некорректность, но тем интереснее
посмотреть, как с ней справились различные системы. Эта фраза задавалась в качестве набора
слов и при этом получались следующие результаты.
AltaVista - после нормализации лексики от запроса осталось только Best. Естественно, что при
этом качество поиска было отвратительным. Однако, использование поиска по фразе как по
единому целому, поставило требуемый документ на первое место в списке найденных.
Lycos - здесь отсеялись "on the" и документ был указан только в конце списка. Поиск по фразе
улучшения результатов не дал.
InfoSeek - при расширенном поиске нужный документ был найден третьим в списке из десяти
документов. Уточнение поиска привело только к миграции документа вглубь списка.
OpenText - документ занимает пятую строчку в списке из десяти документов. Как и в случае с
InfoSeek уточнение запроса результатов не дало.
Yahoo - документ попал в список найденных и занял третье место (ошибка в запросе: вместо "on
the" следовало указывать "of the"). Но здесь следует заметить, что основное место хранения этого
документа база данных Yahoo, т.е. запрос точно совпадает с тематикой базы данных.
Следует заметить, что приведенный пример не стоит рассматривать как реальную оценку
возможностей описанных выше систем. Это просто иллюстрация, которая поможет провести свой
собственный выбор наиболее подходящего средства поиска.
В завершении хотелось бы обратить внимание читателей еще на один аспект выбора
информационно-поисковой системы. Это профиль ее баз данных. Можно возразить, что все
системы индексируют одно и тоже - массив документов Internet. Однако делают они это поразному. Очень важен профиль системы, который задается разбиением документов по темам и
словарем индексирования, а также способом его поддержания. Определенным ориентиром здесь
могут служить виртуальные библиотеки. Но об этом в следующий раз.
Вопрос 23. Информационно-поисковый язык поисковых систем WWW. Типы
информационно-поисковых языков.
Искусственный язык, предназначенный для формализованного описания смыслового содержания
документов, данных, отдельных понятий или терминов и обеспечения последующего их поиска в
информационно-поисковых массивах.
Формализация лексики и создание различных ИПЯ вызвано необходимостью устранения
"избыточности" и "недостаточности" естественного языка для целей информационного поиска, а
также ликвидации присутствующий в нем синонимии и омонимии (см. ниже) для реализации
"однозначности" информационного поиска.
Различают языки описания (декларативные языки ), которые в свою очередь подразделяются на
языки предкоординатные (классификационные) и посткоординатные (координатные), а также процедурные языки (языки запросов и манипулирования данными ). Подробнее см.:[36 - 38].
Каждый тип языковых средств включает в себя: алфавит и микро синтаксис (графические средства
представления данных), лексику с парадигматикой (отражаемых словарями) и синтаксис, который
для языков описания может быть представлен в виде наборов форматов.
По области или по сфере применения информационно-поисковых языков можно выделить:
1. Коммуникативные (общесистемные) ИПЯ - предназначенные для обеспечения взаимодействия
между различными (информационными, библиотечными и др.) системами (в т.ч.
распределенными по государственной, ведомственной или территориальной принадлежности);
2. Локальные (внутренние) ИПЯ - предназначенные для использования в рамках отдельной
системы;
3. Внешние ИПЯ - используемые в других системах и предназначенные для взаимодействия
только с ними.
ПРЕДКООРДИНАТНЫЕ ИПЯ (ИПЯ КЛАССИФИКАЦИОННОГО ТИПА )
ИПЯ , построенные на принципах предкоординации (см. ниже). Эти языки представлены
известными классификационными системами вида: УДК, МКИ, ГРНТИ, ББК, ТБК и др.
Предкоординация - Построение словарного состава ИПЯ (до его использования при
индексировании), которое характеризуется применением словосочетаний и фраз, выражающих
сложные понятия.
ПОСТКООРДИНАТНЫЕ ИПЯ (ИПЯ ДЕСКРИПТОРНОГО ТИПА )
ИПЯ, построенные на принципах посткоординации (см. ниже). Эти языки представлены
различного вида “тезаурусами ”, а также “ключевыми словами ".
Посткоординация - Построение словарного состава путем разделения сложных понятий на
составные элементы и последующего объединения полученных лексических единиц ИПЯ при
индексировании документов вводимых в информационно-поисковые массивы и запросов путем
использования логических операторов и других средств, представляющих его синтаксис .
Термины, связанные с посткоординатными ИПЯ:
Координатный (посткоординатный, дескрипторный) ИПЯ - ИПЯ, построенный на принципах
посткоординации, лексическими единицами которого являются дескрипторы . Основными
словарными средствами, реализующими эти языки являются тезаурусы , представляющие так
называемую нормированную лексику, и ключевые слова - ненормированную лексику
Объектно-признаковый ИПЯ - Вид координатного ИПЯ , предназначенный для представления
объектографических (фактографических) данных.
Дескриптор - Лексическая единица дескрипторного ИПЯ, которая при индексировании
выбирается не из обрабатываемого текстового или другого материала, а из специального словаря.
Дескрипторы отличаются от ключевых слов тем, что им придана смысловая однозначность.
Ключевое слово, недискриптор - Лексическая единица, выбираемая из обрабатываемого
(индексируемого) текста (вводимых в систему документов и запросов на поиск) а не словаря.
Однако “ключевые слова” (точнее было бы их назвать - “ключевыми терминами”) составляются на
основании специальных правил и построенных на их основе технологических инструкций,
обеспечивающих однозначность их понимания и применения.
СЛОВАРЬ
1. Упорядоченный перечень слов, словосочетаний, терминов, символических имен или
наименований, знаков с указанием их значений или толкований или без них. Важным требованием
к словарям, используемым в автоматизированнных системах является устранение “синонимии” и
“омонимии ” для обеспечения “точности” и “полноты ” поиска;
2. В автоматизированных информационных системах “словарь” это структура данных,
обеспечивающая доступ к БД и отдельным записям по их текстовому имени.
Виды словарей:
Машинный словарь - Словарь, находящийся в памяти ЭВМ. Используется для автоматического
и/или контролируемого индексирования .
Рубрикатор - Разновидность словаря, содержанием которого является перечень предметных
рубрик и их классификационных индексов. Одним из наиболее распространенным видов
рубрикаторов, являются иерархические тематические рубрикато-ры (УДК, ГРНТИ, ББК, МКИ и
др .).
Тезаурус (информационно-поисковый)
1. Словарь, который содержит разрешенные для использования при индексировании лексические
единицы ИПЯ, а также парадигматические отношения между этими лексическими единицами.
Тезаурусы различают по принципу их организации (например, - алфавитный, иерархический,
фасетный), способу использования (например, - машинный тезаурус , т.е. находящийся в памяти
ЭВМ), тематике и полноте охвата его лексикой определенной предметной области (например, базовый тезаурус, рабочий тезаурус, многоотраслевой тезаурус, узко тематический тезаурус и т.п).
В некоторых автоматизированных информационных системах словари, выполняющие функции
тезауруса, носят иные названия, например, - “Базовый терминологический словарь (БТС)” ВИМИ.
2. Словарь синонимов (см. ниже - “Синонимия ”), в прогаммном обеспечении: файл с синонимами,
записанными на диске совместно с программой, использующей этот файл.
Понятия и термины, связанные со словарями:
Предметная рубрика - Краткое наименование классификационного признака однородных объектов
(узко-) библиографической или (широко) информационной деятельности.
Классификационный индекс - Условное обозначение цифровыми или буквенно-цифровыми
символами деления какой-либо системы классификации.
Синонимия - Совпадение или близость значений различных слов (синонимов). Разновидностью
синонимии является т.н. логическая синонимия, относящаяся к различным словосочетаниям,
отражающим одни и те же понятия. Например, словосочетания "мой любимый город", "место, где
я вырос" и т.п. могут означать понятие, выражаемое названием конкретного города, скажем, Севастополя .
Омонимия - Внешнее совпадение слов одинаковых по написанию и звучанию (омонимов) , но
выражающих различные понятия. Наличие в естественном языке омонимов также как логических
синонимов (см. выше) характеризует его недостаточность для выполнения эффективного поиска
необходимых документов и данных.
Лексическая единица (ЛЕ) - Обозначение отдельного понятия в естественном или специально
созданном искусственном языке, например ИПЯ. лексическая единица может иметь вид слова,
устойчивого словосочетания, аббревиатуры, символьного кода и т.п.
ГРАММАТИКА - Система правил построения и описания естественного или искусственного
языка, в том числе правил словообразования и построения словосочетаний (см. синтаксис) ИПЯ.
С грамматикой связаны следующие термины:
Позиционная грамматика - способ фиксации характера смысловых отношений между
лексическими единицами индексируемого материала путем размещения этих единиц в
соответствующей последовательности):
Мешочная грамматика (расстановка дескрипторов или ключевых слов независимо от их значения
или положения соответствующих им понятий в индексируемом тексте).
Синтаксис - Раздел грамматики , изучающий способы организации слов в словосочетаниях и
предложениях, а также типы предложений, их значения и условия использования. С синтаксисом
связаны правила грамматики использования ИПЯ при подготовке поисковых образов документов
и поисковых предписаний, а также ст. "логические операторы ").
Семантика - Часть определенного языка, касающаяся указания смысла и действия текста,
составленного в соответствии с синтаксическими правилами этого языка.
ОТНОШЕНИЯ - Форма связи между объектами, выражающая то что их объединяет. Различают
отношения: парадигматические, синтагматические, ассоциативные, семантические и др. (см. ниже)
Виды отношений и связанные с ними термины:
Ассоциативные отношения 1. Разновидность парадигматических отношений (см. ниже), отражающих представление
пользователя о взаимосвязи понятий, которые они отображают. Часто под ассоциативными
отношениями понимаются все виды парадигматических отношений кроме отношений типа: "видрод" и "часть-целое". Так же как и парадигматические отношения они являются внетекстовыми и
служат для реализации конкретных задач пользователей;
2. Отношения между данными в структурах данных .
Парадигматические отношения, аналитические отношения, ассоциативные отношения - Вид
логических отношений между лексическими единицами ИПЯ (дескрипторами, ключевыми
словами и т.п.), которые не зависят от конкретного контекста, в котором соответствующие им
понятия употребляются. Парадигматические отношения позволяют осуществлять т.н. избыточное
индексирование текстов путем включения в поисковый образ документа и поисковое предписание
близких по смыслу лексических единиц ИПЯ для повышения полноты поиска.
Семантические отношения - Отношения между понятиями в т.н. "семантических сетях".
Различают лингвистические (соответствующие и взаимоотношению слов в предложении),
теоретико-множественные и логические отношения.
Синтагматические отношения, текстуальные отношения, синтаксические отношения - Отношения
между лексическим единицами ИПЯ (дескрипторами, ключевыми словами и т.п.), которые
выражают логические связи между соответствующими понятиями в тексте документа.
Синтагматические отношения являются разновидностью семантических отношений.
Синтагма - Группа лексических единиц, связанных синтагматическим отношениями и
представляющих собой законченное предложение на информационно-поисковом языке .
Некоторые дополнительные термины, связанные с видами ИПЯ:
Естественный язык - Неформализованный язык пользователя информационно-поисковой системы,
являющийся средством человеческого общения;
Естественно-деловой язык, ограниченно нормализованный естественный язык, язык деловой
прозы - Разновидность естественного языка, расширенная специальными терминами;
Профессионально-ориентированный язык - Естественно-деловой язык, ориентированный на
определенную область науки или производственной деятельности человека;
Язык запросов - Язык общения пользователей с информационной системой, являющийся
средством описания запросов на поиск и вывод данных;
Язык предметных заголовков - ИПЯ, основанный на использовании иерархических предметных
рубрик с фиксированным числом уровней, в котором для обозначения рубрик или связанных с
ними понятий не используются специальные классификационные индексы или коды;
Синтагматический язык - Семейство ИПЯ, использующих связанные в предложения лексические
единицы - синтагмы.
Тематический информационно-поисковый язык, тематический ИПЯ - Язык ключевых слов без
грамматики, основными лексическими единицами которого являются слова и словосочетания
естественного языка;
Язык с синтаксисом - ИПЯ, в котором лексические единицы, включая коды , могут соединяться в
более сложные (составные) лексические единицы и фразы;
Язык фасетной структуры - ИПЯ с синтаксисом, основанным на использовании фасет ;
Фасета - Группа однородных терминов, связанных общностью какого-либо признака
(характеристики, основания деления). Служит средством построения информационно-поисковых
языков фасетной структуры ;
Фреймовый язык, язык представления фреймов [frame language] - Язык представления знаний,
основанный на использовании фреймов.
1.6.5. ИНДЕКСИРОВАНИЕ И КОДИРОВАНИЕ ДАННЫХ
ИНДЕКС 1. Условный знак (в т.ч. слово, словосочетание, цифра, буквенный или буквенно-цифровой код и
т.п.), обозначающий определенное понятие и используемый для записи результатов
классифицирования а также идентификации объектов поиска в информационно-поисковых
массивах;
2. Указатель адреса ;
3. Таблица в электронном каталоге , определяющая местоположение набора данных;
4. Совокупность указателей, при помощи которых можно найти запись в файле данных;
5. Уровень в иерархической структуре системы многоуровневого индекса (см. ниже).
Виды индексов, связанных с их структурой:
Многоуровневый индекс - Индекс, относящийся к структуре индексов, которая построена в виде
иерархического дерева, имеющего два и более уровней иерархии. Корень этого дерева называется
индексом высшего уровня или главным индексом [master index].
Одноуровневый индекс - Индекс, относящийся к структуре, которая не отвечает признакам
многоуровневости (см. выше).
В зависимости от характера используемой системы знаков различают:
Буквенный индекс - Индекс, использующий отдельные буквы или сочетание букв алфавита;
Цифровой индекс - Индекс, использующий отдельные цифры, числа, сочетания цифр или их
комбинации;
Десятичный индекс - Цифровой индекс, составленный на основе десятичной системы счисления;
Алфавитно-цифровой индекс - Смешанный индекс, состоящий из букв и цифр.
Смешанный индекс - Индекс, состоящий из разнородных знаков, например, из букв различных
алфавитов, букв и цифр и т.п.;
В зависимости от структуры и организации записи различают:
Простой индекс - Индекс, имеющий вид одной законченной записи и отображающий одно
понятие, один признак, одно множество и т.п.;
Сложный индекс - Индекс, представляющий собой сложное понятие и составленный путем
объединения нескольких других (простых и/или сложных) индексов (см. выше);
Составной индекс 1. Индекс, образованный в результате объединения нескольких, каждый из которых сохраняет
свое основное значение:
2. Индекс, в качестве которого используется комбинация атрибутов (см. "Реляционная модель ");
Многоуровневый (ступенчатый, иерархический) индекс - Простой или сложный индекс, в котором
отдельные его составные части расположены в форме "дерева" в последовательности от более
общего (корневого) значения к более частному, например, индексы УДК, ГРНТИ и др. Корневым
в этой структуре ("дереве") является индекс высшего уровня.
В вычислительных системах элементы нижнего уровня многоуровневого индекса, также как
элементы т.н. одноуровневых индексов (т.е. не являющихся многоуровневыми) непосредственно
указывают на отдельную запись или группу записей. Элементы верхних уровней многоуровневого
индекса указывают на группу элементов более низкого уровня. Использование многоуровневых
индексов производится в тех случаях, когда время поиска по одноуровневым индексам
оказывается недопустимо большим;
Интервальный индекс - Индекс, значения которого определяются некоторой областью, например,
диапазоном от 3 до 12:
В зависимости от уровня приоритетности различают:
Гипериндекс - Высший уровень индекса индексной организации баз данных -, принятый в
некоторых СУБД (наряду с главным и нормальным индексами - см. ниже);
Главный (основной, первичный, старший) индекс –
1. Индекс высшего уровня в иерархической системе организации данных (см. " Иерархическая
модель ");
2. Индекс, отражающий главную тему содержания индексируемого текста, документа и т.п. и
относящийся к основной принятой системе классификации;
Нормальный индекс - Подмножество ключей базы данных, соответствующих конкретному
значению поля, объявленного дескриптором (признаком поиска). Используется в
четырехуровневой системе индексов СУБД, например, - ADABAS;
Вспомогательный (дополнительный) индекс - Индекс, являющийся дополнением к главному
(основному) и отражающий дополнительные признаки индексируемого текста, документа и т.п.
или относящийся к вспомогательной системе классификации.
В зависимости от характера индексируемых объектов и/или назначения индекса различают:
Авторский знак - Индекс, обозначающий автора произведения, используемый при расстановке и
поиске книг в библиотеках;
Кеттерский знак - Авторский знак , определяемый по "Авторской таблице" Ч. Кеттера ;
Расстановочный индекс - Индекс, используемый для расстановки и поиска книг, документов и т.п.
в библиотеке или фонде;
Каталожный индекс - Индекс, используемый для расстановки и поиска карточек в каталоге;
Индекс каталога - Старший индекс в библиотечной организации данных;
Индекс массива - Индекс, присваиваемый массиву документов или данных для его
идентификации;
Индекс файла - В некоторых операционных системах (например, UNIX) номер индексного
дескриптора файла и др.
ИНДЕКСАЦИЯ 1. Метод, обеспечивающий возможность обращения к элементу массива с помощью указания
массива и выражений, определяющих местоположение этого элемента в массиве:
2. Система (совокупность) индексов, используемая для индексирования (см. ниже) и
соответствующая определенной системе классификации.
Примечание: В указанных выше определениях понятия "индексация" оно ни коим образом не
обозначает процесс и его нельзя смешивать с понятием "индексирование"! 1. Автоматическое
определение истинного адреса путем сопоставления содержимого индексного регистра с адресной
частью команды.
Различаются следующие виды индексации:
Кумулятивная индексация - Индексация, предусматривающая присвоение одному адресу
несколько индексов;
Однорядная индексация - Индексация, в которой использованы т.н. "однорядные" знаки: буквы
одного алфавита, цифры одной системы счисления и т.п.:
Одноуровневая индексация - Индексация с использованием одноуровневых индексов (см. также "многоуровневый индекс");
Многоуровневая индексация - Индексация с использованием многоуровневых индексов;
Смешанная индексация - Индексация, в которой использованы различные знаки: буквы, цифры и
т.п.
ИНДЕКСИРОВАНИЕ - Процесс выбора и присвоения документам, их частям, данным и/или
отдельным понятиям (терминам) индексов - лексических единиц ИПЯ (в том числе - цифровых
или символьных кодов, если они предусмотрены).
В зависимости от характера используемого ИПЯ различают предкоординатное индексирование и
координатное (посткоординатное) индексирование, в т.ч. свободное индексирование
(разновидность координатного индексирования производимого ключевыми словами, т.е. без
использования какого-либо словаря). В зависимости от полноты учета разнородных признаков
индексируемого материала (объекта индексирования) различают "одноаспектное" и
"многоаспектное" индексирование (см. ниже).
Процесс индексирования включает:
1. Анализ содержания индексируемого материала и выбор из него т.н. номинативных лексических
единиц, существенных для его понимания;
2. Формирование перечня ключевых слов, используемых при свободном индексировании ;
3. Нормализацию ключевых слов по форме и содержанию при помощи словаря используемого
ИПЯ пред- или посткоординатного типа;
4. Избыточное индексирование (см. ниже);
5. Заполнение рабочего листа с введением в него грамматических средств.
В зависимости от объекта и содержания процесса индексирования его результатами являются:
поисковый образ документа (ПОД), поисковый образ лексической единицы (ПОЛЕ), поисковый
образ запроса (ПОЗ) или поисковое предписание (ПП).
Вопрос 24. Ранжирование результатов поиска. Проблемы ранжирования
документов в выдаче. Способы управления ранжированием.
Релевантность - это соответствие выдачи поисковика нашим ожиданиям.
Ранжирование - это порядок выдачи найденных сайтов.
"Формула" релевантности держится в строгом секрете и постоянно совершенствуется, путем
добавления того или иного фактора ранжирования в алгоритм поиска.
Еще одним немаловажным является "авторитетность" страницы. Этот фактор учитывает
количество и качество входящих и исходящих ссылок на сайт.
Первым ссылочный ранг страницы (PR - Page Rank) применили Сергей Брин и Ларри Пэйдж создатели Google.
Суть идеи можно описать так:
Если ваша страница содержит ценную и уникальную информацию, то очень вероятно, что на нее
будут ссылаться другие сайты. Ценность подобных ссылок будет тем выше, чем авторитетнее,
ссылающиеся сайты. Также она будет выше, чем меньше количество ссылок с ссылающегося
сайта. Дополнительный вес придает сходство тематики ссылающегося сайта.
Скажем, ваш сайт посвящен поиску работы. Ссылка на ваш ресурс, расположенная на сайте job.ru
с небольшим количеством исходящих ссылок даст гораздо больший вес ("авторитет") вашему
сайту, чем ссылка из какого-нибудь заштатного каталога.
С другой стороны, когда вы ссылаетесь на какой-нибудь сторонний сайт, ссылающаяся страница
"делится" своим PR с этим сайтом.
Если представить вашу страницу в виде бочки с водой, то ссылки с других сайтов наполняют
бочку (придают "вес" странице). Причем, струя воды тем больше, чем авторитетнее ссылающийся
сайт. А ссылки с вашей страницы на другие сайты - это своего рода "дыры" в бочке, через которые
уходит вода (теряется "вес" страницы). Безусловно, пример сильно утрирован, но, в общем,
помогает понять принцип ссылочного ранжирования. И еще: не бойтесь ссылаться на "хорошие"
тематические сайты. Это лучше, чем не ссылаться вообще.
Надо сказать, что подобный расчет PR требует огромных вычислительных мощностей. Поэтому,
его пересчет производится всего несколько раз в год. Стоит сказать еще об одном важном моменте
- это непосредственный текст ссылки. Обратите внимание, в результатах поиска на Яндексе
зачастую страница помечена как "найдено по ссылке" - это значит, что текст ссылки с другого
сайта попал в поиск. Таким образом, ссылающийся на вас сайт "привел" к вам пользователя,
благодаря тексту тематической ссылки.
Из всего вышесказанного понятно, насколько важно понятие ранга страницы для вебмастера.
Поскольку, манипулируя входящими и исходящими ссылками можно влиять на положение сайта в
выдаче поисковика - отсюда, изменять количество посетителей на своем сайте, а, следовательно,
величину дохода.
Задача поисковика - при выдаче результатов поиска обеспечить максимальное совпадение слов в
поисковом запросе со словами, найденными на той или иной веб-странице или в тексте ссылок,
ведущих на неё.
Ранжирование в результатах поиска по большей части зависит от индексирования текста на
страницах сайтов, текста ссылок, ведущих на эти страницы, а также от степени важности сайта,
вычисленной на основе количества ссылающихся страниц.
Однако перед тем, как быть показанными в результатах поиска, сайты могут быть переставлены в
зависимости от того или иного фактора. Вот некоторые из них:
1. Фильтрация дублирующегося (или близкого к этому) контента
Поисковики не любят, чтобы страницы с одинаковым контентом переполняли результаты поиска,
поэтому похожие страницы могут быть отфильтрованы.
2. Удаление из результатов поиска нескольких релевантных страниц с одного и того же сайта
Не так уж редко случается так, что релевантными поисковому запросу оказываются сразу
несколько страниц одного сайта. В таком случае поисковик может показать ссылку на другую
страницу с того же сайта сразу после ссылки на самую релевантную страницу либо просто выдаст
дополнительно ссылку "Ещё результаты с этого сайта". Бывает, что дополнительные результаты
вообще не отображаются.
3. Персональные интересы пользователя
Поисковик может перестраивать результаты поиска в зависимости от прошлых результатов и
другой активности в интернете того или иного пользователя. Этот вид изменения ранжирования
используется в так называемом "персонализированном поиске".
4. Взаимосвязанность сайтов
Поисковик может перестраивать сайты в зависимости от количества и качества ссылок между
ними.
5. Сортировка в зависимости от дислокации пользователя
Вполне возможно, что пользователь предпочтёт увидеть в результатах поиска те сайты, которые
расположены в его регионе проживания. Иногда пользователи сами включают опцию поиска
сайтов только из определённой страны, иногда поисковик пытается самостоятельно определить
дислокацию пользователя на основе его IP.
6. Язык запроса
Опции ограничения по языкам могут быть установлены пользователем в браузере либо через
настройки поисковика; иногда поисковик сам выбирает язык результатов поиска в зависимости от
поискового запроса, настроек либо характеристик результатов поиска.
7. Демографические характеристики
При использовании этого метода для ранжирования результатов поисковик может учитывать
такие параметры, как дислокация, демографическая информация, информация о группах, к
которым относится пользователь.
8. Хронологические данные
Сайты могут быть рассортированы в зависимости от времени создания и изменения страниц,
возраста ссылок на них и многих других временнЫх параметров.
9. Тематическая схожесть
Учитываются заголовки, стоп-слова и другие связанные с текстом параметры.
10. Заинтересованность пользователя в коммерческой информации
К примеру, Yahoo! Mindset позволяет пользователю самостоятельно отсортировать результаты
поиска в зависимости от того, хочет он видеть информацию коммерческого или более
информативного, некоммерческого характера.
11. Наличие у сайта версии для мобильных устройств
Поиск от Microsoft может отфильтровать те сайты, которые не могут быть отображены на
мобильных устройствах (например, КПК).
12. Доступность людям с ограниченными возможностями
Google не так давно запустил специализированный поиск, который ранжирует сайты в
зависимости от их доступности людям с ограниченными возможностями.
13. Отношение пользователей
Google умеет сортировать страницы в зависимости от того, нравятся они пользователям или нет.
14. Дополнительные параметры поиска и схожесть текста
Google умеет ранжировать результаты поиска по новостям, основываясь на обработке и
автоматическом добавлении дополнительных параметров к поисковому запросу, а также на
схожести документов.
15. Поведение пользователя
16. Одобрение сообществом
Метод основывается на мнении социальных групп, пользователей социальных сетей и т.п.
17. Избыток информации
Отфильтровывается избыточная информация, засоряющая результаты поиска.
18. Новостные сюжеты
Методика от IBM позволяет преобразовывать результаты поиска в сюжеты новостей, которые
будут раскрываться на сайтах, выдаваемых в результатах поиска.
19. Оценка актуальности на основе сообщений в блогах, новостях и т.п.
Результат поиска ставится в зависимость от того, куда именно ссылаются блоги и форумы в
данный период времени. Приоритет получает сайт, имеющий наиболее актуальную на данный
момент информацию.
20. Актуальность (временнОй фактор) и использование
Этот метод близок к сочетанию двух предыдущих. Он предполагает группировку понятий с
учётом того, как они развивались во времени и как люди влияли на эти изменения.
Вывод
Помните, что результаты поиска, которые видите Вы, не всегда аналогичны тем, которые видят
другие пользователи.
Конечно же, это не полный список методов изменения ранжирования сайтов в результатах поиска,
но автор старался сделать его максимально представительным. Некоторые методы уже
используются, некоторые находятся в стадии разработки, некоторые будут использованы в
будущем, некоторые - никогда не будут реализованы.
Есть ли возможности убедиться, что Ваш сайт удерживает хорошие позиции, даже когда
пользователям выдаются по-разному отсортированные результаты поиска? Сможете ли Вы
проверить свои позиции при использовании поисковиками всех методов?!
Вопрос 25. Поиск в нечетких множествах. Пороговые модели. Кластерная
модель и Вероятностная модель информационного поиска.
Кластерная модель и Вероятностная модель информационного поиска
В кластерной модели может использоваться два подхода. Первый заключается в том, что массив
заранее разбивается на подмножества документов и при поиске высчитывается близость запроса
некоторому подмножеству. В другом подходе кластер "накручивается" вокруг запроса и
ближайших к нему терминов. Наиболее часто эта модель применяется в системах, уточняющих
запрос по релевантности найденных документов.
При вероятностной модели вычисляется вероятность принадлежности документа классу
релевантных запросу документов. При этом используется вероятность принадлежности терминов
запроса каждому из документов базы данных.
Вопрос 26. Словарные информационно-поисковые системы.
Словарные ИПС на сегодняшний день – самые быстрые и эффективные поисковые системы,
получившие наибольшее распространение в сети Интернет. Поиск необходимой информации в
словарных ИПС осуществляется по ключевым словам.
Результаты поиска формируются в ходе работы того или иного поискового алгоритма со словарем
и запросом, составленным пользователем на ИПЯ.
Структура словарной ИПС состоит из следующих компонентов:
средства просмотра документов, интерфейса пользователя, поисковой машины, базы данных
поисковых образов и индексирующего агента.
Информационный массив включает в себя информационные ресурсы, потенциально доступные
пользователю. Сюда входят текстовые и графические документы, мультимедийная информация и
т. д. Для глобальной ИПС – это вся сеть Интернет, где все документы характеризуются
уникальным адресом URL1.
Интерфейс поисковой системы определяет способ взаимодействия пользователя с ИПС. Сюда
входят правила формирования запросов, механизм просмотра результатов поиска и т. д.
Интерфейс поисковых систем сети Интернет обычно реализуется в среде веб-браузера. Для
работы со звуковой и видео информацией применяется соответствующее программное
обеспечение.
Главная функция поисковой машины – реализация принятой модели поиска. Сначала запрос
пользователя, подготовленный на ИПЯ, транслируется согласно установленным правилам в
формальный запрос. Затем в ходе выполнения поискового алгоритма запрос сравнивается с
поисковыми образами документов из базы данных. По результатам сравнения формируется
итоговый список найденных документов. Обычно он содержит название, размер, дату создания и
краткую аннотацию документа, ссылку на него, а также значение меры подобия документа и
запроса. Список подвергается ранжированию (упорядочению по какому-либо критерию, обычно
по значению формальной релевантности).
База данных поисковых образов документов предназначена для хранения описаний
индексированных документов. Структура типичной базы данных словарной ИПС подробно
описана в части 1 методических указаний. Индексирующий агент выполняет индексацию
доступных документов с целью составления их поисковых образов. В локальных системах эта
операция обычно осуществляется один раз: после окончания формирования массива документов
вся информация индексируется и поисковые образы вносятся в базу данных. В динамическом
децентрализованном информационном массиве сети Интернет применяется другой подход.
Специальная программа-робот, которую называют паук (spider) или ползун (crawler), непрерывно
обходит сеть. Переходы между различными документами осуществляются с помощью
содержащихся в них гиперссылок. Скорость обновления сведений в базе данных поисковой
системы напрямую связана со скоростью сканирования сети. Например, мощный индексирующий
робот может обойти всю сеть Интернет за несколько недель. При каждом новом цикле обхода база
данных обновляется и старые недействительные адреса удаляются. Часть документов для
поисковых машин закрыта. Это информация, доступ к которой авторизован или осуществляется не
по ссылке, а по запросу из формы. В настоящее время разрабатываются интеллектуальные методы
сканирования скрытой части Интернет, но широкого распространения они пока не получили. Для
индексирования гипертекстовых документов программы-агенты используют источники:
гипертекстовые ссылки (href), заголовки (title), заглавия (H1, H2 и т. д.), аннотации, списки
ключевых слов (keywords), подписи к изображениям. Для индексирования нетекстовой
информации (например, файлов, передаваемых по протоколу ftp) используются URL [].
Также используются возможности полуавтоматической или ручной индексации. В первом случае
администраторы оставляют сообщения о своих документах, которые индексирующий агент
обрабатывает спустя некоторое время, во втором, администраторы самостоятельно вносят в базу
данных ИПС необходимую информацию. Все большее число ИПС производят полнотекстовую
индексацию. В этом случае для составления поискового образа используется весь текст
документа. Форматирование, ссылки и т. д. становятся в этом случае дополнительным фактором,
влияющим на значимость того или иного термина. Термин из заголовка получит больший вес, чем
термин из подписи к рисунку. Современные крупные ИПС должны в течение секунды
обрабатывать сотни запросов. Поэтому любая задержка может привести к оттоку пользователей и,
как следствие, к непопулярности системы и коммерческим неудачам. С точки зрения архитектуры,
такие ИПС реализуются в виде распределенных вычислительных систем, состоящих из сотен
компьютеров, расположенных по всему миру. Поисковые алгоритмы и программный код
подвергаются крайне тщательной оптимизации.
В ИПС с большим объемом базы документов для ускорения их работы применяются технологии
эшелонирования и прюнинга. Эшелонирование заключается вразделении базы данных на заведомо
более релевантную и менее релевантную части. Сначала ИПС ищет документы по первой части
базы. Если документов не найдено или найдено недостаточно, то поиск выполняется во второй
части. При использовании прюнинга1 обработка запроса автоматически прекращается после
нахождения достаточного количества релевантных документов.
Также широко применяются пороговые модели поиска, которые определяют некоторые пороговые
значения для характеристик документов, выдаваемых пользователю. Например, релевантность
документов обычно ограничивается некоторым значением релевантности R′ , например, R ′ = 0,75
при 0 ≤ R ≤ 1 . Вниманию пользователя предлагаются все документы со значением релевантности
R ≥ R′ .
В случае ранжирования результатов поиска по дате пороговые значения определяют временной
интервал даты изменения документов. Например, ИПС может автоматически отсекать документы,
не изменявшиеся последние три года.
Главным достоинством ИПС словарного типа является практически полная ее автоматизация.
Система самостоятельно анализирует поисковые ресурсы, составляет и хранит их описания,
производит поиск среди этих описаний. Широкий охват ресурсов сети Интернет также относится к
плюсам таких систем. Значительные объёмы баз данных делают словарные ИПС особенно
полезными для исчерпывающего поиска, сложных запросов или для локализации неясной
информации. В то же время огромное количество документов в базе данных системы часто
приводит к слишком большому числу найденных документов. Это вызывает затруднения у
большинства пользователей при анализе найденной информации и делает невозможным быстрый
поиск. Автоматические методы индексации не могут учесть специфики конкретных документов, и
количество непертинентных документов среди найденных такой системой часто бывает велико.
Еще одним недостатком словарной ИПС является необходимость формулировать запросы к
системе на специальном языке. Хотя существует тенденция к сближению ИПЯ с естественными
языками, на сегодняшний день пользователь должен иметь определенные навыки в
формулировании запросов.
-Вопрос 27. Характеристика поисковых систем WWW. Основные задачи
проектирования ИПС для WWW.
нету
Вопрос 28. Средства поиска в WWW. Каталоги WWW. Поисковые машины.
Для того, чтобы просмотреть HTML-страницу, достаточно просто ввести ее URL-адрес в строке
адреса Web-браузера, а затем следовать по гиперссылкам. Но именно в этом и заключается
основная проблема - как узнать адрес страницы? Чаще всего бывает так, что известно то, что
необходимо найти, но неизвестно где именно искать. Для решения этой проблемы существуют
специальные поисковые системы. С точки зрения пользователя, поисковая система - это обычный
сайт на главной странице которого находятся разбитые по рубрикам («Спорт», «Бизнес»,
«Компьютеры» и т.п.) ссылки на другие сайты. Кроме того, поисковая система позволяет
пользователю ввести несколько ключевых слов и возвращает ссылки на страницы, содержащие
эти ключевые слова. Важно отметить, что поиск не происходит в момент запроса пользователя.
Отдельные серверы заранее и постоянно «исследуют» Internet и составляют базу данных по
результатам поиска, а при поступлении запроса пользователя информация просто извлекается из
этой базы данных. Из этой схемы имеется одно следствие: разные поисковые системы могут
«исследовать» разные «области» Internet, поэтому если информация не найдена одной поисковой
системой, то ее возможно найдет другая поисковая система. Кроме того, разные поисковые
системы проводят поиск с разной эффективностью и на разную глубину. Самыми известными
поисковыми системами по русским ресурсам Internet являются www.aport.ru, www.yandex.ru,
www.rambler.ru. Наиболее известные поисковые системы по англоязычным ресурсам www.altavista.com, www.yahoo.com, infoseek.go.com. Стоит также выделить поисковую систему
www.google.com, которая достаточно быстро и качественно осуществляет поиск как по русским,
так и по англоязычным ресурсам.
Как уже указывалось выше, все поисковые системы предусматривают поиск по ключевым словам.
Очень важно правильно составить запрос на поиск. Необходимо употреблять ключевые слова,
комбинация которых не является широко распространенной. Если в ответ на запрос было найдено
7 321 сайт, то стоит попробовать другую комбинацию ключевых слов, т.к. просто времени не
хватит просмотреть все сайты, большинство из которых не относится к делу. Практически в
каждой поисковой системе имеется «расширенный поиск» (advanced search), который позволяет
при помощи удобных форм и логических условий «и», «или» и шаблонов поиска организовать
достаточно сложный поиск. Кроме того, каждая поисковая система имеет свой собственный язык
запросов. К сожалению, единого стандарта не существует, поэтому просто приведем примеры
поисковых запросов поисковой системы www.aprot.ru:
Язык запросов поисковой системы www.aport.ru
Запрос
Результат поиска
----мировые ресурсы
Страницы, содержащие слово «мировые» и слово «ресурсы». Для простых русских слов Aport
также будет искать различные формы слов: ресурс, ресурсов, мировой, мировых и т.д.
----(мировые) or (ресурсы)
Страницы, содержащие слово «мировые» или слово «ресурсы».
----«(мировые) or (ресурсы)»
Страницы, содержащие слово «(мировые)» и слово «or» и слово «(ресурсы)». Условие or и другие
специальные слова в кавычках игнорируются и считаются простым текстом.
----((NOT из*) and (!яблоко)) or (шампунь))
Скобки означают порядок применения операторов «or» и «and». Звездочка означает любое
количество произвольных символов, т.е. из* соответствует словам «изморозь», «известковый» и
т.д. NOT - документ не должен содержать слово, следующее за этим оператором, т.е. (NOT из*)
означает, что в странице не должны содержаться слова, начинающиеся на «из». Восклицательный
знак означает «только эта форма слова», т.е. не будут учитываться слова «яблоки», «яблокам» и
т.д.
----сл7(выбирать грабли)
в найденных страницах, между словами «выбирать» и «грабли» должно быть не более 7 слов.
----пр2(выбирать грабли)
в найденных страницах, слова «выбирать» и «грабли» должны находится в пределах 2-х
предложений.
----(пингвин) and (url=www.microsoft.com)
будут найдены все страницы на сервере www.microsoft.com, содержащие слово «пингвин»
----(пингвин) and (url= *.ru/arktika/*)
будут найдены все страницы со словом «пингвин», при условии, что на некотором сервере из
домена .ru, в основном каталоге web-сервера имеется подкаталог arktika.
----(пингвин) and (date=O 1/01/98-01/02/99)
страницы, содержащие слово «пингвин» и созданные между 01.01.98 и 01.02.99
----(пингвин) and (date :<01/02/99)
страницы, содержащие слово «пингвин» и созданные до 01.02.99
Помимо поисковых систем можно воспользоваться некоторыми специализированными
каталогами. Так для поиска программного обеспечения можно обратиться к сайтам www.listsoft.ru,
www.tucows.ru, www.shareware.com. Для поиска художественной литературы можно
порекомендовать библиотеку Максима Мошкова www.lib.ru.
Вопрос 29. Средства поиска в WWW. Метапоисковые машины. Программы
ускоренного поиска (поисковые агенты).
Не является секретом тот факт, что Интернет представляет собой постоянно растущий огромными
темпами массив информации. Для того, чтобы каким-то образом упорядочить этот непрерывный
поток данных и, самое главное, иметь возможность находить в этом потоке необходимую
информацию, были созданы знакомые нам поисковые машины. Каждый такой поисковик имеет
свой индекс, который несет служебную информацию о содержимом проиндексированных страниц
и документов.
Каждый обычный (назовем его "традиционным") поисковик имеет только свой собственный,
ограниченный своими ресурсами перечень (индекс) документов, которые доступны для поиска.
Ни одна из подобных систем не может охватить всех ресурсов, которые существуют в Интернет.
Поэтому, может возникнуть ситуация, когда пользователя не удовлетворяют результаты
поисковой выдачи. Обычно, в этом случае, пользователь переходит на другой поисковик и
пытается найти то, что ему нужно, там.
Зачем нужны метапоисковые системы?
Теперь представим себе ситуацию, когда количество проиндексированных сайтов различными
поисковыми системами растет в геометрической прогрессии, но доля непроиндексированного, так
называемого "невидимого" Интернета для каждой поисковой системы (даже для такой мощной,
как Gooogle) возрастает с каждым месяцем.
Происходит это потому, что разные поисковые машины используют различные алгоритмы поиска
и уделяют свое внимание разным участкам Сети, к которым они наиболее адаптированы.
Логичным решением, в таком случае, является поиск не одним, а несколькими поисковиками, для
получения более релевантного результата. Именно такую возможность и предлагают
метапоисковые системы.
Как работают метапоисковые системы.
Следует иметь в виду, что метапоисковые машины не имеют собственных поисковых баз данных
(исключение - nigma.ru), не содержат никаких индексов и для поиска используют базы данных
других поисковых систем. Принцип работы метапоисковика заключается в следующем: запрос
пользователя преобразуется в запросы, отформатированные синтаксически и логически в
конструкции, оптимальные для каждого отдельного, "традиционного" поисковика, т. е. из одного
запроса метапоисковый механизм делает ряд запросов, которые адресуются нескольким
"обычным" поискам.
Таким образом, метапоисковые системы объединяют для достижения результатов индексы
поисковых серверов различных специализаций. В рамках одной метапоисковой системы можно
осуществлять поиск информации различного типа. Метапоисковые системы не предназначены для
индексирования и накопления данных, их назначение – чистый поиск и обработка результатов
поиска. Все метапоисковые системы сортируют результаты поиска таким образом, чтобы
избежать дублей и одинаковых страниц в выдаче, найденных различными поисковыми системами.
Рассмотрим два метапоисковых механизма - один западный, другой "наш".
Vivisimo
Vivisimo представляет собой метапоисковую систему, которая собирает данные, используя
индексы нескольких поисковых машин одновременно. При более детальном рассмотрении можно
говорить, что Vivisimo обладает набором уникальных, нигде больше не встречающихся функций.
Дело в том, что большинство метапоисковых систем отсылают запрос пользователя в несколько
поисковиков одновременно, а затем результаты, попавшие в начало списков, выводят в качестве
ответа на запрос. Vivisimo работает таким же образом, но кроме этого, система сортирует
результаты поиска по группам со схожим смыслом. Особенно полезно это бывает, когда
существуют разные варианты вводимых ключевых слов. Результаты поиска объединяются в
список все более узких подразделов, что делает возможным обходиться без дополнительных
поисковых запросов.
Еще одна интересная функция Vivisimo заключается в возможности предварительного просмотра
содержания страницы по найденным ссылкам. При этом пользователь может открыть окно
просмотра прямо посреди страницы с поисковой выдачей, что позволяет быстро просматривать
результаты поиска.
Но это еще не все возможности Vivisimo, достойные внимания. Если зайти на страницу
расширенного поиска advanced search, можно найти много полезных инструментов для нашего
дела. К примеру, пользователь может задать поиск по новостным сайтам (CNN, USA Today,
Reuters, BBC и др.) или воспользоваться специализированными поисковыми машинами, такими
как поисковик официального сайта правительства США FirstGov, Business.com, Энциклопедии
Британника, аукциона eBay или системой поиска патентов Delphion. Поиск Vivisimo в
расширенном режиме выдает 200 результатов. Если этого недостаточно, то можно настроить
машину на вывод 300 или 500 результатов.
В своей работе Vivisimo использует результаты поиска следующих машин и каталогов: MSN,
Lycos, Looksmart, Wisenut, Open Directory, Overture. Сервис может корректно работать и с
контентом на русском – но, к сожалению, русскоязычных сайтов, проиндексированных
приведенными выше системами, не так уж и много, поэтому результаты поиска для страниц на
русском оставляют желать лучшего.
NIGMA.RU
Поисковый сервис nigma.ru позиционирует себя как "интеллектуальная поисковая система".
Чтобы составить начальное представление о поисковике, обратимся к его странице в Википедии.
Из описания становится понятно, что nigma.ru - универсальная поисковая машина, одновременно
использующая несколько популярных поисковых движков, которые можно включать/отключать
по желанию (главная стр. вкладка "поисковики").
Принцип действия NIGMA аналогичен поиску Vivisimo: поисковая выдача группируется по
различным критериям, что позволяет быстро произвести уточняющий поиск. Например, вбиваем в
строку поиска запрос по нашей теме [поисковые системы].
Получаем привычные нам ссылки на сайты, но... с левой стороны страницы мы видим фильтр
сервиса, благодаря которому можно исключить/добавить различные смысловые (контекстные)
значения понятия "поисковые системы".
Поставив галочку на линке, например, "новости" и нажав кнопку "применить фильтр", мы
получим в следующей выдаче только новости на тему поисковых систем (см. скриншот).
Аналогично можно находить/отсеивать форумы, статьи, ресурсы и др. по любому поисковому
запросу. По-моему, очень удобно и практично. Идем дальше...
Производит впечатление автозаполнение строки поиска и система подсказок сервиса. Мало того,
что NIGMA предлагает разные варианты запросов по рейтингу их популярности на сервисе, она
еще дает краткую справку (из Википедии) по теме возможного варианта. Да, такого пока нет даже
в Google...
Можно и дальше перечислять и описывать различные "фишки" и способности системы (нет, это
действительно интересно!), например, в области химии или математики. Думаю заинтересованный
читатель сам с удовольствием разберется в тонкостях работы данного сервиса. Хочу сказать о том,
что меня действительно приятно удивило в nigma.ru - поиск музыки. Совершенно потрясная вещь!
Над строкой поиска главной страницы можно видеть вкладки, определяющие результаты наших
запросов. Жмем на вкладку "музыка" и вписываем в строку ключевые слова - название
музыкального произведения, слова из песни, имя автора и т. п. Кроме того, что NIGMA выдает
вполне достаточное количество ссылок, любую композицию можно прослушать здесь же, на
странице поисковой выдачи!
Рядом может быть линк на скачивание и текст песни. Просто подарок для меломана! Ну и, судя по
тому, откуда (с каких поисковиков) nigma.ru черпает информацию, смею предположить, что
сервис так же хорошо обрабатывает запросы на латинице, как и на русском языке.
Конечно, приведенные выше два примера метапоисковых машин не единственные в своем роде.
Существует много подобных систем и, возможно, они не хуже приведенных здесь. Ниже даны
ссылки на некоторые из них.
Debriefing
Мощная метапоисковая система Dogpile использует для метапоиска не только поисковые системы,
но и FTP-серверы, а также новостные сайты, котировки фондовых бирж и даже "желтые
страницы" Интернета. Дополнительные услуги, предоставляемые сервисом, дают возможность
получать подробные прогнозы погоды и топографические карты интересующей местности.
Mamma
Канадская система метапоиска Mamma Systems обеспечивает стандартный пакет услуг, принятый
для подобных сервисов. Используя базы данных популярных поисковых машин, сервис Mamma
отличается качественным поиском нужной информации.
MetaCrawler
MetaCrawler, как и многие подобные системы, первоначально производит поиск необходимой
информации в базах данных других поисковых сервисов. Затем запускает свой алгоритм и
анализирует полученную информацию: сортирует ссылки, ищет дубликаты и, учитывая рейтинги
найденных ссылок, выдает их пользователю. Система адаптирована только для англоязычного
сегмента Сети.
Exactus
Метапоисковая система Exactus - проект Института Системного Анализа РАН. Поиск информации
осуществляется с учетом морфологического, синтаксического и семантического анализа
поисковых запросов. Сервис использует индекс поисковых машин Google, Yandex, Rambler, Ask,
MNS и Yahoo. Отличается точной выдачей ответов на конкретные завершенные фразы и вопросы.
Metabot.ru
Сервис, который использует не только индексы ведущих поисковиков, но и базы данных многих
каталогов, новостных и FTP серверов. Мощнейший российский метапоисковый сервис.
Расположен на серверах хостинг-оператора в США.
Вопрос 30. Средства поиска в WWW. Автоматические индексы (поисковые
машины). Каталоги-машины. Web-кольца.
К проблеме поиска информации в Internet можно подойти и с другой стороны. Существуют
программы в которые загрузили несколько тысяч общеизвестных URL-адресов. Будучи запущена
на компьютере с доступом к WWW, эта программа начинает автоматически скачивать из сети
документы по этим URL, причем из каждого нового документа она извлекает все содержащиеся в
нем ссылки и добавляет их в свою базу адресов. Поскольку в конечном счете все WWW
документы связаны между собой, рано или поздно такая программа обойдет весь Internet.
Разумеется, программа не может ни понять ни как либо классифицировать то, что она видит в
сети. Программы такого типа называются роботами. Они ограничиваются сбором статистической
информации и построением словоуказателей (индексов) по текстам документов. Собираемая
роботом база данных - индекс - хранит в себе, попросту говоря, сведения о том в каких WWWдокументах содержаться те или иные слова. Именно такой автоматически собираемый индекс и
лежит в основе поисковых систем второго рода, которые часто так и называют - автоматические
индексы.
Автоматический индекс состоит из трех частей: программы-робота, собираемой этим роботом
базы данных и интерфейса для поиска в этой базе, с которым работает пользователь. Все эти
компоненты вполне могут функционировать без вмешательства человека. Поскольку какая-либо
классификация или оценивание материалов в системах такого рода отсутствуют, к ним следует
прибегать только тогда, когда вы точно знаете ключевые слова, относящиеся к тому, что вам
нужно, - скажем, фамилию человека или несколько достаточно редких терминов из
соответствующей области.
Если же задать поиск по сколько-нибудь распространенным словам, то вам не хватит жизни,
чтобы обойти все полученные в результате поиска URL-адреса, - к примеру, индекс системы Alta
Vista содержит 11 миллиардов слов, извлеченных из 30 миллионов WWW-страниц.
Автоматических индексов WWW-страниц существует немало: WebCrawler, Lycos, Excite, Inktomi,
Open Text и другие. Некоторые из них (например, Lycos) представляют собой более или менее
удачный синтез предметного каталога и автоматического индекса.
Веб-кольцо (англ. webring) - объединение веб-сайтов с похожей тематикой. При этом каждый
участник такого кольца размещает у себя на страничке ссылки на следующего и предыдущего
члена кольца. Таким образом, переходя по ссылкам можно посетить сайты всех членов кольца.
Является способом упорядочивания сайтов в сети, наряду с каталогами и поисковыми системами.
Было популярно в начале развития Веба, но на данный момент встречается довольно редко, за
исключением порносайтов, где веб-кольца активно используются до сих пор.
Web-кольца
При кольцевом обмене сайт А ссылается на сайт Б, сайт Б - на сайт В, сайт В - на сайт Г, сайт Г на сайт А. Бывают и более сложные варианты, когда на одном сайте размещаются ссылки сразу на
несколько сайтов. Чем больше сайтов участвует в кольцевом обмене, тем сложнее обнаружить
подобные кольца. Кольцевой обмен гораздо сложнее организовать, чем прямой обмен ссылками,
так как очень сложно подобрать большое количество сайтов, у которых был бы примерно
одинаковый уровень ранжирования. Кроме того, часто сложно и уговорить владельцев сайтов
участвовать в подобном обмене. Поэтому необходимо иметь некий координационный центр. В их
роли часто выступают специализированные сайты-сервисы, которые предлагают обмен ссылками
сайтам одной тематики. Т.е. создаются тематические кольца сайтов, посвященные
сайтостроительству, заработку в интернете, медицине, инвалидам, недвижимости и др. В таком
случае ссылки похожи на естественную часть контента. Цель кольца - облегчить поиск сайтовучастников в Сети, сделать их более доступными, увеличить их трафик. Причем это не просто
прирост трафика, а прирост именно целевой аудитории. Веб-кольцо - это еще один способ
навигации в Сети, причем навигации удобной. Посетители могут ходить по таким кольцам часами,
перечитывая огромное количество документов. Посетителю предлагается каталог сайтов одной
тематики. Очень часто в роли координаторов выступают компании и специалисты-частники,
оказывающие услуги по продвижению сайтов. Они создают кольца из сайтов своих клиентов.
Кольцевой обмен очень выгоден, т.к. обычно не требует материальных затрат и большого
количества времени.
Вопрос 31. Информационно-поисковые системы WWW. Интерфейс системы.
Важным фактором является вид представления информации в программе-интерфейсе. При этом
различают два типа интерфейсных страниц: страницы запросов и страницы результатов поиска.
При составлении запроса к системе используют либо меню-ориентированный подход, либо
командную строку. Меню-ориентированный подход позволяет ввести список терминов, обычно
через пробел, и выбрать тип логической связи между ними. Логическая связь распространяется на
все термины. На нашей схеме (рисунок 3.41) есть так называемые сохраненные запросы
пользователя. В большинстве систем это просто фраза на ИПЯ, которую можно расширить за счет
добавления новых терминов и логических операторов. Но это только один тип использования
сохраненных запросов. В традиционных системах это называется расширением или уточнением
запроса, в зависимости от того, что получаем в результате преобразования запроса: увеличение
размера выборки или ее сокращение. При этом традиционная система хранит не запрос как
таковой, а результат поиска, т.е. список идентификаторов документов, который
объединяется/пересекается со списком полученным при поиске документов по новым терминам. К
сожалению, сохранение списка идентификаторов найденных документов в World Wide Web не
практикуется. Вызвано это особенностью протоколов взаимодействия программы-клиента и
сервера системы, которые не поддерживают сеансовый режим работы.
Как стало уже понятно из выше изложенного, результат поиска в базе данных ИПС - это список
указателей на удовлетворяющие запросу документы. Различные системы представляют этот
список по-разному. В некоторых системах выдается только список ссылок, а в таких системах как
Lycos, AltaVista, Yahoo кроме ссылок дается еще и краткое описание, которое заимствуется либо
из заголовков, либо из тела самого документа. Кроме этого система сообщает на сколько
найденный документ соответствует запросу. В Yahoo, например, сообщается сколько терминов
запроса содержится в поисковом образе документа и в соответствии с этим ранжируется результат
поиска. В Lycos выдается мера соответствия документа запросу и ранжирование производится по
этому параметру. Обычно пользователь имеет возможность уточнить запрос.
При обзоре интерфейсов и средств поиска нельзя пройти мимо процедуры коррекции запросов по
релевантности[7]. Релевантность - это мера соответствия найденного системой документа
потребности пользователя. Различают формальную релевантность и реальную. Формальная - это
та, что вычисляет система и на основании чего ранжируется выборка найденных документов.
Реальная - это та, как сам пользователь оценивает найденные документы. Некоторые системы
имеют для этого специальное поле[6], где пользователь может отметить документ как
релевантный. При следующей поисковой итерации запрос расширяется терминами этого
документа. И выдача снова ранжируется. Так происходит до тех пор, пока результат не
стабилизируется. Это означает, что ничего лучше, чем полученная выборка, от данной системы не
добьешься.
Кроме ссылок на документы в списке, полученном пользователем, могут оказаться ссылки на
части документов или на их поля. Это происходит при наличии ссылок типа http://host/path#mark
или ссылок по схеме WAIS. Возможны ссылки и на скрипты, но обычно такие ссылки роботы
пропускают и система не индексирует. Если с http-ссылками все более или менее понятно, то
ссылки WAIS - это гораздо более сложные объекты. Дело в том, что WAIS реализует архитектуру
распределенной информационно-поисковой системы. Это значит, что одна ИПС, например, Lycos
строит поисковый аппарат над поисковым аппаратом другой системы - WAIS. При этом серверы
WAIS имеют свои собственные локальные базы данных. При загрузке документов в WAIS
администратор может описать структуру документов, т.е. разбить их на поля, и хранить
документы как один файл. индекс WAIS будет ссылаться на отдельные документы и их поля как
на самостоятельные единицы хранения. В этом случае программа просмотра ресурсов Internet
должна уметь работать с протоколом WAIS, чтобы получить доступ к этим документам.
Типы информационно-поисковых языков
Главная задача информационно-поисковой системы - это поиск информации релевантной
информационным потребностям пользователя. Слово релевантность означает соответствие между
желаемой и действительно получаемой информацией. Релевантность можно еще представить как
меру близости между реально полученными документами и тем, что следовало бы получить из
системы. Естественно, что здесь возникает две задачи, которые следует решить: представление
информации в системе и формулирование информационных потребностей пользователя. Эти две
проблемы тесно связаны друг с другом. Руководства по многим информационно-поисковым
системам Internet (Yahoo, OpenText и др.), что система реализует запрос типа "найди похожее". Но
что значит эта фраза в реальности? Как вычислить эту самую похожесть?
Наиболее распространенными моделями представления документов в информационно-поисковой
системе являются различные вариации на тему векторной модели, когда документ представляется
как набор терминов. Как уже упоминалось ранее, это не весь текст документа, а только небольшой
набор терминов, который отражает его содержание. Базируясь на таком представлении о
документе и рассмотрим различные информационно-поисковые языки.
Вопрос 32. Поиск источников информации в WWW.
Информация или услугу в WWW, их надо, прежде всего, разыскать, а поиск информации непростая задача. По состоянию на начало 2000 г. ресурсы Web оцениваются более чем в 850
миллионов Web-страниц.
Для поиска информации в Сети используются специальные поисковые службы. Обычно поисковая
служба - это компания, имеющая свой сервер, на котором работает некая поисковая система.
Услуги абсолютного большинства поисковых служб бесплатны, но, тем не менее, по темпам роста
сегодня это самый эффективный бизнес в мире.
Все поисковые системы WWW основаны на гиперссылках. Обращаясь к поисковой службе, мы
формулируем запрос, в котором формально описываем то, что хотим найти. Проведя нужные
операции, служба формирует Web-документ, состоящий из гиперссылок, ведущих к ресурсам
WWW, соответствующим нашему запросу. Какой из этих гиперссылок м ы воспользуемся - дело
наше.
Поисковые каталоги
Поисковые каталоги похожи на предметные каталоги общественных библиотек. На начальной
странице поискового каталога мы выбираем тему, которая нас интересует, затем в рамках темы
выбираем категорию, потом подкатегорию, и так далее, пока не получим конкретный список Webресурсов, рекомендованных для просмотра.
Основное отличие поисковых указателей от поисковых каталогов состоит is полной
автоматизации всех этапов работы. Здесь отсутствует «человеческий фактор», и потому
количество Web-страниц, к которым ведет поисковый указатель, намного больше.
Приемы простого поиска информации в WWW
Каждая поисковая система предоставляет свои методы поиска и имеет свои особенности в
правилах записи комбинации ключевых слов. Однако есть общие элементы, одинаково
справедливые для большинства поисковых систем.
Прежде всего, надо заметить, что чем точнее сформулировано задание на поиск, тем точнее будут
и результаты. Например, если вы хотите найти документы с описанием замеченных ошибок
Windows 98, то так и надо формулировать запрос: ошибки Windows 98, а не просто Windows. На
англоязычных серверах очень часто срабатывает простое человеческое описание проблемы: printer
works incorrectly (принтер работает неправильно).
Ловушка для начинающих
Обычно наша задача состоит в том, чтобы выделить в пространстве Web самые нужные
документы, однако многие начинающие ловятся на один и тот же крючок. Например, если вы
хотите найти информацию о компьютерных играх (computer games), то кажется, что так и надо
оформить запрос:
computer games
Увы, для большинства поисковых систем этот запрос будет ошибочным. При таком запросе
система будет искать все Web-страницы, в которых встречается либо слово computer, либо слово
games, либо оба вместе. В WWW полно страниц, на которых упоминаются компьютеры и нет ни
слова про игры. Точно так же там полно страниц со спортивными, настольными и другими
играми, которые нам не интересны. Вот всю эту массу и надо как-то отсеять, а мы наоборот ее
запрашиваем.
Вот список поисковых систем, которые рассматривают группу слов, введенных через пробел, как
задание на поиск любого из этих слов:
AltaVista Excite GoTo
Infoseek LookSmart Netscape Search
Snap WebCrawler Yahoo!
Следующие системы тоже способны выполнять поиск по любому из слов группы, но для этого
надо либо установить соответствующий флажок, либо выбрать соответствующий пункт в меню:
Сложение наоборот
Если нам надо, чтобы поисковая система нашла страницы, на которых одно временно
присутствуют все использованные ключевые слова, то перед каждым из них надо поставить знак
«+». Предположим, вы хотите узнать, не 'было ли в жизни известного лица каких-нибудь
щекотливых ситуаций. В этом случае в условии поиска надо указать:
+Клинтон +скандал
'Поисковая система выдаст список страниц, на которых встречаются оба слова, хотя, конечно, не
исключено, что между ними нет прямой связи. Список слов может быть больше - тогда результаты
поиска будут точнее, например:
+свет +оптика +линза
Использование знака «+» особенно полезно, если вы провели поиск по распространенному слову,
но в ответ получили так много ссылок, что не знаeтe, как с ними поступить. Используя знак «+»,
мы сужаем круг поиска и уменьшаем количество возможных ссылок.
Знак «+» понимают все основные поисковые системы, за исключением LookSmart. А следующие
системы выполняют такой поиск по умолчанию, даже если знак «+» не указан:
Имеет отличия и российская система Яndex. Если слова разделены пробелами, то система ищет
одновременное появление этих слов, но только в пределах одного предложения. Если же
требуется одновременность в пределах всего документа, надо использовать знак «+».Интересную
особенность имеет и российская система Rambler. В ней знак«+» можно использовать для
управления весовым коэффициентом при рейтинговании результатов. Так, например, поставив
несколько знаков «+» перед каким-либо словом, можно форсировать отображение страниц,
содержащих его, в вершине результирующего списка.
Арифметика вычитания
Интересно, что сужать круг поиска можно не только знаком «+», но и знаком «-».Допустим, вам
надо написать для детского сада реферат о деятельности президента Клинтона, но при этом не
хочется вникать в его историю с Моникой Ленински. Исключить Ленински из рассмотрения
можно знаком «минус», например так.
Клинтон -Левински
Если, к примеру, нам надо написать реферат по оптике, но только по геометрической, а не по
волновой, то поиск может быть таким:
+свет -оптика -волна
Последняя команда разыщет все страницы, где присутствуют слова свет и оптика, но покажет
только ссылки на страницы, не содержащие слова волна.
Знак «-» понимают практически все основные поисковые системы.
Применим джокера
Возьмем следующее предложение:
В геометрической оптике световой луч рассматривается как прямая линия.
Интересно отметить, что поиск по команде +свет +оптика может его и но найти, хотя это самая
настоящая геометрическая оптика. Мы дали команду искать слово свет, а в документе написано:
световой. Мы дали команду искать слово оптика, а в документе написано: оптике. Разумеется,
многие поисковые системы производят нормализацию слов, но не все и не всегда, так что не стоит
на это полагаться, а следует использовать подстановочный символ «*». Как джокер в карточной
колоде может заменить любую карту, так этот символ может заменить любой другой символ или
набор любых символов до конца слова. Если бы мы сформировали свой запрос так:
+свет* +оптик* -волн* то наверное его результаты были бы шире без особой потери точности.
Контекстный поиск
А почему бы нам сразу не искать то, что надо?
+геометрическая +оптика
Может быть, это и было бы хорошим решением, но такой поиск выдаст ссылки на страницы, где
упоминаются оба эти слова, причем совсем не Необязательно, что вместе. То есть, слово
геометрическая может быть в одном конце текста, а слово оптика - совсем в другом. Если же мы
хотим объедить оба эти слова в одно сочетание, то надо применить кавычки:
"Геометрическая оптика" "геометрическая оптика"
случае использования кавычек поисковая система разыскивает документы, в которых абсолютно
точно есть тот текст, который в них заключен. Поиск с помощью кавычек называется контекстным
поиском.
Роль прописных букв
Прописные буквы при проведении поиска имеют особый статус. Вам ведь понятна разница между
сочетаниями красная шапочка и Красная Шапочка? прописными буквами поисковые системы
обращаются буквально, то есть разыскивают тексты, в которых слова записаны точно такими же
буквами. Со строчными буквами все происходит демократичнее. Совпадения засчитываются и в
том случае, когда в тексте стоит прописная буква, и в том случае, когда буква строчная.
поиск по словам:
+красная +шапочка
вернет результаты, в которых будут и красная шапочка, и Красная шапочка, ДЦ красная Шапочка,
и Красная Шапочка.
Ир Другой стороны, поиск по словам:
И| +красная +шапочка Издаст гораздо более узкий результат: Красная Шапочка, - и все.
Поиск по заголовкам
Каждая Web-страница может иметь заголовок, если Web-мастер не поленился его создать. Когда
мы разыскиваем Web-страницы с помощью поисковых систем, то по результатам поиска нам
обычно выдается ссылка, в которой присутствует заголовок Web-страницы, если он есть. Если его
нет, то обычно выдается одно-два предложения первого абзаца.
Многие поисковые системы позволяют разыскивать Web-документы по тексту, содержащемуся в
заголовках. Такой поиск существенно уменьшает количество возвращаемых ссылок, но очень
точно выводит на нужные материалы. Например, если вам нужны данные для доклада о
Солнечной системе, имеет смысл искать не просто словосочетание Solar System (Солнечная
система), а страницы, в которых это сочетание присутствует в заголовке. Командой такого поиска
является title:, например:
title: Solar System или (лучше)
title: solar system
Поиск заголовков Web-страниц по команде title: поддерживают следующие поисковые системы:
Поисковая система Aport 2000 имеет несколько альтернативных команд для поиска заголовков.
Основная команда - title = . Примеры:
title = Солнечная система
t = Солнечная система
заг = Солнечная система
з = Солнечная система В поисковой системе Япс1ех команда поиска в заголовке записывается так:
Поиск Web-узлов
Сам по себе поиск Web-узлов используется достаточно редко, но команды этого поиска часто
применяют для сокращения числа ссылок, возвращенных другими методами и ограничения их
одним Web-узлом или, наоборот, исключения некоего Web-узла из результатов поиска.
Одной из команд такого поиска является команда host:.Например, на поисковой системе Alta Vista
команда host: microsoft.ru разыщет все Web-страницы, принадлежащие доменному имени
mycrosoft.ru.
Эту команду обычно комбинируют с другими. Если, например, нас интересуют планеты
солнечной системы, но мы уже сыты по горло трудами Национального управления по
исследованию космического пространства
США (NASA), то сервер NASA можно исключить из поиска командой:
+solar + system -host: nasa .:
В команду можно включать не полное доменное имя сервера, а только его часть, например только
имя домена. Так, если мы хотим обыскать только российские серверы, то можно использовать имя
домена ru, например:
+cookies +host: ru
По этой команде мы узнаем, что пишут о маркерах cookies на российских Web-узлах.
Не все поисковые системы позволяют проводить поиск по Web-узлам, да
и команда поиска у них может быть различной. Вот список систем, которые такой поиск
выполняют:
Alta Vista host:
Hot Bot domain:
& f InfoSeek site:
MSN Search domain:
GoTo domain:
Snap domain:
Поисковая система Lycos выполняет поиск Web-узлов только в режиме расширенного поиска.
Поиск URL-адресов
Этот поиск очень похож на поиск Web-узлов. Суть и смысл его те же, только Команда другая uri:. Эту команду поддерживают следующие поисковые службы:
AltaVista Infoseek
Northern Light
Поисковый каталог Yahoo! использует команду u:, а система Lycos реализует поиск URL-адресов
с помощью команд расширенного режима. В России поисковая система Яndex использует команду
#url=, после которой следует записать URL-адрес в кавычках. Поисковая система Апорт 2000 ,
обходится более простым синтаксисом, например url=www.intel.ru, а в поисковой системе Rambler
команда должна начинаться с символа <$>, например так:
$uri: www.intel.ru
Поиск ссылок
Поиск ссылок бывает полезен владельцам Web-страниц и Web-мастерам. Он позволяет, к примеру,
количественно оценить динамику популярности своей страницы регулярным контролем числа
ссылок, которые к ней ведут. Типовая команда для такого поиска - link:.
Например, команда link: http://www.mywebsite.com/mypage/index.htm позволит выявить ссылки,
которые ведут к титульной странице index, htm на Web-узле mypage, размещенном на Web-сервере
www.mywebsite.com.
Апорт 2000 поддерживает четыре разных представления команды:
Link=
L=
Ссылка=
Сс=
Система Яndex поддерживает команду #link:, после которой адрес ссылки должен записываться в
кавычках.
Средства расширенного поиска
Выше мы рассмотрели лишь десять методов формулирования задания на поиск, однако их
достаточно для проведения 90% поисковых работ в 90% поисковых служб. Все рассмотренные
выше методы являются методами простого поиска. Кроме средства простого поиска обычно
поисковые службы предоставляют средства расширенного поиска. Эти средства позволяют более
точно формулировать поисковое задание, но требуют определенного опыта и работают заметно
медленнее. В большинстве поисковых систем команды расширенного поиска формируются с
помощью логических команд и рассчитаны на профессионалов. Удобство использования
логических команд в частности связано с тем, что команды простого поиска у многих поисковых
систем реализованы по-разному. Каждая система стремится сделать средства простого поиска
наиболее удобными, а средства расширенного поиска - наиболее стандартными.
Команда OR
Логическая команда OR (ИЛИ) служит для формирования поискового задания, состоящего из
нескольких ключевых слов, если надо, чтобы разыскиваемый документ содержал любые из этих
слов в любой комбинации. Например, по команде solutions OR hints будут разысканы Webстраницы, содержащие решения к компьютерным играм (solutions) или подсказки к ним (hints).
Команду OR поддерживают абсолютное большинство основных поисковых служб, за
исключением следующих:
Google Infoseek LookSmart Yahoo!
Службы Infoseek, LookSmart и Yahoo! по умолчанию выполняют поиск по принципу ИЛИ, если
через пробел задано несколько ключевых слов, и поэтому нс нуждаются в этой команде. Лишь
поисковая система Google вообще не имеет таких средств.
«Апорт 2000» позволяет использовать как английское ключевое слово OR, так н русское ИЛИ.
Можно также использовать знак « | ». Система Rambler использует или слово OR, или знак « | », а
система Яndeх - только знак « | ».
Команда AND
Логическая команда AND (И) служит для формирования поискового задания, когда надо, чтобы
разыскиваемый документ содержал одновременно все слова, введенные пользователем. Это
аналог команды «+» простого поиска. Например, по команде свет AND луч будут разысканы все
Web-страницы, содержащие оба эти слова.
Команду AND поддерживают абсолютное большинство основных поисковых служб, за
исключением следующих, которые используют знак «+»:
Google Infoseek LookSmart Yahoo!
Апорт 2000 позволяет использовать как английское ключевое слово AND, так и русское И, а также
знаки «&» и «+». Система Rambler использует ключевое слово AND или знак «&», а система
Япс1ех - знак «&» или пробел, если требуется одновременное присутствие слов в одном
предложении, или пару знаков «&&», если требуется одновременное присутствие слов во всем
документе.
Команда NOT
Логической командой NOT (HE) устанавливают исключения из результатов поиска, то есть это
аналог рассмотренной выше команды простого поиска <* - ». Эту команду поддерживает
большинство служб, за исключением:
Google Infoseek LookSmart Yahoo!
Системы AltaVista, Excite, Snap требуют специальной формы записи этой команды: вместо NOT в
них следует давать команду AND NOT.
Наряду с командой NOT в системе Апорт 2000 разрешается использовать команду «НЕ», а в
системе Rambler - команду «!». Интересна особенность системы Яndех. Она реализует логическую
команду И НЕ, которая записывается значком «~», если относится к одному предложению и парой
значков «~~», если относится ко всему документу.
Команда NEAR
Это одна из самых удобных команд расширенного поиска. Она позволяет совместить достоинства
поиска по ключевым словам и контекстного поиска при глубоком поиске самые лучшие
результаты возвращаются с помощью этой команды. Пример: поисковая команда Quake NEAR
hints позволит разыскать документы, в которых присутствуют слова Quake и hints одновременна
причем находятся поблизости друг от друга.
К сожалению, редкие поисковые службы поддерживают поиск с помощью команды NEAR. При
этом у разных служб разное представление о том, что значит «близкое» размещение слов друг к
другу:
AltaVista (в пределах 10 слов, жестко); Lycos (в пределах 25 слов, гибко); WebCrawler (в пределах
2 слов, гибко);
И Lycos, и WebCrawler позволяют управлять размером интервала, в котором разыскиваются
ключевые слова. Для этого команду NEAR задают(параметром /#. Например, команда ночь
NEAR/10 река позволит разыскат произведения, в которых есть описание реки ночью, если слова
ночь и река отстоят друг от друга не более, чем на десять слов.
В российской поисковой системе Rambler аналогичная команда начинается со знака «$» и
заканчивается двоеточием ($NEAR:). В поисковой системе Апорт 2000 расстояние между словами
задается командой СЛ# (..., ..., ...), где вместо знака « # » следует подставить цифру или число,
обозначающее предельное расстояние, а вместо многоточий - список ключевых слов. В поисковой
системе Яndех расстояние задается в круглых скобках после дробной черты. При этом указать
расстояния можно как «вперед», так и «назад» :
средство поиск/ (-2 4)
Такая команда позволит разыскать на только средства расширенного поиска, но и поисковые
средства.
Вложение команд
Вложение команд позволяет создавать весьма сложные запросы. Оно выполняется с помощью
круглых скобок ( ). Команда, стоящая в скобках, выполняется в первую очередь. Рассмотрим
пример поиска решений или подсказок к компьютерной игре Diablo:
diablo AND (solution OR hint)
В этом случае сначала будут отобраны документы, в которых приводятся подсказки или решения
для компьютерных игр, а потом из них будут выбраны те, в которых упоминается игра Diablo.
Использование круглых скобок для управления порядком исполнения задания на поиск
разрешается большинством крупнейших поисковых систем, за редким исключением
Вопрос 33. Стратегия поиска информации в сети Интернет.
Для начала зададимся простым вопросом: "Умеем ли мы искать информацию в сети?" Наверняка
90 % пользователей скажут :"Что за вопрос? Конечно умеем!". Действительно, миллионы людей
пользуются интернетом именно для поиска информации и почти всегда находят что-то полезное.
Для того, чтобы эффективно добывать информацию нужно немного поучиться. Необходимо
разобраться, как устроены и по каким принципам работают главные инструменты для поиска
информации во Всемирной сети: поисковые системы и каталоги. Прежде всего, надо изучить язык
поисковых машин. Подробнее можно ознакомиться на странице "Язык поисковых машин". Для
любого человека важно знать, как именно нужно искать, какими приемами пользоваться, какие
языки запросов нужно применять в том или ином случае. Существуют способы быстрого и
эффективного поиска информации в интернете, которые сэкономят Ваше время и силы. Когда вы
узнаете больше о языке поисковых машин, можете начинать применять полученные знания на
практике. Эти знания пригодятся не только тем, кто ищет информацию в частных целях, но и
надеемся, помогут авторам бизнес-проектов в сети.
Для поиска нужно использовать различные поисковые системы. Для каждого случая подойдет
свой поисковик. К примеру, наиболее вероятно найти максимум информации об Австралийских
командах по регби в австралийской поисковой машине Web Wombat , городском Сиднейском
портале, австралийских каталогах. Не стоит увлекаться только крупными поисковиками.
Например, российская поисковая система "Яндекс" находит гораздо больше документов на
русском, чем "Гугл". Стоит отметить и то, что разные поисковые системы по одним и тем же
поисковым запросам выдают различные лидирующие списки. Если вам нужно найти информацию
, связанную с каким-либо регионом, городом полезно будет поискать в местных каталогах,
порталах. Адреса таких ресурсов часто выходят одними из первых по названию своего региона
или города. Если нет, можно найти по ссылкам с найденных региональных сайтов. Многие
неплохие сайты создаются для локального пользования и практически не раскручиваются в
поисковых системах.
Некоторую специализированную информацию стоит поискать в специализированных каталогах,
просматривая нужные вам тематические разделы. Увидев качественный, подходящий вам по
тематике поиска сайт, не спешите покидать его не просмотрев страницы ссылок. Обычно на
серьезных сайтах ссылки подобраны хорошо, и вполне возможно вы найдете что-то там.
Глобальная сеть Интернет объединяет миллионы компьютеров и локальных сетей, к ее услугам
прибегают сотни миллионов человек. Но сеть Интернет - это лишь средство связи компьютеров и
локальных сетей между собой. Для хранения и передачи информации по сети Интернет созданы
специальные информационные службы, иногда называемые сервисами Интернет. Этих служб
несколько, наиболее часто используемыми являются электронная почта, электронные библиотеки,
телеконференции. Но самой популярной службой является World Wide Web (WWW ) - всемирная
паутина. Служба WWW имеет свои особенности, благодаря которым она и стала такой
популярной. Вся информация в этой службе хранится на WWW-серверах в виде гипертекстовых
документов, называемых Web-странщами. Эти документы пишутся на языке HTML (Hyper Text
Markup Language ) и могут содержать информацию различного вида: текст, рисунки, аудио и
видео, что делает эту информацию чрезвычайно привлекательной для пользователей.
Гиперссылки в HTML-документах могут указывать как на другую часть этого документа, так и на
другой документ, расположенный на любом сервере сети Интернет. Это позволяет легко
отыскивать требуемую информацию, переходя посредством гиперссылок от документа к
документу. А вообще-то для поиска информации в сети Интернет используются специальные
поисковые серверы. Но прежде чем что-то искать, надо знать, где информация находится, поэтому
рассмотрим, хотя бы конспективно, способы адресации в сети Интернет.
Какие существуют средства поиска в Интернете (Поисковые системы, каталоги)
При загрузке каталога на экран выводится самый общий перечень областей человеческой
деятельности: ИСКУССТВО, ОБРАЗОВАНИЕ, БИЗНЕС, НАУКА, ИГРЫ, СПОРТ и т.д. Входя в
любой раздел, пользователь последовательно видит все более и более дробную его детализацию,
пока не дойдет до конкретных учреждений или лиц. Такая разветвляющаяся (иерархическая)
структура дает возможность шаг за шагом обследовать интересующие разделы киберпространства
будь то физика или история, музыка или спорт, последние новости или справочные издания.
Большинство каталогов создаются путем добавления авторами web-страниц своего сайта к
существующему списку ссылок.
Поисковые системы (search engines) распространены в гораздо большем количестве нежели
электронные справочники и число их продолжает увеличиваться. Работа с ними требует
некоторых навыков, поскольку простой ввод искомого термина в поисковую строку может
привести к получению в ответ списка из сотен тысяч документов, содержащих данное понятие.
Поисковые системы по существу представляют собою базы данных слов, полученных при
периодическом сканировании виртуального информационного пространства. С помощью
специальных компьютерных программ ("пауки", "черви", "исследователи", и т. д.) поисковые
системы регулярно обследуют Интернет (главным образом World Wide Web и Usenet), выявляя все
существующие, и, в особенности, новые и обновленные источники и удаляя сведения о вышедших
из употребления. Этот колоссальный материал, с указанием ссылки на то где хранится каждое
слово, содержится в виде гигантских индексных файлов, к которым и происходит обращение при
конкретном запросе. Достоинства и недостатки поисковых систем складываются из нескольких
важнейших характеристик. Принципиальным вопросом является то, насколько полно та или иная
система обследует тексты, т.е. все ли слова заносятся в индексные файлы или же только термины
из названий, заголовков, резюме, первых двух страниц текста и т.д. Важно также как часто
происходит обновление данных, каким образом системы "взвешивают" понятия, определяя их
соответствие данному запросу. Безусловно, не последнюю роль играет простота и
информативность интерфейса, возможность использовать операторы расстояния, дополнительные
функции. По этим параметрам среди доброй сотни поисковых систем выделяются несколько
наиболее популярных источников, позволяющих выявлять информацию с высокой степенью
полноты и точности запросу.
Деление поисковых средств на каталоги и поисковые системы (машины) условно, потому что
практически все средства справочного типа обладают некоторой возможностью
непосредственного поиска, а многие поисковые системы снабжены небольшими справочниками.
Недостатки предметных каталогов. Поскольку каталог формируется не автоматически, а
авторским коллективом, то перечень сайтов и Web-страниц оказывается менее полным, а
материалы менее свежими, чем в аналогичных разделах автоматизированных Поисковых Машин,
работающих по ключевым словам или фразам. Важные ресурсы могут быть упущены вследствие
размещения ресурса в неожиданном разделе каталога.
Вопрос 34. Проблемы многоязычного поиска в Интернет. Способы решения в
разных ИПС.
Google предложила многоязычный поиск
Google попыталась устранить языковый барьер в интернете, предложив опытную функцию
перевода, которая позволяет искать англоязычные веб-сайты на своем родном языке.
Дополнение к странице Google Translate обеспечит перевод для 12 языков и позволит зарубежным
веб-серферам восполнить недостаток информации за счет англоязычных веб-сайтов. «Одна из
серьезных проблем, с которыми мы сталкиваемся при поиске на разных языках, заключается в
том, что на других языках веб недостаточно обширен, - сказал на пресс-конференции вицепрезидент Google Юди Манбер. - Каким бы хорошим ни был инструмент поиска, нельзя найти то,
чего нет».
По его словам, новая функция поиска «может автоматически перевести весь веб на современные
языки». Это «способ прямого поиска на разных языках и получения результатов на разных
языках… Идея в том, чтобы искать на своем родном языке».
Результаты поиска отображаются на разделенном надвое экране: с одной стороны на английском,
а с другой - машинный перевод той же страницы на выбранный язык. Поддерживаются арабский,
французский, итальянский, немецкий, испанский, португальский, русский, японский, корейский, а
также традиционный и упрощенный китайский языки.
Манбер признал, что служба не совершенна. «Если кто-то захочет почитать глубокие статьи из
литературного журнала, то это, вероятно, не лучший способ… Но если вам нужна информация, то
вы ее, скорее всего, получите».
Вопрос 35. Проблемы и возможности современных информационнопоисковых систем.
Проблема заключается в огромном количестве информации на сервера. И с каждым разом все
труднее отыскать нужную для нас информацию. Нужно уметь правильно и грамотно делать запрос
для поиска информации!!
Возможности: Быстрый поиск документов ,статьи , видео, картинок, музыки- скачать и
просмотреть это можно без проблем.
В каждой поисковой системе свой язык поиска и нужно его знать что без затраты лишнего
времени найти нужную нам информацию.
Вопрос 36. HTML. Структура HTML-документа. Введение в HTML.
Инструментарий.
HTML - стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц
создаются при помощи языка HTML . Язык HTML интерпретируется браузером и отображается в
виде документа, в удобной для человека форме.
Общее представление
Язык HTML был разработан британским учёным Тимом Бернерсом-Ли приблизительно в 19911992 годах в стенах Европейского совета по ядерным исследованиям в Женеве (Швейцария).
HTML создавался как язык для обмена научной и технической документацией, пригодный для
использования людьми, не являющимися специалистами в области вёрстки. С помощью HTML
можно легко создать относительно простой, но красиво оформленный документ. Помимо
упрощения структуры документа, в HTML внесена поддержка гипертекста. Мультимедийные
возможности были добавлены позже. Изначально язык HTML был задуман и создан как средство
структурирования и форматирования документов без их привязки к средствам воспроизведения
(отображения). Однако современное применение HTML очень далеко от его изначальной задачи.
Браузеры
Текстовые документы, содержащие код на языке HTML (такие документы традиционно имеют
расширение .html или .htm), обрабатываются специальными приложениями, которые отображают
документ в его форматированном виде. Такие приложения, называемые «браузерами» или
«интернет-обозревателями», обычно предоставляют пользователю удобный интерфейс для
запроса веб-страниц, их просмотра и, при необходимости, отправки введённых пользователем
данных на сервер. Наиболее популярными на сегодняшний день браузерами являются Internet
Explorer, Mozilla Firefox, Apple Safari, Google Chrome и Opera.
Структура HTML-документа
HTML - теговый язык разметки документов. Любой документ на языке HTML представляет собой
набор элементов, причём начало и конец каждого элемента обозначается специальными
пометками - тегами. Элементы могут быть пустыми, то есть не содержащими никакого текста и
других данных (например, тег перевода строки <br>). В этом случае обычно не указывается
закрывающий тег. Кроме того, элементы могут иметь атрибуты, определяющие какие-либо их
свойства (например, размер шрифта для элемента font). Атрибуты указываются в открывающем
теге. Вот примеры фрагментов HTML-документа:
* <strong>Текст между двумя тегами - открывающим и закрывающим.</strong>
* <a href="http://www.example.com">Здесь элемент содержит атрибут href.</a>
* А вот пример пустого элемента: <br>
Регистр, в котором набрано имя элемента и имена атрибутов, в HTML значения не имеет (в
отличие от XHTML). Элементы могут быть вложенными. Например, следующий код:
<b>
Этот текст будет жирным,
<i>а этот - ещё и курсивным</i>
</b>
даст такой результат:
Этот текст будет жирным, а этот - ещё и курсивным
Кроме элементов, в HTML-документах есть и - «специальные символы». Сущности начинаются с
символа амперсанда и имеют вид &имя; или &#NNNN;, где NNNN - код символа в Юникоде в
десятеричной системе счисления.
Далее обозначается начало и конец документа тегами <html> и </html> соответственно. Внутри
этих тегов должны находиться теги заголовка (<head></head>) и тела (<body></body>) документа.
Вопрос 37. HTML. Теги.
Тег HTML состоит из следующих друг за другом в определенном порядке элементов:
* левой угловой скобки < (такого же, как "меньше чем" символа)
* необязательного слэша /, который означает, что тег является конечным тегом, закрывающим
некоторую структуру. Таким образом в этом контексте Вы можете читать символ /, как конец...
* имени тега, например TITLE или PRE
* необязательных, если даже тег может иметь их, атрибутов. Тег может быть без атрибутов или
сопровождаться одним или несколькими атрибутами, например: ALIGN=CENTER
* правой угловой скобки > (такой же, как символа "больше чем").
Примеры тегов HTML:
<H1>
<H1 ALIGN=LEFT>
Большинство, но не все теги HTML спарены так, что за открывающим тегом следует
соответствующий закрывающий тег, а между ними содержится текст или другие теги, например:
<H1>Foreword</H1>
В таких случаях два тега и часть документа, отделенная ими, образуют блок, называемый HTML
элементом. Некоторые теги, например <HR>, являются элементами HTML сами по себе, и для них
соответствующий конечный тег неверен. Далее мы будем называть теги по их именам, опуская
обязательные угловые скобки.
Aтрибуты тегов HTML
Для каждого тега определяется множество возможных атрибутов. Большинство тегов допускает
один или несколько атрибутов, однако атрибутов может и совсем не быть. Спецификация
атрибута состоит из расположенных в следующем порядке:
* имени атрибута, например WIDTH
* знак равенства (=)
* значения атрибута, которое задается строкой символов, например, "80".
Всегда полезно заключить значение атрибута в кавычки, используя либо одинарные ('80'), либо
двойные кавычки ("80"). Строка в кавычках не должна содержать такие же кавычки внутри себя.
Так, если дата заключена в двойные кавычки, используйте одинарные кавычки для последующего
заключения в кавычки, и наоборот. Предпочтительно использование двойных кавычек, так как для
глаза человека бывает трудно отличить одинарные кавычки от символов, подобных символам
акцентирования.
Вы можете также опустить кавычки для значений атрибутов, которые состоят только из
следующих символов (обратитесь к технической концепции имени):
* символов английского алфавита (A - Z, a - z)
* цифр (0 - 9)
* промежутков времени
* дефисов (-)
Таким образом, WIDTH=80 и ALIGN=CENTER - разрешенное сокращение для WIDTH="80" и
ALIGN="CENTER". Ссылка на URL, например, HREF=foo.htm, допустима, однако, когда URL
используется с атрибутами, он должен быть заковычен, например HREF="http://www.hut.fi/".
Существуют некоторые броузеры, которые допускают отсутствие кавычек или наличие элементов
с открывающими кавычками без закрывающих. Однако, такую практику лучше не применять.
В пределах значения атрибута теги HTML не воспринимаются. А escape последовательности
распознаются и интерпретируются, как символы.
Если значение атрибута такое же, как его имя, может быть использован минимальный синтаксис
атрибута. То есть <UL COMPACT="COMPACT"> можно сократить до <UL COMPACT>.
Некоторые агенты пользователей (программы просмотра пользователя, броузеры) даже требуют
минимизации для некоторых атрибутов (COMPACT, ISMAP, CHECKED, NOWRAP, NOSHADE,
NOHREF). Так что лучше использовать минимизированный синтаксис там, где это возможно.
Значения атрибутов должны быть отделены пробелами или незаполненными строками.
Вопрос 38. HTML. Текст. Форматирование текста. Специальные символы.
Структура html-документа:
HTML-код страницы помещается внутрь контейнера <HTML> ... </HTML>, заголовок страницы в
контейнер <HEAD> Заголовок </HEAD>.
Контейнер обязательно содержит открывающий и закрывающий теги.
В разделе описания заголовка можно указать заглавие документа, для этого используется тэг
<TITLE> ... </TITLE> (имя страницы).
Весь остальной HTML-документ, включая весь текст, содержится внутри тэга <BODY>
содержание </BODY> (содержание страницы).
<HTML> {начало страницы}
<HEAD> {описание страницы, заголовка}
<TITLE> название </TITLE> {имя страницы}
</HEAD> {закрытый тэг описания заголовка}
<BODY> {содержание страницы}
текст
</BODY> {закрытый тэг описания страницы}
</HTML> {конец страницы}
Основные тэги форматирования html-документа:
Заголовок страницы задается с помощью тегов, где размер шрифта заголовка устанавливается с
помощью Н1 (самый крупный) и до Н6 (самый мелкий)
Заголовок страницы целесообразно выделить самым крупным шрифтом: <H1> заголовок
страницы </H1> (например, <H1> Все о компьютере </H1>)
</H1> заголовок страницы </H6> - в данном случае заголовок будет записан самым мелким
шрифтом;
Если необходимо выровнять этот заголовок по правому краю, то это записывается следующим
образом: <H1 ALIGN = «RIGHT»> Все о компьютере </H1>
<ALIGN = «RIGHT»> {выравнивание текста по правому краю}
<ALIGN = «CENTER»> {выравнивание текста по центру}
<ALIGN = «LEFT»> {выравнивание текста по левому краю}
Для задания параметров форматирования используется контейнер <FONT>...</FONT>, при этом
используя различные атрибуты:
Атрибут FACE позволяет задать гарнитуру шрифта;
Атрибут SIZE – размер шрифта (может принимать иметь значение в диапазоне от 1 до 7);
Атрибут COLOR – цвет шрифта (можно задавать названием цвета (например, «red», «green»,
«blue» и так далее));
Например, <FONT SIZE = «7» FACE = «Arial» COLOR = «Blue> ... </FONT> (шрифт размера 7,
тип шрифта – Arial, цвет - голубой);
Также можно задавать начертание текста или фрагмента текста:
<B> текст </B> - полужирный шрифт;
<I> текст </I> - начало текста курсивом;
<U> текст </U> - подчёркивание;
Комбинированное выделение осуществляется следующим образом:
<Тэг-1><Тэг-2> фрагмент текста </Тэг-2></Тэг-1>
Например, <B><U> фрагмент текста </U></B> (текст полужирный и подчеркнутый);
При создании html-документов можно задавать и цвет самого фона страницы. Эта команда может
задаваться только в начале HTML файла и не может быть изменена в дальнейшем. Ее параметры:
BGCOLOR - определяет цвет фона документа, TEXT - задает цвет текста для всей страницы. Цвет
также задается с помощью его названия («red», «green», «blue»);
Например, <BODY BGCOLOR = «blue» TEXT = «red»> - задание цвета фона и текста (фон
голубого цвета, цвет шрифта - красный)
Списки:
Ненумерованный список располагается внутри контейнера <UL>…</UL>, а каждый элемент
списка определяется также тэгом <LI>. С помощью атрибута TYPE тэга <UL> можно задать вид
маркера списка: «disc» (диск),
«square» (квадрат), «circle» (окружность). Например,
(маркированный список, маркер в виде окружности)
<UL TYPE = CIRCLE>
<LI> текст </LI>
<LI> текст </LI>
<LI> текст </LI>
</UL>
Рассказ о том, что нужно для форматирования текста в HTML, был бы не полным без упоминания
о спецсимволах. Спецсимволы - это символы, которых либо нет на клавиатуре, либо те, которые
браузер принимает за управляющий символ и преобразует в код. Полный список этих символов ты
найдешь здесь Спецсимволы HTML. Кроме того, самые главные знания для форматирования
текста - это правила грамматики русского языка. Грамотно написанный текст уже наполовину
отформатирован.
Вопрос 39. HTML. Ссылки. Якоря. Работа со списками.
HTML тег <A> служит для создания HTML ссылок. HTML ссылки позволяют осуществлять
мгновенный переход от одного фрагмента текста к другому. Сам гипертекст ссылки поддается
форматированию. Закрывающий тег обязателен. Тег <A> должен содержать либо атрибут name,
либо href
Атрибуты тега A
contentEditable
Возможность редактирования
innerText
Текст между начальным и закрывающим тегом
name
Задает имя элемента. Имя используется, например, для создания HTML ссылок между фреймами
href
Задает URL ресурса, на который должен перейти пользователь, щелкнув по ссылке. Атрибут
может указывать как на внешний документ, так и на элемент внутри данного документа.
Для создания гиперссылки вызова почтовой программы для написания письма используется <a
href="mailto:your@email">. Причем многие почтовые программы позволяют заполнить многие
поля (все поля опционны, вы можете заполнять только те что нужны):
target
Строка, определяющая или получающая одно из следующих значений
name Имя HTML ссылки или фрейма
_blank Загружает ссылку в новое окно
_parent Загружает ссылку в родительском окне
_search Загружает ссылку в панель поиска браузера. Доступно в Internet Explorer 5 и выше
_self По умолчанию. Загружает ссылку в это же окно, где был произведен клик по ссылке
_top Загружает ссылку в topmost окно
title
Всплывающая подсказка
Якоря
Якорь позволяет вам сделать закладку внутри HTML-страницы, создается с помощью <a> тега.
Ссылка имеет два конца - называемых якорями - и направление. Ссылка начинается от якоря
"источника" и указывает на якорь "назначения", который может быть любым ресурсом Web (напр.,
изображением, видеоклипом, аудиофрагментом, программой, документом HTML, элементом в
документе HTML и т.д.).
Список – письменный перечень, число, состав; документ, содержащий перечень каких-либо
сведений;
Работа со списками HTML проста и в тоже время помогает правильно преподносить информацию.
Для примера отключите стили в браузере при просмотре какой-либо страницы. Если страница
сверстана правильно, то у вас не будет никаких проблем с восприятием информации, навигацией
по сайту и т.п.
В HTML есть 3 вида списков:
* Неупорядоченный (этот)
* Упорядоченный
* Список определений
Неупорядоченный список
Неупорядоченный список (англ. Unordered Lists) – список в котором порядок пунктов не особо
важен, т.е. при перестановке этих пунктов смысл не потеряется. Это может быть перечисление
каких-либо особенностей объекта.
Код:
Ёжик:
<ul>
<li>Маленький</li>
<li>Колючий</li>
<li>Прикольный</li>
</ul>
в браузере:
Ёжик:
* Маленький
* Колючий
* Прикольный
От перестановки эти характеристик понимание ёжика ни как не пострадает.
Упорядоченный список
Упорядоченный список (англ. Ordered Lists) – как уже, наверное все уже догадались, список в
котором порядок пунктов важен. Это может быть инструкция, пошаговое руководство, рейтинг.
Код:
<ol>
<li>Зарегистрируйтесь</li>
<li>Подтвердите регистрацию</li>
<li>Начните пользоваться</li>
</ol>
в браузере:
1. Зарегистрируйтесь
2. Подтвердите регистрацию
3. Начните пользоваться
Согласитесь, в другом порядке проделать эти действия просто невозможно.
Список определений
Список определений (англ. Definition Lists). В отличие от ранее упомянутых видов списков,
списки определений не только позволяют просто перечислить кучу предметов (параметров), но
также ассоциируют каждый термин с его определением.
Списки определений начинаются и заканчиваются тэгами <dl>...</dl>. Каждый элемент списка
состоит из термина <dt>...</dt> и определения <dd>...</dd>. По умолчанию определение
отображается под термином и с небольшим отступом.
Код:
<dl>
<dt>HTML</dt>
<dd>от англ. HyperText Markup Language - язык разметки гипертекста</dd>
<dt>XHTML</dt>
<dd>англ. Extensible Hypertext Markup Language - расширяемый язык
разметки гипертекста</dd>
<dt>CSS</dt>
<dd>англ. Cascading Style Sheets - каскадные таблицы стилей</dd>
</dl>
в браузере:
HTML
от англ. HyperText Markup Language – язык разметки гипертекста
XHTML
англ. Extensible Hypertext Markup Language – расширяемый язык разметки гипертекста
CSS
англ. Cascading Style Sheets - каскадные таблицы стилей
Вопрос 40. HTML. Работа с графикой. Таблицы.
Изображения на web-страницах могут использоваться двумя способами: в качестве фона и в
качестве самостоятельного изображения. Рекомендуется использование трех форматов графики:
JPEG, GIF и PNG. Именно их поддерживают все браузеры, для остальных форматов могут
потребоваться специальные средства.
Как правило, все изображения для сайта хранятся в отдельной папке, например, images. А пути к
изображениям прописываются также, как в ссылках.
Во всех последующих примерах пути к изображениям будут прописаны, исходя из того, что
картинки находятся в папке images, а страницы в папке site, находящейся на том же уровне.
Фоновые изображения
Фоновое ихображение заполняет собой все пространство элемента для которого оно задано. Так,
указав в теге <body> атрибут background="fon.gif", рисунком fon.gif будет залито все окно
браузера.
Пример кода:
<html>
<head>
<title>Фоновое изображение</title>
</head>
<body background="../images/fon.gif" bgcolor="pink">
Здесь содержание документа
</body>
</html>
<IMG SRC = “имя файла.jpg (gif, png)”>
<IMG SRC = “C:\Documents and Settings\User\ Мои документы\....jpg”>
<IMG SRC = “ имя файла. jpg (gif, png)” ALIGN = “RIGHT”> выравнивание по правому краю
<IMG SRC = “ имя файла. jpg (gif, png)” ALIGN = “LEFT”> выравнивание по левому краю
<IMG SRC = “ имя файла. jpg (gif, png)” ALIGN = “TOP”> выравнивание текста по верхней кромке
изображения
<IMG SRC = “ имя файла. jpg (gif, png)” ALIGN = “BOTTOM”> выравнивание текста по левой
кромке изображения
<IMG SRC = “ имя файла. jpg (gif, png)” ALIGN = “MIDDLE”> выравнивание текста по средней
кромке изображения
<IMG SRC = “ имя файла. jpg (gif, png)” BORDER = “3”> обрамление графического объекта
<IMG SRC = “ имя файла. jpg (gif, png)” HSPACE = “30” VSPACE = “30”> вставка пустой области
вокруг изображения
<IMG SRC = “ имя файла. jpg (gif, png)” WIDTH = “110” HEIGHT = “220”> изменение размера
изображения
<EMBED SRC = “ имя файла. wav> вставка звуковых объектов
<EMBED SRC = “ имя файла. wav WIDTH = “ ” HEIGHT = “ ”> атрибуты для задания размеров
экранных элементов
HTML таблицы
Таблицы в HTML организуются как набор столбцов и строк. Ячейки таблицы могут содержать
любые HTML-элементы, такие, как заголовки, списки, абзацы, фигуры, графику, а также элементы
форм.
Основные тэги таблицы
Таблица: <TABLE>...</TABLE>
Это основноые тэги, описывающие таблицу. Все элементы таблицы должны находиться внутри
этих двух тэгов. По умолчанию таблица не имеет обрамления и разделителей. Обрамление
добавляется атрибутом BORDER.
Строка таблицы: <TR>...</TR>
Количество строк таблицы определяется количеством встречающихся пар тэгов <TR>..</TR>.
Строки могут иметь атрибуты ALIGN и VALIGN, которые описывают визуальное положение
содержимого строк в таблице.
Ячейка таблицы: <TD>...</TD>
Описывает стандартную ячейку таблицы. Ячейка таблицы может быть описана только внутри
строки таблицы. Каждая ячейка должна быть пронумерована номером колонки, для которой она
описывается. Если в строке отстутствует одна или несколько ячеек для некоторых колонок, то
броузер отображает пустую ячейку. Расположение данных в ячейке по умолчанию определяется
атрибутами ALIGN=left и VALIGN=middle. Данное расположение может быть исправлено как на
уровне описания строки, так и на уровне описания ячейки.
Заголовок таблицы: <TH>...</TH>
Ячейка заголовка таблицы имеет ширину всей таблицы; текст в данной ячейке имеет атрибут
BOLD и ALIGN=center.
Подпись: <CAPTION>...</CAPTION>
Данный тэг описывает название таблицы (подпись). Тэг <CAPTION> должен присутствовать
внутри <TABLE>...</TABLE>, но снаружи описания какой-либо строки или ячейки. По
умолчанию <CAPTION> имеет атрибут ALIGN=top, но может быть явно установлен в
ALIGN=bottom. ALIGN определяет, где - сверху или снизу таблицы - будет поставлена подпись.
Подпись всегда центрирована в рамках ширины таблицы.
Основные атрибуты таблицы
BORDER
Данный атрибут используется в тэге TABLE. Если данный атрибут присутствует, граница таблицы
прорисовывается для всех ячеек и для таблицы вцелом. BORDER может принимать числовое
значение, определяющее ширину границы, например BORDER=3.
ALIGN
Если атрибут ALIGN присутствует внутри тэгов <CAPTION> и </CAPTION>, то он определяет
положение подписи для таблицы (сверху или снизу). По умолчанию ALIGN=top.
Если атрибут ALIGN встречается внутри <TR>, <TH> или <TD>, он управляет положением
данных в ячейках по горизонтали. Может принимать значения left (слева), right (справа) или center
(по центру).
VALIGN
Данный атрибут встречается внутри тэгов <TR>, <TH> и <TD>. Он определяет вертикальное
размещение данных в ячейках. Может принимать значения top (вверху), bottom (внизу), middle (по
середине) и baseline (все ячейки строки прижаты кверху).
NOWRAP
Данный атрибут говорит о том, что данные в ячейке не могут логически разбиваться на несколько
строк и должны быть представлены одной строкой.
COLSPAN
Указывает, какое количество ячеек будет объединено по горизонтали для указанной ячейки. По
умолчании - 1.
ROWSPAN
Указывает, какое количество ячеек будет объединено по вертикали для указанной ячейки. По
умолчании - 1.
COLSPEC
Данный параметр позволяет задавать фиксированную ширину колонок либо в символах, либо в
процентах, например COLSPEC="20%".
Вопрос 41. HTML. Объекты. Гиперссылки. Фреймы.
Объекты - это графические и мультимедийные вставки в HTML-документ, такие как картинки,
Flash-анимация, Java-апплеты, звуки, музыка, VRML.
Элементы
* IMG Используется для вставки в HTML изображений
* EMBED Используется для вставки в HTML различных объектов
* NOEMBED Используется, если браузер не поддерживает элемент EMBED
* APPLET Используется для вставки в HTML Java-апплетов
* PARAM Используется для передачи параметров Java-программе (см. элемент APPLET)
Гиперссылки
Гиперссылки являются основным достоинством Web-страниц. Это, по сути, и есть ядро всемирной
паутины. Тем, без чего бы она так и осталась просто еще одним средством отображения
документов. Они являются видимым отображением той технологии связи самых различных
интернет-ресурсов, которая и создает уникальную интегрированность Сети.
Мы все прекрасно знаем, что если при просмотре Web-страницы навести курсор мыши на
гиперссылку, внедренную в состав содержимого Web-страницы, то курсор примет форму кисти
руки с вытянутым указательным пальцем, а единичный щелчок по этой гиперссылке заставит
браузер отыскать в Сети тот ресурс, на который гиперссылка указывает, и загрузить его.
В качестве гиперссылки может выступать любой фрагмент видимого содержимого Web-страницы,
т. е. и текст, и графические изображения. Для этого применяется тег <а> со своим закрывающим
близнецом </а>. Рассмотрим самый простой пример.
Важнейшим понятием в HTML является гиперссылка, которая позволяет связать текст или какойлибо объект с другими гипертекстовыми документами. Текст, который является гиперссылкой,
как правило, выделяется цветом и подчеркивается. Для определения ссылки используется тег <А>,
структура которого имеет следующий вид:
<А HREF="filename" target="_self">текст ссылки</A> Атрибут HREF задает значение адреса
документа, на который указывает ссылка, filename - имя файла или адрес Internet, на который
необходимо сослаться, а текст_ссылки - текст гипертекстовой ссылки, который будет
непосредственно показан в HTML-документе. Атрибут TARGET задает значение окна или
фрейма, в котором будет открыт документ, на который указывает ссылка. Возможные значения
атрибута:
_top - открытие документа в текущем окне
_blank - открытие документа в новом окне
_self - открытие документа в текущем фрейме
_parent - открытие документа в родительском фрейме
Фреймы.
Испольльзуя фрэймы, позволяющие разбивать Web-страниц скроллируемые подокна, вы можете
значительно улучшить внешний вид и функциональность информационных систем и Webприложений. Каждое подокно, или фрэйм, может иметь следующие свойства:
Каждый фрэйм имеет свой URL, что позволяет загружать его независимо от других фрэймов.
Каждый фрэйм имеет собственое имя (параметр NAME), позволяющее переходить к нему из
другого фрэйма. Размер фрэйма может быть изменен пользователем прямо на экране при помощи
мыши (если это не запрешено указанием специального параметра). Данные свойства фрэймов
позволяют создавать продвинутые интерфейсные решения, такие как:
Размещение статической информации, которую автор считает необходимым постоянно
показывать пользователю, в одном статическом фрэйме. Это может быть графический логотип
фирмы, copyright, набор управляющих кнопок.
Помещение в статическом фрэйме оглавления всех или части WEB-документов, содержащихся на
WEB-сервере, что позволяет пользователю быстро находить интересующую его информацию.
Синтаксис фрэймов
Формат документа, использующего фрэймы, внешне очень напоминает формат обычного
документа, только вместо тэга BODY используется контейнер FRAMESET, содержащий описание
внутренних HTML-документов, содержащий собственно информацию, размещаемую во фрэймах.
<HTML>
<HEAD>...</HEAD>
<FRAMESET>...</FRAMESET>
</HTML>
Однако, фрэйм-документ является специфичным видом HTML-документа, поскольку не содержит
элемента BODY и какой-либо информационной нагрузки соответственно. Он описывает только
фрэймы, которые будут содержать информацию (кроме случая двойного документа, который мы
рассмотрим позже).
+Представим общий синтаксис фрэймов:
<FRAMESET COLS="value" | ROWS="value">
<FRAME SRC="url1">
<FRAME ...>
...
</FRAMESET>
Общий контэйнер FRAMESET описывает все фрэймы, на которые делится экран. Вы можете
разделить экран на несколько вертикальных или несколько горизонтальных фрэймов. Тэг FRAME
пописывает каждый фрэйм в отдельности. Рассмотрим более детально каждый компонент.
FRAMESET
<FRAMESET [COLS="value" | ROWS="value"]>
Тэг <FRAMESET> имеет завершающий тэг </FRAMESET>. Все, что может находиться между
этими двумя тэгами, это тэг <FRAME>, вложенные тэги <FRAMESET> и </FRAMESET>, а также
контейнер из тэгов <NOFRAME&g tкоторый позволяет строить двойные документы для
броузеров, поддерживающих фрэймы и не поддерживающих фрэймы.
Данный тэг имеет два взаимоисключающих параметра: ROWS и COLS. ROWS="списокопределений-горизонтальных-подокон" Данный тэг содержит описания некоторого количества
подокон, разделенные запятыми. Каждое описание представляет собой числовое значение размера
подокна в пикселах, процентах от всего размера окна или связанное масштабное значение.
Количество подокон определяется количеством значений в списке. Общая сумма высот подокон
должна составлять высоту всего окна (в любых измеряемых величинах). Отсутствие атрибута
ROWS определяет один фрэйм, величиной во все окно броузера.
Синтаксис используемых видов описания величин подокон:
value
Простое числовое значение определяет фиксированную высоту подокна в пикселах. Это далеко не
самый лучший способ описания высоты подокна, поскольку различные броузеры имеют
различный размер рабочего поля, не говоря уже о различных экранных разрешениях у
пользователя. Если вы, все же, используете данный способ описания размера, то настоятельно
рекомендуется сочетать его с каким-либо другим, чтобы в результате вы точно получили 100%ное заполнение окна броузера вашего пользователя.
value%
Значение величины подокна в процентах от 1 до 100. Если общая сумма процентов описываемых
подокон превышает 100, то размеры всех фрэймов пропорционально уменьшаются до суммы
100%. Если, соответственно, сумма меньше 100, то размеры пропорционально учеличиваются.
value*
Вообще говоря, значение value в данном описании является необязательным. Символ "*"
указывает на то, что все оставшееся место будет принадлежать данному фрэйму. Если указывается
два или более фрэйма с описанием "*" (например "*,*"), то оставшееся пространство делится
поровну между этими фрэймами. Если перед звездочкой стоит цифра, то она указывает
пропорцию для данного фрэйма (во сколько раз од будет больше аналогично описанного чистой
звездочкой). Например, описание "3*,*,*", говорит, что будет создано три фрэйма с размерами 3/5
свободного пространства для первого фрэйма и по 1/5 для двух других.
COLS="список-определений-горизонтальных-подокон" То же самое, что и ROWS, но делит окно
по вертикали, а не по горизонтали.
Внимание! Совместное использование данных параметров может привести к непредствазуемым
результатам. Например, строка: <FRAMESET ROWS="50%,50%" COLS "50%,50%"> может
привести к ошибочной ситуации.
Примеры:
<FRAMESET COLS="50,*,50"> - описывает три фрэйма, два по 50 точек справа и слева, и один
внутри этих полосок.
Примеры
Рассмотрим реализацию фрэймов для подобного разбиения окна:
<FRAMESET ROWS="*,*">
<NOFRAMES>
<H1>Ваша версия WEB-броузера не поддерживает фрэймы!</H1>
</NOFRAMES>
<FRAMESET COLS="65%,35%">
<FRAME SRC="link1.html">
<FRAME SRC="link2.html">
</FRAMESET>
<FRAMESET COLS="*,40%,*">
<FRAME SRC="link3.html">
<FRAME SRC="link4.html">
<FRAME SRC="link5.html">
</FRAMESET>
</FRAMESET>
Планирование фрэймов и взаимодействия между фрэймами
С появлением фрэймов сразу возникает вопрос: "А как сделать так, чтобы нажимая на ссылку в
одном фрэйме инициировать появление информации в другом?"
Ответом на данный вопрос является планирование взаимодействия фрэймов (далее планирование). Каждый фрэйм может иметь собственное имя, определяемое параметром NAME
при описании данного фрэйма. Существует, также, специальный атрибут - TARGET,
позволяющий определять, к какому фрэйму относится та или иная операция. Формат данного
атрибута следующий:
TARGET="windows_name"
Данный атрибут может встречаться внутри различных тэгов:
TARGET в тэге A
Это самое прямое использование TARGET. Обычно, при активизации пользователем ссылки
соответствующий документ появляется в том же окне (или фрэйме), что и исходный, в котором
была ссылка. Добавление атрибута TARGET позволяет произвести вывод документа в другой
фрэйм. Например:
<A href="mydoc.html" TARGET="Frame1"> Переход в фрэйм п 1 </A>
TARGET в тэге BASE
Размещение TARGET в тэге BASE позволит вам не указывать при описании каждой ссылки
фрэйм-приемник документов, вызываемых по ссылкам. Это очень удобно, если в одном фрэйме у
вас находится меню, а в другой - выводится информация. Например:
Документ п 1.
<FRAMESET ROWS="20,*">
<FRAME SRC="doc2.htm" NAME="Frame1">
<FRAME SRC="doc3.htm" NAME="Frame2">
</FRAMESET>
Документ п 2 (doc2.htm).
<HTML>
<HEAD>
<BASE TARGET="Frame2">
</HEAD>
<BODY>
<A href="url1"> Первая часть</A>
<A href="url2"> Вторая часть</A>
</BODY>
</HTML>
TARGET в тэге AREA
Таже можно включать тэг TARGET в описание ссылки при создании карты изображения.
Например:
<AREA SHAPE="circle" COORDS="100,100,50" href="http://www.softexpress.com"
TARGET="Frame1">
TARGET в тэге FORM
То же относится и к определению формы. В данном случае, после обработки переданных
параметров формы результирующий документ появится в указанном фрэйме.
<FORM ACTION="url" TARGET="window_name">
Вопрос 42. HTML. Формы. Валидация.
Форма - это инструмент, с помощью которого HTML-документ может послать некоторую
информацию в некоторую заранее определенную точку внешнего мира, где информация будет
некоторым образом обработана.
В последнее время определенное распространение получил язык PHP/FI, инструкции которого
можно встраивать прямо в HTML-документы (документы при этом сохраняются в виде файлов с
расширением *.pht или *.php).
Формы передают информацию программам-обработчикам в виде пар [имя переменной]=[значение
переменной]. Имена переменных следует задавать латинскими буквами. Значения переменных
воспринимаются обработчиками как строки, даже если они содержат только цифры.
Как устроена форма
Форма открывается меткой <FORM> и заканчивается меткой </FORM>. HTML-документ может
содержать в себе несколько форм, однако формы не должны находиться одна внутри другой.
HTML-текст, включая метки, может размещаться внутри форм без ограничений.
Метка <FORM> может содержать три атрибута, один из которых является обязательным. Вот эти
атрибуты:
ACTION
Обязательный атрибут. Определяет, где находится обработчик формы.
METHOD
Определяет, каким образом (иначе говоря, с помощью какого метода протокола передачи
гипертекстов) данные из формы будут переданы обработчику. Допустимые значения:
METHOD=POST и METHOD=GET. Если значение атрибута не установлено, по умолчанию
предполагается METHOD=GET.
ENCTYPE
Определяет, каким образом данные из формы будут закодированы для передачи обработчику.
Если значение атрибута не установлено, по умолчанию предполагается ENCTYPE=application/xwww-form-urlencoded.
В форме может быть несколько кнопок типа submit с различными именами и/или значениями.
Обработчик, таким образом, может действовать по-разному в зависимости от того, какую именно
кнопку submit нажал пользователь.
Как форма собирает данные
Существуют и другие типы элементов <INPUT>. Каждый элемент <INPUT> должен включать
атрибут NAME=[имя], определяющий имя элемента (и, соответственно, имя переменной, которая
будет передана обработчику). Имя должно задаваться только латинскими буквами. Большинство
элементов <INPUT> должны включать атрибут VALUE="[значение]", определяющий значение,
которое будет передано обработчику под этим именем. Для элементов <INPUT TYPE=text> и
<INPUT TYPE=password>, однако, этот атрибут не обязателен, поскольку значение
соответствующей переменной может вводиться пользователем с клавиатуры.
HTML-валидатор производит несколько проверок Вашего кода. Основные из них:
1. Валидация синтаксиса - проверка на наличие синтаксических ошибок. <foo bar="baz"> является
корректным синтаксисом, несмотря на то, что <foo> не является допустимым HTML-тэгом, так
что проверка синтаксиса является минимально полезной для написания хорошего HTML.
2. Проверка вложенности тэгов - тэги должны быть закрыты в обратном порядке относительно их
открытия. Например, эта проверка отлавливает ошибки с неправильно закрытыми <div>.
3. Валидация DTD - проверка соответствия Вашего кода указанному Document Type Definition.
Она включает проверку названий тэгов, атрибутов, и «встраивания» тэгов (тэги одного типа
внутри тэгов другого типа)
4. Проверка на посторонние элементы - проверка выявляет все, что есть в коде, но отсутствует в
DTD. Например, пользовательские тэги и атрибуты.
Вопрос 43. Java Script. Введение в Java Script
Возможности языка
JavaScript обладает рядом свойств объектно-ориентированного языка, но реализованное в языке
прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными
объектно-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих
функциональным языкам - функции как объекты первого класса, объекты как списки, карринг,
анонимные функции, замыкания - что придаёт языку дополнительную гибкость.
Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные
отличия:
* объекты, с возможностью интроспекции;
* функции как объекты первого класса;
* автоматическое приведение типов;
* автоматическая сборка мусора;
* анонимные функции.
В языке отсутствуют такие полезные вещи, как:
* модульная система: JavaScript не предоставляет возможности управлять зависимостями и
изоляцией областей видимости;
* стандартная библиотека: в частности, отсутствует интерфейс программирования приложений по
работе с файловой системой, управлению потоками ввода/вывода, базовых типов для бинарных
данных;
* стандартные интерфейсы к веб-серверам и базам данных;
* система управления пакетами, которая бы отслеживала зависимости и автоматически
устанавливала их.
Семантика и синтаксис
Синтаксис языка JavaScript во многом напоминает синтаксис Си и Java, семантически же язык
гораздо ближе к Self, Smalltalk или даже Лиспу.
В JavaScript:
* все идентификаторы регистрозависимы,
* в названиях переменных можно использовать буквы, подчёркивание, символ доллара, арабские
цифры,
* названия переменных не могут начинаться с цифры,
* для оформления однострочных комментариев используются //, многострочные и
внутристрочные комментарии начинаются с /* и заканчиваются */.
Структура языка
Структурно JavaScript можно представить в виде объединения трёх чётко различимых друг от
друга частей:
* ядро (ECMAScript),
* объектная модель браузера (Browser Object Model или BOM (de)),
* объектная модель документа (Document Object Model или DOM).
Если рассматривать JavaScript в отличных от браузера окружениях, то объектная модель браузера
и объектная модель документа могут не поддерживаться.
Объектную модель документа иногда рассматривают как отдельную от JavaScript сущность, что
согласуется с определением DOM как независимого от языка интерфейса документа. В
противоположность этому ряд авторов находят BOM и DOM тесно взаимосвязанными.
Ядро
ECMAScript не является браузерным языком и на самом деле в нём не определяются методы ввода
и вывода информации. Это скорее основа для построения скриптовых языков. Спецификация
ECMAScript описывает типы данных, инструкции, ключевые и зарезервированные слова,
операторы, объекты, регулярные выражения, не ограничивая авторов производных языков в
расширении их новыми составляющими.
Объектная модель браузера
Объектная модель браузера - браузероспецифичная часть языка, являющаяся прослойкой между
ядром и объектной моделью документа. Основное предназначение объектной модели браузера управление окнами браузера и обеспечение их взаимодействия. Каждое из окон браузера
представляется объектом window, центральным объектом BOM. Объектная модель браузера на
данный момент не стандартизирована, однако спецификация находится в разработке WHATWG и
W3C.
Помимо управления окнами, в рамках объектной модели браузера, браузерами обычно
обеспечивается поддержка следующих сущностей:
* управление фреймами,
* поддержка задержки в исполнении кода и зацикливания с задержкой,
* системные диалоги,
* управление адресом открытой страницы,
* управление информацией о браузере,
* управление информацией о параметрах монитора,
* ограниченное управление историей просмотра страниц,
* поддержка работы с HTTP cookie.
Объектная модель документа
Объектная модель документа - интерфейс программирования приложений для HTML и XMLдокументов. Согласно DOM документу можно поставить в соответствие дерево объектов,
обладающих рядом свойств, которые позволяют производить с ним различные манипуляции:
* получение узлов,
* изменение узлов,
* изменение связей между узлами,
* удаление узлов.
Вопрос 44. Java Script. Типы и структуры данных. Java Script.
Программирование свойств окна браузера.
Типы и структуры данных
Как и любой другой язык программирования JavaScript поддерживает встроенные типы и
структуры данных. Все их многообразие можно подразделить на:
- литералы и переменные
- массивы, функции и объекты
При этом все они делятся на встроенные и определяемые программистом. Функции и объекты
рассматриваются в разделах "Функции" и "Объекты". Поэтому здесь мы сосредоточимся на
литералах, переменных и массивах.
Литералы
Литералом называют данные, которые используются в программе непосредственно. При этом под
данными понимаются числа или строки текста. Все они рассматриваются в JavaScript как
элементарные типы данных. Приведем примеры литералов:
числовой литерал: 10
числовой литерал: 2.310
числовой литерал: 2.3e+2
строковый литерал: 'Это строковый литерал'
строковый литерал: "Это строковый литерал"
Литералы используются в операциях присваивания значений переменным или операциях
сравнения:
var a=10;
var str = 'Hy!!!';
if(x=='kuku') window.alert(x);
Переменные
Переменные в JavaScript могут быть определены назначением или при помощи оператора var:
i=10;
var i;
var i=10;
var id = window.open();
var a = new Array();
Как видно из примеров, переменные могут принимать самые разные значения, при этом тип
переменной определяется контекстом.
Существуют ли в JavaScript различные типы переменных? По всей видимости, да. При объявлении
переменной тип не указывается. Тип значения определяется контекстом. Поэтому существует
соблазн предположить, что все переменные одного и того же типа. Однако очевидно, что
присваивание переменной значения объекта окна (window.open())или объекта
потока(setTimeout()), порождает создание совершенно разных структур в памяти.
Массивы
Массивы делятся на встроенные(document.links[], document.images[],...) и определяемые
пользователем (автором документа). Встроенные массивы мы подробно обсуждаем в разделах
"Программируем картинки", "Программируем формы" и "Программируем гипертекстовые
переходы". Поэтому подробно остановимся на массивах, определяемых пользователем. Для
массивов определено несколько методов:
- join()
- reverse()
- sort()
и свойство length, которое позволяет получить число элементов массива. Это свойство активно
используется в примерах данного раздела. Например, при обсуждении метода join().
Функции
Язык программирования не может обойтись без механизма многократного использования кода
программы. Такой механизм обеспечивается процедурами или функциями. В JavaScript функция
выступает в качестве одного из основных типов данных. Одновременно с этим в JavaScript
определен объект Function.
В общем случае любой объект JavaScript определяется через функцию. Для создания объекта
используется конструктор, который в свою очередь вводится через Function. Таким образом, с
функциями в JavaScript связаны следующие ключевые вопросы:
- Функция - тип данных
- Функция - объект
- Конструкторы объектов
Объекты
Объект - это ключевой, главный тип данных JavaScript. Любой другой тип данных имеет
объектовую "обертку" - wrapper. Это означает, что прежде чем получить доступ к значению
переменной того или иного типа происходит конвертирование переменной в объект, а только
после этого выполняются действия над значением. Тип данных Object сам определяет объекты.
В данном разделе мы остановимся на трех основных моментах:
- понятие объекта
- прототип объекта
- методы объекта Object
Мы не будем очень подробно вникать во все эти моменты, т.к. при программировании на стороне
браузера чаще всего обходятся встроенными средствами JavaScript, но т.к. все эти средства объекты, нам нужно понимать, с чем имеем дело.
Операторы
В этом разделе мы рассмотрим основные операторы JavaScript. Основное внимание при этом мы
уделим операторам декларирования и управления потоком вычислений. Без них не может быть
написана ни одна JavaScript программа.
Общий перечень этих операторов выглядит следующим образом:
- var
- {...}
- if
- while
- for
- for ... in
- break
- continue
- return
Сразу оговоримся, что этот список не является полным списком операторов JavaScript.
Управление фокусом
Фокус - это характеристика текущего окна, фрейма или поля формы. В каждом из разделов,
описывающем программирование этих объектов мы так или иначе касаемся вопроса фокуса. Под
фокусом понимают возможность активации свойств и методов объекта. Например, окно в фокусе,
если оно является текущим окном, т.е. лежит поверх всех других окон, и исполняются его методы
или можно получить доступ к его свойствам.
В данном разделе мы рассмотрим управление фокусом в:
- окнах
- фреймах
- полях формы
совместно. Следует сразу заметить, что фреймы - это тоже объекты класса Window, и многие
решения, разработанные для окон справедливы и для фреймов.
Вопрос 45. Java Script. Программирование форм. Java Script.
Программирование графики.
Программируем графику
Наиболее зрелищные и интересные эффекты при программировании на JavaScript получаются при
работе с графикой. При этом в арсенале программиста не так уж и много инструментов:
встроенные в документ картинки, возможность генерации объекта IMAGE, а также
комбинирование картинок с гипертекстовыми ссылками и таблицами. Тем не менее, обилие
различных эффектов, которые достигаются этими нехитрыми средствами, впечатляет.
Программирование графики в JavaScript опирается на объект IMAGE, который характеризуется
следующими свойствами, методами и событиями:
Свойства
border
complete
height
hspace
lowsrc
name
src
vspace
width
Методы
нет
События
onAbort
onError
onLoad
Не смотря на такое обилие свойств, их абсолютное большинство можно только читать, но не
изменять. Отсутствие методов красноречиво об этом свидетельствует. Но два свойства можно
изменять: src и lowsrc. Этого оказывается достаточно для множества эффектов с картинками.
Все объекты класса IMAGE можно разделить на встроенные и порожденные программистом.
Встроенные объекты - это картинки контейнеров IMG. Если эти картинки поименовать, к ним
можно обращаться по имени:
<a href="javascript:void(0);"
onClick="window.alert('Image name:'+document.mamonts.name)">
< img name=mamonts src=../images/jsi/i1.gif border=0>
< /a>
Картинка активна. Если на нее нажать, то получите имя контейнера IMG. Обращение
document.mamonts.name позволяет распечатать в окне предупреждения это имя. При этом само
имя указано как name=mamonts в контейнере IMG.
К встроенному графическому объекту можно обратиться и по индексу:
document.images[13].name;
В данном случае 14-ая картинка документа - это картинка мамонтов, которую вы видели выше.
Если нажать на гипертекстовую ссылку, то откроется окно предупреждения, в котором будет
отображено имя контейнера IMG.
src и lowsrc
Свойства src и lowsrc определяют URL изображения, которое монтируется внутрь документа. При
этом lowsrc определяет временное изображение, обычно маленькое, которое отображается пока
загружается основное изображение, чей URL указывается в атрибуте src контейнера IMG.
Свойство src принимает значение атрибута src контейнера IMG. Программист может изменять
значения и src и lowsrc. Рассмотрим пример с src:
document.i2.src="../images/jsi/i2.gif";
Как видно из этого примера, существует возможность изменять вмонтированную картинку за счет
изменения значения свойства src встроенного объекта IMAGE. Если вы первый раз
просматриваете данную страницу, то постепенное изменение картинки будет заметно на глаз. Как
сделать это изменение более быстрым мы рассмотрим в разделе "Изменение картинки".
Оптимизация отображения
При программировании графики следует учитывать множество факторов, которые влияют на
скорость отображения страницы и скорость изменения графических образов. При этом обычная
дилемма оптимизации программ - скорость или размер занимаемой памяти, решается только
путем увеличения скорости. О размере памяти как-то не принято думать при программировании
на JavaScript.
Из всех способов оптимизации отображения картинок мы остановимся только на нескольких из
них:
- Оптимизация отображения при загрузке
- Оптимизация отображения за счет предварительной загрузки
- Оптимизация отображения за счет нарезки изображения
Если первые две позиции относятся в равной степени как к отображению статических картинок,
так и к мультипликации, то третий пункт характерен, главным образом, для мультипликации.
Оптимизация при загрузке
Практически любое руководство по разработке HTML-страниц указывает на то, что при
использовании контейнера IMG в теле HTML-страницы хорошим тоном является указание
атрибутов width и height. Диктуется это порядком загрузки компонентов страницы с сервера и
алгоритмом работы HTML-parser. Первым загружается текст разметки. После этого parser
разбирает текст и начинает загрузку дополнительных компонентов, в том числе и графики. При
этом загрузка различных картинок, в зависимости от типа HTTP-протокола, может идти
последовательно или параллельно.
Также параллельно с загрузкой parser продолжает свою работу. Если для картинок заданы
параметры ширины и высоты, то можно отформатировать текст и отобразить его в окне браузера.
До тех пор пока эти параметры не определены, отображения текста не происходит.
Таким образом, указание высоты и ширины картинки позволит отобразить документ раньше, чем
картинки будут получены с сервера. Это дает возможность пользователю читать документ или
воспользоваться его гипертекстовыми ссылками до момента полной загрузки(событие load).
С точки зрения Javascript указание размеров картинки задает начальные параметры окна
отображения графики внутри документа. Это позволяет воспользоваться маленьким, абсолютно
прозрачным образом, для того, чтобы заменить его полноценной картинкой:
Идея состоит в передаче маленького объекта для замещения его большим объектом по
требованию.
Предварительная загрузка
Замена одного образа другим часто бывает оправдана только в том случае, когда происходит
достаточно быстро. Если перезагрузка длится долго, то эффект, которого хотят добиться, теряется.
Для такой быстрой подмены используют возможность предварительной загрузки документа в
специально созданный объект класса Image:
Реальный эффект можно почувствовать только при отключении кэширования страниц на стороне
клиента (браузера). Кэширование часто используют для ускорения работы со страницами Webузла. Как правило, загрузка первой страницы - это достаточно длительный процесс. Самое
главное, что пользователь в этот момент готов немного подождать. Поэтому кроме графики
необходимой только на первой странице ему можно передать и графику, которая на этой странице
не отображается. Но зато при переходе к другим страницам узла она будет отображаться без
задержки на передачу с сервера.
Описанный только что прием не однозначен. Его оправдывает только то, что если пользователь
нетерпелив, то он вообще отключит передачу графики.
Нарезка картинок
Нарезка картинок применяется довольно часто. Она позволяет достигать эффекта частичного
изменения отображаемой картинки. Наиболее часто он применяется при создании меню:
Кроме этого эффекта нарезка позволяет реализовать достаточно эффективную мультипликацию на
больших картинках. При этом изменяется не весь образ, а только отдельные его части:
Из примера видно, что изменение части образа довольно сильно изменяет скорость отображения.
При изменении всей картинки о мультипликации можно говорить достаточно условно.
Графика и таблицы
Одним из наиболее популярных приемов дизайна страниц Web-узла является техника нарезки
картинок на составные части. Можно выделить следующие способы применения этой техники для
организации навигационных компонентов страницы:
- Горизонтальные и вертикальные меню
- Вложенные меню
- Навигационные графические блоки
Главной проблемой при использовании нарезанной графики является защита ее от контекстного
форматирования страницы HTML-parser-ом. Дело в том, что он автоматически переносит
элементы разметки на новую строку, если они не помещаются в одной строке. Нарезанная
картинка требует совершенно определенного расположения своих составных частей, поэтому
простое их перечисление в ряд не дает желаемого эффекта:
Графика и обработка событий
В данном разделе речь не пойдет об обработчиках событий контейнера IMG. Мы просто
рассмотрим наиболее типичный способ комбинирования обработчиков событий и изменения
графических образов. Собственно не имело бы смысла применять нарезанную графику, если бы не
возможность использования обработчиков событий для изменения отдельных частей
изображения. Продолжая обсуждение примера с навигационным деревом, покажем его развитие с
обработкой событий от мыши и изменением картинок:
Вопрос 46. Java Script. Программирование гипертекстовых переходов.
Картинку на HTML-странице можно менять без перезагрузки всей HTML-страницы. К большому
сожалению, изменить часть текста страницы без использования позиционированных слоев нельзя.
Замечание: начиная с версий 4.0 Microsoft Explorer это стало возможным, но так как здесь речь
идет о классическом JavaScript и его применении к различным объектным моделям только в одной
интерпретации, данную возможность мы рассматривать не будем.
Кроме графики, на странице есть еще несколько встроенных массивов объектов, элементы
которых можно изменять. Один из них - массив гипертекстовых ссылок.
Гипертекстовая ссылка относится к классу объектов URL. К этому классу объектов относятся:
- Location;
- Area;
- Link.
Область применения URL на HTML-страницах гораздо шире этих трех позиций. Чаще всего мы
сталкиваемся с ним при программировании:
- графики (атрибут SRC контейнера IMG);
- форм (атрибут ACTION контейнера FORM);
- ссылок (атрибут HREF контейнера A);
- "чувствительных" картинок (атрибут HREF контейнера AREA).
Первые две позиции подробно обсуждаются в разделах "Программируем картинки" и
"Программируем формы". В данном разделе мы сосредоточимся на программировании собственно
гипертекстовых переходов и "чувствительных" картинок. Но прежде рассмотрим объект URL.
Объект URL
Объект класса URL обладает свойствами, которые определены схемой URL. В качестве примера
рассмотрим
ссылку на применение атрибута SRC в контейнере IMG:
http://javascript-spravka.ru/help/index.html
Значения свойств
href: http://javascript-spravka.ru/help/index.html
protocol: http:
hostname: javascript-spravka.ru
host: javascript-spravka.ru:80
port: 80
pathname: help/index.html
search:
hash:
Обращение к свойству объекта класса URL выглядит как:
имя_объект_класса_URL.свойство
Например, так:
document.links[0].href
document.location.host
document.links[2].hash
Свойства объекта URL дают программисту возможность менять только часть URL – объекта
(гипертекстовой ссылки, например). Наиболее интересно это выглядит в объекте Location , когда
при изменении свойства происходит перезагрузка документа. Однако и при работе с обычными
гипертекстовыми ссылками такая технология более предпочтительна, чем изменение всего URL
целиком.
Здесь следует заметить, что чаще всего все-таки меняют весь URL. Это связано с тем, что такое
действие более понятно с точки зрения HTML-разметки. Ведь у контейнера A нет атрибута
PROTOCOL, но зато есть атрибут HREF
Массивы встроенных гипертекстовых ссылок
К встроенным гипертекстовым ссылкам относятся собственно ссылки (<A HREF=...>...</A>) и
ссылки "чувствительных" графических картинок. Они составляют встроенный массив
гипертекстовых ссылок документа (document.links[]).
К сожалению, обратиться по имени к гипертекстовой ссылке нельзя. Точнее такое обращение не
рекомендуется в силу различий между браузерами. Поэтому обращаться к ним можно только как к
массиву встроенных ссылок. В качестве примера распечатаем гипертекстовые ссылки некоторого
документа:
for(i=0;i<document.links.length;i++)
document.write(document.links[i].href+"<BR>");
Список ссылок:
http://www.javascript-spravka.ru/help/index.html
http://www.javascript-spravka.ru/help/terms.html
http://www.javascript-spravka.ru/help/shop.html
Вставим в документ контейнер MAP:
<MAP NAME=test>
<AREA SHAPE=rect COORDS="0,0,0,0"
HREF="javascript:window.alert('Area_Link_1');void(0);">
<AREA SHAPE=rect COORDS="0,0,0,0"
HREF="javascript:window.alert('Area_Link_2');void(0);">
</MAP>
И снова распечатаем массив ссылок:
links[0]:http://www.javascript-spravka.ru/help/index.html
links[1]:http://www.javascript-spravka.ru/help/terms.html
links[2]:http://www.javascript-spravka.ru/help/shop.html
links[3]:javascript:window.alert('Area_Link_1');void(0);
links[4]:javascript:window.alert('Area_Link_2');void(0);
Две новые ссылки - это ссылки из контейнера MAP, который не отображается, но ссылки из него
попадают в массив встроенных ссылок. При этом, как в нашем случае, они могут попасть между
обычными гипертекстовыми ссылками, если контейнер MAP расположить внутри текста
документа. На данной странице он помещен перед контейнером SCRIPT, в котором мы
распечатываем массив встроенных ссылок.
Замена атрибута HREF
Покажем, как при помощи JavaScript-кода можно управлять свойствами объекта класса Link.
Рассмотрим меню типа "записная книжка":
Конечно, это не настоящая "записная книжка". Поле формы заполняется только при выборе
гипертекстовой ссылки, расположенной над этим полем. Единственная цель данного примера показать, как изменяется значение атрибута HREF (оно отображается в поле status окна браузера).
Изменение производится посредством вызова функции:
function line(a)
{
if(a==0)
{
clear();
window.document.o0.src="fio.gif";
window.document.all['lo0'].href='javascript:window.document.f1.fi1.value="Фамилия И.О."; void(0);';
window.document.o1.src="rpho.gif";
window.document.all['lo1'].href='javascript:window.document.f1.fi2.value="253-93-10"; void(0);';
window.document.o2.src="hpho.gif";
window.document.all['lo2'].href='javascript:window.document.f1.fi3.value="253-93-12"; void(0);';
}
.....
}
В данном случае мы работаем с тремя элементами массива встроенных гипертекстовых ссылок:
all['lo0'], all['lo1'] и all['lo2']. У каждого из них при вызове функции со значением аргумента a,
равным 0, 1 и 2, соответственно, изменяем значение свойства href. Это свойство мы меняем
целиком. URL можно менять и частично.
Изменение части URL
Гипертекстовая ссылка - это объект класса URL. У этого объекта можно изменять и другие
свойства. Проиллюстрируем эту возможность при частичном изменении ссылки. Распечатаем
сначала свойство, которое не зависит от протокола (в нашем случае от javascript)
document.all.next.pathname: href:--> http://javascript-spravka.ru/help/index.html
pathname:--> help/index.html
Изменим теперь pathname:
document.all.next.pathname="test";
document.write(
window.document.all.next.pathname);
href:--> http://javascript-spravka.ru:80/test
pathname--> test
Обратите внимание, что Internet Explorer самостоятельно добавил в ссылку номер порта. По этой
причине использовать свойства, отличные от href, в ссылках, где используется схема javascript, не
рекомендуется.
Обработка событий Mouseover и Mouseout
Эти два события из всех событий, которые обрабатываются на страницах Web, используются чаще
всего. Именно они позволяют обесцвечивать и проявлять картинки, а также менять содержание
поля status. Первое событие генерируется браузером, если курсор мыши указывает на
гипертекстовую ссылку, а второе - когда он покидает гипертекстовую ссылку. Рассмотрим пример
с записной книжкой, но только для проявления меню второго уровня будем использовать
обработчик события onMouseover:
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=0
ALIGN=center>
<TR>
<TD>
<A HREF="javascript:void(0);"
onMouseover="line2(0);return true;">
<IMG SRC=addrpho.gif BORDER=0></A></TD>
...
</TR>
</TABLE>
В качестве обработчика события мы вызываем функцию line2(), которая идентична line1() из
предыдущего примера. В примере IMG перенесен на новую строку для наглядности. На самом
деле так поступать не следует - при интерпретации HTML-парсером могут появиться неучтенные
пропуски, которые не предусмотрены автором страницы.
Мы рассмотрели редкий пример, в котором не требуется возврата предыдущего значения после
прохода мыши по гипертекстовой ссылке. По этой причине в гипертекстовой ссылке не
применялся второй обработчик onMouseout. В большинстве случаев, например при расцвечивании
картинки, он требуется:
<A HREF="javascript:void(0);"
onMouseover="document.pic1.src='image2.gif';
return true;"
onMouseout="document.pic1.src='image.gif';
return true;">
<IMG NAME=pic1 src=image.gif BORDER=0></A>
Рассматривая предыдущий пример, мы не обсудили использование функции return. При работе с
графикой значение, которое возвращает обработчик события, на результат отображения не влияет.
Но если изменять значение поля статуса браузера, то изменения произойдут только в случае
возврата значения true. Более подробно об этом рассказано в разделе "Поле статуса".
Обработка события click
Вообще говоря, обработчик события click в современном JavaScript не нужен. Можно прекрасно
обойтись URL-схемой javascript, которая была специально придумана для перехвата события
гипертекстового перехода. Обработчик onClick следует рассматривать как реликт, доставшийся
нам в наследство от предыдущих версий языка, который поддерживается в версиях Netscape
Navigator и Internet Explorer.
Основная задача обработчика данного события - перехват события гипертекстового перехода.
Если функция обработки данного события возвращает значение true, то переход происходит, при
значении false - не происходит:
Отменим переход в начало страницы описания события обработчика onClick:
<A HREF=#click onClick=
"window.alert('Нет перехода на #click');
return false;">onClick</A>
А теперь дадим пользователю право выбора перехода в начало страницы посредством окна
подтверждения:
<A HREF=#top onClick=
"return window.confirm(
'Перейти в начало страницы?');">
переход в начало страницы</A>
Обратите внимание на место применения функции window.confirm() - аргумент команды return.
Логика проста: функция возвращает значение true или false, и именно оно подставляется в
качестве аргумента. Если просто написать функцию без return, то ничего работать не будет.
Можно ли вообще обойтись одним обработчиком onClick без использования атрибута HREF?
Видимо, нет. Первое, что необходимо браузеру - это определение типа контейнера A. Если в нем
есть только атрибут NAME, то это якорь, если присутствует атрибут HREF - ссылка. Это два
разных объекта. Они имеют различные составляющие, в том числе и обработчики событий. В
контексте текущего раздела нам нужна именно ссылка, т.е. контейнер A с атрибутом HREF.
Проверим наше предположение:
<A ID=red
onClick="window.alert('тест');return false;">
Нет атрибута HREF
</A>
Текст "Нет атрибута HREF" - это якорь. Обработчик на нем не работает, так как на него нельзя
указать мышью.
<A HREF="" id=red
onClick="window.alert('URL:'+this.href);
return false;">
Нет атрибута HREF
</A>
Теперь мы указали пустую ссылку (см. поле статуса). Содержание окна - это база URL.
Управление фокусом.
Фокус - это характеристика текущего окна, фрейма или поля формы. В каждом из разделов,
описывающем программирование этих объектов, мы, так или иначе, касаемся вопроса фокуса. Под
фокусом понимают возможность активизации свойств и методов объекта. Например, окно в
фокусе, если оно является текущим, т.е. лежит поверх всех других окон и исполняются его методы
или можно получить доступ к его свойствам.
В данном разделе мы рассмотрим управление фокусом в
окнах;
фреймах;
полях формы.
Следует сразу заметить, что фреймы - это тоже объекты класса Window, и многие решения,
разработанные для окон, справедливы и для фреймов.
Управляем фокусом в окнах
Для управления фокусом у объекта класса "окно" существует два метода: focus() и blur(). Первый
передает фокус в окно, в то время как второй фокус из окна убирает. Рассмотрим простой пример:
function hide_window()
{
wid=window.open("","test",
"width=400,height=200");
wid.opener.focus();
wid.document.open();
... wid.document.close();
}
В данном примере новое окно открывается и сразу теряет фокус; прячется за основным окномродителем. Если при первичном нажатии на кнопку оно еще всплывает и только после этого
прячется, то при повторном нажатии пользователь не видит появления нового окна, так как оно
уже открыто и меняется только его содержимое.
Для того чтобы этого не происходило, нужно после открытия передавать фокус на новое окно:
function visible_window()
{
wid=window.open("","test",
"width=400,height=200");
wid.focus();
wid.document.open();
... wid.document.close();
}
Если теперь нажимать попеременно кнопки "Скрытое окно" и "Видимое окно", окно будет то
появляться, то исчезать. При этом новых окон не появляется, так как с одним и тем же именем
может быть открыто только одно окно.
Невидимое окно может доставить пользователю неприятности, из которых самая безобидная отсутствие реакции на его действия. Код просто записывается в невидимое окно. Но ведь в
скрытом окне можно что-нибудь и запустить. Для этого стоит только проверить, существует ли
данное окно или нет, и если оно есть и не в фокусе, то активизировать в нем какую-нибудь
программу.
Для реализации такого сценария достаточно использовать метод окна onblur(). Его можно также
задать в контейнере BODY в качестве обработчика события onBlur, но в этом случае он видим
пользователю. Мы воспользуемся этим методом "в лоб":
window.onblur =
new Function("window.defaultStatus =
'Background started...';");
window.onfocus =
new Function("window.defaultStatus =
'Document:Done';");
Обратите внимание на поле статуса браузера. Оно демонстрирует возможность выполнения
функции в фоновом режиме. Кроме того, onblur() в этом виде не отрабатывает в Internet Explorer.
Причина кроется в прототипе объекта и возможности его переназначения программистом.
Конечно, когда разработчики создавали всю эту конструкцию, думали не о том, как насолить
пользователю, а о том, как сократить ресурсы, необходимые браузеру для отображения
нескольких окон. Ведь можно выполнить все то же самое с точностью до наоборот: запускать,
например, часы в фокусе и останавливать их в фоне. Но этот пример мы рассмотрим в контексте
фреймов.
Управление фокусом во фреймах
Фрейм - это такое же окно, как и само окно браузера. Точнее - это объект того же класса. К нему
применимы те же методы, что и к обычному объекту "окно":
var flag=1;
function clock()
{
if(flag==0)
{
d=new Date();
s=d.getHours()+':'+d.getMinutes()+':'+
d.getSeconds();
window.document.forms[0].elements[0].value=s;
}
setTimeout('clock();',100);
}
window.onblur =
new Function('this.flag = 1;');
window.onfocus =
new Function('this.flag = 0;');
window.onload = clock;
Данный фрагмент кода размещен в каждом из двух фреймов, которые отображаются в примере. А
их именно два. Просто ширина границы набора фреймов установлена в 0. Если окно примера
разделить мысленно пополам и "кликнуть" мышью в одну из половин, то пойдут часы в этой
половине. Если теперь переместиться в другой фрейм и "кликнуть" мышью в нем, то часы пойдут
в поле формы этого фрейма, а в другом фрейме остановятся.
Фокус в полях формы
Управление фокусом в полях формы, кроме этого раздела, описано еще и в разделе "Текст в полях
ввода". Здесь мы рассматриваем этот вопрос в контексте общего применения методов blur() и
focus(). Эти методы определены для любого поля формы, а не только для полей ввода. Рассмотрим
простой пример.
Попробуйте изменить в этой форме значение любого из полей. Вряд ли это вам удастся.
Обработчик события Focus (onFocus) уводит фокус из поля на произвольное место страницы.
Вопрос 47. Java Script. Объект Document.
Содержит информацию о текущем документе и обеспечен методами отображения HTMLдокумента.
Синтаксис:
Для определения объекта document используется стандартный HTML синтаксис:
<BODY
BACKGROUND="backgroundImage"
BGCOLOR="backgroundColor"
TEXT="foregroundColor"
LINK="unfollowedLinkColor"
ALINK="activatedLinkColor"
VLINK="followedLinkColor"
[onLoad="handlerText"]
[onUnload="handlerText"]>
</BODY>
BACKGROUND определяет картинку, которая выполняет роль фона документа.
BGCOLOR, TEXT, LINK, ALINK, VLINK определяет цвет как шестиразрядное
шестнадцатиричное число (в формате "rrggbb" или "#rrggbb") или как одно из строковых названий
в Color Value.
Использование свойств и методов объекта document:
1. document.propertyName
2. document.methodName(parameters)
propertyName одно из свойств, описанных ниже.
methodName один из методов, описанных ниже.
Свойство:
* window
Описание:
HTML документ состоит из тегов <HEAD> и <BODY>. <HEAD> содержит информацию о
заголовке документа и основании (абсолютный URL основания, используемый для относительных
URL ссылок в документе). тег <BODY> заключает в себе тело документа, который определен
текущим URL. Все тело документа (все другие элементы HTML документа) находятся внутри тега
<BODY>.
Вы можете загрузить новый документ, используя объект location.
Вы можете ссылаться на якоря, формы и ссылки документа, используя массивы anchors, forms и
links. Эти массивы содержат запись для каждого якоря, формы и ссылки в документе.
Свойства:
* alinkColor отражает атрибут ALINK
* anchors массив, отражающий все якоря в документе
* bgColor отражает атрибут BGCOLOR
* cookie определяет "ключик"
* fgColor отражает атрибут TEXT
* forms массив, отражающий все формы в документе
* lastModified отражает дату последней модификации документа
* linkColor отражает атрибут LINK
* links массив, отражающий все ссылки в документе
* referrer отражает URL документа, из которого вызван текущий документ
* title отражает содержание тега <TITLE>
* URL отражает полный URL документа
* vlinkColor отражает атрибут VLINK
Следующие объекты также являются свойствами объекта document:
* anchor
* form
* history
* link
Методы:
* close
* open
* write
* writeln
События:
События onLoad и onUnload определяются в теге <BODY>, но являются событиями объекта
window.
Вопрос 48. Java Script. Объект Window.
Метод window.open() вызывается с такими параметрами:
window.open( адрес файла, имя окна, параметры ) , где
* адрес файла - адрес файла, первоначально загружаемого в новое окно;
* имя окна - дается новому окну, чтобы впоследствии ссылаться на него из скрипта;
* параметры - набор элементов нового окна браузера - строка, в которой через запятую в любом
порядке перечисляются пары параметр=значение . Если какой - то параметр не указан, будет
применено значение по умолчанию.
параметр - значение - описание
width - размер в пикселах - ширина нового окна
height - размер в пикселах - высота нового окна
left - размер в пикселах - абсцисса левого верхнего угла нового окна
top - размер в пикселах - ордината левого верхнего угла нового окна
toolbar - 1 / 0 / yes / no - вывод панели инструменов
location - 1 / 0 / yes / no - вывод адресной строки
directories - 1 / 0 / yes / no - вывод панели ссылок
menubar - 1 / 0 / yes / no - вывод строки меню
scrollbars - 1 / 0 / yes / no - вывод полос прокрутки
resizable - 1 / 0 / yes / no - возможность изменения размеров окна
status - 1 / 0 / yes / no - вывод строки статуса
fullscreen - 1 / 0 / yes / no - вывод на полный экран
Например, при выполнении window.open('test.htm','new','width=300,height=200,toolbar=1') откроется
окно 300х200, в котором из стандартных интерфейсных элементов будет только панель
инструментов.
Вопрос 49. Java Script. Обработка ошибок в Java Script.
JavaScript имеет два основных уровня обработки ошибок: синтаксические ошибки и ошибки
времени выполнения. Синтаксические ошибки возникают до выполнения кода JavaScript, означая
в основном, что код невозможно компилировать. Возьмем, например, следующий код:
for(var i=0; i<10; i++)
// рабочий код здесь
}
Обратите внимание, что здесь пропущена открывающая скобка {. Если попробовать выполнить
этот код, то немедленно появится сообщение об ошибке, даже если код находится в функции,
которая не выполняется сразу. Такие ошибки почти всегда легко находятся и исправляются. В
этом случае будет получено сообщение, говорящее что-нибудь подобное " Ожидалась ')', строка
10, позиция 18". Если перейти к строке 10, то там обычно будет находиться достаточно очевидная
ошибка, такая, как пропущенная ), дополнительный знак < или какая-то другая опечатка. С такими
ошибками ничего нельзя сделать, кроме как просто исправить и двигаться дальше. Ниже
представлен список некоторых наиболее распространенных синтаксических ошибок:
Пропущенные или непарные фигурные, круглые или квадратные скобки
Каждая фигурная {, круглая (, или квадратная [ скобка должна иметь свою закрывающую парную
скобку. Если имеются вложенные скобки, то внутренние должны быть закрыты прежде, чем
внешние. Например, набор скобок {[}] является недопустимым.
Условия операторов if, for и while должны помещаться в круглые скобки. Выражнение "if x=5{"
является недопустимым, так как "x=5" должно быть заключено в круглые скобки. Если с этим
возникнут проблемы, то существуют редакторы, такие, как EditPlus, которые могут выделять
соответствующие пары скобок, и т.д.
Пропущенные или непарные кавычки
Это очень распространенная проблема. Строки в JavaScript начинаются символом 'или " и должны
заканчиваться
таким же символом. Если этот символ существует в строке, то он должен быть экранирован.
Например, код
var x = "It`s a beautiful day";
является недопустимым, потому что " в It`s не экранировано. Этот код должен выглядеть
следующим образом:
var x = 'It\'s a beautiful day';
// или
var x = "It's a beautiful day";
Еще одной достаточно распространенной ошибкой является завершение строки другим символом,
т.е.:
var x = "It's a beautiful day';
Эта строка начинается с символа ", поэтому должна закончиться также символом ".
Пропущенная точка с запятой
Хотя точки с запятой обычно не нужны в JavaScript, но лучше все же их использовать. Например,
если нужно сократить файл JavaScript, то обычно удаляют все переносы строк. Возьмем
следующий код:
var x=5
var y=10
Если удалить переносы строк, то получим код
var x=5 var y=10
который вызовет ошибку. Если бы использовались точки с запятой, то проблемы не было бы.
Ошибки времени выполнения
После запуска кода на исполнение начинают появляться ошибки времени выполнения. Эти
ошибки могут возникать в связи с множеством причин. Каждый из следующих далее блоков кода
будет порождать ошибку:
alert(x); // 'x' не определено
var x;
x[5] = 'test'; // 'x' будет null или не является объектом
window.frames = 5; // Не реализовано
var for; // ожидается идентификатор
document.doesNotExist(5);
// объект не поддерживает это свойство или метод
alert(parseInt('5')); // ожидается объект
Многие из этих проблем вызываются более общими ошибками, которые приходится разыскивать.
Неправильное использование прописных букв
Все встроенные функции JavaScript используют специальную форму записи имен функций,
предполагающую, что имя функции начинается со строчной буквы, а в начале каждого
следующего слова будет использоваться прописная буква: parseInt, getElementById, createElement,
appendChild, и т.д.
Так как JavaScript учитывает регистр символов, то неправильный ввод имени одной из этих
функций часто будет приводить к ошибке во время выполнения.
Ссылка на несуществующий код, функции или объекты DOM]
Эта проблема возникает обычно в отношении объектов DOM. Предположим, что имеется код,
который изменяет некоторые элементы формы на странице. Если делается попытка выполнить
этот код до появления элементов формы, например, если поместить его в тег <HEAD>, то будет
получена ошибка JavaScript.
Обычно эта проблема легко решается. Лучшим решением будет выполнение кода по событию
onload, например:
<BODY onload="loadFunction();">
или еще лучше, присоединение события к загрузке тела.
Использование зарезервированного слова
Существует длинный список зарезервированных ключевых слов JavaScript. Если делается попытка
использовать многие из них вне их специального контекста, как, например, запись
var for = 5;
то будет возникать ошибка.
Использование пропущенного параметра
При определении функции обычно используется некоторое количество аргументов. Если
некоторые из этих аргументов пропущены и делается попытка их использовать, то возникнут
ошибки.
Большинство из этих проблем попадают в категорию опечаток и просто обычных ошибок,
которые можно исправить, но необходимо о них знать, чтобы случайно не сделать.
Однако последний тип ошибки из этого списка с пропущенными параметрами можно проверить
достаточно легко:
function myFunction(a, b, c){
if(a){
// выполняется работа с a
}
if(b && c){
// выполняется работа с b и c
}
}
Если функция вызывается только с одной переменной, то проблемы не возникает. Однако надо
помнить об одной вещи: если входящая по значению переменная может быть определена как false
(0 или false), то код не будет работать. В связи с этим лучше проверять, что переменная не была
определена:
function myFunction(a, b, c){
if(typeof(a)!='undefined'){
// выполнение кода с a
}
if((typeof(b)!='undefined') && (typeof(c)!='undefined')){
// выполнение кода с b и c
}
}
В этом случае, даже если одна из переменных будет передана как 0, false или null, код все равно
будет работать.
Функция window.onerror
Откровенно говоря, функция window.onerror имеет небольшую практическую пользу. Ее чаще
всего используют для полного отключения всех сообщений об ошибках во время выполнения:
window.onerror = function(){
return true;
}
С этим кодом сообщение об ошибке никогда не будет выводиться. Однако в связи с этим
приложение может не работать. Например, если бы переменная была null и с ней была выполнена
какая-то операция, то в обычной ситуации должно появиться сообщение об ошибке. При
использовании этого кода функция или сценарий в случае возникновения ошибки будет просто
молча останавливаться.
Функцию window.onerror можно также использовать для вывода пользователям несколько более
дружественных сообщений об ошибках. Можно просто вывести, например, сообщение
'Произошла ошибка, свяжитесь, пожалуйста, с Web-мастером', вместо вывода пользователю всех
технических деталей ошибки (что большинство браузеров делает по умолчанию).
Еще одно использование window.onerror состоит в отправке разработчику списка всех ошибок,
произошедших на сайте. Можно использовать AJAX для отправки сообщений об ошибках в
форме, чтобы можно было позже их исправить. Все это возможно сделать неявно, без
взаимодействия с пользователем.
Операторы Try/Catch/Finally и Throw
Операторы Try/Catch являются несомненно наиболее распространенным и обычно лучшим
способом реализовать обработку ошибок в JavaScript. Но не только это - операторы Try/Catch
могут иногда быть единственным способом реализовать некоторые задачи, такие, как
обнаружение объекта. Возьмем, например, простую функцию для создания в Internet Explorer
объекта XMLHttp:
var activeXObjects = ['Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0',
'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'];
for(var i=0; i<activeXObjects.length; i++){
try{
return new ActiveXObject(activeXObjects[i]);
}catch(err){}
}
Заранее неизвестно, какие объекты установил пользователь, и, к сожалению, браузер не
предоставляет никакого механизма это определить. Поэтому остается создавать каждый из 6
возможных объектов, пока один из них (будем надеяться) не заработает.
Операторы Try/Catch можно использовать для перехвата ошибок двух типов: ошибок времени
выполнения и ошибок пользователя. Ошибки времени выполнения, как говорилось ранее,
возникают, когда у компилятора JavaScript существует проблема с созданным кодом. Ошибки
пользователя, с другой стороны, будут технически проходить без проблем, но возникают в связи с
контекстом приложения. Если имеется поле, в которое пользователь, например, должен ввести
свой возраст, и пользователь вводит -2, то это приводит к появлению ошибки.
Блок Try/Catch имеет достаточно простой синтаксис:
try{
// код
}catch(err){
// код обработки ошибки
}
Если код в блоке try приводит к ошибке, то сценарий немедленно переходит в блок catch. Объект
ошибки " err" в JavaScript имеет ряд полезных свойств - описание, сообщение, имя и номер,
которые можно использовать для вывода информации о том, что произошло:
try{
var x;
x[5] = 5;
}catch(err){
alert('An error occured: '+err.description);
}
Если в операторе catch окажется ошибка, то JavaScript сможет обратиться в дальнейшем к ее
описанию.
Такой блок кода Try/Catch можно применять в любом месте. Однако, обычно, код должен быть
написан таким образом, чтобы это не нужно было использовать, - в частности, весь ввод должен
проверяться.
Блок Try/Catch можно применять также для создания своих собственных ошибок:
function setAge(x){
if(typeof(x)=='undefined') throw('Вы должны ввести возраст');
if(typeof(x)!='number') throw('Возраст должен быть числом');
if(x<0) throw('Возраст не может быть меньше 0');
if(x>120) throw('Возраст не может быть больше 120');
var myAge = x;
// еще код
}
try{
setAge(userInput);
}catch(err){
alert(err);
}
В этом случае выполняется проверка того, что пользователь вводит возраст. Если он вводит
недопустимые данные, сценарий немедленно завершается, а пользователь получает сообщение об
ошибке.
Блок try/catch имеет еще одну часть, оператор "finally":
try{
// код
}catch(err){
// код
}finally{
// код
}
Код в "завершающем блоке" будет выполняться независимо от того, что происходит с
операторами Try/Catch. В чем же разница между завершающим блоком и простым размещением
кода после блока try/catch? В большинстве случаев никакой разницы не будет. Однако, если блок
try/catch находится в функции и происходит выход из функции в блоке try или catch, то возникнет
существенное различие:
function myFunction(){
try{
return someValue;
}catch(err){
return defaultValue;
}finally{
alert('finally!');
}
alert('End!');
}
В этом случае оба блока try и catch возвращают значение. Мы получим сообщение "finally!", но не
получим сообщение "End!", потому что произойдет выход из функции до сообщения alert('End!').
То же самое остается справедливым для операторов Try/Catch, которые осуществляют выход из
тела цикла for или while, например:
for(var i=0; i<10; i++){
try{
if(i==5) continue;
}catch(err){
// обработка ошибки
}finally{
// код
}
// еще код
}
Основные методы и функции Java Script.
abs
Возвращает абсолютное значение числа.
Синтаксис:
Math.abs(number)
number любое числовое выражение или свойство существующего объекта.
acos
Возвращает арккосинус числа (в радианах).
Синтаксис:
Math.acos(number)
number числовое выражение между -1 и 1 или свойство существующего объекта.
alert
Отображает диалоговое окно Alert с сообщением и кнопкой OK.
Синтаксис:
alert("message")
Метод alert используется для отображения сообщения, не требующего решения пользователя.
Аргумент message определяет сообщение, которое содержит диалоговое окно.
Хотя alert является методом объекта window вам не нужно определять windowReference, при его
вызове. Например, windowReference.alert() необязательно.
anchor
Создает HTML якорь, который используется как гипертекстовая ссылка.
Синтаксис:
text.anchor(nameAttribute)
text любая строка или свойство существующего объекта.
nameAttribute любая строка или свойство существующего объекта.
asin
Возвращает арксинус числа (в радианах).
Синтаксис:
Math.asin(number)
number числовое выражение между -1 и 1 или свойство существующего объекта.
Метод asin возвращает числовое значение между -Пи/2 и Пи/2. Если значение number находится за
пределами данного диапазона, возвращаемое значение всегда будет 0.
atan
Возвращает арктангенс числа (в радианах).
Синтаксис:
Math.atan(number)
number любое числовое выражение или свойство существующего объекта, представляющее собой
тангенс угла.
Метод atan возвращает числовое выражение между -Пи/2 и Пи/2.
back
Позволяет вернуться на предыдущий URL в списке посещенных URL'ей.
Синтаксис:
history.back()
Этот метод выполняет действие равносильное выбору пользователем кнопки Back в окне
Navigator'а. Метод back также равносилен history.go(-1).
big
Вызывает строку, отображаемою большим шрифтом, как если установить ей тег <BIG>.
Синтаксис:
stringName.big()
stringName любая строка или свойство существующего объекта.
Для форматирования и отображения строки в документе метод big используется с методами write
или writeln.
blink
Вызывает мигающую строку, как если установить ей тег <BLINK>.
Синтаксис:
stringName.blink()
stringName любая строка или свойство существующего объекта.
Для форматирования и отображения строки в документе метод blink используется с методами
write или writeln.
blur
Изменен в Navigator 3.0.
Убирает фокус с указанного объекта.
Синтаксис:
1. password.blur()
2. select.blur()
3. textName.blur()
4. textareaName.blur()
password любое значение атрибута NAME объекта password или элемент массива elements.
select любое значение атрибута NAME объекта select или элемент массива elements.
textName любое значение атрибута NAME объекта text или элемент массива elements.
textareaName любое значение атрибута NAME объекта textarea или элемент массива elements.
Метод blur используется для удаления фокуса с указанного элемента формы.
bold
Вызывает строку, отображаемую жирным шрифтом, как если установить ей тег <B>.
Синтаксис:
stringName.bold()
stringName любая строка или свойство существующего объекта.
Для форматирования и отображения строки в документе метод bold используется с методами write
или writeln.
ceil
Возвращает ближайшее целое числа, округленного в большую сторону или равное числу.
Синтаксис:
Math.ceil(number)
number любое числовое выражение или свойство существующего объекта.
charAt
Возвращает символ указанный в index.
Синтаксис:
stringName.charAt(index)
stringName любая строка или свойство существующего объекта.
index любое целое число от 0 до stringName.length-1 или свойство существующего объекта.
Символы в строке индексируются слева направо. Индексом первого символа является 0, индексом
последнего символа - stringName.length-1. Если вы указали index превышающий количество
символов в строке, JavaScript возвратит пустую строку.
clearTimeout
Окончание задержки, установленной методом setTimeout.
Синтаксис:
clearTimeout(timeoutID)
timeoutID задержка, установка которой была возвращена предыдущим вызовом метода setTimeout.
Смотрите описание метода setTimeout
click
Имитирует щелчок мыши на выбранном элементе формы.
Синтаксис:
buttonName.click()
radioName[index].click()
checkboxName.click()
buttonName любое значение атрибута NAME объектов button, reset или submit или элемент массива
elements.
radioName значение атрибута NAME объекта radio или элемент массива elements.
index целое число, представляющее кнопку radio в объекте radio.
checkboxName любое значение атрибута NAME объекта checkbox или элемент массива elements.
Результат действия метода click изменяется в зависимости от вызываемого элемента:
для button, reset и submit выполняется одинаковое действие - нажатие кнопки.
для radio - выбор кнопки radio.
для checkbox - отметка галочкой checkbox и установка значения на on.
close (объект document)
Закрывает поток вывода и завершает вывод данных в рабочую область Navigator'а для
отображения.
Синтаксис:
document.close()
Метод close закрывает поток вывода, открытый методом document.open(). Если поток был открыт
для рабочей области Navigator'а, метод close завершает вывод содержимого потока на экран. теги
стиля шрифта, такие как <BIG> и <CENTER>, автоматически закрывают поток вывода. Метод
close также останавливает "meteor shower" в иконе Navigator'а и отображает "Document: Done" в
строке состояния.
close (объект window)
Изменен в Navigator 3.0.
Закрывает указанное окно.
Синтаксис:
windowReference.close()
windowReference ссылка на окно, как описано в объекте window.
Метод close закрывает указанное окно. Если вы объявляете close без указания windowReference, то
JavaScript закрывает текущее окно.
В событиях вы должны указывать window.close() вместо обычно используемого close().
Объявление close() без определения имени объекта равносильно document.close().
confirm
Отображает диалоговое окно с указанным сообщением и кнопками OK и Cancel.
Синтаксис:
confirm("message")
message любая строка или свойство существующего объекта.
Метод confirm используется для принятия пользователем решения, требующего выбора OK или
Cancel. Аргумент message определяет сообщение, которое требует решения пользователя. Метод
confirm возвращает true, если пользователь выбрал OK, и false, если пользователь выбрал Cancel.
Хотя confirm является методом объекта window, вам не нужно указывать windowReference при его
вызове. Например, windowReference.confirm() является необязательным.
cos
Возвращает косинус числа.
Синтаксис:
Math.cos(number)
number числовое выражение, представляющее собой размер угла в радианах или свойство
существующего объекта.
Метод cos возвращает числовое значение между -1 и 1, которое представляет собой косинус угла.
escape
Возвращает ASCII значение аргумента, закодированного в ISO Latin-1.
Синтаксис:
escape("string")
string не буквенно-числовая строка в ISO Latin-1 кодировке или свойство существующего объекта.
Функция escape не является методом, связанным с любым объектом, но является частью самого
языка.
Значение, возвращаемое функцией escape, является строкой вида "%xx", где xx является ASCII
кодировкой символа в аргументе. Если аргументом функции escape является буквенно-числовым
символом, то функция escape возвращает тот же символ.
eval
Функция eval выполняет строку-аргумент и подставлает полученное значение вместо себя.
Синтаксис:
eval("string")
string любая строка, представляющая собой JavaScript выражение, команду или
последовательность команд. Выражение может включать переменные и свойства существующего
объекта.
Функция eval является встроенной функцией JavaScript. Она не является методом, связанным с
любым объектом, но является частью самого языка.
Аргументом функции eval является строка. Не используйте eval для вычислений арифметических
выражений. JavaScript вычисляет арифметические выражения автоматически. Если аргумент
представляет собой выражение, eval вычисляет выражение. Если аргумент представляет собой
одно или более JavaScript команд, то eval выполняет команды.
Если вы построили арифметическое выражение как строку, вы можете использовать eval для ее
вычисления.
exp
Возвращает enumber, где number является аргументом, а e является экспонентой, основанием
натурального логарифма.
Синтаксис:
Math.exp(number)
number любое числовое выражение или свойство существующего объекта.
fixed
Вызывает строку, отображаемую моноширинным шрифтом, как если установить ей тег <TT>.
Синтаксис:
stringName.fixed()
stringName любая строка или свойство существующего объекта.
Для форматирования и отображения строки в документе метод fixed используется с методами
write и writeln.
floor
Возвращает ближайшее целое числа, округленного в меньшую сторону или равное числу.
Синтаксис:
Math.floor(number)
number любое числовое выражение или свойство существующего объекта.
focus
Изменен в Navigator 3.0.
Устанавливает фокус на определенный объект.
Синтаксис:
1. password.focus()
2. select.focus()
3. textName.focus()
4. textareaName.focus()
password любое значение атрибута NAME объекта password или элемент массива elements.
select любое значение атрибута NAME объекта select или элемент массива elements.
textName любое значение атрибута NAME объекта text или элемент массива elements.
textareaName любое значение атрибута NAME объекта textarea или элемент массива elements.
Метод focus используется для установки фокуса на указанный элемент формы. Вы можете затем
программно ввести значение в элемент или позволить пользователю ввести значение.
fontcolor
Вызывает строку, отображаемую установленным цветом, как если поместить ее в тег <FONT
COLOR=color>.
Синтаксис:
stringName.fontcolor(color)
stringName любая строка или свойство существующего объекта.
color строка или свойство существующего объекта, определяющая цвет как шестиразрядное
шестнадцатиричное число (RGB) или как одно из строковых названий в списке Color Value.
Для форматирования и отображения строки в документе метод fontcolor используется с методами
write и writeln.
Если вы определяете color как шестиразрядное шестнадцатиричное число вы должны
использовать формат rrggbb.
Метод fontcolor анулирует значение, установленное в свойстве fgColor.
fontsize
Вызывает строку, отображаемую установленным размером шрифта, как если поместить ее в тег
<FONT SIZE=size>.
Синтаксис:
stringName.fontsize(size)
stringName любая строка или свойство существующего объекта.
size целое число от 1 до 7 или строка, представляющая собой целое со знаком (+ или -) от 1 до 7,
или свойство существующего объекта.
Для форматирования и отображения строки в документе метод fontsize используется с методами
write и writeln.
Когда вы определяете size как целое, вы устанавливаете размер stringName в один из семи
специфицированных размеров. Когда вы определяете size как "-2", вы устанавливаете размер
шрифта stringName относительно размера, установленного в теге .
forward
Загружает следующий URL в списке посещенных URL'ей.
Синтаксис:
history.forward()
Этот метод выполняет действие равносильное выбору пользователем кнопки Forward в окне
Navigator'а. Метод forward также равносилен history.go(1).
getDate
Возвращает число месяца для указанной даты.
Синтаксис:
dateObjectName.getDate()
dateObjectName любое имя объекта date или свойство существующего объекта.
Значение, возвращаемое getDate, является целым числом от 1 до 31.
getDay
Возвращает день недели для указанной даты.
Синтаксис:
dateObjectName.getDay()
dateObjectName любое имя объекта date или свойство существующего объекта.
Значение, возвращаемое getDay, является целым числом, соответствующим дню недели: ноль для
воскресенья, один для понедельника, два для вторника и так далее.
getHours
Возвращает часы для указанной даты.
Синтаксис:
dateObjectName.getHours()
dateObjectName любое имя объекта date или свойство существующего объекта.
Значение, возвращаемое getHours, является целым числом от 0 до 23.
getMinutes
Возвращает минуты для указанной даты.
Синтаксис:
dateObjectName.getMinutes()
dateObjectName любое имя объекта date или свойство существующего объекта.
Значение, возвращаемое getMinutes, является целым числом от 0 до 59.
getMonth
Возвращает месяц для указанной даты.
Синтаксис:
dateObjectName.getMonth()
dateObjectName любое имя объекта date или свойство существующего объекта.
Значение, возвращаемое getMonth, является целым числом от 0 до 11. Ноль соответствует январю,
один - февралю и так далее.
getSeconds
Возвращает секунды в текущем времени.
Синтаксис:
dateObjectName.getSeconds()
dateObjectName любое имя объекта date или свойство существующего объекта.
Значение, возвращаемое getSeconds, является целым числом от 0 до 59.
getTime
Возвращает числовое значение, соответствующее времени для указанной даты.
Синтаксис:
dateObjectName.getTime()
dateObjectName любое имя объекта date или свойство существующего объекта.
Значение, возвращаемое методом getTime, является числом миллисекунд, начиная с 1 января 1970
00:00:00. Вы можете использовать этот метод для назначения даты и времени другому объекту
date.
getTimezoneOffset
Возвращает смещение временной зоны в минутах относительно гринвичского меридиана.
Синтаксис:
dateObjectName.getTimezoneOffset()
dateObjectName любое имя объекта date или свойство существующего объекта.
Смещение временной зоны является разницей между местным временем и GMT (гринвичским
временем). Сезонное время (зимнее, летнее) не дает возможности говорить об этом смещении как
о константе.
getYear
Возвращает год для указанной даты.
Синтаксис:
dateObjectName.getYear()
dateObjectName любое имя объекта date или свойство существующего объекта.
Значение, возвращаемое getYear, равно году минус 1900. Например, если год равен 1976, то
возвращаемое значение равно 76.
go
Загружает URL из списка посещенных URL'ей.
Синтаксис:
history.go(delta | location)
delta целое число или свойство существующего объекта, представляющее собой относительную
позицию в списке посещенных URL'ей.
location строка или свойство существующего объекта, представляющая собой URL или его часть
из списка посещенных URL'ей.
Метод go позволяет перейти на адрес, содержащийся в списке посещенных URL'ей, который
указан вами в качестве аргумента метода go. Вы можете посмотреть этот список, выбрав History в
меню Window. Последние 10 позиций списка также отображаются в меню Go.
Аргумент delta может быть положительным и отрицательным числом. Если delta больше нуля, то
метод go переходит на URL вперед в списке посещенных URL'ей; в противном случае переход
осуществляется на URL назад. Если delta равна 0, то Navigator перезагружает текущую страницу.
Аргумент location является строкой. location выбирает для загрузки ближайший адрес в списке
посещенных URL'ей, содержащий подстроку location, указанную вами в качестве аргумента.
Каждая часть URL содержит определенную информацию. Смотрите объект location, где описаны
компоненты URL.
indexOf
Возвращает индекс позиции впервые встреченного искомого значения в вызванном объекте string.
Поиск начинается с fromIndex.
синтаксис:
stringName.indexOf(searchValue, [fromIndex])
stringName любая строка или свойство существующего объекта.
searchValue строка или свойство существующего объекта, представляющая собой искомое
значение.
fromIndex место в вызванной строке, с которого начинается поиск. Это может быть любое целое
число от 0 до stringName.length-1 или свойство существующего объекта.
Символы в строке индексируются слева направо. Индекс первого символа равен 0, индекс
последнего - stringName.length-1.
Если вы не указываете значение fromIndex, JavaScript принимает по умолчанию 0. Если
searchValue не найден, JavaScript возвращает -1.
isNaN
Изменена в Navigator 3.0.
На UNIX платформах проверяет аргумент, является ли он "NaN" (не числом).
Синтаксис:
isNaN(testValue)
testValue значение, которое вы хотите проверить.
Функция isNaN является встроенной функцией JavaScript. Она не является методом, связанным с
любым объектом, но является частью самого языка. Функция isNaN применяется только на UNIX
платформах.
На всех платформах, за исключением Windows, функции parseFloat и parseInt возвращают "NaN",
когда они принимают нечисловое значение. Значение "NaN" не является числом в любом случае.
Вы можете вызывать функцию NaN для того, чтобы определить является ли результат parseFloat
или parseInt "NaN". Если над "NaN" совершаются арифметические операции, то их результатами
также будет "NaN".
Функция isNaN возвращает true или false.
italics
Вызывает строку, отображаемую курсивом, как если установить ей тег <I>.
Синтаксис:
stringName.italics()
stringName любая строка или свойство существующего объекта.
Для форматирования и отображения строки в документе метод italics используется с методами
write или writeln.
lastIndexOf
Возвращает индекс впервые встреченного искомого значения в вызванном объекте string. Поиск
по строке осуществляется в обратном направлении, начиная с fromIndex.
Синтаксис:
stringName.lastindexOf(searchValue, [fromIndex])
stringName любая строка или свойство существующего объекта.
searchValue строка или свойство существующего объекта, представляющая собой искомое
значение.
fromIndex место в вызванной строке, с которого начинается поиск. Это может быть любое целое
число от 0 до stringName.length-1 или свойство существующего объекта.
Символы в строке индексируются слева направо. Индекс первого символа равен 0, индекс
последнего - stringName.length-1.
Если вы не указываете значение fromIndex, JavaScript принимает по умолчанию stringName.length1 (конец строки). Если searchValue не найден, JavaScript возвращает -1.
link
Создает гипертекстовую ссылку HTML, по которой можно перейти на другой URL.
Синтаксис:
linkText.link(hrefAttribute)
Для создания и отображения гипертекстовой ссылки в документе метод link используется с
методами write или writeln. Создайте ссылку методом link, затем вызовите write или writeln для
отображения ссылки в документе.
В синтаксисе строка linkText представляет собой текст, который увидит пользователь. Строка
hrefAttribute представляет собой атрибут HREF тега <A>, это будет целевой URL. Каждая часть
URL содержит определенную информацию. Смотрите объект location, где описаны компоненты
URL.
Ссылки, созданные методом link, становятся элементами массива links.
log
Возвращает натуральный логарифм числа (по основанию e).
Синтаксис:
Math.log(number)
number любое положительное числовое выражение или свойство существующего объекта.
Если значение number находится за пределами диапазона, возвращенное значение всегда будет 1.797693134862316e+308.
max
Возвращает большее число из двух.
Синтаксис:
Math.max(number1, number2)
number1 и number2 любые числовые аргументы или свойства существующих объектов.
min
Возвращает меньшее число из двух.
Синтаксис:
Math.min(number1, number2)
number1 и number2 любые числовые аргументы или свойства существующих объектов.
open (объект document)
Открывает поток для получения вывода методами write и writeln.
Синтаксис:
document.open(["mimeType"])
mimeType устанавливает любой из следующих типов документа:
text/html
text/plain
image/gif
image/jpeg
image/x-bitmap
plug-In
plug-In любой составной plug-in MIME тип, поддерживаемый Netscape'ом.
Метод open открывает поток для получения вывода методами write и writeln. Если mimeType
является текстом или картинкой, то поток открыт в рабочую область Navigator'а; иначе, поток
открыт на plug-in. Если документ уже существует в целевом окне, то метод open очищает его.
Для закрытия потока используйте метод document.close(). Метод close вызывает текст или
картинку, которые были отправлены в рабочую область Navigator'а для отображения. После
использования document.close(), введите document.open() снова, когда вы захотите начать вывод
другого потока.
mimeType является необязательным аргументом, определяющим тип документа. Если вы не
указываете mimeType, то метод open принимает по умолчанию text/html.
Описание mimeType:
text/html определяет текст, содержащий ASCII текст в HTML формате.
text/plain определяет текст, содержащий ASCII текст с символами конца строки, для ограничения
отображаемых строк.
image/gif определяет документ с закодированными байтами, содержащий GIF заголовок и размеры
в пикселях.
image/jpeg определяет документ с закодированными байтами, содержащий JPEG заголовок и
размеры в пикселях.
image/x-bitmap определяет документ с закодированными байтами, содержащий bitmap заголовок и
размеры в пикселях.
plug-in загружает определенный plug-in и использует его как место назначения для методов write и
writeln. Например, "x-world/vrtml" загружет VR Scout VRML plug-in из Chaco Communications, а
"aplication/x-director" загружает Macromedia Shockware plug-in.
open (объект window)
Открывает новое окно web-броузера.
Синтаксис:
[windowVar=][window].open("URL", "windowName", ["windowFeatures"])
windowVar имя нового окна. Эта переменная используется при ссылках на свойства, методы и
контейнеры окна.
URL определяет URL, открываемый в новом окне. Смотрите объект location, где описаны
компоненты URL.
windowName имя окна, используемое в атрибуте TARGET тега <FORM> или <A>. windowName
может содержать только буквенно-цифровые символы или символ подчеркивания (_).
windowFeatures список через запятую любых из следующих опций или значений:
toolbar[=yes | no] | [=1 | 0]
location[=yes | no] | [=1 | 0]
directoties[=yes | no] | [=1 | 0]
status[=yes | no] | [=1 | 0]
menubar[=yes | no] | [=1 | 0]
scrollbars[=yes | no] | [=1 | 0]
resizable[=yes | no] | [=1 | 0]
width=pixels
height=pixels
Вы можете использовать любой набор этих опций. Опции разделяются запятой. Не делайте
пробелов между опциями.
pixels положительное целое число, определяющее размеры окна в пикселях.
Метод open открывает новое окно web-броузера клиента, что равносильно выбору New
WebBrowser из меню File Navigator'а. Аргумент URL определяет URL, содержащийся в новом
окне. Если URL является пустой строкой, то создастся пустое окно.
В событиях вы должны указывать window.open() вместо обычно используемого open().
Объявление open() без определения имени объекта равносильно document.open().
windowFeatures является необязательным списком перечисленных через запятую опций для нового
окна. Булевы опции windowFeatures принимают значение true, если они определены без значений,
или как yes или 1. Например, open("", "messageWindow", "toolbar") и open("", "messageWindow",
"toolbar=1") как в первом, так и во втором случае опция toolbar принимает значение true. Если
windowName не определяет существующего окна и вы не определяете windowFeatures, то все
булевы опции windowFeatures принимают по умолчанию значение true. Если вы определяете
любую из опций windowFeatures, то все остальные опции принимают значение false, если вы их не
определите дополнительно.
Описание windowFeatures:
toolbar создает стандартные рабочие инструменты Navigator'а, с такими кнопками как "Back" и
"Forward".
location создает поле ввода Location.
directories создает кнопки стандартных директорий Navigator'а, такие как "What's New" и "What's
Coll".
status создает строку состояния внизу окна.
menubar создает меню вверху окна.
scrollbars создает горизонтальную и вертикальную прокрутки, когда документ больше, чем размер
окна.
resizable позволяет пользователю изменять размер окна.
width определяет ширину окна в пикселях.
height определяет высоту окна в пикселях.
parse
Возвращает количество миллисекунд в строковом представлении даты, начиная с 1 января 1970
00:00:00, по местному времени.
Синтаксис:
Date.parse(dateString)
Метод parse выдает дату в строковом представлении (например, "Dec 25, 1995") и возвращает
количество миллисекунд, начиная с 1 января 1970 00:00:00 (по местному времени). Эта функция
используется для установки значений даты, основанных на строковом значении, например, в
сочетании с методом setTime и объектом Date.
Полученная строка представляет собой время, parse возвращает значение времени. Она
принимается в стандартном синтаксисе даты IETF: "Mon, 25 Dec 1995 13:30:00 GMT". Она
понимает континентальную US временную зону, но в основном, используется временная зона
смещения, например "Mon, 25 Dec 1995 13:30:00 GMT+0430" (4 часа, 30 минут западнее
Гринвича). Если вы не указали временной зоны, принимается местная временная зона. GMT и
UTC считаются эквивалентными.
Так как функция parse является статическим методом Date, вы всегда используете ее как
Date.parse(), а не как метод созданного вами объекта date.
parseFloat
Анализирует строковый аргумент и возвращает число с плавающей точкой.
Синтаксис:
parseFloat(string)
string строка, представляющая собой значение, которое вы хотите проанализировать.
Функция parseFloat является встроенным объектом JavaScript. Она не является методом,
связанным с любым объектом, но является частью самого языка.
Функция parseFloat анализирует строку-аргумент и возвращает число с плавающей точкой. Если
встреченный им символ отличается от знака (+ или -), цифры (0-9), десятичной точки или
экспоненты, то он возвращает значение до этой точки, игнорируя этот символ и все последующие
символы.
Если первый символ не может быть конвертирован в число, parseFloat возвращает одно из
следующих значений:
"пусто" на Windows платформах.
"NaN" на любых других платформах указывает на то, что значение не является числом.
parseInt
Анализирует строковый аргумент и возвращает целое число, определенное как основание.
Синтаксис:
parseInt(string [,radix])
string строка, которая представляет собой значение, которое вы хотите проанализировать.
radix целое число, представляющее собой основание, возвращаемого значения.
Функция parseFloat является встроенным объектом JavaScript. Она не является методом,
связанным с любым объектом, но является частью самого языка.
Функция parseFloat анализирует его первый аргумент-строку и пытается возвратить целое число,
определенное как основание. Например, основание 10 означает перевод в десятичное число, 8 восьмеричное, 16 - шестнадцатиричное, и т.д.
Если parseInt в указанном основании встречает символ, не являющийся числом, то он пропускает
его и все следующие символы и возвращает целочисленное значение разобранное до точки.
ParseInt усекает числа до целочисленных значений.
Если основание не определено или определено как 0, JavaScript принимает следующее:
если ввод string начинается с "0x", то основание равно 16 (шестнадцатиричное).
если ввод string начинается с "0", то основание равно 8 (восьмиричное).
если ввод string начинается с любого другого значения, то основание равно 10 (десятичное).
если первый символ не может быть конвертирован в число, parseFloat возвращает одно из
следующих значений:
"пусто" на Windows платформах.
"NaN" на любых других платформах указывает на то, что значение не является числом.
Для арифметических целей значение "NaN" не явяляется числом в любом случае. Вы можете
вызвать функцию isNaN для того, чтобы определить является ли результат parseInt "NaN". Если
"NaN" применить в арифметических операциях, то их результатами также будут "NaN".
pow
Возвращает base в степени exponent, т.е. baseexponent.
Синтаксис:
Math.pow(base, exponent)
base числовое выражение или свойство существующего объекта.
exponent числовое выражение или свойство существующего объекта. Если результат может
оказаться недопустимым значением (например, pow(-1, 0.5), то возвращенное значение равно
нулю.
prompt
Отображает диалоговое окно с сообщением и полем ввода.
Синтаксис:
prompt(message, [inputDefault])
message любая строка или свойство существующего объекта; строка отображается как сообщение.
inputDefault строка, целое число или свойство существующего объекта, представляющая собой
значение вводимое в поле по умолчанию.
Метод prompt используется для отображения диалогового окна, требующего ввода текста
пользователем. Если вы не определяете первоначальное значение для inputDefault, то диалоговое
окно отображает значение <undefined>.
Хотя prompt является методом объекта window, вам не нужно определять windowReference, при
его вызове. Например, windowReference.prompt() является не обязательным.
random
Изменен в Navigator 3.0.
Возвращает случайное число между нулем и единицей. Этот метод применяется только на UNIX
платфомах.
Синтаксис:
Math.random()
setDate
Устанавливает число месяца для указанной даты.
Синтаксис:
dateObjectName.setDate(dayValue)
dateObjectName любое имя объекта date или свойство существующего объекта.
dayValue целое число от 1 до 31 или свойство существующего объекта, представляющего собой
число месяца.
setHours
Устанавливает часы для указанной даты.
Синтаксис:
dateObjectName.setHours(hoursValue)
dateObjectName любое имя объекта date или свойство существующего объекта.
hoursValue целое число от 0 до 23 или свойство существующего объекта, представляющее собой
часы.
setMinutes
Устанавливает минуты для указанной даты.
Синтаксис:
dateObjectName.setMinutes(minutesValue)
dateObjectName любое имя объекта date или свойство существующего объекта.
minutesValue целое число от 0 до 59 или свойство существующего объекта, представляющее собой
минуты.
setMonth
Устанавливает месяц для указанной даты.
Синтаксис:
dateObjectName.setMonth(month Value)
dateObjectName любое имя объекта date или свойство существующего объекта.
monthValue целое число от 0 до 11 (представляющее собой месяцы с января по декабрь) или
свойство существующего объекта.
setSeconds
Устанавливает секунды для указанной даты.
Синтаксис:
dateObjectName.setSeconds(secondsValue)
dateObjectName любое имя объекта date или свойство существующего объекта.
secondsValue целое число от 0 до 59 или свойство существующего объекта.
setTime
Устанавливает значение объекта date.
Синтаксис:
dateObjectName.setTime(timevalue)
dateObjectName любое имя объекта date или свойство существующего объекта.
timevalue целое число или свойство существующего объекта, представляющее собой количество
миллисекунд, начиная с 1 января 1970 00:00:00.
Метод setTime используется для добавления даты и времени другому объекту.
setTimeout
Выполняет выражение по истечении установленного количества миллисекунд.
Синтаксис:
timeoutID=setTimeout(expression, msec)
timeoutID идентификатор, который используется только для окончания выполнения, используя
метод clearTimeout.
expression строковое выражение или свойство существующего объекта.
msec числовое значение, числовой ряд или свойство существующего объекта в миллисекундах.
Метод setTimeout выполняет выражение после установленного количества времени. Он не
выполняет выражение многократно. Например, если метод setTimeout установлен на 5 секунд, то
выражение выполнится через 5 секунд, но не каждые 5 секунд.
setYear
Устанавливает год для указанной даты.
Синтаксис:
dateObjectName.setYear(yearValue)
dateObjectName любое имя объекта date или свойство существующего объекта.
timevalue целое число больше чем 1900 или свойство существующего объекта.
sin
Возвращает синус числа.
Синтаксис:
Math.sin(number)
number числовое выражение или свойство существующего объекта, представляющее собой
величину угла в радианах.
Метод sin возвращает числовое значение между -1 и 1, представляющее собой синус угла.
small
Выводит строку, отображаемую маленьким шрифтом, как если установить ей тег <SMALL>.
Синтаксис:
stringName.small()
stringName любая строка или свойство существующего объекта.
Для форматирования и отображения строки в документе метод small используется с методами
write или writeln.
sqrt
Возвращает квадратный корень числа.
Синтаксис:
Math.sqrt(number)
number любое неотрицательное числовое выражение или свойство существующего объекта.
Если значение number находится за пределами данного диапазона, возвращенное значение всегда
будет 0.
strike
Выводит строку, отображаемую как перечеркнутый текст, как если установить ей тег <STRIKE>.
Синтаксис:
stringName.strike()
stringName любая строка или свойство существующего объекта.
Для форматирования и отображения строки в документе метод strike используется с методами
write или writeln.
sub
Выводит строку, отображаемую как нижний индекс, как если установить ей тег <SUB>.
Синтаксис:
stringName.sub()
stringName любая строка или свойство существующего объекта.
Для форматирования и отображения строки в документе метод sub используется с методами write
или writeln.
submit
Передает форму.
Синтаксис:
formName.submit()
formName любая строка или свойство существующего объекта.
Метод submit передает указанную форму. Он выполняет такое же действие как кнопка submit.
Метод submit используется для передачи данных http-серверу. Метод submit возвращает данные,
используя методы "get" или "post", определенные в свойстве method.
substring
Возвращает подстроку объекта string.
Синтаксис:
stringName.substring(indexA, indexB)
stringName любая строка или свойство существующего объекта.
indexA любое целое число от 0 до stringName.length-1 или свойство существующего объекта.
indexB любое целое число от 0 до stringName.length-1 или свойство существующего объекта.
Символы в строке индексируются слева направо. Индекс первого символа равен 0, индекс
последнего - stringName.length-1.
Если indexA меньше чем indexB, то метод substring возвращает подстроку, начиная с символа
indexA и заканчивая символом перед indexB. Если indexA больше чем indexB, то метод substring
возвращает подстроку, начиная с символа indexB и заканчивая символом перед indexA. Если
indexA равен indexB, то метод substring возвращает пустую строку.
sup
Выводит строку, отображаемую как нижний индекс, как если установить ей тег <SUP>.
Синтаксис:
stringName.sup()
stringNameлюбая строка или свойство существующего объекта.
Для форматирования и отображения строки в документе метод sup используется с методами write
или writeln.
tan
Возвращает тангенс числа.
Синтаксис:
Math.tan(number)
number числовое выражение, представляющее собой величину угла в радианах, или свойство
существующего объекта.
Метод tan возвращает числовое значение, представляющее собой тангенс угла.
toGMTString
Переводит дату в строку, используя среднее гринвичское время (GMT).
Синтаксис:
dateObjectName.toGMTString()
dateObjectName любое имя объекта date или свойство существующего объекта.
Точный формат значения возвращаемого toGMTString зависит от платформы.
toLocaleString
Переводит дату в строку, используя местный часовой пояс.
Синтаксис:
dateObjectName.toLocaleString()
dateObjectName любое имя объекта date или свойство существующего объекта.
Если вы для перевода даты используете toLocaleString, помните, что различные locales собирают
строку в различных путях. Используйте методы getHours, getMinutes, getSeconds для получения
более переносимых результатов.
toLowerCase
Возвращает значение вызванной строки, переведенной в нижний регистр.
Синтаксис:
stringName.toLowerCase()
stringName любая строка или свойство существующего объекта.
Метод toLowerCase возвращает значение stringName, переведенное в нижний регистр. toLowerCase
не изменяет значения stringName.
toUpperCase
Возвращает значение вызванной строки, переведенной в верхний регистр.
Синтаксис:
stringName.toUpperCase()
stringName любая строка или свойство существующего объекта.
Метод toUpperCase возвращает значение stringName, переведенное в верхний регистр. toUpperCase
не изменяет значения stringName.
unescape
Возвращает ASCII строку для указанного значения.
Синтаксис:
unescape("string")
string строка или свойство существующего объекта, содержащие символы в любой из следующих
форм:
"%integer", где integer - число между 0 и 255 (десятичное)
"hex", где hex - число между 0x0 и 0xFF (шестнадцатиричное)
Функция unescape не является методом, связанным с каким-либо объектом, но является частью
самого языка. Строка, возвращаемая функцией unescape, является рядом символов в ISO Latin-1
кодировке.
UTC
Возвращает количество миллисекунд в объект date, начиная с 1 января 1970 00:00:00, GMT.
Синтаксис:
Date.UTC(year, month, day, [, hrs] [, min] [, sec])
year год после 1990.
month месяц между 0-11.
day день месяца между 1-31.
hrs часы между 0-23.
min минуты между 0-59.
sec секунды между 0-59.
UTC берет параметры даты, разделенные запятой, и возвращает количество миллисекунд, начиная
с 1 января 1970 00:00:00, GMT.
Так как UTC является статическим методом Date, используйте его как Date.UTC(), а не как метод
созданного вами объекта date.
write
Пишет одно или более HTML выражений в документ в указанном окне.
Синтаксис:
document.write(expression1 [,expression2], ... [,expressionN])
с expression1 по expressionN любое JavaScript выражение или свойство существующего объекта.
Метод write отображает любое количество выражений в окне документа. Вы можете определить
любое JavaScript выражение методом write, включая числовое, строковое или логическое.
Метод write является таким же как метод writeln, но метод write не добавляет символа перевода на
новую строку в конец выходной информации.
Метод write используется внутри тега <SCRIPT> или внутри события. События выполняются
после закрытия документа, поэтому метод write по умолчанию откроет новый документ с
mimeType text/html, если вы не укажете метод document.open() в событии.
writeln
Пишет одно или более HTML выражений в документ в указанном окне, добавляя символ перевода
на новую строку в конец выходной информации.
Синтаксис:
document.writeln(expression1 [,expression2], ... [,expressionN])
с expression1 по expressionN любое JavaScript выражение или свойство существующего объекта.
Метод writeln отображает любое количество выражений в окне документа. Вы можете определить
любое JavaScript выражение методом write, включая числовое, строковое или логическое.
Метод writeln является таким же как метод write, но метод writeln добавляет символ перехода на
новую строку в конец выходной информации. HTML игнорирует символ новой строки, за
исключением определенных тегов, таких как <PRE>.
Метод writeln используется внутри любого тега <SCRIPT> или внутри события. События
выполняются после закрытия документа, поэтому метод writeln по умолчанию откроет новый
документ с mimeType text/html, если вы не укажете метод document.open() в событии.
Вопрос 50. JavaScript. Лексическая структура. Переменные. Выражения и операторы.
Вопрос 51. JavaScript. Объекты и массивы. Классы, конструкторы и прототипы.
Download