Just under four years since the launch of schema.org, version 2.0 of the vocabulary was announced by R.V. Guha on the schema.org blog.
It's a release worthy of a version leap for, as Guha says, it "brings several significant changes and additions, not just to the vocabulary, but also to how we grow and manage it, from both technical and governance perspectives."
The big list of vocabulary changes, site improvements and fixes (48 line items in total) can be found on the release listing page.
Also available is a full summary of the release that "describes in one document the terms (types, properties and enumerations) included" in version 2.0. This "versioned snapshot" is itself a feature new to version 2.0.
While I urge any users of the vocabulary to dig into the release notes, here are some highlights of the additions and changes you'll find in schema.org version 2.0.
A new extension mechanism
The most celebrated feature of schema.org 2.0 is the introduction of a new mechanism for extending schema.org beyond the core vocabulary, described in detail on an entirely revised page on extensions.
Guha puts the extension mechanism front and center in his blog post:
As schema.org adoption has grown, a number groups with more specialized vocabularies have expressed interest in extending schema.org with their terms. Examples of this include real estate, product, finance, medical and bibliographic information. Even in something as common as human names, there are groups interested in creating the vocabulary for representing all the intricacies of names. Groups that have a special interest in one of these topics often need a level of specificity in the vocabulary and operational independence. We are introducing a new extension mechanism which we hope will enable these and many other groups to extend schema.org.
The new mechanism supports two types of extensions, both of which fill the "need for more specialized and/or deeper vocabularies" and are consistent with the core vocabulary.
A reviewed extension is one that extends the core vocabulary but is separate from it, and gets a chunk of the schema.org namespace. For example, a extension that provides new classes and properties specific to genealogy might fall under gen.schema.org.
An external extension is one created by a third party that requires an extension "specific to their application." This is put up under the extension developer's domain. For example, if Twitter wanted to create a vocabulary for different types of tweet actions, they could house it under schema.twitter.com.
The previous extension mechanism for schema.org was cumbersome and rarely used, so this promises to breathe new life into extension-building efforts.
I'll just note briefly that this development is quite significant, as this more formal extension process means there's a greater likelihood that search engines and other data consumers are going to respect (in the sense of "make an effort to understand") markup that includes classes or properties from an extension. This in turn provides an incentive for third parties to develop extensions in the first place.
And as the schema.org grows by dint of these extensions, a vocabulary that's already seen adoption rates exceed the sponsors' "wildest expectations" becomes even more useful, providing yet more incentive for publishers to publish it and data consumers to consume it.
As much as schema.org eschewed the intention of becoming an "ontology of everything" it's nonetheless become pretty big – and will only get bigger.
Usage statistics and issue links
Each type or property page now displays the approximate number of domains using it. The source of those statistics is not specified, but given that Google, Bing, Yahoo and Yandex are schema.org's sponsors one can reasonably assume that these numbers are something better than wild guesses.
It's safe to say that even if the absolute numbers cited aren't accurate, the value to be derived from such statistics is relative rather than absolute – the usage-inspiring value proposition inherit in the larger numbers notwithstanding (the home page's report that "over 10 million sites use Schema.org to markup their web pages and email messages" is worth noting).
Each class and property also contains a link to open issues concerning it on Github. Webmasters will find this very useful when they think they've identified a problem with an item, as they can readily check to see if anyone else has made note of it.
Added property mainEntityOfPage
As the name suggests, mainEntityOfPage is a property that now makes it possible to declare which of multiple entities on a page is the main one.
While for most webmasters this might seem highly esoteric (it would certainly be something only raised during the "advanced structured data" session of a search marketing conference), it's actually incredibly useful once you start trying to describe multiple things on one webpage.
My partner in semantic crime Jarno van Driel has published a post on mainEntityOfPage that explains, in loving detail, just how this property works and under which circumstances you might consider using it.
PropertyValue and additionalProperty
Sure, you've long been able to say with schema.org that an iPhone 5 weighs 112 grams, but what if you want to say that the Enterprise-D can go warp 9.8 (albeit not very safely)? With 2.0 you can finally make it so.
<div itemscope itemtype="http://schema.org/Vehicle"> <span itemprop="name">Enterprise-D</span> <div itemprop="additionalProperty" itemscope itemtype="http://schema.org/PropertyValue"> <span itemprop="name">Maximum speed:</span> <span itemprop="unitText">warp</span> <span itemprop="value">9.8</span>. </div> </div>
While the descriptions of additionalProperty and PropertyValue stress that you should always use existing properties when they're available, this "generic property/value mechanism" makes it easy to declare an additional property for anything.
Another extremely useful and long-desired schema.org feature that, again, extends the usefulness of the vocabulary.
The self-driving schema.org/Car
Well it doesn't need to be self-driving, but it could be.
This new type is obviously a boon to anyone working in an area related to the automotive industry – and it's expected that the Automotive Group will end up contributing even more terms specific to the automotive domain (probably through a reviewed extension).
Series is now CreativeWorkSeries…
… and gtin12 joins gtin8, gtin13 and gtin14, while OrderItem now allows a ParcelDelivery to be tracked per item.
And so on and so on. There's a lot to this release, and if your work involves using schema.org I urge you again to at least skim the release listing to see if there's an opportunity lurking there for you.
Can't find the new properties you were hoping for? Well, at least you'll now find creating an extension a better-defined and probably more profitable pursuit.