Re: Flattening Microdata

Evan,

On Wed, Aug 8, 2012 at 11:43 AM, Sandhaus, Evan <sandhes@nytimes.com> wrote:

> Hello all!
>
> I'm interested in 'flattening' schema.org object markup into the <head>
> element using <meta> elements.  In theory one should be able to use the
> "itemref" and "id" attributes to 'flatten' an object hierarchy into a set
> of metatags - but in practice this leads to unexpected results.
>
> For example:
>
> Suppose we have a *NewsArticle *with the *headline *'A Test
> Headline' that has a *creator* that is a *Person *that has the *name '*Evan
> S Sandhaus*' *and the *url *'http://sandha.us'*. * Here is an example of
> how to flatten that out in the <head> using id and itemref:
>
> <html itemid='the_article_id' itemscope itemtype='
> http://schema.org/NewsArticle'>
> <head>
> <!-- Article properties in global scope -->
> <meta itemprop='headline' content='A Test Headline'/>
>
> <!-- Author Properties Flattened with itemref and ids -->
> <meta itemprop='creator' itemscope itemtype='http://schema.org/Person'
>  itemid='the_creator_id' itemref='author_name author_url'/>
> <meta id='author_name' itemprop='name' content='Evan S Sandhaus'/>
> <meta id='author_url' itemprop='url' content='http://sandha.us'/<http://sandha.us'/>
> >
> </head>
> <body>
> </body>
> </html>
>
> So that's the theory.
>
> In practice, however, both the Rich Snippets Tool and the Python microdata
> libraries I'm using locally (http://pypi.python.org/pypi/microdata) both
> insist on adding the creator-specific properties to both the scope of both
> the creator and the NewsItem.
>

yes, and I don't see why they would not, since the meta elements for name
and url are within the scope of the NewsArticle data item. Normally they
would be inside the Person data item and not affect NewsArticle, but since
you can't nest elements in head, this is not possible to the best of my
knowledge.

Steph.


>
> More concretely - my local tools give me this:
> [{
>     "id": "the_article_id",
>     "properties": {
>         "creator": [{
>             "id": "the_creator_id",
>             "properties": {
>                 "name": ["Evan S Sandhaus"],
>                 "url": ["http://sandha.us"]
>             },
>             "type": "http://schema.org/Person"
>         }],
>         "headline": ["A Test Headline"],
>         "name": ["Evan S Sandhaus"],
>         "url": ["http://sandha.us"]
>     },
>     "type": "http://schema.org/NewsItem"
> }]
>
> And the Rich Snippets tool gives me this:
> Item
> *Type:* http://schema.org/newsarticle
> headline = A Test Headline
> creator = *Item*( 1 )
> name = Evan S Sandhaus
> url = http://sandha.us
> Item 1
> *Type:* http://schema.org/person
> name = Evan S Sandhaus
> url = http://sandha.us
>
> So the question is: is this expected behavior?  If so, is there anything I
> could do besides this to "flatten" the markup into the <head> element?
>
> Thanks!
>
> ~Evan
> --
> Evan Sandhaus
> Lead Architect, Semantic Platforms
> The New York Times Company
> @kansandhaus
>

Received on Wednesday, 8 August 2012 16:10:34 UTC