Ich denke, dass diese @id-Felder funktionierende URLs sein sollen, denn W3.org sagt:
Um Knoten in einem Graphen extern referenzieren zu können, ist es wichtig, dass Knoten eine Kennung haben. IRIs sind ein grundlegendes Konzept von Linked Data. Damit Knoten wirklich verknüpft sind, sollte das Dereferenzieren der Kennung eine Darstellung dieses Knotens ergeben. Dies kann es einer Anwendung ermöglichen, weitere Informationen über einen Knoten abzurufen.
Ich frage mich, ob dies ein Problem damit ist, wie der Validator die ID anzeigt. Soweit ich das beurteilen kann, wird die ID aus dem Markup übernommen und nicht von uns selbst definiert, zum Beispiel:
Wenn Sie diesen ID-Bereich im Validator anklicken, wird der Beitrag mit der passenden ID korrekt hervorgehoben … es scheint also, dass der Validator ihn richtig identifizieren kann.
Ich bemerke dieses Verhalten auch auf anderen Websites mit @id-Werten, zum Beispiel in den Schema-Daten dieser stackoverflow.com-Frage:
Das ist interessant. Ich hätte nicht gedacht, dass ich den HTML-Quellcode überprüfen würde und ging einfach davon aus, dass es sich um JSON-LD handelt.
Google verwendet Schemadaten, aber ich bin mir nicht sicher, ob sie diese spezielle verwenden. Die schema.org-Dokumente sind nicht sehr klar geschrieben.
Es sieht so aus, als ob Discourse mehrere DiscussionForumPostings für jedes Thema einfügt, aber das Beispiel in den Dokumenten sieht so aus, als ob DiscussionForumPosting sich möglicherweise nur auf das Hauptthema und nicht auf die Kommentare bezieht? Die Dokumente listen ein comment-Feld mit einem Comment (Singular) auf, obwohl die Beschreibung in Pluralform formuliert ist.
Ich habe gerade nachgesehen, wie Invison es macht, und es verwendet JSON-LD und fügt Comment-Objekte in ein comment-Feld ein. Es sieht so aus, als wäre das viel zusätzlicher Text, der an den Browser gesendet werden muss.
Ich weiß nicht, was die Antwort ist, aber ich werde versuchen, später mehr darüber zu recherchieren.
Ich treibe mich zufällig in diesem Forum herum, was praktisch ist. Ich besitze den Google-Code, der das parst.
Der verlinkte Thread ist eine gute Antwort auf den Nebenthema. Den Rest werde ich hier behandeln.
Es ist im Grunde nicht standardmäßig, HTML-ID-Attribute als Knoten-IDs zu interpretieren. Dies geschah ganz am Anfang des Google-Microdata-Parsings, wahrscheinlich aus unklaren Gründen. Sie sollten itemid verwenden, wenn Sie dies explizit tun möchten. Ich hoffe, diesen Hack eines Tages entfernen zu können, aber es ist schwierig, so etwas ohne Verluste herauszuziehen.
Zweitens müssen IRIs nicht auflösbar sein. Das ist ein Vorschlag von W3C, aber viele IRIs sind es nicht und Google verlangt es definitiv nicht.
Dies ist nur dann ein Problem, wenn Knoten in den strukturierten Daten unbeabsichtigt zusammengeführt werden, z. B. wenn Sie an anderer Stelle im HTML denselben Wert für itemid verwenden. Ansonsten ist es nur eine Merkwürdigkeit, die ignoriert werden kann.
Oh, und bitte wechseln Sie nicht zu JSON-LD. Ehrlich gesagt, das ist für textlastiges Markup wie Foren vorzuziehen. Es ist albern, die textlichen Inhalte duplizieren zu müssen. Es ist einfach einfacher zu erstellen, weshalb wir dafür werben.