Как устроено закулисье Schema.org и почему разработчикам стоит туда заглянуть

02 Jun, 2026

Вы когда-нибудь задумывались, почему Google понимает, что на странице лежит именно рецепт шарлотки, а не просто текст с ингредиентами? Или как почтовые клиенты вытаскивают кнопку «Подтвердить бронирование» прямо в список писем? Ответ всегда один — Schema.org. Но за привычными тегами ItemProp и JSON-LD скрывается огромный репозиторий на GitHub, который живет по своим, местами очень странным правилам.

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

Что это за проект на самом деле

Обычно мы воспринимаем Schema.org как документацию. Зашел, скопировал нужный тип данных, вставил в код. Но репозиторий schemaorg/schemaorg — это то, из чего собирается сам сайт. Здесь лежат все определения сущностей, сотни примеров разметки и софт на Python, который превращает разрозненные файлы в структуру, понятную поисковикам и браузерам.

Проект курирует W3C, а в обсуждениях участвуют ребята из Google, Microsoft, Yahoo и Pinterest. Это тот редкий случай, когда гиганты индустрии договорились об общем языке, чтобы не изобретать велосипед в каждом углу интернета.

Внутри не только тексты

Если заглянуть в папку data/, можно увидеть, как на самом деле «дышит» стандарт. Основные схемы хранятся в формате Turtle (.ttl). Это подмножество RDF, которое выглядит как набор утверждений о мире.

Реклама

Интересно, что разработчики сознательно отказались от «красивой» архитектуры. В README они прямо говорят: мы не стремимся к онтологической чистоте или элегантности. Если выбор стоит между строгой логикой и тем, чтобы вебмастеру было проще внедрить код, они выберут простоту. Например, они могут добавить тип данных без свойств просто для удобства разметки, хотя для фанатов формального моделирования это звучит как ересь.

Главные особенности репозитория

  1. Pragmatic Evolution. Команда проекта скептически относится к глобальным перестройкам. Если вы предложите переделать иерархию событий, потому что «так правильнее», вас, скорее всего, вежливо выслушают и закроют тикет. Им важно, чтобы изменения реально использовались крупными потребителями данных (поисковиками или облачными сервисами).
  2. Локальные тесты. В репозитории лежит софт, который позволяет развернуть копию Schema.org у себя на машине. Это нужно, если вы хотите предложить новый тип данных и посмотреть, как он впишется в общую структуру.
  3. Примеры в текстовых файлах. Огромная часть ценности проекта — в файлах examples.txt. Там собраны тысячи кейсов: от того, как разметить расписание автобусов, до описания сложных медицинских процедур.

Техническая сторона вопроса

Проект крутится на Python (требуется версия 3.6+). Чтобы запустить локальную версию сайта, вам понадобится Linux или WSL2, если вы сидите на Windows.

Процесс выглядит примерно так:

  • Ставим зависимости.
  • Запускаем скрипты сборки.
  • Получаем локальный сервер на порту 8080.

Весь софт заточен под создание статической копии сайта. Инфраструктура кажется немного консервативной (использование Google App Engine, специфичные скрипты на Python), но она работает годами и переваривает колоссальный объем правок от сообщества.

Зачем разработчику лезть в эти дебри

Казалось бы, зачем клонировать репозиторий, если есть удобный сайт? Есть пара сценариев, когда это реально выручает.

Во-первых, когда стандартная документация кажется неполной. В исходниках в папке data/ часто можно найти комментарии и черновые наброски (в секции Pending), которые еще не выкатили на главную страницу, но которые уже внедряются крупными игроками.

Во-вторых, если вы делаете свой инструмент для парсинга или валидации данных. Использовать schema.ttl как первоисточник гораздо надежнее, чем пытаться скрапить страницы сайта. Это чистые данные, готовые для машинной обработки.

В-третьих, это отличная школа того, как управлять огромным open-source проектом, где сталкиваются интересы корпораций и обычных разработчиков. Посмотрите на Issue #1 — там годами идет планирование релизов, и это пример того, как держать хаос под контролем.

Кому стоит подписаться на обновления

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

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

Для старта достаточно просто заглянуть в папку data/examples.txt. Поверьте, там найдется много интересного о том, как на самом деле должен выглядеть структурированный интернет.