W3C home > Mailing lists > Public > public-vocabs@w3.org > December 2011

using web-scale identifiers in microdata

From: Jason Ronallo <jronallo@gmail.com>
Date: Wed, 21 Dec 2011 12:45:11 -0500
Message-ID: <CAKedLN1VSSTXe8w2vjN8eayRdQU7dvcvK7ChYmf5vD6zwtsk3w@mail.gmail.com>
To: public-vocabs <public-vocabs@w3.org>
Hi,

Back in early November, Martin Hepp posted this example for how one
might use "Web-scale identifiers" like DBPedia/Wikipedia in microdata.
[1]

<div itemscope itemtype="http://schema.org/Recipe">
 <span itemprop="name">Oregano Bread</span>
 <link itemprop="ingredients"
href="http://dbpedia.org/resource/Oregano"/>Oregano
...
</div>

Using <link> or <meta> like this means that what gets extracted by a
parser [2] would be the dbpedia URI as an ingredient rather than the
text "Oregano". (And would go against the search engine advice to not
mark up hidden content.) Is a consumer of the microdata then expected
to know to just take the last part of the URI if it wants to display
just the text ingredient as "Oregano"?

Is there a way in microdata to get the ingredient text as the value,
but to say that the text is the same as a certain identifier? I know
this probably breaks the microdata DOM API JSON, but I want something
more like having an itemprop identifier (@itempropid):

<div itemscope itemtype="http://schema.org/Recipe">
 <span itemprop="name">Oregano Bread</span>
 <span itemprop="ingredients"
itempropid="http://dbpedia.org/resource/Oregano">Oregano</span>
...
</div>

Similar to how the schema.org documentation rarely mentions @itemid,
@itempropid could be something that most webmasters wouldn't need but
if you did you could add it in. I don't know how one might parse this
into JSON, though there may be other problems in implementing it.

Anything like this already possible with microdata, or is the answer
to just use RDFa instead? What would this example look like using
schema.org in something as close to RDFa Lite as possible? While I
want the option to add in this feature to point to property
identifiers, I've found the simplicity of microdata to be nice.

Or could you just do something like the following to use @itemid? I
don't know what value to give @itemtype below, since what I want to
say is that this "Oregano" item is actually the same as a controlled
term from an external vocabulary. This seems like more nesting and
complication for consumers than you might want just to make this kind
of link.

<div itemscope itemtype="http://schema.org/Recipe">
 <span itemprop="name">Oregano Bread</span>
 <span itemprop="ingredients" itemscope
itemtype="http://schema.org/Term"
itemid="http://dbpedia.org/resource/Oregano"><span
itemprop="name">Oregano</span></span>
...
</div>

I have a lot a terms (subject headings and the like) that I could link
to, but since the main consumer of the microdata is the search
engines, I want to make sure they understand what I'm providing them.
It seems keeping something simple and extractable as text would be
better in this case, but maybe, as Martin Hepp's example is, they
would both understand how to handle a value of
"http://dbpedia.org/resource/Oregano" and not penalize the page for
this being hidden content?

Jason

[1] http://lists.w3.org/Archives/Public/public-vocabs/2011Nov/0004.html
[2] http://foolip.org/microdatajs/live/?html=%3Cdiv%20itemscope%20itemtype%3D%22http%3A%2F%2Fschema.org%2FRecipe%22%3E%0A%20%3Cspan%20itemprop%3D%22name%22%3EOregano%20Bread%3C%2Fspan%3E%0A%20%3Clink%20itemprop%3D%22ingredients%22%20href%3D%22http%3A%2F%2Fdbpedia.org%2Fresource%2FOregano%22%2F%3EOregano%0A%3C%2Fdiv%3E
Received on Wednesday, 21 December 2011 17:46:27 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 22 May 2012 06:48:58 GMT