Como funciona a retaguarda do Schema.org e por que desenvolvedores deveriam dar uma olhada
Você já se perguntou por que o Google sabe que uma página contém uma receita real de torta de maçã e não apenas um texto com ingredientes? Ou como clientes de email extraem um botão "Confirmar Reserva" direto para a lista de mensagens? A resposta é sempre a mesma — Schema.org. Mas por trás das familiares tags ItemProp e JSON-LD existe um repositório massivo no GitHub que opera por suas próprias regras, às vezes muito estranhas.
Decidi investigar o código-fonte deste projeto. Descobri que não é apenas um conjunto de guias de referência, mas um ambiente de software completo com sua própria lógica, testes e até uma filosofia de "desordem útil".
O que este projeto realmente é
Normalmente percebemos o Schema.org como documentação. Você vai lá, copia o tipo de dado que precisa, cola no seu código. Mas o repositório schemaorg/schemaorg é o que o próprio site é construído. Ele contém todas as definições de entidades, centenas de exemplos de marcação e software Python que transforma arquivos dispersos em uma estrutura que mecanismos de busca e navegadores podem entender.
O projeto é supervisionado pelo W3C, com discussões envolvendo pessoas do Google, Microsoft, Yahoo e Pinterest. Este é um daqueles casos raros onde gigantes da indústria concordaram em uma linguagem comum para não terem que reinventar a roda em cada canto da internet.
Não são apenas textos lá dentro
Se você olhar a pasta data/, pode ver como o padrão realmente "respira". Os schemas principais são armazenados em formato Turtle (.ttl). Este é um subconjunto de RDF que parece um conjunto de afirmações sobre o mundo.
Curiosamente, os desenvolvedores deliberadamente rejeitaram arquitetura "bonita". No README eles dizem explicitamente: não buscamos pureza ou elegância ontológica. Se a escolha for entre lógica estrita e facilitar a implementação para webmasters, eles escolherão a simplicidade. Por exemplo, podem adicionar um tipo de dado sem propriedades apenas por conveniência de marcação, mesmo que para fãs de modelagem formal isso pareça heresia.
Principais recursos do repositório
- Evolução Pragmática. A equipe do projeto é cética sobre reformulações grandes. Se você sugerir refazer a hierarquia de eventos porque "é mais correto", eles provavelmente vão ouvir educadamente e fechar o ticket. Eles se importam se as mudanças são realmente usadas pelos principais consumidores de dados (motores de busca ou serviços em nuvem).
- Testes locais. O repositório contém software que permite implementar uma cópia do Schema.org na sua máquina. Isso é útil se você quiser propor um novo tipo de dado e ver como ele se encaixa na estrutura geral.
- Exemplos em arquivos de texto. Uma grande parte do valor do projeto está nos arquivos
examples.txt. Milhares de casos estão reunidos lá: desde como marcar horários de ônibus até descrever procedimentos médicos complexos.
O lado técnico
O projeto roda em Python (versão 3.6+ necessária). Para rodar uma versão local do site, você precisará de Linux ou WSL2 se estiver no Windows.
O processo funciona aproximadamente assim:
- Instalar dependências.
- Executar os scripts de build.
- Obter um servidor local na porta 8080.
Todo o software é adaptado para criar uma cópia estática do site. A infraestrutura parece um pouco conservadora (usando Google App Engine, scripts Python específicos), mas funciona há anos e digere um volume colossal de edições da comunidade.
Por que um desenvolvedor deveria se aprofundar nisso
Pode parecer desnecessário clonar o repositório quando existe um site conveniente. Existem alguns cenários onde isso realmente ajuda.
Primeiro, quando a documentação padrão parece incompleta. No código-fonte na pasta data/, você frequentemente encontra comentários e rascunhos (na seção Pending) que ainda não foram lançados na página principal, mas já estão sendo implementados pelos principais players.
Segundo, se você está construindo sua própria ferramenta para parsing ou validação de dados. Usar schema.ttl como fonte primária é muito mais confiável do que tentar fazer scraping das páginas do site. São dados limpos, prontos para processamento por máquina.
Terceiro, é uma grande escola para aprender como gerenciar um enorme projeto open source onde os interesses de corporações e desenvolvedores comuns colidem. Dê uma olhada na Issue #1 — há anos de planejamento de releases acontecendo lá, e é um exemplo de como manter o caos sob controle.
Quem deveria assinar as atualizações
Se você trabalha com SEO, desenvolvimento de mecanismos de busca, ou simplesmente quer que seus dados na web sejam estruturados, este repositório deveria estar nos seus favoritos.
Não espere frameworks sofisticados ou código perfeito aqui. Este projeto é sobre conteúdo, acordos e pragmatismo. Às vezes é útil ver que até padrões de classe mundial não são construídos sobre fórmulas perfeitas, mas sobre compromissos e a experiência real de milhões de pessoas.
Para começar, basta dar uma olhada na pasta data/examples.txt. Acredite em mim, há muita coisa interessante lá sobre como uma internet estruturada deveria realmente parecer.
Projetos relacionados