06.12.2021

Гипер-локальный контент экспертная система на базе WiFi proximity – тема научной статьи по компьютерным и информационным наукам читайте бесплатно текст научно-исследовательской работы в электронной библиотеке КиберЛенинка

 

Содержание

Гипер-локальный контент экспертная система на базе WiFi proximity Текст научной статьи по специальности « Компьютерные и информационные науки»

CC BY

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Намиот Дмитрий Евгеньевич

В статье описывается программная модель доставки местного контента (объявлений, доступных в некоторой локальной области) мобильным абонентам. Приложение SpotEx (Spot Expert) может использовать любую точку доступа Wi-Fi как сенсор присутствия и, соответственно, обеспечить мобильным абонентам просмотр местной информации. Основная идея это привязать некоторый пользовательский контент к точкам доступа и обеспечить доступ к этому контенту пользователей, находящихся в зоне действия точки (точек) доступа. Результатом работы является продукционная экспертная система, обеспечивающая просмотр сообщений в зависимости от видимости хот-спотов WiFi.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Намиот Дмитрий Евгеньевич

Текст научной работы на тему «Гипер-локальный контент экспертная система на базе WiFi proximity»

Гипер-локальный контент Экспертная система на базе WiFi proximity

Д.Е.Намиот, МГУ им. М.В. Ломоносова,Факультет ВМК МГУ, старший научный сотрудник, [email protected]

В статье описывается программная модель доставки местного контента (объявлений, доступных в некоторой локальной области) мобильным абонентам. Приложение SpotEx (Spot Expert) может использовать любую точку доступа Wi-Fi как сенсор присутствия и, соответственно, обеспечить мобильным абонентам просмотр местной информации. Основная идея — это привязать некоторый пользовательский контент к точкам доступа и обеспечить доступ к этому контенту пользователей, находящихся в зоне действия точки (точек) доступа. Результатом работы является продукционная экспертная система, обеспечивающая просмотр сообщений в зависимости от видимости хот-спотов WiFi.

Википедия определяет context-aware computing как дополнение к гео-системам, где в качестве категорий контекста может выступать не только местоположение, но и время, идентификационные данные пользователя, устройство и т.д. [1]. В данной работе описывается новая модель доступа к гипер-локальному контенту для мобильных пользователей. Рассмотрим некоторые приложения, которые предшествовали подходу SpotEx.

Во-первых, это так называемые Active Badge. Active Badge системы позволяли определять местоположение специальных устройств, которые обозначали себя с помощью уникального повторяющегося сигнала в инфракрасном диапазоне. Если офисное здание оборудовать специальными приемниками, то такого рода системы позволяли определить местоположение бэджа и, соответственно, доставить какую-то информацию тому, кто этот бэдж носит. [2]

Иными словами — это некоторый аппаратный триггер, определяющий информационный контекст. В данном случае, контекст определяется позицией.

Следующий элемент — это маркетинговые решения, основанные Bluetooth proximity. Это так называемые Bluetooth broadcast системы или, проще, системы на основе Bluetooth.

Bluetooth маркетинг включает в себя, в первую очередь, установку вещательного элемента (Bluetooth broadcasting). Этот элемент системы и рассылает данные другим устройствам в зоне видимости. Данные, рас-

пространяемые подобным образом, могут представлять собой тексты, изображения, аудио и видео файлы. Могут распространяться и структурированные данные (vCard, например) [3].

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

Да, есть реализации, в которых используется расширенная схема для Bluetooth broadcast. В таком случае от пользователя требуется запустить некоторое приложение на мобильном телефоне и явно указать, что он согласен принимать предлагаемый контент. Смысл в том, что данные в таком случае будут предлагаться только тем, кто явно заявил о согласии их принимать.

Другая потенциальная проблема с Bluetooth broadcast состоит в том, что рассылка контента на мобильные устройства предполагает поддержку на стороне мобильного терминала так называемого O BEX Push Bluetooth профиля. А это не всегда так, даже для современных смартфонов

• современные смартфоны могут быть использованы как замена Active Badges

• наша система может базироваться на Wi-Fi. Для смартфонов мы с гораздо большей вероятностью можем ожидать наличие поддержки этой сети во включенном состоянии на мобильном телефоне

• наш бэдж (телефон) должен определять информационные узлы, а не наоборот. Это более безопасно. И возможный контент должен запрашиваться пользователем, а не навязываться ему некоторой автоматической системой.

• термин «распространение» для сообщений должен использоваться как синоним терминов «видим» или «доступен». Автоматическая загрузка сообщений не является обязательной, а даже наоборот, зачастую специально ограничивается.

Для дальнейшей разработки мы можем позаимствовать некоторые идеи из indoor positioning (позиционирования в помещениях).

Википедия определяет системы indoor positioning system (IPS) как сеть беспроводных устройств, которые используются для позиционирования объектов или людей внутри зданий. Очевидно, что конструкционные материалы зданий могут препятствовать распространению сигналов спутниковых систем позиционирования (например, GPS). Поэтому IPS чаще всего строятся на позиционировании относительно бли-

жайших объектов (предметов) с заранее известной позицией (местоположением). Единого подхода к построению IPS нет. Помимо традиционных радио-систем, могут использоваться оптические и акустические системы [4].

При этом каждый их подходов, как правило, предлагает свои собственные программные интерфейсы (API) и свои собственные протоколы.

