搜索

首页  >  问答  >  正文

多个 JSON-LD Schema.org 标签可以代表同一个“对象”吗?

我有一个网站,客户端请求 JSON-LD(不是微数据)schema.org 标签。他们想要的其中一个是每个页面上都有一个基本的“WebPage”标签,其中包含有关每个页面上的内容的一些信息。另一个是“FAQPage”,仅添加在特定的 FAQ 页面上。两者都将作为内联脚本标记直接添加到页面上。

FAQPage继承自WebPage,因此包含了WebPage的所有属性。

如果我只是让页脚代码生成“WebPage”标签,而 FAQ 组件生成“FAQPage”标签,则两者最终都会作为单独的 JSON-LD 脚本标签出现在页面上 - 我相信这会被解释为两个独立的“网页” - 不是我们正在寻找的。

是否可以标记架构标签,以便两个 JSON-LD 标签代表彼此的“扩展”?由于 FAQPage 继承了 WebPage,我希望有一种方法可以设置一个标识符,以显示两者是正在记录的同一页面。

(是的,我可以使用后端的逻辑将有关 FAQPage 的信息“传递”到页脚,并让页脚组件动态输出 FAQPage 或 WebPage,但这不是我在这里要寻找的。)

P粉289775043P粉289775043245 天前569

全部回复(1)我来回复

  • P粉207969787

    P粉2079697872024-03-31 10:39:41

    @id 关键字 可以用于此。它为节点对象提供一个 IRI 形式的标识符(或空白节点标识符)。

    具有相同@id值的节点对象是同一事物,无论这些事物的类型是否具有继承关系。

    这些 IRI 不必解析为 Web 上的文档。如果他们这样做,您应该确保区分事物和有关该事物的文档。

    但是,在您的具体情况下,该事物和有关该事物的文档实际上表示相同。因此,您可以使用页面的规范 IRI 作为 @id

    
    
    sssccc
    
    sssccc
    

    如果对象表示相同的事物,但具有不同的 @id 值,您可以使用属性 owl:sameAs。但只支持 Schema.org 的消费者不会认识到这一点。 (Schema.org 也有一个 sameAs 属性,但它有不同的含义。 )

    回复
    0
  • 取消回复