schema.org Breadcrumb design on top of ItemList

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 18:43:32 UTC