From Microformats Wiki
Revision as of 11:33, 18 March 2007 by AndyMabbett (talk | contribs) (copy of mailing list post; work-in-progress; will retrn in a few hours)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

[copy of mailing list post; currently unformatted and unedited - work in progress]


We can have microformats for ISBNs and ISSNs. The very specific nature of the way in which those codes are formatted means that further evidence gathering would be superfluous. Such microformats would be useful components in a number of other, currently-proposed, microformats. Acting now will ensure that a standard method can be applied across such be formats


This page addresses the use of ISBNs; almost all of it applies to ISSNs equally.


How to mark-up ISBN numbers, so that they can be extracted and the relevant book found on on-line libarry catalogues, bokoshops, etc.

How to make a standard ISBN microformat avaialble as a component for oter microformats


There as been previous discussion of marking-up ISBNs (International Standard Book Numbers(. ISBNs include a checksum digit and can (only) be either 10 or 13 digits long.

Such discussion has, for example, taken place around the citation-examples proposed citation microformat.

I (Andy Mabbett) believe, however, that a microformat for ISBN should stand alone, and thus be available for use in any other microformat (for recipes, for example, or for hResume, hAtom, hReview or hListing).

I then started to think about evidence-gathering, and it occurred to me that so many websites use ISBN numbers, that I would never have time to examine even 1% - so I could ever be sure that I was dealing with cases in the larger side of an 80-20 divide.

It then occurred to me that there are very few ways in which ISBN numbers can be marked up, in a meaningful and valid sense. Furthermore, the very nature of ISBNs, with rigidly defined formats, and check-sums, means that detecting, validating and parsing ISBNs is relatively easy to describe.

Consider these examples (all found on the aforesaid citations-examples)

       <div class="isbn">0-313-32847-1</div>

        <span id="lblIsbn">0-313-32847-1</span>

        <span class="isbnNumber">0195162471</span> 

(note that "isbnNumber" is a tautology!)

and these other possible methods of marking up those ISBNs:

        <div class="isbn">ISBN 0-313-32847-1</div> 

        <span id="lblIsbn">ISBN: 0-313-32847-1</span> 

        <span class="isbnNumber">the ISBN is 0195162471</span> 

        <span class="isbn">ISBN: 0-95115-320-X</span> 

in each case, the marked-up text includes a valid ISBN (some with permitted, but superfluous, dashes) and, in the latter cases, some other non-numerical characters. All a parser need do is discard the non numerical characters, apart from a possible "X" check-digit (it's interesting to note that no "X" check-digit occurs on citation-examples), and check that the remaining digits validate to the included checksum digit.

If the mark-up has introduced additional digits:

        <span class="isbnNumber">the ISBN of book #42 is 

then a parser may simply discard the results as invalid - and thus requiring a more tightly applied element.

Use case

Marking up ISBNs would allow tools to enable users to quickly locate the relevant title in a shop or library; for example in the way which Wikipedia uses ISBNs

Indeed, that service could be the target used by a user agent (as could WorldCat for ISSNs).


I believe that we could, quickly, have uFs for ISBN and ISSN; and that this would be of benefit to the development of any other uF which includes an ISBN or ISSN component - as well as benefiting the many thousands of publishers, and the any millions of consumers, of ISBNs and ISSNs.

All that remains is to agree a suitable class-name (ISBN vs. hISBN, for example).

Next steps

I hope Mike Kaply, will agree to place a test-case version in a beta version of Operator.

I've marked up a test-case (using class="isbn") which has two with "X" check digits, and I'll be happy to add further examples.