Системы на базе RFID состоят из сканера и набора тегов. Теги бывают активные (с собственным источником питания) и пассивные. Каждый тег снабжен некоторым уникальным идентификатором, который используется для однозначного определения объекта (или человека) носителя тега.

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

Широкополосные системы позиционирования (Ultra-Wideband -UWB) используют опорную сеть сканеров, которые по задержке распространения сигнала от специальных меток позволяют определить местоположение этих самых меток (их носителей).

Системы позиционирования на базе WiFi, например, предлагаемые компанией Ekahau [5], представляют собой программные решения, которые используют инсталлированные в помещении точки доступа WiFi и WiFi интерфейс в мобильном устройстве. Могут также использоваться специальные теги WiFi, которые поддерживают сетевые стандарты 802.11.

Естественным большим преимуществом подобного рода систем является то, что они не требуют специального аппаратного обеспечения. Протоколы 802.11x — стандартизованы, и поэтому подобного рода системы позиционирования, в принципе, могут работать везде, где есть сети WiFi.

Положительным моментом является также то, что единая сеть исключает возможные проблемы и интерференцией радиосигналов, возможной в случае применения специализированных решений [5].

Позиционирование на основе Wi-Fi базируется на сетке хот-спотов Wi-Fi, обеспечивая точность в 20-30 метров. В целом, до наступления некоторого насыщения — чем больше точек вовлечено в процесс позиционирования, тем точнее будет результат.

В целом, WiFi позиционированию и используемым методам триангуляции посвящено достаточно много работ [6], но общая идея WiFi позиционирования остается везде одинаковой и базируется на использовании некоторой опорной сети с известными координатами узлов.

Как следует из предыдущего рассмотрения, все системы indoor -позиционирования основываются на карте тегов (устройств) с известным местоположением. Это очень важный момент. Карта тегов, по сути, должна быть подготовлена до начала использования сервиса.

Отсюда следуют две главные идеи для нового сервиса SpotEx:

• сервис будет поддерживать так называемые «ad_hoc» сети. Другими словами, для использования сервиса не нужны будут предварительные действия (усилия) по «разметке» опорной сети (WiFi устройств с известным местоположением)

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

На базе этих принципов и построен наш сервис SpotEx (Spot Expert) [7]. Что если мы возьмем от indoor positioning только самый первый шаг — определение видимых в данной точке сетей Wi-Fi. В реальности, это уже несет информацию о позиционировании. Если мобильный телефон «видит» какую-то точку доступа, то он находится недалеко от нее. А в качестве второго шага мы добавим возможность задавать правила видимости контента (продукции, если-то операторы), связанные с конкретной точкой доступа. Правила, по сути, описывают видимость точек доступа WiFi для мобильного аьонента. Заметим, что речь не идет о присоединении к конкретной сети, эта работа никак не затрагивает вопросы предоставления доступа или обеспечения безопасности. Мы говорим только о самом факте обнаружения сети. Все, что нужно — это идентификатор SSID и другая публичная информация о точке доступа.

Таким образом, сервис содержит следующие компоненты:

• база данных (хранилище) с правилами, ассоциированными с конкретными Wi-Fi сетями

• редактор правил. Это веб-приложение (в том числе и мобильный веб), которое позволяет создавать (редактировать) указанные выше правила

• клиентское мобильное приложение, которое может определять доступные (видимые) точки доступа Wi-Fi, проверять условия видимости по базе правил и предоставлять доступ к имеющемуся контенту.

Как это в итоге работает? Для существующей (или специально созданной) точки (нескольких точек) доступа WiFi мы можем задать набор правил (типа, ЕСЛИ «доступны точки доступа с идентификатора-

ми NET2 и NET2″ TO «показать заданный текст» и т.д.). Пользовательское приложение сканирует список доступных (видимых) сетей, определяет сработавшие правила (они могут зависеть не только от собственно видимости сети/сетей, но и от времени, истории пользователя и т.д.) и открывает пользователю соответствующий контент. Этот контент в текущей версии есть некоторый HTML текст (то есть может содержать любые доступные в мобильном браузере данные).

И правила и тексты для распространения определяются (задаются, модифицируются) владельцами точек доступа (WiFi сетей).

Возможные модели применения такого сервиса достаточно очевидны. Самое простое (по крайней мере, самое простое с точки зрения монетизации) — доставка предложений посетителям в торговых центрах. Это как автоматическая форма такого популярного в социальных сетях механизма как check-in. В социальных сетях, пользователь после авторизации может обозначить свое присутствие в данном магазине/центре и т.д., получив взамен какие-либо специальные предложения (купоны/скидки etc.) В модели SpotEx отпадает необходимость в авторизации, можно автоматически сделать текущие предложения доступными для тех мобильных абонентов, которые находятся в зоне действия соответствующей WiFi сети. При этом, в отличие от систем indoor -позиционирования, не требуется никакая предварительная разметка опорной сети. Более того, как будет показано ниже, такого рода сети могут создаваться и динамически.

По аналогичной схеме можно распространять новости в офисных или жилых комплексах, учебных кампусах. Это простая модель для распространения гипер-локальных новостей.

