benefits across multiple consumers
of the markup.
Schema.org was launched with 297
classes and 187 relations, which over
the past five years have grown to 638
classes and 965 relations. The classes
are organized into a hierarchy, where
each class may have one or more super-classes (though most have only one).
Relations are polymorphic in the sense
they have one or more domains and
one or more ranges. The class hierarchy is meant more as an organizational
tool to help browse the vocabulary than
as a representation of common sense,
à la Cyc.
The first application to use this
markup was Google’s Rich Snippets,
which switched over to Schema.org
vocabulary in 2011. Over the past four
years, a number of different applications across many different companies
have started using Schema.org vocabulary. Some of the more prominent
among these include the following:
˲ In addition to per-link Rich Snippets, annotations in Schema.org are
used as a data source for the Knowledge Graph, providing background information about well-known entities
(for example, logo, contact, and social
˲ Schema.org-based structured data
markup is now being used in places
such as email messages.
For example, emailmessages confirming reservations (restaurant, hotel,
airline, and so on), purchase receipts,
have embedded Schema.org markup
with details of the transaction. This approach makes it possible for email assistant tools to extract the structured
data and make it available through
mobile notifications, maps, and calendars. Google’s Gmail and Search
products use this data to provide notifications and reminders (Figure 2). For
example, a dinner booking made on
Opentable.com will trigger a reminder
for leaving for the restaurant, based on
the location of the restaurant, the user,
traffic conditions, and so on.
˲ Microsoft’s Cortana (for Windows
10 and Windows phones) makes use of
Schema.org from email messages, as
shown in Figure 3.
˲ Yandex uses many parts of Schema.org, including recipes, autos, reviews, organizations, services, and
directories. Its earlier use of FOAF
recommended different vocabularies.
Because of the resulting confusion, most webmasters simply did
not add any markup, and the markup
they did add was often incorrectly
formatted. This abundance of incorrect formatting required consumers
of markup to build complex parsers
that were able to handle improperly
formed syntax and vocabulary. These
complex parsers turned out to be just
as brittle as the original systems used
to extract structured data from HTML
and thus did not result in the expected advances.
In 2011, the major search engines
Bing, Google, and Yahoo (later joined
by Yandex) created Schema.org to
improve this situation. The goal was
to provide a single schema across a
wide range of topics that included
people, places, events, products, offers, and so on. A single integrated
schema covered these topics. The
idea was to present webmasters with
a single vocabulary. Different search
engines might use the markup differently, but webmasters had to do the
work only once and would reap the
Figure 1. Example of a knowledge base sourced from multiple sites.
city country USA
Figure 2. Restaurant reservation email markup (microdata syntax).
Your reservation for <span itemprop=”partySize”> 3</span>
at Local Edition is
href=” http://schema.org/Confirmed”/>confirmed</link> for
The reservation is held under:
<span itemscope itemtype=” http://schema.org/Person”>
<span itemprop=”givenName”>Dan Brickley</span>.
Serve yourself when you arrive.
<span itemscope itemtype=” http://schema.org/Restaurant”>
<meta itemprop=”telephone” content=”tel:+1-202-555-0125” />
To get there:<br />
<span itemprop=”name”> Local Edition </span><br />
<span itemprop=”address” itemscope itemtype=” http://schema.org/Posta-
<span itemprop=”streetAddress”>2370 South Market Street, San