j127
1
DiscussionForumPosting のスキーマデータにバグがあることに気づきました。
バリデーターでランダムなDiscourseフォーラムトピックを実行すると、@idフィールドに存在しないURLが表示されます。
これは、末尾に/post_2パスがある例です(これは404エラーになります)。
これらの@idフィールドは有効なURLであるべきだと思います。なぜなら、W3.orgには次のように書かれているからです。
グラフ内のノードを外部から参照できるようにするには、ノードに識別子があることが重要です。IRIはLinked Dataの基本的な概念であり、ノードが真にリンクされるためには、識別子をデリファレンスするとそのノードの表現が得られるはずです。これにより、アプリケーションはノードに関するさらなる情報を取得できるようになります。
「いいね!」 1
バリデーターがIDを表示する方法の問題かどうか疑問に思っています。私の知る限り、IDはマークアップから取得されており、私たち自身が定義しているものではありません。たとえば、次のようになります。
`
「いいね!」 1
j127
3
面白いですね。HTMLソースを確認しようとは思いませんでした。JSON-LDだとばかり思っていました。
Googleはスキーマデータを使用していますが、その特定のデータを使用しているかはわかりません。schema.orgのドキュメントはあまり明確に書かれていません。
Discourseは各トピックに複数のDiscussionForumPostingを配置しているようですが、ドキュメントの例ではDiscussionForumPostingはコメントではなく、メインのトピックのみを指すことを意図しているのでしょうか?ドキュメントにはComment(単数形)を持つcommentフィールドが記載されていますが、説明は複数形で書かれています。

Invisonがどのように実装しているかを確認したところ、JSON-LDを使用し、commentフィールドにCommentオブジェクトを配置していました。ブラウザに送信するテキストがかなり多くなるようです。
答えはわかりませんが、後でさらに調査してみます。
「いいね!」 1
rrlevering
(Ryan Levering)
5
便利なので、このフォーラムを覗いていました。私がそれを解析するGoogleコードを所有しています。
リンクされたスレッドは、コメントの脱線をうまく説明しています。残りはここで説明します。
HTMLのid属性をノードIDとして解釈することは、基本的に標準ではありません。これは、Googleのマイクロデータ解析の初期段階で、おそらくあいまいな理由で行われました。明示的にそうしたい場合は、itemidを使用する必要があります。いつかそのハックを削除したいと思っていますが、損失なしに何かを引き出すのは困難です。
次に、IRIは解決可能である必要はありません。それはW3Cからの提案ですが、多くのIRIはそうではなく、Googleもそれを要求していません。
これは、itemidをHTMLの他の場所で同じ値で使用した場合のように、構造化データ内のノードが意図せずマージされる場合にのみ問題となります。それ以外の場合は、無視できる奇妙な点にすぎません。
ああ、そしてJSON-LDに切り替えないでください。正直なところ、フォーラムのようなテキスト中心のマークアップではそれが好ましいです。テキストコンテンツを複製する必要があるのは愚かです。作成が容易になるため、私たちはそれを推進してきました。
「いいね!」 9
@rrleveringさん、lurk(ROM専)ありがとうございます!このイシューはクローズしても安全なようです。Different schema type for Topics and Posts でトピック/投稿スキーマを更新します。
「いいね!」 5
このトピックは2日後に自動的に閉じられました。返信はもう許可されていません。