("Slash-based") Extension Mechanism

Status Note:
This page introduces our original approach to extensibility. In addition to this technique, other extensibility mechanisms available for publishers include the use of RDFa and JSON-LD (as they are designed to work with multiple schemas), the Role type and additionalType property can now also be used for different extension scenarios. It is perfectly fine to combine schema.org with other "Web schemas" such as those listed in the LOV catalogue. Finally, we invite collaboration on improving schema.org's own schemas to make them more useful. See the release history page to learn more about previous extensions that have been integrated.


Original Text follows:

Many applications, including search, can make use of structured data only when it’s expressed using vocabularies that they understand. However, the variety and richness of structured data covering everything on the web is much too rich for a single organization (like schema.org) to completely cover.

Therefore, schema.org has created an extension mechanism that lets webmasters and developers extend our existing schemas. When you extend our schemas and use these extensions to mark up your data, search applications can at least partially understand your markup and use the data appropriately.

(Of course, you can always create new schemas that are not at all tied to those on schema.org, and you should do this if the content of your domain is not covered by any of the schema.org types. If the schema gains adoption and proves useful to search applications, search engines may start using this data.)

Extensions that gain significant adoption on the web may be moved into the core schema.org vocabulary, so that search engines can provide more functionality based on better understanding of the structured data.

Note on naming conventions

Schema.org uses the following naming convention. We request that you follow this naming convention for your extensions as well.

How to extend schema.org vocabulary

schema.org uses the '/' character to create extensions that are specializations of existing schema.org vocabulary.

Extending an existing property

Extend a property with a / character, followed by the name of the extension, like this:

musicGroupMember/leadVocalist
musicGroupMember/leadGuitar1
musicGroupMember/leadGuitar2

Extending an existing class

Extend a class name with the character '/' followed by the name of the extension, like this:

Person/Engineer

To introduce a new class that is a specialization of an existing specialized class, continue in the same way, like this:

Person/Engineer/ElectricalEngineer

Extending an enum item

Extend an existing enumeration name with the character '/' followed by the name of the extension. For example, to extend the existing item EBook with the more specialized KindleBook:

EBook/KindleBook

You can introduce new properties for any class defined on schema.org, even if the property is not a specialization of an existing property. We encourage webmasters to do this, rather than defining a new class independently, so that at least some of the information about the entity being described can be understood by search engines.

Of course, you can always create new schemas that are not at all tied to those on schema.org, and you should do this if the content of your domain is not covered by any of the schema.org types. As soon as your schemas gain sufficient adoption, search engines will start using their data.

Last Updated: 29 Jun 2011