¿Error en los datos de Schema.org para DiscussionForumPosting?

He notado un error en los datos de Schema.org para DiscussionForumPosting.

Cuando ejecuto un tema aleatorio de Discourse a través de el validador, muestra el campo @id con URL que no existen.

Aquí hay un ejemplo con una ruta final de /post_2 (es un error 404):

Creo que esos campos @id deberían ser URL que funcionen, porque W3.org dice:

Para poder referenciar externamente nodos en un grafo, es importante que los nodos tengan un identificador. Los IRI son un concepto fundamental de Linked Data, para que los nodos estén verdaderamente enlazados, la desreferenciación del identificador debería resultar en una representación de ese nodo. Esto puede permitir a una aplicación recuperar más información sobre un nodo.

1 me gusta

Me pregunto si esto es un problema de cómo el validador muestra el id. Por lo que puedo decir, el id se extrae del marcado y no es algo que definamos nosotros mismos, por ejemplo:

<div id='post_1' itemscope itemtype='http://schema.org/DiscussionForumPosting' class='topic-body crawler-post'>

id='post_1 siendo el @id

Si haces clic en esa sección de id en el validador, resalta correctamente la publicación con el id coincidente… así que parece que el validador puede identificarlo correctamente.

Noto este comportamiento en otros sitios con valores @id, por ejemplo, en los datos del esquema para esta pregunta de stackoverflow.com:

Screenshot 2023-03-28 at 5.59.12 PM

Esto tiene el mismo problema, https://stackoverflow.com/questions/7227202/answer-38775925 no es en realidad una URL válida, sufre del mismo error donde debería ser un # en lugar de un / https://stackoverflow.com/questions/7227202#answer-38775925.

¿Hay alguna indicación de que esto esté causando un problema en cómo se utilizan estos datos en la práctica en algún lugar?

1 me gusta

Eso es interesante. No pensé en revisar el código fuente HTML y simplemente asumí que era JSON-LD.

Google utiliza datos de esquema, pero no estoy seguro de si utilizan ese en específico. La documentación de schema.org no está escrita muy claramente.

Parece que Discourse está colocando múltiples DiscussionForumPosting en cada tema, pero el ejemplo en la documentación parece indicar que DiscussionForumPosting podría referirse solo al tema principal y no a los comentarios. La documentación enumera un campo comment con un Comment (singular), aunque la descripción está redactada en plural.

image

Acabo de ver cómo lo hace Invison y utiliza JSON-LD, colocando objetos Comment en un campo comment. Parece que es mucho texto adicional para enviar al navegador.

No sé cuál es la respuesta, pero intentaré investigar más tarde.

1 me gusta

¿Es esto relevante?

3 Me gusta

Me da la casualidad de que estoy merodeando por este foro, lo cual es conveniente. Poseo el código de Google que analiza eso.

El hilo enlazado es una buena respuesta a la tangente del comentario. Abordaré el resto aquí.

Es esencialmente no estándar interpretar los atributos de ID de HTML como ID de nodo. Se hizo al principio del análisis de microdatos de Google, probablemente por razones difusas. Se supone que debes usar itemid si quieres hacer eso explícitamente. Espero eliminar ese hack algún día, pero es difícil sacar algo así sin pérdidas.

En segundo lugar, los IRI no tienen que ser resolubles. Esa es una sugerencia de W3C, pero muchos IRI no lo son y Google definitivamente no lo requiere.

Esto solo es un problema si hace que los nodos en los datos estructurados se fusionen inadvertidamente, como si usaras un itemid del mismo valor en otro lugar del HTML. De lo contrario, es solo una rareza que se puede ignorar.

Ah, y por favor, no cambies a JSON-LD. Sinceramente, eso es preferible para el marcado con mucho texto, como los foros. Tener que duplicar el contenido textual es tonto. Es simplemente más fácil de escribir, por eso lo hemos estado promocionando.

9 Me gusta

¡Gracias por observar @rrlevering! Parece seguro cerrar este problema y actualizaremos el esquema de temas/publicaciones en Different schema type for Topics and Posts

5 Me gusta

Este tema se cerró automáticamente después de 2 días. Ya no se permiten nuevas respuestas.