Существуют коммерческие сервисы, которые предлагают маркетинговые инструменты на базе Wi-Fi proximity. Но все они сводятся к попыткам показать какую-либо коммерческую рекламу пользователям, подключающимся к Wi-Fi сети [8]. Это, по сути, просто подмена начального экрана, который видит присоединяющийся к сети абонент. Подход же описанный в данной статье никак не касается соединения. Нам нужен только сам факт доступности Wi-Fi сети в данном месте.

Почему нам представляется, что системы правил предоставления данных, привязанные к точкам доступа WiFi интересны для применения? Одна из основных причин заключается в том, что речь не идет только о существующих публичных сетях Wi-Fi. Точка доступа WiFi может быть открыта непосредственно на мобильном телефоне. И, определяя данные для такой точки доступа, мы, по сути, определяем данные для конкретного телефона (или — для конкретного мобильного абонента).

Задание собственных точек доступа WiFi доступно, практически, для всех современных смартфонов. Вот пример для iPhone:

Рис. 1. Wi-Fi access point iPhone Такой же сервис есть для операционных систем Android и Symbian:

Рис. 2. Wi-Fi access point Android

Такая форма использования открывает возможность для нового класса систем — динамических LBS. Наши данные (контент) доступны в какой-то ограниченной области (то, что называется location aware data),

их доступность зависит от видимости некоторой точки доступа WiFi. И этот самый триггер видимости может не только менять свое состояние (включен/выключен), но и перемещаться в пространстве.

Таким образом, для создания набора правил нам нужен всего лишь один телефон. Любой владелец телефона является потенциальным контент-провайдером. Точка доступа, к которой будут привязываться правила, может быть открыта на телефоне, и этот же телефон может быть использован для создания/редактирования правил. Таким образом, владелец телефона, например, может предоставлять (показывать) какой-то персональный контент мобильным пользователям, которые в данный момент находятся поблизости. Это открывает ряд новых применений. Например, в дополнение к указанным выше применениям (автоматический check-in, местные новости), можно упомянуть еще и персональные объявления, а также различные игровые применения. Например, когда нужно найти в какой-то области контент, доступный вблизи определенных телефонов.

Как работает хранилище правил?

Каждое правило представляет собой продукцию (логическое заключение if-then). Уловная часть (в текущей версии) формируется как набор логических операций над следующими объектами: Wi-Fi network SSID, уровень сигнала, время дня, ID клиента (см. далее). Другими словами это набор предложений типа:

IF network_SSID IS ‘mycafe’ AND time is 1pm — 2pm THEN present the coupon for lunch

Поскольку правила представляют собой классическую продукционную систему, мы можем использовать для их обработки хорошо известные алгоритмы, типа Rete [9]. Этот известный алгоритм позволяет оптимизировать проверку большого числа правил за счет того, что пересортировывает сеть правил таким образом, чтобы максимально нагруженные условия проверялись в первую очередь [10].

Таким образом, описываемый сервис включает следующие компоненты:

10. базу данных правил (продукций), определенных для точек доступа WiFi сетей

11. клиентское приложение для смартфонов (в текущей версии -Android, в последующем и iPhone) которое обеспечивает проверку имеющихся правил и визуализацию контента

База данных (хранилище правил) имеет собственный веб-интерфейс (включая мобильный веб — это HTML5 приложение). Соответственно,

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

Дополнительно, хранилище предлагает открытый API (на базе REST), который позволит сторонним разработчикам пополнять (обновлять) базу данных программно. Это сделано для возможной интеграции с ERP системами. Например, программно наполнять систему предложениями, новостями и т.д.

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

Можно также отметить, что предложенный подход вовсе не требует наличия единой базы правил (правил для всех возможных точек доступа). Легко можно представить себе ситуацию, когда конфигурируемое клиентское приложение к какой-то частной базе или переключаться меду базами. С точки зрения использования API база правил есть просто некоторый URL для передачи REST запросов.

Помимо указанных выше возможностей применения как средства для автоматического check-in, отдельно хотелось отметить именно возможность распространения гипер-локальных новостей с помощью подобного рода сервиса

Согласно Wikipedia, гипер-локальный контент характеризуется тремя основными элементами. Во-первых, он описывает сущности и события внутри какой-то локальной области, во-вторых — ориентирован на резидентов этой локальной области и, последнее, создан также, преимущественно, локально [11].

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

Технически, набор правил видимости может быть описан для любой существующей Wi-Fi сети. Но как основной способ использования мы рассматриваем именно специально открытые точки доступа непосредственно на мобильном телефоне. Это позволяет создать довольно большой набор интересных сервисов. Например, персональные объявления. Объявления привязаны к конкретной Wi-Fi сети — то есть, по факту, к конкретному телефону. Естественно, что их доступность (видимость) зависит от текущего положения телефона. А, соответственно, для читателя таких сообщений это типичный context-aware контент.

Можно представить игровые схемы на базе этого подхода. Когда, например, требуется собрать сообщения (загрузить файлы и т.д.) с заданного количества телефонов в определенной области (городе и т.д.)

А возможность добавлять правила и контент программно позволяет строить динамические приложения.

