- From: Dan Brickley <danbri@google.com>
- Date: Fri, 19 Sep 2014 19:43:05 +0100
- To: W3C Web Schemas Task Force <public-vocabs@w3.org>, Stéphane Corlosquet <scorlosquet@gmail.com>
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