XooCode(){

MusicComposition

MusicComposition is a CreativeWork subtype for the musical work itself — the composition — as distinct from any specific MusicRecording that captures a performance. A single MusicComposition links to many MusicRecording entries.

Direct properties (10):

  • composer (Person or Organization): who wrote the music.
  • lyricist (Person): who wrote the words.
  • lyrics (CreativeWork): the lyrics text as a work.
  • iswcCode (Text): International Standard Musical Work Code (T-XXX.XXX.XXX-X).
  • musicalKey (Text): tonal key (e.g. "C minor").
  • musicCompositionForm (Text): form (overture, sonata, symphony).
  • musicArrangement (MusicComposition): an arrangement derived from this.
  • firstPerformance (Event): première event.
  • includedComposition (MusicComposition): smaller compositions within this one.
  • recordedAs (MusicRecording): recordings of this composition.

Full example of schema.org/MusicComposition json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/MusicComposition
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "MusicComposition",
  "@id": "https://xoocode.com/music/compositions/structured-silence",
  "name": "Structured Silence (String Quartet No. 1)",
  "composer": { "@type": "Person", "name": "Priya Chen" },
  "iswcCode": "T-998.765.432-1",
  "musicalKey": "D minor",
  "musicCompositionForm": "String quartet in four movements",
  "firstPerformance": {
    "@type": "Event",
    "name": "Xoo Code Quarterly — Summer 2025 chamber programme",
    "startDate": "2025-07-18T20:00:00-04:00",
    "location": { "@type": "Place", "name": "The Thunderdome Recital Hall, Dunmore, PA" }
  },
  "recordedAs": [
    { "@type": "MusicRecording", "name": "Structured Silence — Live at The Thunderdome", "byArtist": { "@type": "MusicGroup", "name": "The JSON-LDs" }, "duration": "PT24M12S" }
  ]
}
</script>

Composition vs Recording

A song is a MusicComposition. A recording of that song by a specific artist is a MusicRecording linked via recordedAs. Cover versions are separate MusicRecording entries that reference the same MusicComposition.

Minimal valid version

The smallest markup that still produces a valid MusicComposition entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/MusicComposition (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "MusicComposition",
  "name": "Structured Silence (String Quartet No. 1)",
  "composer": { "@type": "Person", "name": "Priya Chen" }
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

  • Music knowledge panel (via MusicRecording link-through)
    Google docs

Common MusicComposition mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    Composition conflated with a recording

    Wrong
    MusicComposition listing artist and album
    Right
    MusicComposition for the work; MusicRecording linked via recordedAs for the specific performance

    The two are distinct entities. A cover version is a new MusicRecording referencing the same MusicComposition.

  2. 02

    ISWC as plain digits

    Wrong
    "iswcCode": "998765432"
    Right
    "iswcCode": "T-998.765.432-1" (formatted per CISAC)

    ISWC has a standard format; unformatted codes fail rights-management lookups.

About the example data

A fictional Xoo Code Quartet chamber piece, performed by The JSON-LDs.

Comments

Loading comments...

Leave a comment