Two years ago, Nesta and The Satori Lab published a report encouraging arts organizations to publish open data for their events. As there is no data standard for the performing arts, the report notably recommended the use of Schema.org to make it easier for crawling bots to read and interpret event information. Fine. But how does one use Schema.org? Here, in a nutshell, is how to use it.
What is Schema.org?
Launched by Google, Microsoft, Yahoo and Yandex, Schema.org vocabularies are developed using an open community process whose goal is to “make document markup codes more readable and meaningful to both humans and machines,” to quote Wikipedia.
Schema.org is a set of microdata (aka structured data) used in webpages to describe content for the bots that index the web for search engines. Data is structured using Schema.org tags that describe the nature of the information on a webpage (with @type tags) as well as the information attributes, actions and relationships with other entities (with property tags). Structuring data in this manner helps bots better understand the contents of the pages they index. This accretion of meaning is used by search engines to compile and present enhanced and more targeted results to a variety of requests from Internet users (source: Schema.org and Wikipedia).
Adding Schema.org structured data to webpages
Schema.org structured data is present as tags embedded in the webpage code, by convention in the page header (<head>). The Schema.org vocabulary can be used with different encodings. However, bots such as Google specifically recommend JSON-LD encoding because it allows for the production of enhanced and visual results in search pages. Few cultural workers have the technical know-how to encode their own structured data. That’s where plug-ins come in handy, as they take the worry out of producing structured data.
A comparative analysis by Jai Djwa in 2020 revealed that The Events Calendar and a few other plug-ins used to optimize and structure data were able to produce some Schema.org structured data. Other plug-ins may have integrated structured data since then.
To find out if your web content manager or plug-ins produce structured data (and which ones do), structured data evaluation tools are highly recommended. Schema Markup Validator, produced and supported by the entire Schema.org community, and Rich Results Test are very useful tools to identify coding errors or weak use of Schema.org tags.
Tool to evaluate the entire range of Schema structured data present in a page.
Objective: Ensure that the information present is interoperable and therefore
a) can be scraped (i.e., collected) by robots and added to the Artsdata knowledge graph (which is supported by the Linked Digital Future initiative) or other databases; and,
b) reusable to populate cultural calendars (as recommended in The Satori Lab and Nesta report) or any other application requiring performing arts data.
Tool to evaluate the structured data required to produce rich search results.
Objective: Ensure that the content and structured data meet the requirements of traditional indexing bots in order to present rich and dynamic answers to all Internet users.
Essential structured data
The Schema.org vocabulary includes several types (i.e. classes or groupings of similar things) and properties associated with each type.
Structured data for a performing arts event should include at the very least the following information:
- @type: Event
The “event” type should be used to specify that the webpage contains information about an event. If this information is missing from your pages, this is the first thing you need to set.
The name of the event appears on every page of the event. Is it also present in your structured data?
The date is a fundamental attribute of a performance. Start dates and times must appear in the structured data in the format prescribed in ISO standard 8601.
Along with the date, the location is the other fundamental attribute of a performing arts event. Place is a separate type in Schema, but a venue’s structured data can and should be integrated with that of the event. Unfortunately, plug-ins produce very little structured data about places associated with events. If your plug-in does not support location data but does allow you to enter a URL (or else an @id or a sameAs) associated with the venue, use this field to redirect bots to the Wikidata item describing the venue. Wikidata can provide these bots with much more information about your venues than Schema data can (as long as that information is entered into Wikidata, of course).
In structured data, the URL property indicates more than the location of a resource, such as an event. In a way, the webpage’s URL is the event’s name as far as bots are concerned. It is a unique identifier (hence the importance of having only one event per page). If you are the organizer of the event and you publish it on your own website, you don’t have to do anything. The webpage’s URL is the default value of the URL property. If you are managing a cultural calendar listing events with links to URLs on other websites, then your structured data should include the sameAs property and you should make sure the event’s official URL appears there. This tells the bots that the structured data on both pages describes the same event. This could for example allow algorithms to assemble the structured data on both pages and fill in what might be missing on one or the other page.
Google recommends using several other event properties, some of which, such as the following, are particularly apt for performing arts events.
SPEC du Haut-Richelieu, a Quebec-based presenting organization, participated in the Linked Digital Future’s Digital Discoverability Program in 2019. They worked particularly hard and have been publishing a remarkable range of structured data on their event pages (see this test result).
Several plug-ins can handle offer and organizer data, and some allow for information about the performer, the group or the company involved in the event. If your plug-in supports this structured data, take advantage of it. As with the location, don’t forget to associate a URL to the organizer and the performer. Use the url, @id or sameAs property to provide links to their official website, Wikipedia page or Wikidata item. No matter what URL you use, by linking, you create meaning and add value to your structured data.
What about specific types of events?
Schema has several subtypes of events associated with the performing arts, for example, schema:TheatreEvent, schema:MusicEvent and schema:DanceEvent. However, the definitions of these subtypes are ambiguous and inconsistent. While TheatreEvent is clearly defined as a performance, MusicEvent has no definition other than its label. Is it a concert or an event about music? As for DanceEvent, the definition here is more precise — a social dance — an entirely different concept from a performance.
So how can we describe a dance or circus performance in Schema.org? Unfortunately, this is not currently possible. The essential concept that is sorely missing from the Schema ontology is that of a “performing arts event”, regardless of the discipline or genre. This is a major gap that hinders automated processing of performance data and discoverability of the performing arts.
The Performing Arts Information Representation Community Group, a W3C-associated community group dedicated to modelling the performing arts, is working to fill this void. The group is developing a harmonized performing arts ontology, which will likely include a class for performances, although the name and definition are still under discussion. The group is also considering submitting a proposal to Schema.org for the addition of an event type to designate any public performance of a performing arts work, regardless of discipline or genre.
On the home front, Culture Creates and CAPACOA implemented a class denoting performances in the ArtsData knowledge graph. ado:PerformanceEvent is defined as a subclass of schema:Event and a superclass of all the more specific classes associated with the performing arts in the controlled vocabulary of the Artsdata ontology.
Until a new type is built into Schema to designate all performances, web developers who want to make their structured data more precise can enter ado:PerformanceEvent, using the schema:additionalType property. (note: This vocabulary is still evolving. Version 2 is anticipated soon).
Structured data template for events
This structured data template was developed by Culture Creates and La danse sur les routes du Québec. This template is meant to be used by web developers to generate custom JSON-LD structured data on performing arts event pages.
Your digital presence: Let’s Improve It
This training session was presented at the 2021 CAPACOA Conference and at the 2022 Western Arts Alliance. Resources from this session are available this blog post by Bridget MacIntosh and Frédéric Julien.