Естественно, что доступ к базе данных будет требовать авторизации пользователей. А в том, что касается клиентов, по крайней мере, в текущей версии, аутентификации не предполагается. Клиенты в такой схеме полностью анонимны. Единственный элемент, который предполагается добавить — это уникальный идентификатор для клиента. Это реально просто уникальный номер (UUID, который может быть присвоен в момент самого первого обращения к системе и храниться на стороне клиента для всех последующих обращений (он будет подставляться в запросы автоматически). Это позволит просто различать клиентов, а также использовать эту информацию в правилах. Наличие уникального идентификатора позволит отслеживать историю обращений. Отметим, что в предложенной модели в качестве такого глобального UUID может выступать просто MAC-адрес клиента. Например, для модели автоматического check-in легко будет описать правила, которые учитывают частоту посещений:

IF предложение от ‘mycafe’ открывается 3-й раз в течении месяца THEN предложить специальный пакет.

Реализация мобильного клиента на платформе Android использует интерфейс WiFiManager из Android SDK. Этот пакет предоставляет доступ к базовой информации о сетях Wi-Fi. В частности, с его помощью можно получить следующие данные: SSID — имя сети BSSID — адрес точки доступа capabilities — схема аутентификации frequency — частота канала взаимодействия (MHz) level — измеренный уровень сигнала (в dBm)

В реальности, все эти параметры могут использоваться при описании правил видимости. Это только первая версия SpotEx [7] использует лишь SSID.

Последующие версии будут двигаться дальше в направлении использования телефона как сенсора присутствия (близости). В частности, возможно добавление Bluetooth.

Важный момент — это то, что рассматривается местоположение (близость) по отношению к другим телефонам.

Для платформы Android существует несколько приложений (например, Locale), которые могут выполнить какие-либо действия в зависимости от текущего местоположения. Например, выключить звук, включить/выключить WiFi. Иными словами, изменяют установки телефона в

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

Другим краеугольным моментом сервиса (подхода) является замена определения координат и последующего поиска данных прямым определением локального контента.

Как развитие предложенной системы в настоящий момент видятся следующие шаги. Во-первых, по аналогичной схеме может быть добавлена поддержка Bluetooth, так что продукции будут распознавать и узлы Bluetooth. Более долгосрочные цели — задействовать в продукционной модели и другие датчики, доступные на мобильном телефоне.

Во-вторых, будет расширен редактор правил. Он должен превратиться в полноценную мобильную CMS (Content Management System), включая такие элементы как, например, шаблоны для представления данных.

Далее, предложенный подход может быть использован и в других приложениях. Примером этого уже является разработанный сервис Wi-Fi chat [13]. Это тот же самый, по сути, механизм, что и в SpotEx (то есть WiFi proximity), но доступный контент фиксирован — это веб-чат и дискуссионная группа. То есть для всех пользователей вблизи точки доступа (вблизи мобильного телефона, в частности) предлагается веб-чат и форум для обсуждения. Возможные модели применения очевидны. Для Wi-Fi сети на транспорте, например — это средство общения пассажиров, для точки доступа, открытой на телефоне — это персональный коммуникационный инструмент без раскрытия идентификации и т.д.

В статье описывается новый метод из области context aware Computing, базирующийся на идеях Wi-Fi proximity. Сервис может использовать как существующие, так и специально созданные (описанные) точки доступа WiFi в качестве триггеров для активации доставки контента (или открытия доступа к нему) на мобильные терминалы. Сервис позволяет пользователям связать (ассоциировать) собственные данные с точками доступа WiFi, равно как и получать доступ к таким же данным, которые были созданы (добавлены) другими пользователями. Сервис может применяться, например, для распространения коммерческой информации в торговых центрах (скидки, купоны, специальные предложения и т.д.), для распространения гипер-локальных новостей (например, в кампусах, в офисных центрах), для создания персональных систем информационного вещания. Подобного рода системы могут

найти свое применение в проектах SmartCity, как средство информирования (оповещения) или раскрытия данных.

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

[1] Wikipedia: http://en.wikipedia.org/wiki/Context_awareness

[2] AT&T Laboratories Cambridge The Active Badge System http://www.cl.cam.ac.uk/research/dtg/attarchive/ab.html Washington

[3] Papandrea, Michela; Giordano, Silvia; Vanini, Salvatore; Cremonese, Piergiorgio; Proximity marketing solution tailored to user needs World of Wireless Mobile and Multimedia Networks (WoWMoM), 2010 IEEE International Symposium E-ISBN:978-1-4244-7263-5

[4] Wikipedia: Indoor positioning system http://en.wikipedia.org/wiki/Indoor_positioning_system

[5] Comparison of Wireless Indoor Positioning Technologies www.productivet.com/docs-2/Wireless_Comparison.pdf

[6] F. Lassabe, P. Canalda, P. Chatonnay and F. Spies «Indoor Wi-Fi positioning: techniques and systems» Annals of Telecommunications Volume 64, Numbers 9 -10, 651-664, DOI: 10.1007/s12243-009-0122-1

[7] SpotEx service: http://spotex.linkstore.ru

[8] Mobile Markerintg: http://www.media-2go.net/Solutions

[9] Charles L. Forgy, «RETE: A fast algorithm for the many pattern/many object pattern match problem», Artificial Intelligence 19(1):17-37, September 1982.

[10] About the Rete Algorithm: http://en.wikipedia.org/wiki/Rete_algorithm

[11] Ceccaroni, L.; Codina, V.; Palau, M.; Pous, M.; PaTac: «Urban, Ubiquitous, Personalized Services for Citizens and Tourists» Digital Society, 2009. ICDS ’09. Third International Conference 2009 , Page(s): 7 — 12

[12] Yanying Gu; Lo, A.; Niemegeers, I.; «A survey of indoor posit ioning systems for wireless personal networks» Communications Surveys & Tutorials, IEEE Volume: 11 Issue: 1

Как создать гиперссылку (А, Href, Target blank), как открывать ее в новом окне на сайте, а так же сделать картинку ссылкой в Html коде

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Сегодня я хочу поподробнее поговорить про то, что такое гиперссылка в языке Html, как можно размещать их в тексте на сайте, как сделать ссылкой картинку, как правильно использовать тег «A» и его атрибуты «Href» и «Target blank» (открыть в новом окне).

Гиперссылки или как сделать ссылки в HTML - коллаж на тему

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

P.S. Как бы я не хотел, но всего необходимого в одну (или даже несколько публикаций) не впихнешь (а дьявол, как говорится, кроется в деталях). В общем, есть вариант пройти онлайн-обучение по теме » Как создать сайт самостоятельно от TexTerra «. Все же, за 20 часов рассказать можно, наверное, все. Но это платно, само собой.

Что такое гиперссылка и якорь (anchor)

Итак, мы с вами уже успели познакомились с устаревшими и не рекомендуемыми для повседневного использования тэгами Font, Pre и Blockquote. Продолжим дальнейшее знакомство.

Для того, чтобы сделать гиперссылку в Html коде, нам тоже понадобится использовать тег A. Для него можно будет использовать различные атрибуты, задающие, например, URL адрес цели перемещения по этой ссылке (href) или же предписывающий открывать ее в новом окне (target=_blank). Но давайте поговорим обо все по порядку.

Как мы уже упомянули чуть выше, гиперссылки являются ключевым элементом языка Html и они позволяют ссылаться как на внутренние страницы своего же сайта, так и на другие ресурсы интернета. Скажу банальность — переход по ссылке осуществляется посредством щелчка мыши по ней (а вы как думали?).

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

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

Служебные гиперссылки создаются не с помощью тега „A“ (как обычные), а с помощью тега „Link“ . Задач, ими выполняемых, довольно много, например, с помощью них к Html документу подключаются внешние файлы с таблицами каскадных стилей CSS или, например, подключается иконка Фавикон.

Как выглядят служебные ссылки в коде веб-страницы

Но сегодня рассматривать то, как можно их создавать, мы не будем (до них еще дойдет время), а остановимся подробно на видимых ссылках , которые можно создать внутри области Body и, соответственно, они будут отображаться на web-странице.

Но, тем не менее, у всех гиперссылок (и видимых, и служебных) есть одно общее — все они имеют в своем составе обязательный атрибут Href . В нем, в качестве его значения, прописывается определенное место в документе (если оно было заранее помечено якорем) или же адрес самого документа в интернете (в Href прописывается URL адрес или, другими словами, путь до страницы или же какого-либо другого файла).

Гиперссылки являются элементами навигации, которые призваны вас переносить на другие документы в сети, либо осуществлять перемещение по содержимому уже просматриваемой вами web-страницы с помощью заранее сделанных в теле документа меток, которые называются еще Html якорями (anchor).

Тут может возникнуть некоторая путаница, т.к. в SEO под словом „анкор“ понимают текст ссылки, но в языке Html под „anchor“ подразумевают именно якорь (перевод слова anchor) или же метку в тексте, на которую потом можно будет сослаться.

 

Зачем в Html используются якоря (anchor)? Это довольно удобно при создании навигации по довольно длинной web-странице. Наверное, вы встречали в сети, когда на открытой вами страничке сразу под ее заголовком приведены названия разделов статьи, опубликованной на этой странице.

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

Как создаются якоря и хеш ссылки

Итак, наша задача в этом случае будет заключаться в установке в нужных местах страницы (документа) якорей, которые в общем случае будут выглядеть так:

Т.е. для того, чтобы сделать anchor, нужно в пустой тег гиперссылки „А“ прописать единственный атрибут „Name“, в качестве значения которого использовать уникальную метку, которая не должна содержать пробелов и в которой можно использовать символы латиницы, цифры, дефис и подчеркивание (в полной аналогии с правилами, по которым можно создавать Урлы — [0-9],[a-z],[A-Z],[_],[-]).

При этом, якорь не будет виден на самой странице, т.к. внутри элементов „A“ мы не прописали никакого текста. Однако, созданные таким вот образом anchor будут загрязнять Html код, и поэтому сейчас гораздо чаще чем якоря используют другой способ создания метки .

В этом случае не нужно создавать пустой тег „А“, а можно использовать любой из уже имеющихся в нужном месте текста элемент. Например, это могут быть теги заголовков H1-H6 или абзацев P.

Т.е. для создания аналога якоря достаточно прописать к любому тегу универсальный атрибут ID (его можно будет использовать для всех тегов, и на его основе, кстати, работают селекторы Id в CSS коде), например, так:

Так, теперь вместо создания нужного количества anchor, загрязняющих код и являвшихся на данный момент не валидными (не рекомендуемыми консорциумом W3C, который и разрабатывает язык Html), мы просто добавляет Id.

Нам нужно будет понять, как сделать ссылку на какой-либо из этих якорей (не важно каким образом созданных).

Оказывается, что для этого нужно будет, как обычно, внутри гиперссылки „А“ вставить обязательный атрибут „Href“, но значение которого будет формироваться из имени нужной метки (якоря) с предваряющим его знаком решетки „#“ , которая еще имеет название хеш (отсюда, кстати, и растут ноги у часто используемого названия: хеш ссылки):

Обратите внимание, что при переходе по такой гиперссылке, открытия нового документа не произойдет. Браузер прокрутит уже открытую страницу до такого положения, чтобы место в тексте, куда вы вставили anchor, заняло позицию в самом верху экрана. Логично было бы предположить, что значения всех меток (якорей) на одной странице должно быть уникальным во избежании непоняток для браузера.

Если вы делаете якорь с помощью атрибута ID в удобно расположенном для этого теге, то нужно учитывать, что кроме ограничения по типу используемых символов ([0-9],[a-z],[A-Z],[_],[-]), значение ID обязательно должно начинаться с символа латинской буквы .

Потом могут располагаться все допустимые символы в любом количестве, но первым символом метки якоря в значении атрибута ID обязательно должна быть буква (латинская, естественно). В противном случае такой якорь, вставленный в Html код, работать не будет (в большинстве браузеров).

Если вы не пропишите после символа решетки „#“ никакого названия метки якоря (href=»#»), то такая гиперссылка прокрутит страницу к началу . Именно так можно будет создать простейшую кнопку «Наверх», сделав ссылку с картинки (поговорим об этом чуть ниже) и вставив ее в шаблоне своего сайта, например, так:

Как может выглядеть кнопка Наверх с якорем вместо ссылки

Href — обязательный атрибут тега любой гиперссылки

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

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

Однако, напомню, при создании Урлов предпочтительнее использовать только следующие символы : ([0-9],[a-z],[A-Z],[_],[-]) и не использовать пробелы. Если мы рассматриваем содержимое атрибута Href для абсолютных ссылок, то схематично это можно будет представить так:

Схема, по которой формируется URL адрес гиперссылки

Если отбросить то, что вы редко будете использовать, то можно представить все то же самое в несколько упрощенном виде:

Кроме простого протокола http на просторах интернета вы можете встретить ссылки с протоколом https, который отличается тем, что в нем применяется шифрование. Последний применяется на сайтах, где есть необходимость защитить канал обмена данными между сервером и браузером клиента. Например, он используется на сервисах электронных денег Веб Мани.

В интернете вы можете встретить различные варианты содержимого Href, например, такой:

Или такой (с расширением для файла):

Сути это не меняет, а вот если в конце содержимого атрибута Href внутри гиперссылки будет стоять слэш, то это значит, что обращение идет уже не к файлу, а к папке, в которой будет искаться соответствующий индексный объект (подробнее об этом читайте в статье по url адресам упомянутой выше).

Точно таким же образом можно сделать ссылку для скачивания файла :

Как видите, данная гиперссылка ничем не отличается от обычной, просто браузер понимает, что файл с расширение zip ему нужно именно скачать, а не пытаться открыть для просмотра, как, например, файлы документа с расширением html. Хотя, вы все это можете настроить сугубо индивидуально в своем браузере под свои личные нужды.

Создать ссылку для скачивании файла по протоколу Ftp (тут можете почитать что такое Ftp) можно по аналогии, заменив только тип протолкала в самом начале содержимого атрибута Href:

Можно еще, например, создать гиперссылку с псевдопротоколом Mailto (почтовый), добавив в Href соответствующий Url:

При переходе по такой ссылке у вас на компьютере откроется используемая вами по умолчанию почтовая программа (в браузере можно настроить, чтобы линки с mailto в Href открывались в Gmail, в почтовом сервисе Яндекса и др.) и появится диалог создания нового письма, в котором в поле «Кому» будет вставлен приведенный в Href почтовый адрес.

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

Да и вообще, вебмастера последнее время практически перестали использовать гиперссылки с mailto в Href из-за того, что их парсят спамеры со всеми вытекающими последствиями. Лучше создать на сайте простенькую форму обратной связи, хотя у меня по-прежнему все представлено в классическом виде на странице с контактами. Надо бы поменять на досуге (или не надо. подумаю).

Как открыть ссылку в новом окне (target blank)

При создании ссылок в Html коде перед нами часто встает вопрос — в каком окне браузера открывать тот документ, на который она ведет? По умолчанию он будет открываться в уже имеющемся окне, перекрывая собой ту страницу, с которой была проставлена данная гиперссылка.

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

В поисковиках мне тоже нравится настраивать открывание ссылок в новом окне , чтобы выдача всегда была под рукой и всегда можно было бы в нее вернуться. Для этих целей, как уже упомянул, в Html используется специальный атрибут Target, который по умолчанию имеет значение Self:

Хотя, конечно же, target=»_self» в теге «A» никто не прописывает, ибо это значение используется по умолчанию, а вот если нужно открыть страницу в новом окне, то нужно будет прописать :

Обратите внимание, что значения атрибута Target пишутся со знаком подчеркивания вначале (_blank), ибо так оговорено в валидаторе Wc3, содержащем норы языка гипертекстовой разметки. Что примечательно, в Html предусмотрена возможность изменить вариант открытия ссылки принятый по умолчанию.

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

И теперь, если какую-то из ссылок вы захотите открывать в этом же окне, то в ее тег «A» вам уже нужно будет добавить target=»_self», ибо по умолчанию сейчас у вас теперь используется _blank. О, как.

Кстати, элемент Base я использовал описанным выше способом, но и заключал в него область кода с несколькими гиперссылками, которые нужно было открыть в новом окне. Т.е. я использовал еще и закрывающий тег Base внутри области Body, и все работало. Хотя такой код, конечно же, получается не валидным.

Цвета гиперссылок при наведении и переходе — как их поменять

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

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

По умолчанию, в чистом Html (без использования свойств CSS) ссылки выделяются подчеркиванием и могут иметь три варианта цвета :

  1. Синий — цвет для неотработанных ссылок, по которым пользователь еще не кликал
  2. Красный — его принимает гиперссылка сразу после щелчка по ней и до тех пор, пока запрошенный документ не будет загружен в браузер пользователя по сети (в современных условиях уловить этот момент бывает совсем не просто и всему виной повсеместно возросшая скорость интернета)
  3. Пурпурный — цвет для отработанных линков, по которым уже прошелся пользователь

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

  1. Link — задается цвет не посещенной ссылки
  2. Alink — цвет активной в данный момент, которая отрабатывается браузером
  3. Vlink — цвет уже посещенной пользователем гиперссылки

Помните, я уже писал о том, как задаются цвета в коде. В соответствии с этим упомянутые атрибуты могут выглядеть так:

Естественно, что здесь имелся в виду вариант чистого Html, когда по каким-либо причинам не удобно или не возможно использовать стилевое оформление, в противном случае все эти цвета можно будет легко задать и поменять с помощью CSS свойства Color.

Как сделать картинку ссылкой — два способа

Ну, тут совсем все просто. Т.к. тег вставки картинки (img) является строчным элементом, то по большому счету любое изображение можно считать просто буквой, разве что только большего размера.

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

Как может выглядеть ссылка ведущая с картинки

В случае чистого Html вокруг картинки, которую вы сделали ссылкой, у вас появится рамочка шириной в три пикселя . Причем цвет этой рамочки будет полностью соответствовать цветам ссылок принятым для вашего сайта (о них мы говорили чуть выше по тексту).

Чтобы удалить добавление рамочки к картинке, которую вы сделали гиперссылкой, вам нужно добавить атрибут Border со значением ноль в тег Img:

Убираем рамку с картинки являющейся ссылкой

Это очень простой способ сделать картинку ссылкой, но есть и более сложный вариант, называемый картой изображений . В этом случае, благодаря использованию довольно-таки большого числа Html тегов и атрибутов, можно сделать из одной картинки целую карту ссылок с активными областями (кликабельными и имеющими различные формы — прямоугольник, окружность, многоугольник).

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

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru

Комментарии и отзывы (37)

Классная статья! Кстати поздравляю вас Дмитрий с повышением ТИЦ до 110.

Пётр: спасибо, не ожидал и не планировал такой сравнительно большой рост Тиц. Получился, как бы, побочный продукт к ссылочному продвижению (вечные ссылки), вроде бы ничего большое в этом направлении и не делал.

Так как я только недавно начал продвижение через картинки — то сделать отдельно картинку ссылкой — это сейчас для меня актуальная тема. правда в скриптах я еще не очень.

Информативная статья, кое-что узнал нового). Кстати, поздравляю с таким хорошим ростом ТИЦ аж на 50 пунктов)). ТИЦ только бесплатными способами поднимали или сказалась покупка ссылок в GGL?

