Skip to content

Case Study: How to structure performing arts information using computational tools

Mariel edited this page Apr 23, 2023 · 2 revisions

Ways that arts organizations can use ChatGPT to improve their metadata markup

ChatGPT is a language model that can process natural language, which means it can understand human language input and generate responses in a way that mimics human-like communication. Although ChatGPT is not specifically designed for metadata markup, we have found it to be effective in generating Schema.org markup for live performance events.

Structuring Event information with Schema.org

Schema.org is a collaborative effort between Google, Microsoft, Yahoo, and Yandex to create a standardized vocabulary or "schema" for structured data markup on web pages. This vocabulary includes a variety of different types of data, such as events and reviews.

Structured data markup is a way of providing additional information about the content on a web page to search engines, chatbots, and other computational tools that consume this data. By structuring your event information using Schema.org, you can provide more detailed and accurate information about your events, including the date, time, location, performers, and more. This makes it easier for search engines and other systems to understand and categorize your event information, which can lead to higher visibility in search results and improved recommendations.

For example, if someone searches for "upcoming theatre performances in Toronto," a search engine that has access to structured data markup for events will be able to provide more accurate and relevant results. Similarly, chatbots like Chat-GPT and other conversational systems can use this structured data to provide more detailed information about events to users who ask for it.

  1. To read more about structuring your event information to meet with Google's guidelines, please visit their instructional site here: https://developers.google.com/search/docs/appearance/structured-data/event.

  2. They also provide a codelab tutorial for you to walk through for step by step instructions https://codelabs.developers.google.com/codelabs/structured-data/index.html#2

  3. There are also a number of free markup generators for Events that you can use:

What is the Most Important Event Information to Structure?

To improve the search and discovery of an event, the following common Schema.org elements should be included on your website event page as markup:

  • Event name: The title of the event.
  • Event type: The type of category of event, for example: ComedyEvent, DanceEvent, ExhibitionEvent, Festival, FoodEvent, LiteraryEvent, MusicEvent, ScreeningEvent, TheaterEvent, VisualArtsEvent
  • Event description: A brief text-based overview of the event.
  • Event date and time: The start and end date and time of the event.
  • Event location: The address or venue where the event will be held.
  • Ticket information: How to purchase tickets for the event, including ticket name, price, and purchase link.
  • Organizer information: Information about the organization or individual hosting the event, such as name, website, and contact information.
  • Additional information that can be structured include event images, performers, sponsors, and accessibility information.

