[html5] microdata itemref

Brian Tremblay webmaster at tsmchughs.com
Mon Dec 10 15:37:49 PST 2012

On 12/10/12 12:57 PM, Ian Hickson wrote:
> On Mon, 10 Dec 2012, Brian Tremblay wrote:
>> On 12/10/12 11:07 AM, Ian Hickson wrote:
>>> On Mon, 10 Dec 2012, Brian Tremblay wrote:
>>>> What I'm trying to do is associate "Napa Valley" in the <p>
>>>> element with the winery in the header, as that winery's
>>>> addressRegion.
> Fundamentally the issue there is that you have data from different
> items overlapping; there's not much you can do about that.
> I don't think there's a good solution that doesn't involve duplication
> when a single element is a property for one item and contains a property
> for another; as it stands today there's no way to exclude a subtree from
> an item other than making it an item itself. If you wanted to do that, you
> could do something like this:
>      <article itemscope itemtype="http://schema.org/FoodEvent">
>       <header>
>         <h1 itemprop="name">Franciscan Estate tasting</h1>
>         hosted by
>         <div itemprop="performer" itemscope itemtype="http://schema.org/Person">
>           <span itemprop="name">J. Kounellas</span>,
>           <span itemprop="worksFor" itemscope itemtype="http://schema.org/Winery"
>                 itemref="napa">
>             <span itemprop="name">Franciscan Estate Winery</span>
>           </span>
>         </div>
>       </header>
>       <p itemprop="description">Join us for a special wine event featuring
>       <a itemscope href="http://en.wikipedia.org/wiki/Napa_Valley_AVA"><span
>          itemprop="addressRegion" id="napa">Napa Valley</span></a>'s
>       Franciscan Estate Winery.</p>
>      </article>
> What this does is introduce an anonyous item which blocks out the
> addressRegion property from the outer FoodEvent item.

That indeed does the trick. And I would not have thought of that, so thanks.

> In the future we might introduce a way to explicitly exclude a subtree
> from an ancestor, if this is a common issue.

It seems like it would be, even in less complicated cases than mine.

> By the way, as far as I can tell addressRegion isn't a valid schema.org
> value for a Winery item. Looks like you need another item just for the
> addressRegion or something.

Yes, but I wanted to keep the example as simple as possible. In the live 
version, the item included via itemref has itemprop="location", and an 
itemtype which is set to PostalAddress.

> This is quite the elaborate vocabulary. :-/

Yes, a bit more complicated than needed, I suppose. In the end, 
including the addressRegion of the winery was hardly crucial, but I 
wanted to know if it was possible.

By contrast, everything else is necessary: a restaurant, with an event, 
hosted by a person, employed by a winery. I don't know if anyone does 
anything with events microdata right now. But if they did, they might 
search for wine events at Seattle restaurants, or search for events 
featuring a winery they like, or wines from a region they like.

I dunno. Maybe this whole thing is a waste of effort on my part.  :-/

Brian Tremblay

More information about the Help mailing list