Errore nei dati Schema.org per DiscussionForumPosting?

Ho notato un bug nei dati di Schema.org per DiscussionForumPosting.

Quando eseguo un argomento casuale di Discourse attraverso il validatore, mostra il campo @id con URL che non esistono.

Ecco un esempio con un percorso finale di /post_2 (è un errore 404):

Penso che quei campi @id dovrebbero essere URL funzionanti, perché W3.org dice:

Per poter fare riferimento esternamente ai nodi in un grafo, è importante che i nodi abbiano un identificatore. Gli IRI sono un concetto fondamentale dei Linked Data, affinché i nodi siano veramente collegati, la risoluzione dell’identificatore dovrebbe produrre una rappresentazione di quel nodo. Ciò potrebbe consentire a un’applicazione di recuperare ulteriori informazioni su un nodo.

1 Mi Piace

Mi chiedo se questo sia un problema di come il validatore visualizza l’id. Per quanto ne so, l’id viene estratto dal markup e non è qualcosa che definiamo noi stessi, ad esempio:

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

id='post_1 essendo l’@id

Se fai clic su quella sezione dell’id nel validatore, viene evideniato correttamente il post con l’id corrispondente… quindi sembra che il validatore possa identificarlo correttamente.

Noto questo comportamento su altri siti con valori @id, ad esempio nei dati schema per questa domanda di stackoverflow.com:

Screenshot 2023-03-28 at 5.59.12 PM

Questo presenta lo stesso problema, https://stackoverflow.com/questions/7227202/answer-38775925 non è in realtà un URL valido, soffre dello stesso errore in cui dovrebbe esserci un # invece di un / https://stackoverflow.com/questions/7227202#answer-38775925.

Ci sono indicazioni che questo stia causando problemi nell’uso pratico di questi dati?

1 Mi Piace

È interessante. Non avevo pensato di controllare il codice sorgente HTML e ho semplicemente presunto che fosse JSON-LD.

Google utilizza i dati schema, ma non sono sicuro che utilizzino quello specifico. La documentazione di schema.org non è scritta molto chiaramente.

Sembra che Discourse stia inserendo più DiscussionForumPosting per ogni argomento, ma l’esempio nella documentazione sembra indicare che DiscussionForumPosting potrebbe riferirsi solo all’argomento principale e non ai commenti? La documentazione elenca un campo comment con un Comment (singolare) anche se la descrizione è formulata al plurale.

image

Ho appena controllato come fa Invison e utilizza JSON-LD, inserendo oggetti Comment in un campo comment. Sembra che sia un sacco di testo aggiuntivo da inviare al browser.

Non so quale sia la risposta, ma cercherò di approfondire più tardi.

1 Mi Piace

Questa è pertinente?

3 Mi Piace

Mi capita di essere in agguato su questo forum, il che è comodo. Possiedo il codice Google che analizza questo.

Il thread collegato è una buona risposta alla tangente del commento. Affronterò il resto qui.

È essenzialmente non standard interpretare gli attributi ID di HTML come ID di nodo. È stato fatto all’inizio dell’analisi microdata di Google, probabilmente per ragioni vaghe. Dovresti usare itemid se vuoi farlo esplicitamente. Spero di rimuovere quell’hack un giorno, ma è difficile rimuovere qualcosa del genere senza perdite.

In secondo luogo, gli IRI non devono essere dereferenziabili. Questo è un suggerimento del W3C, ma molti IRI non lo sono e Google non lo richiede assolutamente.

Questo è un problema solo se causa la fusione involontaria di nodi nei dati strutturati, come se avessi usato un itemid dello stesso valore altrove nell’HTML. Altrimenti è solo una stranezza che può essere ignorata.

Oh, e per favore non passare a JSON-LD. Onestamente, è preferibile per markup pesanti di testo come i forum. Dover duplicare i contenuti testuali è sciocco. È semplicemente più facile da scrivere, motivo per cui lo stiamo promuovendo.

9 Mi Piace

Grazie per aver seguito @rrlevering! Sembra che sia sicuro chiudere questo problema e aggiorneremo lo schema di argomento/post in Different schema type for Topics and Posts

5 Mi Piace

Questo argomento è stato chiuso automaticamente dopo 2 giorni. Non sono più consentite nuove risposte.