复制或 link 到网站 JSON-LD?

Duplicate or link to WebSite JSON-LD?

我正在用 JSON-LD 替换我们网站上的微数据(itemscope 等)。我是否需要在每个页面上声明 WebSite,或者我可以在主页上放置一次吗?

如果是后者,处理器(我的意思是 Google)会通过域名自动将每个页面绑定到它,还是有某种方法可以 link 到它?鉴于 "Linked Data" 就在名称中,我没有找到使用它的示例。他们都将数据直接复制或嵌入 linking.

例如,我想 link 到我们在文章中嵌入的 YouTube 视频,但是 Google 不理解 URL video 属性。如果我将其扩展为 VideoObject,Google 会抱怨我不知道宽度、高度、持续时间等。所有数据都在 youtube.com 上 URL我在指定。为什么不能自己拉取视频信息?

Do I need to declare the WebSite on every page, or can I place it once on the home page?

从 Schema.org 和关联数据的角度来看,只提供一个项目一次并在需要时通过其 URI 引用它是非常好的(我认为这甚至是最佳实践)。

在JSON-LD中,这个can be done with @id。例如:

<!-- on the homepage -->
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "WebSite",
  "@id": "http://example.com/#site",
  "hasPart": {
    "@type": "WebPage",
    "@id": "http://example.com/"
  }
}
</script>
<!-- on another page -->
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "WebPage",
  "@id": "http://example.com/foobar",
  "isPartOf": {"@id": "http://example.com/#site"}
}
</script>

是否 Google 实际上遵循这些引用尚不清楚(据我所知,它没有记录)¹。很明显,他们的测试工具没有显示引用 URI 的数据,但这并不意味着什么。至少他们的测试工具会显示 URI(如 "ID")以防万一。

如果你想为 video property, note that URL is not one of its expected values. While Schema.org still allows this (any property can have a text or URL value), it’s likely that some consumers will handle only expected values. It’s also perfectly fine to provide a VideoObject 值提供 URL 值如果你只提供 url 属性。 Google 的测试工具给出错误的事实并不意味着有问题;这只是意味着 Google 不会将此视频作为与视频相关的富媒体搜索结果。


¹ 但对于 Google 提供的少数丰富结果功能,作者通常不需要引用其他页面的内容,我猜。 URI 的引用通常用于其他语义 Web 和关联数据案例。