3

I am building a webpage detailing an event.

That event has several people performing, and I would like to list all of the performers using microdata.

Here's what I have:

<div itemtype="http://schema.org/Event" itemscope itemprop="events">
  <span itemprop="name description">EVENT NAME</span>
  <span itemscope itemprop="performer" itemtype="http://schema.org/Person">
    <span itemprop="name">PERFORMER 1</span>,
    <span itemprop="name">PERFORMER 2</span>
  </span>
</div>

Is this valid, or do I have to declare one itemprop="performer" for each performer as follows:

<div itemtype="http://schema.org/Event" itemscope itemprop="events">
  <span itemprop="name description">EVENT NAME</span>
  <span itemscope itemprop="performer" itemtype="http://schema.org/Person">
    <span itemprop="name">PERFORMER 1</span>
  </span>
  <span itemscope itemprop="performer" itemtype="http://schema.org/Person">
    <span itemprop="name">PERFORMER 2</span>
  </span>
</div>

Thank you

Ben Green
  • 3,953
  • 3
  • 29
  • 49
effisk
  • 73
  • 4

1 Answers1

2

Each http://schema.org/Person represents exactly one person.

Your first example would give several names to this single person.

If several name values would represent different persons, it wouldn’t be clear to whom additional properties belong:

<div itemscope itemtype="http://schema.org/Person">
  <span itemprop="name">Alice</span>
  <span itemprop="name">Bob</span>
  <span itemprop="jobTitle">Smith</span>
</div>

Who’d be the smith here, Alice or Bob?

So you should use your second example.

unor
  • 92,415
  • 26
  • 211
  • 360
  • 1
    Now that I think about it, can I do this? `PERFORMER 1` – effisk May 31 '13 at 11:58
  • I’m not sure (I don’t know [Microdata](http://www.w3.org/TR/microdata/) in detail), but I’d guess: no. In general you can have [several values](http://stackoverflow.com/q/9485711/1591669) for one `itemprop` attribute, however, I think they have to belong to the same `itemtype` then. -- You could open a new question for this. – unor May 31 '13 at 13:57
  • No you can't. performer is of type Person, name is of type string. You can't combine these two types. – Michaël Hompus May 31 '13 at 21:59
  • I have to correct myself, from the standard: [Expected types, text, and URLs](http://schema.org/docs/gs.html#schemaorg_expected) Expected types vs text. When browsing the schema.org types, you will notice that many properties have "expected types". This means that the value of the property can itself be an embedded item (see section 1d: embedded items). But this is not a requirement—it's fine to include just regular text or a URL. – Michaël Hompus Jun 01 '13 at 08:05