>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Seguridad
HTML

Cómo funciona el backstage de Schema. org y por qué los desarrolladores deberían echarle un vistazo

6150 estrellas

¿Alguna vez te has preguntado cómo sabe Google que una página contiene una receta real de tarta de manzana y no solo un texto con ingredientes? ¿O cómo los clientes de correo electrónico extraen un botón de "Confirmar Reserva" directamente en la lista de mensajes? La respuesta siempre es la misma: Schema. org. Pero detrás de las familiares etiquetas ItemProp y JSON-LD hay un enorme repositorio de GitHub que opera bajo sus propias reglas, a veces muy extrañas.

Decidí profundizar en el código fuente de este proyecto. Resulta que no es solo un conjunto de guías de referencia, sino un entorno de software completo con su propia lógica, pruebas e incluso una filosofía de "desorden útil".

Qué es este proyecto en realidad

Normalmente percibimos Schema. org como documentación. Vas allí, copias el tipo de dato que necesitas, lo pegas en tu código. Pero el repositorio schemaorg/schemaorg es de lo que se construye el propio sitio. Contiene todas las definiciones de entidades, cientos de ejemplos de marcado y software en Python que transforma archivos dispersos en una estructura que los motores de búsqueda y los navegadores pueden entender.

El proyecto está supervisado por W3C, con discusiones que involucran a personas de Google, Microsoft, Yahoo y Pinterest. Este es uno de esos casos raros en los que los gigantes de la industria se pusieron de acuerdo en un lenguaje común para no tener que reinventar la rueda en cada rincón de internet.

No solo son textos dentro

Si echas un vistazo a la carpeta data/, puedes ver cómo el estándar realmente "respira". Los esquemas centrales se almacenan en formato Turtle (.ttl). Este es un subconjunto de RDF que parece un conjunto de afirmaciones sobre el mundo.

Curiosamente, los desarrolladores rechazaron deliberadamente una arquitectura "hermosa". En el README dicen explícitamente: no aspiramos a la pureza ontológica ni a la elegancia. Si la elección está entre una lógica estricta y facilitar la implementación a los webmasters, elegirán la simplicidad. Por ejemplo, pueden añadir un tipo de dato sin propiedades solo por conveniencia del marcado, aunque para los fans del modelado formal esto suene como herejía.

Características principales del repositorio

  1. Evolución pragmática. El equipo del proyecto es escéptico ante las reformas importantes. Si sugieres reformular la jerarquía de eventos porque "es más correcto", lo más probable es que escuchen cortésmente y cierren el ticket. Les importa si los cambios son realmente utilizados por los principales consumidores de datos (motores de búsqueda o servicios en la nube).
  2. Pruebas locales. El repositorio contiene software que te permite desplegar una copia de Schema. org en tu máquina. Esto es útil si quieres proponer un nuevo tipo de dato y ver cómo encaja en la estructura general.
  3. Ejemplos en archivos de texto. Una gran parte del valor del proyecto está en los archivos examples.txt. Miles de casos están recopilados allí: desde cómo marcar horarios de autobús hasta describir procedimientos médicos complejos.

El lado técnico

El proyecto funciona con Python (se requiere versión 3.6+). Para ejecutar una versión local del sitio, necesitarás Linux o WSL2 si estás en Windows.

El proceso se ve aproximadamente así:

  • Instalar dependencias.
  • Ejecutar los scripts de compilación.
  • Obtener un servidor local en el puerto 8080.

Todo el software está adaptado para crear una copia estática del sitio. La infraestructura parece un poco conservadora (usando Google App Engine, scripts específicos de Python), pero ha funcionado durante años y digiere un volumen colosal de ediciones de la comunidad.

Por qué un desarrollador debería adentrarse en esto

Puede parecer innecesario clonar el repositorio cuando existe un sitio web conveniente. Hay un par de escenarios donde realmente ayuda.

Primero, cuando la documentación estándar parece incompleta. En el código fuente de la carpeta data/, a menudo puedes encontrar comentarios y borradores (en la sección Pending) que aún no se han desplegado en la página principal, pero ya están siendo implementados por los principales actores.

Segundo, si estás construyendo tu propia herramienta para análisis o validación de datos. Usar schema.ttl como fuente primaria es mucho más confiable que intentar extraer las páginas del sitio web. Son datos limpios, listos para procesamiento por máquina.

Tercero, es una gran escuela para aprender a gestionar un enorme proyecto de código abierto donde chocan los intereses de las corporaciones y los desarrolladores regulares. Echa un vistazo al Issue #1: hay años de planificación de lanzamientos allí, y es un ejemplo de cómo mantener el caos bajo control.

Quién debería suscribirse a las actualizaciones

Si trabajas en SEO, desarrollo de motores de búsqueda o simplemente quieres que tus datos en la web estén estructurados, este repositorio debería estar en tus marcadores.

No esperes frameworks elegantes ni código perfecto aquí. Este proyecto se trata de contenido, acuerdos y pragmatismo. A veces es útil ver que incluso los estándares de clase mundial no se construyen sobre fórmulas perfectas, sino sobre compromisos y la experiencia real de millones de personas.

Para empezar, solo echa un vistazo a la carpeta data/examples.txt. Confía en mí, hay mucho material interesante allí sobre cómo debería verse realmente un internet estructurado.

Proyectos relacionados