Трохи про microdata

Доброго вам дня! У цій статті я б хотів розповісти про мікроданних і про словник schema.org. Про цієї чудової технології вже розповідали на Хабре два рази, але в них не було освітлено кілька важливих моментів.

У HTML5 крім усього іншого є стандарт покликаний привнести трохи семантики в Інтернет. Звичайно вже існують такі стандарти як RDF і microformats але microdata був розроблений з урахуванням їхніх помилок і дає чимало булочок web-майстрам. Так, RDF має на увазі дублювання існуючих даних, що, з урахуванням обсягів даних, може бути накладно. Мікроформати, в свою чергу дозволяють розмітити вже існуючі документи, але відбирають такі корисні атрибути як class.

Для того щоб зробити html елемент вузлом мікроданних, досить додати йому атрибут itemscope. Непогано було б дати йому ім'я - для цього використовується атрибут itemtype = "name_of_class". а для точної характеристики використовуються вкладені елементи з атрибутом itemprop = "name_of_property". Але в деяких випадках пари ключ -> значення не вистачає, і тоді в силу вступають вкладені вузли. Для їх позначення після атрибута itemprop потрібно додати атрибути itemscope і itemtype.

У деяких властивостей є кілька можливих властивостей, і використання, наприклад, російської мови може обернутися проблемою. Але, такі властивості можна позначити тегом link:

У деяких випадках контент видно користувачам, але не доступний пошуковим системам, наприклад - картинка. Тоді в хід йде тег meta:

У прикладах ви помітили, що я використовую в якості імен класів URI. Це поволяет їх стандартизувати, адже непогано якщо про ваших класах знає хтось ще. На даний момент мені відомо три словника - microformats.org. data-vocabulary.org і shema.org. Переважно останній, так як його підтримують найбільші пошукові системи (Google, Yahoo! Yandex і Bing) і він збирає в собі багато інших стандарти, наприклад c той же data-vocabulary.org. Кожен клас може мати спадкоємця і все властивості батька передаються спадкоємцю. Список всіх класів можна знайти тут.

Microdata DOM API

Це API спрощує роботу з вузлами мікроданних, на даний момент має метод document.getItems (). При виклику без параметра поверне всі елементи які є невложеннимі вузлами мікроданних. domElement.properties поверне об'єкт типу HTMLPropertiesCollection а domElement.itemValue дозволить отримати або змінити значення елемента має атрибут itemprop. Але, на жаль, Microdata DOM API підтримується тільки в Opera.

Чи потрібно це?

Цілком можливо, що у вас з'явиться це питання. Якщо ви вже використовуєте в своєму проекті мікроформати або що-небудь подібне, ви можете використовувати їх далі (але не факт, що вони підтримуються пошуковими системами). Якщо ж у вашому проекті ще немає семантічесой розмітки, то було б непогано її додати.

Використані матеріали: