Pull to refresh

Внедрение семантических данных в HTML

Reading time 4 min
Views 1.8K
Тоже хочу принять участие в размышлениях на тему семантического веба, начатого здесь и здесь.

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


Зачем мне это нужно?


Ответ очень простой — необходимость отделять зерна от плевел, т.е. «информацию» от «информационного шума».

Как это может качественно повлиять на веб:
  • если ввести в поисковую систему запрос, содержащий название некого топика или новости, то можно заметить, что 80% результатов — это один и тот же текст, «внедренный» в графический интерфейс того или иного ресурса
  • концентрация на информации, а не на баннерах, списков ссылок, друзей друзей и т.д.
  • более точный поиск за счет учета лишь релевантного контента
  • ваш вариант?

Что мы имеем на данный момент?


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

На данный момент мы оперируем такими понятиями как URI (Uniform Resource Identifier), онтологии, которые описываются такими языками как RDF и OWL и др.

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

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

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

Ручной труд или автоматизация?


Второй стоп-фактор — это то, что семантические данные необходимо вводить самостоятельно, в связи с чем возникает вопросы о том, кто это будет делать и кто за это будет платить.

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

Постановка задач и варианты их решения


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

С точки зрения автора сайта нет смысла заниматься семантикой, потому что:
  • это требует дополнительных трудозатрат (это еще полбеды)
  • это требует обучения новым стандартам и языкам (тот же RDF и OWL)
  • отсутствие или слабая поддержка семантики поисковыми системами
Если первый пункт — это больше вопрос денежный и часто вполне решаемый, третий — зависит от поисковых лидеров, то со вторым пунктом попробуем что-то сделать.

Интеграция семантических данных


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

Пример:

<div id=”content” xml:semantic=”keywords: mathcad; contentType: content; category: math;”> Mathcad is desktop software for performing and documenting engineering and scientific calculations.

Для того, чтобы код был валидный, дописываем схему:

<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
[
<!ATTLIST div keywords CDATA #IMPLIED>
<!ATTLIST div contentType (copyright|content|definition|links|references| bibliographic|related|image) CDATA #IMPLIED>
<!ATTLIST div category (Business_Finance|Entertainment_Culture| Environment|Health_Medical_Pharma|Hospitality_Recreation|Law_Crime| Politics|Sports|Technology_Internet|Weather|Other) CDATA #IMPLIED>
...
<!ATTLIST div progLang CDATA #IMPLIED>
]>


В нотации CSS:

<div id=”content” xml:semanticClass=”mySemanticClass”> Mathcad is desktop software for performing and documenting engineering and scientific calculations.

.mySemanticClass {
keywords: mathcad;
contentType: content;
category: math;
}

В наш HTML файл семантический файл подключаем как и простой CSS файл.

Атрибуты и категории


В своей работе я выделил основные атрибуты, которые хотелось бы иметь уже сейчас. Вот их список:
  • contentType defines content type (top, bottom, advertisement, content, links, references, bibliographic, related, image, video etc.);
  • keywords defines the relevant keywords or phrases for block content; synonyms defines related terms and synonyms (e.g. «Obama» and «president»;
  • category defines content category (Business_Finance, Entertainment_Culture, Environment, Health_Medical_Pharma, Hospitality_Recreation, Law_Crime, Politics, Sports, Technology_Internet, Weather, Other) [6].
  • importance defines content importance and can be a float value from 0 to 1;
  • ref attribute defines additional reference related with block content;
  • parent is a identifier of parent block which says that it must be considered with parent block;
  • author defines copyrights and can be used for citations, proverbs, programming code;
  • progLang defines a programming language.
Рассмотрим преимущества такого подхода:
  • интегрировать семантические данные можно сразу на этапе создания HTML
  • это может делать и верстальщик и программист, который знаком с CSS (а таких гораздо больше чем знатоков RDF)
Ну да, мечты, мечты…

Но ведь будущее уже здесь!


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

P.S. Как кто-то хорошо подметил, за идею не бьют. Поэтому было бы интересно обсудить и такой вариант развития semantic web. Спасибо за внимание!
Tags:
Hubs:
+19
Comments 18
Comments Comments 18

Articles