W3C home > Mailing lists > Public > public-vocabs@w3.org > September 2014

Re: schema.org Breadcrumb design on top of ItemList

From: Dan Brickley <danbri@google.com>
Date: Sat, 20 Sep 2014 08:53:31 +0100
Message-ID: <CAK-qy=4z66Fu2ie+O7uFhj=fF0L1x6h_No7GNPW-_yJr9O_ptg@mail.gmail.com>
To: Martin Hepp <martin.hepp@unibw.de>
Cc: Jarno van Driel <jarnovandriel@gmail.com>, Aaron Bradley <aaranged@gmail.com>, W3C Web Schemas Task Force <public-vocabs@w3.org>, Stéphane Corlosquet <scorlosquet@gmail.com>
On 20 September 2014 08:43, Martin Hepp <martin.hepp@unibw.de> wrote:
> I would prefer to
>
> - keep the breadcrumb property and
> - either use a generic ItemList for the breadcrumbs or a BreadCrumbList type

Some pages have a few breadcrumb chains. Perhaps we might say
something about http://schema.org/breadcrumb indicating the primary
navigation?

There's still the question of whether the most specific end of the
chain should contain the current page or not? If not, then linking it
also with 'breadcrumb' might be overkill. Jarno's comment suggests
that inclusion would be simpler for implementors.

Dan

> Martin
>
>
> On 19 Sep 2014, at 22:17, Jarno van Driel <jarnovandriel@gmail.com> wrote:
>
>> "(This would replace/obsolete the existing unused
>> http://schema.org/breadcrumb property)"
>>
>> If I understand you correct you mean this for example:
>>
>> <body vocab="http://schema.org/" typeof="WebPage">
>>   <ol typeof="BreadcrumbList">
>>     ...
>>   </ol>
>> </body>
>>
>> But with keeping 'breadcrumb' as a property we would actually be able to chain the BreadcrumbList to the WebPage:
>>
>> <body vocab="http://schema.org/" typeof="WebPage">
>>   <ol property="breadcrumb" typeof="BreadcrumbList">
>>     ...
>>   </ol>
>> </body>
>>
>> Or is this too much and is having both WebPage and BreadcrumbList being top level entities good enough?
>>
>> 2014-09-19 21:15 GMT+02:00 Dan Brickley <danbri@google.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 Saturday, 20 September 2014 07:53:58 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:29:44 UTC