Acho que esses campos @id deveriam ser URLs funcionais, porque o W3.org diz:
Para poder referenciar nós externos em um grafo, é importante que os nós tenham um identificador. Os IRIs são um conceito fundamental de Linked Data; para que os nós sejam verdadeiramente vinculados, a desreferenciação do identificador deve resultar em uma representação desse nó. Isso pode permitir que um aplicativo recupere mais informações sobre um nó.
Eu me pergunto se isso é um problema com a forma como o validador está exibindo o id. Pelo que posso dizer, o id é extraído do markup e não é algo que estamos definindo nós mesmos, por exemplo:
Se você clicar nessa seção de id no validador, ele destaca corretamente a postagem com o id correspondente… então parece que o validador consegue identificá-lo adequadamente.
Eu noto esse comportamento em outros sites com valores @id, por exemplo, nos dados de schema desta pergunta do stackoverflow.com:
Isso é interessante. Eu não pensei em verificar o código-fonte HTML e apenas assumi que era JSON-LD.
O Google usa dados de schema, mas não tenho certeza se eles usam esse específico. A documentação do schema.org não é escrita de forma muito clara.
Parece que o Discourse está colocando várias DiscussionForumPostings em cada tópico, mas o exemplo na documentação parece que DiscussionForumPosting pode se referir apenas ao tópico principal e não aos comentários? A documentação lista um campo comment com um Comment (singular), embora a descrição esteja redigida no plural.
Eu acabei de ver como o Invison faz isso e ele usa JSON-LD, colocando objetos Comment em um campo comment. Parece que é muito texto extra para enviar ao navegador.
Eu não sei qual é a resposta, mas tentarei pesquisar mais tarde.
Acontece que estou a espreitar neste fórum, o que é conveniente. Eu possuo o código do Google que analisa isso.
O tópico vinculado é uma boa resposta à tangente do comentário. Abordarei o resto aqui.
É essencialmente não padrão interpretar atributos de ID HTML como IDs de nó. Isso foi feito no início da análise de microdados do Google, provavelmente por razões obscuras. Você deve usar itemid se quiser fazer isso explicitamente. Espero remover esse hack algum dia, mas é difícil remover algo assim sem perdas.
Em segundo lugar, os IRIs não precisam ser referenciáveis. Essa é uma sugestão do W3C, mas muitos IRIs não são e o Google definitivamente não o exige.
Isso é um problema apenas se causar a fusão inadvertida de nós nos dados estruturados, como se você usasse um itemid de mesmo valor em outro lugar no HTML. Caso contrário, é apenas uma estranheza que pode ser ignorada.
Ah, e por favor, não mude para JSON-LD. Honestamente, isso é preferível para marcação com uso intensivo de texto, como fóruns. Ter que duplicar o conteúdo textual é bobo. É simplesmente mais fácil de escrever, razão pela qual temos incentivado isso.