Re: schema.org Breadcrumb design on top of ItemList

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.

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."

Also, if the example was actually meant to show the proposed type
BreadcrumbList in action, shouldn't it be employed in the example?  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:06:02 UTC