- From: Dan Brickley <danbri@google.com>
- Date: Fri, 19 Sep 2014 20:15:05 +0100
- To: Aaron Bradley <aaranged@gmail.com>
- Cc: W3C Web Schemas Task Force <public-vocabs@w3.org>, Stéphane Corlosquet <scorlosquet@gmail.com>
On 19 September 2014 20:05, Aaron Bradley <aaranged@gmail.com> wrote: > Glad to see the breadcrumb issue making its way back into the queue. > > What neither the description nor the example markup addresses is whether the > declared breadcrumbs do (or should) include the current page. In general most schema.org definitions only hint at "shoulds" and "musts" w.r.t. what a description ought to contain. Maybe "A BreadcrumbList is an ItemList consisting of a list of Web pages, typically described using at least their URL and their name. A common pattern is for the list to represent a hierarchy from a top level entry point to the current page (or the page above it)." > Perhaps this is a vocabulary-agnostic matter insofar as individual data > consumers may have their own guidelines, and/or be able to figure out from > parsing the content (if one is on the page "../dresses/real" and you've > declared "../dresses/real" as your highest position breadcrumb one would > think Google et al. would be able to figure out that this breadcrumb and the > current page are one and the same). > > FWIW, though, Google [1] explicitly instructs webmasters to exclude the > current page when using data-vocabulary.org/Breadcrumb: > > "Each breadcrumb item should appear in order, with the first item > representing the top-level page, and the final item representing the parent > of the current page." My personal view (and I'm checking back with colleagues now that ItemList has settled down) is that the more explicit the better. > Also, if the example was actually meant to show the proposed type > BreadcrumbList in action, shouldn't it be employed in the example? Since the ItemList design is finished, I thought it worth working up an example that uses it - potentially for inclusion in the site asap. Hopefully it could be followed up soon afterwards by a dedicated type ("BreadcrumbList"? "BreadcrumbChain"?) if one is agreed. Dan > I.e. for microdata the shouldn't the type declaration: > <ol itemscope itemtype="http://schema.org/ItemList"> > ... actually be: > <ol itemscope itemtype="http://schema.org/BreadcrumbList"> >> > > [1] https://support.google.com/webmasters/answer/185417 > > > On Fri, Sep 19, 2014 at 11:43 AM, Dan Brickley <danbri@google.com> wrote: >> >> Here's one more pass over the schema.org breadcrumb usecase for ItemList. >> >> As a recap, the challenge was to keep an ordered list of url + label >> pairs which survives the transformation into an extracted graph (aka >> triples). Thanks for everyone who jumped into this discussion already. >> I've just been going over the rdfa/microdata options with Stephane >> Corlosquet in IM and here's the best we can come up with. >> >> I won't go into all the boring and fiddly tradeoffs here, just the 3 >> minimalistic examples showing a 2 item ordered list of link / anchor >> text pairs. We considered dropping the @typeof in the RDFa but it >> parses differently; while WebPage is quite an uninformative type, it >> has a few subtypes (http://schema.org/WebPage) that might be useful. >> >> As part of this, here's a one liner proposal for a "Breadcrumb" type, >> which would be used here in place of the initial ItemList: >> >> http://schema.org/BreadcrumbList: "A BreadcrumbList is an ItemList >> consisting of a list of Web pages, typically described using at least >> their URL and their name." >> >> (This would replace/obsolete the existing unused >> http://schema.org/breadcrumb property) >> >> The examples below work with the ItemList design recently agreed here >> directly: >> >> RDFa 1.1: >> >> <ol vocab="http://schema.org/" typeof="ItemList"> >> <li property="itemListElement" typeof="ListItem"> >> <a property="item" typeof="WebPage" >> href="https://example.com/dresses"><span >> property="name">Dresses</span></a> >> <meta property="position" content="1"> >> </li> >> › <li property="itemListElement" typeof="ListItem"> >> <a property="item" typeof="WebPage" >> href="https://example.com/dresses/real"><span property="name">Real >> Dresses</span></a> >> <meta property="position" content="2"> >> </li> >> </ol> >> >> >> Microdata: >> >> <ol itemscope itemtype="http://schema.org/ItemList"> >> <li itemprop="itemListElement" itemscope >> itemtype="http://schema.org/ListItem"> >> <a itemprop="item" href="https://example.com/dresses"><span >> itemprop="name">Dresses</span></a> >> <meta itemprop="position" content="1" /> >> </li> >> › <li itemprop="itemListElement" itemscope >> itemtype="http://schema.org/ListItem"> >> <a itemprop="item" href="https://example.com/dresses/real"><span >> itemprop="name">Real Dresses</span></a> >> <meta itemprop="position" content="2" /> >> </li> >> </ol> >> >> JSON-LD: >> >> { >> "@context": "http://schema.org", >> "@type": "ItemList", >> "itemListElement": >> [ >> { >> "@type": "ListItem", >> "position": 1, >> "item": >> { >> "@id": "https://example.com/dresses", >> "name": "Dresses" >> } >> }, >> { >> "@type": "ListItem", >> "position": 2, >> "item": >> { >> "@id": "https://example.com/dresses/real", >> "name": "Real Dresses" >> } >> } >> ] >> } >> >
Received on Friday, 19 September 2014 19:15:33 UTC