- From: Jarno van Driel <jarnovandriel@gmail.com>
- Date: Wed, 17 Sep 2014 16:01:15 +0200
- To: Stéphane Corlosquet <scorlosquet@gmail.com>
- Cc: Dan Brickley <danbri@google.com>, "martin.hepp@ebusiness-unibw.org" <martin.hepp@ebusiness-unibw.org>, Vicki Tardif Holland <vtardif@google.com>, "Jason Johnson (BING)" <jasjoh@microsoft.com>, W3C Web Schemas Task Force <public-vocabs@w3.org>
- Message-ID: <CADK2AU0u9T1sVnb3A8=x2LHD3EU3zq0Nr+5mdrMQGXeH8gHKdg@mail.gmail.com>
> > "Please try the RDFa example above in > https://www.google.com/webmasters/markup-tester/events, and you will see > that @href is well understood by Google event markup parser (same applies > to @resource). Google definitely has a sharp in-house RDFa parser, it's > just a matter of using it across the board on all their products, which I'm > sure is only a matter of time before it happens. The sooner the better, of > course. We're all waiting to see this parser deployed on > http://www.google.com/webmasters/tools/richsnippets. > The Microdata markup above will not work, and that's by design because MD > doesn't honor the @href as being used as URI for data items. That said, > @itemid might work. > Steph." Thanks for pointing out the *Events* markup tester does eat the RDFa version. Glad to see Google's making it easy for developers to find out if something works: "SDDT, says one thing, so does WMT and now even the EVT says something different". :( The microdata version fails by the way. The EVT doesn't merge the two. 2014-09-17 15:58 GMT+02:00 Jarno van Driel <jarnovandriel@gmail.com>: > Please try the RDFa example above in > https://www.google.com/webmasters/markup-tester/events, and you will see > that @href is well understood by Google event markup parser (same applies > to @resource). Google definitely has a sharp in-house RDFa parser, it's > just a matter of using it across the board on all their products, which I'm > sure is only a matter of time before it happens. The sooner the better, of > course. We're all waiting to see this parser deployed on > http://www.google.com/webmasters/tools/richsnippets. > > The Microdata markup above will not work, and that's by design because MD > doesn't honor the @href as being used as URI for data items. That said, > @itemid might work. > > Steph. > > 2014-09-17 15:55 GMT+02:00 Stéphane Corlosquet <scorlosquet@gmail.com>: > >> >> >> On Wed, Sep 17, 2014 at 3:21 AM, Jarno van Driel <jarnovandriel@gmail.com >> > wrote: >> >>> "The trick is to avoid relying on an explicit value for 'url', and >>>> instead use the href value as the URI as the Webpage. This is in fact much >>>> more in line with Linked Data best practices and it avoids blank nodes. A >>>> pet peeve of mine is that Schema.org relies too heavily on an explicit >>>> 'url' property in its examples. If the 'url' property is not provided, >>>> consumers such as Google should simply use the resource URI provided in >>>> @itemid (microdata), @href/@resource (RDFa) or @id in JSON-LD." >>> >>> >>> Kudos for this solution, it's a beauty. But... >>> >>> Unfortunately the current support for @itemid and @resource by the >>> sponsors is unreliable. Let me illustrate by giving an example: >>> (parsing these through rdfa.info/play/, Structured Data Linter, >>> Structured Data Testing Tool (=Google ) and Structured Data Validator >>> (=Yandex) will illustrate the issue). And I know, by testing it, that >>> Google's WMT doesn't handle @itemid @@resource very well either. >>> >>> Microdata: >>> <body> >>> <a href="http://example.com/article" itemscope itemtype=" >>> http://schema.org/Article"> >>> <span itemprop="name">Multiple identical @itemid's don't merge</span> >>> </a> >>> >>> <a href="http://example.com/article" itemscope itemtype=" >>> http://schema.org/Article"> >>> <span itemprop="description">Google (WMT and SDTT) and Yandex (SDV) >>> fail to merge 2 entities with the same @href/@itemid</span> >>> </a> >>> </body> >>> >>> RDFa: >>> <body vocab="http://schema.org/"> >>> <a href="http://example.com/article" typeof="Article"> >>> <span property="name">Multiple identical @itemid's don't merge</span> >>> </a> >>> >>> <a href="http://example.com/article" typeof="Article"> >>> <span property="description">Google (WMT and SDTT) and Yandex (SDV) >>> fails to merge 2 entities with the same @href, however Yandex succeeds when >>> @resource is specified where Google does not</span> >>> </a> >>> </body> >>> >>> >> Please try the RDFa example above in >> https://www.google.com/webmasters/markup-tester/events, and you will see >> that @href is well understood by Google event markup parser (same applies >> to @resource). Google definitely has a sharp in-house RDFa parser, it's >> just a matter of using it across the board on all their products, which I'm >> sure is only a matter of time before it happens. The sooner the better, of >> course. We're all waiting to see this parser deployed on >> http://www.google.com/webmasters/tools/richsnippets. >> >> The Microdata markup above will not work, and that's by design because MD >> doesn't honor the @href as being used as URI for data items. That said, >> @itemid might work. >> >> Steph. >> >> >>> Which does lead me to say that something needs to change in the way the >>> sponsors deal with @resource (and @href) before relying on Stéphane's >>> solution (again, which I think is a beauty). >>> >>> I see it as a bit of a disgrace the Structured Data Linter is the only >>> tool that's able to parse both microdata and RDFa examples successfully. It >>> most certainly doesn't help one bit in global identifiers being deployed by >>> web developers. I for one would not expect the sponsors to be behind in >>> supporting this. >>> >>> >>> 2014-09-17 7:12 GMT+02:00 Stéphane Corlosquet <scorlosquet@gmail.com>: >>> >>>> >>>> >>>> On Tue, Sep 16, 2014 at 5:08 PM, Dan Brickley <danbri@google.com> >>>> wrote: >>>> >>>>> On 16 September 2014 21:50, Jarno van Driel <jarnovandriel@gmail.com> >>>>> wrote: >>>>> > Not much really, it's a custom I picked up because the W3 Validator >>>>> > (http://validator.w3.org/) kept complaining about not providing a >>>>> @title for >>>>> > anchors, which it stopped complaining about if one added an empty >>>>> @title. So >>>>> > I became accustomed to alway specifying a @title, even it it's empty. >>>>> > >>>>> > To be honest I don't even know if the workaround is still needed or >>>>> not, I >>>>> > haven't looked into it for ages. :) >>>>> > >>>>> > I'll remove it from the document though. >>>>> >>>>> Ah thanks, I thought it might be some wiki markup / escaping artifact. >>>>> >>>>> It's a big document. Maybe we could settle on one single core example >>>>> that applies new Itemlist to the breadcrumbs usecase? >>>>> >>>>> A lot of people are interested in knowing how >>>>> https://support.google.com/webmasters/answer/185417?hl=en should look. >>>>> >>>>> Here's the old markup: >>>>> >>>>> <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> >>>>> <a href="http://www.example.com/dresses" itemprop="url"> >>>>> <span itemprop="title">Dresses</span> >>>>> </a> › >>>>> </div> >>>>> <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> >>>>> <a href="http://www.example.com/dresses/real" itemprop="url"> >>>>> <span itemprop="title">Real Dresses</span> >>>>> </a> › >>>>> </div> >>>>> <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> >>>>> <a href="http://www.example.com/clothes/dresses/real/green" >>>>> itemprop="url"> >>>>> <span itemprop="title">Real Green Dresses</span> >>>>> </a> >>>>> </div> >>>>> >>>>> How concisely can we do this with new ItemList? Does this look >>>>> monsterously verbose, or bearable? >>>>> >>>>> <ol itemscope="" itemtype="http://schema.org/ItemList"> >>>>> <li itemprop="itemListElement" itemscope="" >>>>> itemtype="http://schema.org/ListItem"> >>>>> <span itemprop="item" itemscope="" itemtype=" >>>>> http://schema.org/WebPage"> >>>>> <a href="http://www.example.com/dresses" itemprop="url"> >>>>> <span itemprop="title">Dresses</span> >>>>> </a> >>>>> </span> >>>>> </li> >>>>> › <li itemprop="itemListElement" itemscope="" >>>>> itemtype="http://schema.org/ListItem"> >>>>> <span itemprop="item" itemscope="" itemtype=" >>>>> http://schema.org/WebPage"> >>>>> <a href="http://www.example.com/dresses/real" itemprop="url"> >>>>> <span itemprop="title">Real Dresses</span> >>>>> </a> >>>>> </span> >>>>> </li> >>>>> › <li itemprop="itemListElement" itemscope="" >>>>> itemtype="http://schema.org/ListItem"> >>>>> <span itemprop="item" itemscope="" itemtype=" >>>>> http://schema.org/WebPage"> >>>>> <a href="http://www.example.com/clothes/dresses/real/green" >>>>> itemprop="url"> >>>>> <span itemprop="title">Real Green Dresses</span> >>>>> </a> >>>>> </span> >>>>> </li> >>>>> </ol> >>>>> >>>> >>>> This example can be simplified by removing one level of nesting, as >>>> shown in this example in RDFa, which I tested in Play >>>> <http://rdfa.info/play/>: >>>> >>>> <ol vocab="http://schema.org/" typeof="ItemList"> >>>> <li property="itemListElement" typeof="ListItem"> >>>> <a property="item" typeof="WebPage" href=" >>>> http://www.example.com/dresses"> >>>> <span property="title">Dresses</span> >>>> </a> >>>> <meta property="position" content="1"> >>>> </li> >>>> › <li property="itemListElement" typeof="ListItem"> >>>> <a property="item" typeof="WebPage" href=" >>>> http://www.example.com/dresses/real"> >>>> <span property="title">Real Dresses</span> >>>> </a> >>>> <meta property="position" content="2"> >>>> </li> >>>> </ol> >>>> >>>> The trick is to avoid relying on an explicit value for 'url', and >>>> instead use the href value as the URI as the Webpage. This is in fact much >>>> more in line with Linked Data best practices and it avoids blank nodes. A >>>> pet peeve of mine is that Schema.org relies too heavily on an explicit >>>> 'url' property in its examples. If the 'url' property is not provided, >>>> consumers such as Google should simply use the resource URI provided in >>>> @itemid (microdata), @href/@resource (RDFa) or @id in JSON-LD. >>>> >>>> Equivalent JSON-LD: >>>> { >>>> "@id": "_:g70204145541180", >>>> "@type": "ItemList", >>>> "itemListElement": [ >>>> "_:g70204145492480", >>>> "_:g70204145237140" >>>> ] >>>> }, >>>> { >>>> "@id": "_:g70204145492480", >>>> "@type": "ListItem", >>>> "item": "http://www.example.com/dresses", >>>> "position": "1" >>>> }, >>>> { >>>> "@id": "_:g70204145237140", >>>> "@type": "ListItem", >>>> "item": "http://www.example.com/dresses/real", >>>> "position": "2" >>>> }, >>>> { >>>> "@id": "http://www.example.com/dresses", >>>> "@type": "WebPage", >>>> "title": "Dresses" >>>> }, >>>> { >>>> "@id": "http://www.example.com/dresses/real", >>>> "@type": "WebPage", >>>> "title": "Real Dresses" >>>> } >>>> >>>> >>>> -- >>>> Steph. >>>> >>> >>> >> >> >> -- >> Steph. >> > >
Received on Wednesday, 17 September 2014 14:01:47 UTC