Alex: спасибо. Наверное, GGL, ибо начал с ним работать в начале мая и думаю, что сейчас, как раз, пора выплывать результатам потихоньку.

Весьма поучительная статья, хоть и всё знал, но такие статьи полезны как новичкам, ведь они ещё учаться; и уже бывалым SEO’шникам, ведь всегда полезно вспоминать о нужном.

Хорошая статья! Побольше таких вот полезных статей.

У меня сайт на вордпресс, и по умолчанию картинки если размещаешь открываются в новом окне.

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

Очень не удобно.

Хотел бы раз прописать и настроить вордпресс чтоб по умолчанию картинки открывались на в том самом окне — а в новом.

Например, если вы захотите, чтобы все гиперссылки вашего сайта открывались в новом окне, то вам нужно будет в области Head, используемого вами шаблона, прописать Html тег Base с атрибутом target=»_blank»:

Хотел уточнить — а это в стилях CSS искать надо эту область Head?

Найдя Head вставить в ту область код.

И зачем между кодом прописывать слово и какое надо? Ты написал ЧТО ТО ТАМ ЕЩЁ.

Должен быть какой то текст ? А какой именно прописать непонятно. За что он отвечает, или где будет выводится ?

Извини за глупые вопросы.

Одной из ваших статей , которая посвящена Яндекс Каталогу и Дмозу, вы указали, что Дмоз относиться к Гугл, это не так, достаточно набрать в Википедии и увидеть, что Дмоз-международный трастовый каталог, который принадлежит AOL.Поэтому попрошу, чтобы Вы Дмитрий исправили и не вводили в заблуждении начинающих вебмастеров.И прошу в знак благодарности опубликовать мой сайт blogostar.com