It's important to note that this is code that won't be visible to human visitors of your website (unless they want to inspect your web page's source code).

Most performances have a show run or schedule. In this case, where there are several different performances across different days, each with individual tickets, you will need to generate a separate schema.org Event element for each performance.

Case Studies

Creating Schema.org Markup using Chat-GTP

Please see the archived listing for bluemouth inc.’s Cafe Sarajevo which is available to access on the Progress Festival website: website

Cafe Sarajevo is a good example of an archived show listing. All of the details, including the house program are available for researchers to access, even after the show has completed. If we look closer, no structuring of the content using schema.org currently exists on the page.

To add structured information to the site, let's follow these steps:

Step 1: Create an account on GPT-3 https://chat.openai.com/chat

Step 2: Use the following table as a template, replacing the second column text with information about your performance work.

Schema Properties Replace with your event information:
Event type Theatre Event, Dance Event, Music Event
Event name Cafe Sarajevo
Event description An immersive theatrical experience exploring the borders that divide and unite us, within the framework of a live podcast. Café Sarajevo follows protagonist, Lucy Simic, as she travels to her father’s birthplace, Bosnia. Along the way, we explore divided cities and the notion of “human nature”, asking the question: what causes a nation to divide, and begin to hate the very people and culture that it used to see at its own? With story, dance, game, music, 360° video, and by casting the audience as characters in the story, internationally acclaimed performance makers bluemouth inc. create a fast-paced, intimate, and thoughtful exploration about nationalism, racial bias and war tourism. An excerpt of Café Sarajevo was shared with sold-out houses as part of the 2018 SummerWorks Lab, where it received honourable mention for the Buddies in Bad Times Vanguard Award for Risk and Innovation. SummerWorks is thrilled to now present the North American premiere of the fully realized work for Toronto audiences.
Event start date Thursday Jan. 30, 2020 at 9:00PM
Event end date Thursday Jan. 30, 2020 at 10:30PM
Event location Franco Boni Theatre - The Theatre Centre, 1115 Queen St W Toronto, ON Canada
Ticket information Ticket name: Single Ticket
Ticket price: $25.00 CAD
Link to purchase: https://tickets.theatrecentre.org/TheatreManager/1/tmEvent/tmEvent293.html
Image  http://progressfestival.org/wp-content/uploads/2019/11/Sarajevo_1400x600-1024x439.jpg
Organizer Information SummerWorks

Step 3: Prompt ChatGPT

  1. Provide GPT-3 with the following prompt: “Please structure the following using schema.org, provide the code in JSON-LD, and wrap the code in the appropriate script tag <script type="application/ld+json">.”

  2. Next, copy and paste the text from the template you created in the previous step (Step 2) and past it into the GPT-3 chat window. You should now have the prompt request, followed by the table of text information for your event.

  3. Press enter to complete the prompt request. GPT-3 will return a script similar to the following:

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Event",
  "name": "Cafe Sarajevo",
  "description": An immersive theatrical experience exploring the borders that divide and unite us, within the framework of a live podcast. Café Sarajevo follows protagonist, Lucy Simic, as she travels to her father’s birthplace, Bosnia. Along the way, we explore divided cities and the notion of “human nature”, asking the question: what causes a nation to divide, and begin to hate the very people and culture that it used to see at its own? With story, dance, game, music, 360° video, and by casting the audience as characters in the story, internationally acclaimed performance makers bluemouth inc. create a fast-paced, intimate, and thoughtful exploration about nationalism, racial bias and war tourism. An excerpt of Café Sarajevo was shared with sold-out houses as part of the 2018 SummerWorks Lab, where it received honourable mention for the Buddies in Bad Times Vanguard Award for Risk and Innovation. SummerWorks is thrilled to now present the North American premiere of the fully realized work for Toronto audiences.",
  "startDate": "2020-01-30T21:00",
  "endDate": "2020-01-30T22:30",
  "location": {
    "@type": "Place",
    "name": "Franco Boni Theatre - The Theatre Centre",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "1115 Queen St W",
      "addressLocality": "Toronto",
      "addressRegion": "ON",
      "postalCode": "M6J 1J1",
      "addressCountry": "CA"
    }
  },
  "image": "http://progressfestival.org/wp-content/uploads/2019/11/Sarajevo_1400x600-1024x439.jpg",
  "organizer": {
    "@type": "Organization",
    "name": "SummerWorks",
    "url": "https://summerworks.ca/"
  },
  "offers": {
    "@type": "Offer",
    "name": "Single Ticket",
    "price": "25.00",
    "priceCurrency": "CAD",
    "url": "https://tickets.theatrecentre.org/TheatreManager/1/tmEvent/tmEvent293.html"
  }
}
</script>

Step 4: Test it

  1. Open the following URL and paste the code generated into the left hand panel of this testing site. https://search.google.com/test/rich-results/result?id=tf88Kpq3XLAgYEPHLEXcng

  2. Correct any issues. Great job, you’ve now validated your structured information and it’s ready to be added to your website.

Adding Structured Content to your Website or Application


Structuring Cafe Sarajevo with MiLOPA using ChatGPT

Here we will experiment with structuring Cafe Sarajevo using MiLOPA concepts. The focus here is to archive elements of the work for researchers and others to access now that the show has completed.

Website URL: progressfestival.org/programming/cafe-sarajevo

Step 1: Fill out the following information in the provided template

MiLOPA Properties Your event information
CONTEXT https://github.com/pair-cg
PERFORMANCE_WORK performance work
The PERFORMANCE_WORK is the conceptual plan for how elements (such as CREATIVE_MATERIAL, TANGIBLE_REALIZATION_ELEMENTs and/or INTANGIBLE_REALIZATION_ELEMENTs) will be executed in front of an audience.
TITLE Cafe Sarajevo
DISCIPLINE Performance, Theatre, Dance, Music, Podcast, VR
COMBINATORIAL_MODE Interdisciplinary
ARTISTIC_PROCESS_TEAM "Created and Performed by Mariel Marshall, Peter Musante, Lucy Simic and Stephen O’Connell
Production Manager: Lisa Humber
Stage Manager: Gloria Mok
Creative Technologist: Jacob Niedzwiecki
Lighting Designer: Patrick Lavender"
CREATIVE_DELIVERY_METHOD A headset system using RF headphones in combination with a custom iOS application developed by Jacob Niedzwiecki. The headset system allowed audiences to receive 360 video that was cued simultaneously. The CREATIVE_DELIVERY_METHOD of the headset system resulted in a creative innovation for research purposes.
PHASE Realization
REALIZATION LOCATION Toronto ON, Canada
PREMIERE TYPE North American Premiere

