Re: [whatwg] Proposal: allow itemid to record multiple identifiers for an item

On Tue, 4 Dec 2012, Ed Summers wrote:
> 
> Over on a schema.org related list [1] there has been a discussion about 
> making identifiers for bibliographic items (books, articles, etc) 
> available in microdata using itemid. The use case is well described in 
> the dev edition, with this example [2]:
> 
> <dl itemscope
>     itemtype="http://vocab.example.net/book"
>     itemid="urn:isbn:0-330-34032-8">
>  <dt>Title
>  <dd itemprop="title">The Reality Dysfunction
>  <dt>Author
>  <dd itemprop="author">Peter F. Hamilton
>  <dt>Publication date
>  <dd><time itemprop="pubdate" datetime="1996-01-26">26 January 1996</time>
> </dl>
> 
> Our use case is when a publisher wants to record multiple identifiers 
> for an item. For example The Reality Dysfunction also has an OCLC number 
> 225870439, which can be expressed as a URI, info:oclcnum/225870439.

When a property isn't the sole unique identifier for an item, just use a 
property instead of itemid="", as in:

 <div itemscope itemtype="http://vocab.example.net/book">
  <meta itemprop="id" content="isbn 0-330-34032-8">
  <meta itemprop="id" content="oclcnum 225870439">
  <dl>
   <dt>Title
   <dd itemprop="title">The Reality Dysfunction
   <dt>Author
   <dd itemprop="author">Peter F. Hamilton
   <dt>Publication date
   <dd><time itemprop="pubdate" datetime="1996-01-26">26 January 1996</time>
  </dl>
 </div>

...or, if continuing to use URLs makes more sense:

 <div itemscope itemtype="http://vocab.example.net/book">
  <link itemprop="id" href="urn:isbn:0-330-34032-8">
  <link itemprop="id" href="info:oclcnum/225870439">
  <dl>
   <dt>Title
   <dd itemprop="title">The Reality Dysfunction
   <dt>Author
   <dd itemprop="author">Peter F. Hamilton
   <dt>Publication date
   <dd><time itemprop="pubdate" datetime="1996-01-26">26 January 1996</time>
  </dl>
 </div>


> One alternative to using itemid would be to define an oclcnum itemprop 
> to the relevant schema.org types. This solution is a bit unwieldy 
> because there are so many identifier types in the bibliographic world. I 
> imagine the same is similar in other domains.

That's another possibility, yes. If having a large numbmer of properties 
is not practical for some reason, then having one property use a common 
syntax that can express all the identifier types (e.g. URLs, or the "type 
number" syntax in the first example above) can work too.


> Another solution would be to come up with some generic identifier 
> mechanism, but I feel like this would then duplicate what itemid is 
> already doing.

That's fine. itemid="" is intended just for the very specific case of 
there being a specific unique identifier that is globally used as the key 
by which a particular vocabulary's items are identified; if there's no 
such key, or there are many keys and none are more important than the 
others, then it's better to just use a property.

Honestly, itemid="" isn't really intended to be a particularly widely used 
feature. This is reflected by the way the spec only has one example that 
uses itemid="", and that example's purpose is to demonstrate itemid="". 
It's really just a shorthand for a property (though not one whose name can 
be specified in itemprop=""), and if it doesn't quite fit, it's fine to 
ignore it and use something else.

HTH,
-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

Received on Wednesday, 5 December 2012 04:19:21 UTC