Статья очень хорошая. Мне нравится, что довольно много полезной инфы выклвадываете.

Здравствуйте, Дмитрий! Спасибо Вам за Вашу работу. Вас порекомендовал Владимир Беляев. Я зашла на сайт — и теперь все страницы распечатаю, возьму с собой в дорогу, буду читать на пляже, изучать. СПАСИБО! УСПЕХОВ!

Статьи супер, часто помогают подправлять всякие «корявости» совего блога, спасибо.

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

Эрнест, Эльвира и Сергей: спасибо за отзывы.

Олег: ну, как бы и сам хотел знать четкий ответ на этот вопрос. Но,думаю, что какого-то криминала здесь не будет, особенно, если у вас настроено добавление мета тега Canonical. Ну, а для создания кнопку «наверх» можно использовать скрипт в качестве адреса гиперссылки:

Спасибо, Дмитрий! Тег Canonical в плагине включен, скриптом пользуюсь, но еще в хеш-ссылках прописываю nofollow. Или это лишнее, учитывая, что ссылки внутренние?

Олег: скорее всего лишнее, но, опять же, я не эксперт.

Дмитрий, не скромничайте. Мне бы быть таким «не экспертом». Ваш блог для меня, как учебник. Привык доверять, тем кто на практике, а не в теории, показывает результат.

