Microformats 2 and Schema
There's been some misinformation about microformats spread at AccBristol, specifically:
You can use http://t.co/t4dY1qs3ZG with #Microdata #RDFa or #jSON-LD - but Microformats is limited in its extendibility. @Chaals at #AccBris
— AccessibleBristol (@AccBristol) June 30, 2015
sorry, @AccBristol, @chaals is wildly wrong there. Microformats is extensible by anyone. http://t.co/x3jPNiIyke only by Google. #AccBris
— Kevin Marks (@kevinmarks) June 30, 2015
@dbounds @kevinmarks @chaals Yes, our poor choice of words initially. Microformats limits the way http://t.co/t4dY1qs3ZG can be used.
— AccessibleBristol (@AccBristol) June 30, 2015
no, @AccBristol @dbounds @chaals no, that's not right either, you could map schema vocab into microformats2 easily. It would be daft to, yes
— Kevin Marks (@kevinmarks) June 30, 2015
@AccBristol @dbounds @chaals daft because schema has a ridiculously complex inheritance model, but microformats could express it
— Kevin Marks (@kevinmarks) June 30, 2015
For the sake of daftness, I'm going to show how to do this. I'm going to take the 2nd example of BroadcastService, about In Our Time and give a microformats2 markup for the arbitrary schema vocab.
Immediately, there is some confusion as the various examples given don't match (the JSON-LD is missing all of the episode name information, and has misparsed the dates as text; the microdata and RDFa have injected lots of extra div's that will relayout the page) but I'll see if I can match the microdata/RDFa examples:
Things to note here:
- I've prefixed the schema-specific properties as a vendor vocabulary ie
h-schema-RadioSeries
rather thenh-RadioSeries
to show it's an extension that hasn't been through the microformats process - The Microformats JSON is parsed directly from the HTML, and will be consistent across parsers in different languages. Whereas the JSON-LD is a separate DRY violating piece of data that goes out of sync with the information in the page (as the example from schema.org shows - not sure if that is a parsing failure or poor manual updating)
- The jf2 version of the parsed microformats is more compact than the direct version by embedding single-valued properties directly, not as a list - this is derived from the microformats version, and is close to what a correct JSON-LD form would be.
- The Microformats markup is more compact than either Microdata or RDFa because of the implied
url
andname
properties. - Nesting other types inside a property is much more compact than microdata and simpler than RDFa
- This example also shows other issues with the schema.org vocabulary - why is the episode number a CreativeWork:position and not a RadioSeries:episode:episodeNumber ?
Updated with jf2 version.