在 MusicEvent 架构中,为什么 Google 无法识别 Person 中的 jobTitle 属性?

In the MusicEvent schema, why is the jobTitle property within Person not recognized by Google?

MusicEvent 架构的 docs 显示 属性 performer 可以是 OrganizationPerson 类型,描述为:

A performer at the event—for example, a presenter, musician, musical group or actor. Supersedes performers.

Person 架构的 docs 显示 属性 jobTitle 以及描述:

The job title of the person (for example, Financial Manager).

但是这样使用时:

<article itemtype="http://schema.org/MusicEvent">

   <!-- other stuff -->

   <p itemprop="performer" itemtype="http://schema.org/Person">
      <b itemprop="name">Constantine Kitsopoulos</b>, 
         <span itemprop="jobTitle">conductor</span>
    </p>

   <!-- other stuff -->

</article>

Google 结构化数据测试工具显示警告:

The property jobTitle is not recognized by Google for an object of type MusicEvent.

related schema.org question 中,答案是 属性 没有正确包装。我已经对 HTML 进行了两次和三次检查,以确保 jobTitle itemprop 包含在 Person 架构标签中,这些标签包含在 MusicEvent 架构标签中。有没有我误解的东西,或者在 MusicEvent 模式中有效但对 Google 的工具有效的东西?

在微数据中,每个项目都需要有一个 itemscope 属性。 itemtype 可以另外指定(可选)。

您的代码段缺少两个 itemscope 属性:

<article itemscope itemtype="http://schema.org/MusicEvent">

  <p itemprop="performer" itemscope itemtype="http://schema.org/Person">
    <b itemprop="name">Constantine Kitsopoulos</b>, 
    <span itemprop="jobTitle">conductor</span>
  </p>

</article>

Google的SDTT正确识别:

@type MusicEvent
performer   
  @type Person
  name Constantine Kitsopoulos
  jobTitle conductor

(它报告的 warnings/errors 不是您的标记的问题;这些只是 recommended/required 用于获得 Google 的丰富结果之一的东西。)