Nofollow уберу, тем более, что читал интервью у Шакина, где сотрудник Гугла говорил, что внутреенние ссылки закрывать не стоит.

Спасибо за ответы!

Подскажите, пожалуйста, как в joomla сделать так, чтобы при нажатии на ссылку для скачивания файла пользователю сообщалось, что он должен зарегистрироваться?

Не понимаю, зачем нужно делать кнопку «верх», если можно на странице нажать колесико мыши, появляется кнопочка и рули куда хочешь:влево — вправо, вниз — вверх.

Дмитрий! Если можно, ответьте пожалуйста на 2 вопроса:

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

Я на своем сайте использую функцию выравнивания текста по обеим сторонам. Получаются большие пробелы между словами. Как вы считаете, стоит ею пользоваться? Некоторые члены группы, в которой мы вместе осваиваем SEO, не очень хорошо к этому относятся. Ваше мнение для меня было бы важным, т. к. Вас тут знают и часто на Вас ссылаются. На комментарии я подписалась.

Проблема вот в чем — при клике на хэш-ссылке ВСЕГДА открывается новое окно, даже если прописано target=»_self». Бьюсь об монитор (( Как это лечится?

Спасиба ! Харшая статя, респект в будушем

Спасибо за статью. Но вот такой вопрос. Возможно ли сделать гиперссылку на определённый элемент, например в центре, другой страницы?

Спасибо, Дмитрий! Очень полезный и актуальный пост

Дмитрий, подскажите, где посмотреть в Ваших статьях, как поставить якоря в Joomla с использованием текстового редактора.

Здравствуйте! Подскажите, как прописать ссылку, чтобы она вела не просто на другую страницу сайта, но и к нужной метке (якорю) посредине контента. Чтобы человек, перейдя по ссылке, не прокручивал всю страницу, а сразу попадал в начало нужного абзаца. Спасибо!

Sorokin Vladimir: вот так #giperssylka-1

Значит если есть метка на странице

перекинет на место, помеченное якорем внутри страницы, а ссылка

перекинет к метке на другой странице. Или не так?

Все, разобрался, немного не так, как я написал, но все заработало. Еще раз спасибо!

Дмитрий, здравствуйте! Простите, но ведь атрибут target=»_blank» открывает ссылку в новой ВКЛАДКЕ. А есть ли подобный html-атрибут, открывающий ссылку в новом ОКНЕ, раскрывающемся при клике на ссылку где-то посередине существующей вкладки (страницы сайта)?

Ну, такого атрибута нет, но сделать это можно — http://web-first-step.ru/publ/script/vsplyvajushhee_okno/20-1-0-36

Спасибо, Дмитрий! Я тоже подобный скрипт использую. Надеялась просто, вдруг в html нечто подобное можно реализовать. Вроде, даже где-то встречала, но вот где… Решение такое изящное было. Видимо, приснилось.:)

Ещё раз, спасибо!

Удачи и дальнейших успехов и развития и Вам лично, и Вашему проекту!

Инга: спасибо и Вам тоже удачи и успехов!

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

Мне интересно, это дает что-либо с точки зрения Seo, исходя из вашей практики?

Я тоже за то, чтобы ссылки на странице сайта открывались в новом окне. Однако, недавно услышала мнение о том, что внутренние ссылки должны открываться в том же окне, в противном случае — это негативно сказывается на SEO.

А вы как считаете, это действительно плохо сказывается на SEO или нет?

Здравствуйте, Дмитрий. Как вы считаете, если я буду открывать все внутренние ссылки на своем сайте в новой вкладке через таргет бланк, не последует ли за это пессимизация (фильтры) в поисковых системах?

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

http://cyberleninka.ru/article/n/giper-lokalnyy-kontent-ekspertnaya-sistema-na-baze-wifi-proximity
http://ktonanovenkogo.ru/html/html-new/chto-takoe-giperssylka-html-yakor-anchor-kak-sozdat-ssylku-na-sajte-html-teg-a-href-target-blank-kak-sdelat-kartinku-ssylkoj-otkryt-v-novom-okne.html

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

X

Adblock
detector