Step 2: Prompt GPT-3

  1. Prompt GPT-3 with the following
  2. Copy and past directly into the chat window: “Please structure the following using the MiLOPA framework, provide the code in JSON-LD, and wrap the code in the appropriate script tag <script type="application/ld+json>. Use snake case rather than camel case.">.”
  3. Next, copy and paste the text from the template you created in the previous step (Step 2) and past it into the GPT-3 chat window. You should now have the prompt request, followed by the table of text information for your event.
  4. Press enter.

Step 3: The prompt request will return a script similar to the following:

<script type="application/ld+json">
{
  "@context": "https://github.com/pair-cg",
  "@type": "performance_work",
  "performance_work_title": "Cafe Sarajevo",
  "discipline": ["Performance", "Theatre", "Dance", "Music", "Podcast", "VR"],
  "combinatorial_mode": "Interdisciplinary",
  "artistic_process_team": [
    {
      "@type": "Person",
      "name": "Mariel Marshall",
      "role": creator, performer
    },
    {
      "@type": "Person",
      "name": "Peter Musante",
      "role": creator, performer
    },
    {
      "@type": "Person",
      "name": "Lucy Simic",
      "role": creator, performer
    },
    {
      "@type": "Person",
      "name": "Stephen O’Connell",
      "role": creator, performer
    },
    {
      "@type": "Person",
      "name": "Lisa Humber",
      "job_title": "Production Manager"
    },
    {
      "@type": "Person",
      "name": "Gloria Mok",
      "job_title": "Stage Manager"
    },
    {
      "@type": "Person",
      "name": "Jacob Niedzwiecki",
      "job_title": "Creative Technologist"
    },
    {
      "@type": "Person",
      "name": "Patrick Lavender",
      "job_title": "Lighting Designer"
    }
  ],
  "creative_delivery_method": "A headset system using RF headphones in combination with a custom iOS application developed by Jacob Niedzwiecki. The headset system allowed audiences to receive 360 video that was cued simultaneously. The CREATIVE_DELIVERY_METHOD of the headset system resulted in a creative innovation for research purposes.",
  "realization": {
    "@type": "Realization",
    "location": {
      "@type": "Place",
      "address": {
        "@type": "PostalAddress",
        "address_locality": "Toronto",
        "address_region": "ON",
        "address_country": "Canada"
      }
    },
    "phase": "Realization",
    "premiere_type": "North American Premiere",
  }
}
</script>


Step 6: Add the code to your website.

Adding structured content to your website or application

JSON-LD can be added to your website by inserting the JSON-LD code into the HTML of your webpage. Here are the general steps you can follow:

  1. Decide which page(s) you want to add JSON-LD markup to.
  2. Determine the appropriate JSON-LD format and schema.org types for the information you want to markup.
  3. Write the JSON-LD code for the markup you want to add.
  4. Insert the JSON-LD code into the HTML of your webpage(s), ideally within the section of the page.

Wordpress:

If you're using a Wordpress site, we'd recommend you explore using a structured data plugin. There are many free ones on the market and paid ones as well that you can use to easily add structured information to your site.

  1. Schema and Structured Data for WP https://wordpress.org/plugins/schema-and-structured-data-for-wp/
  2. Schema Pro (paid) https://wpschema.com/
  3. WP SEO Structured Data Schema https://wordpress.org/plugins/wp-seo-structured-data-schema/

Squarespace

For a more detailed tutorials, please visit: [How to Add Schema Markup to a Squarespace Site](Site https://www.squarespaceexpert.com/news/how-add-schema-markup-squarespace-site)

Note you will need a paid version of Squarespace which has code injection capabilities for this tutorial.

To add the generated JSON-LD code to a Squarespace website, follow these steps:

  1. Login to your Squarespace account and go to the page where you want to add the JSON-LD code.
  2. Click on the "Edit" button to enter the page editing mode.
  3. Click on the "Settings" icon at the top left corner of the page and select "Advanced" from the dropdown menu.
  4. Click on "Code Injection" from the "Advanced" menu.
  5. Paste the generated JSON-LD code into the "Header" section of the "Code Injection" panel
  6. Select ‘Mode’ HTML from the dropdown menu.
  7. Make sure to turn OFF the “display source code toggle” as you don’t want the code visible on the page.
  8. Click on "Save" to save the changes and then click on "Done" to exit the editing mode.
  9. Test using a validator.

Other free tools to markup your content with structured content: Free tool