Thing > Intangible > Role

Represents additional information about a relationship or property. For example a Role can be used to say that a 'member' role linking some SportsTeam to a player occurred during a particular time period. Or that a Person's 'actor' role in a Movie was for some particular characterName. Such properties can be attached to a Role entity, which is then associated with the main entities using ordinary properties like 'member' or 'actor'.

See also blog post.

Usage: Between 10 and 100 domains
[more...]
PropertyExpected TypeDescription
Properties from Role
endDate Date The end date and time of the item (in ISO 8601 date format).
roleName URL  or
Text 
A role played, performed or filled by a person or organization. For example, the team of creators for a comic book might fill the roles named 'inker', 'penciller', and 'letterer'; or an athlete in a SportsTeam might play in the position named 'Quarterback'. Supersedes namedPosition.
startDate Date The start date and time of the item (in ISO 8601 date format).
Properties from Thing
additionalType URL An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. In RDFa syntax, it is better to use the native RDFa syntax - the 'typeof' attribute - for multiple types. Schema.org tools may have only weaker understanding of extra types, in particular those defined externally.
alternateName Text An alias for the item.
description Text A short description of the item.
image URL  or
ImageObject 
An image of the item. This can be a URL or a fully described ImageObject.
mainEntityOfPage URL  or
CreativeWork 
Indicates a page (or other CreativeWork) for which this thing is the main entity being described.

Many (but not all) pages have a fairly clear primary topic, some entity or thing that the page describes. For example a restaurant's home page might be primarily about that Restaurant, or an event listing page might represent a single event. The mainEntity and mainEntityOfPage properties allow you to explicitly express the relationship between the page and the primary entity.

Related properties include sameAs, about, and url.

The sameAs and url properties are both similar to mainEntityOfPage. The url property should be reserved to refer to more official or authoritative web pages, such as the item’s official website. The sameAs property also relates a thing to a page that indirectly identifies it. Whereas sameAs emphasises well known pages, the mainEntityOfPage property serves more to clarify which of several entities is the main one for that page.

mainEntityOfPage can be used for any page, including those not recognized as authoritative for that entity. For example, for a product, sameAs might refer to a page on the manufacturer’s official site with specs for the product, while mainEntityOfPage might be used on pages within various retailers’ sites giving details for the same product.

about is similar to mainEntity, with two key differences. First, about can refer to multiple entities/topics, while mainEntity should be used for only the primary one. Second, some pages have a primary entity that itself describes some other entity. For example, one web page may display a news article about a particular person. Another page may display a product review for a particular product. In these cases, mainEntity for the pages should refer to the news article or review, respectively, while about would more properly refer to the person or product.
Inverse property: mainEntity.
name Text The name of the item.
potentialAction Action Indicates a potential Action, which describes an idealized action in which this thing would play an 'object' role.
sameAs URL URL of a reference Web page that unambiguously indicates the item's identity. E.g. the URL of the item's Wikipedia page, Freebase page, or official website.
url URL URL of the item.

More specific Types
  • OrganizationRole
  • PerformanceRole

    Examples

    A basic Role example in JSON that
    shows how to qualify the 'member' property
    by adding an intermediate Role entity.
    
    <div itemscope itemtype="http://schema.org/Organization">
      <span itemprop="name">Cryptography Users</span>
      <div itemprop="member" itemscope
            itemtype="http://schema.org/OrganizationRole">
        <div itemprop="member" itemscope
                itemtype="http://schema.org/Person">
          <span itemprop="name">Alice</span>
        </div>
        <span itemprop="startDate">1977</span>
      </div>
    </div>
    
    <div vocab="http://schema.org/" typeof="Organization">
      <span property="name">Cryptography Users</span>
      <div property="member" typeof="OrganizationRole">
        <div property="member" typeof="Person">
          <span property="name">Alice</span>
        </div>
        <span property="startDate">1977</span>
      </div>
    </div>
    
    <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "Organization",
      "name": "Cryptography Users",
      "member": {
        "@type": "OrganizationRole",
        "member": {
        "@type": "Person",
        "name": "Alice"
        },
        "startDate": "1977"
      }
    }
    </script>
    
    A JSON example of an OrganizationRole being used to qualify
    the 'alumni' property. Note that we use startDate to indicate
    when the alumni situation began, which was the date of leaving
    the organization.
    
    <div itemscope itemtype="http://schema.org/CollegeOrUniversity">
      <span itemprop="name">University of Cambridge</span>
      <link itemprop="sameAs" href="http://en.wikipedia.org/wiki/University_of_Cambridge"/>
      <div itemprop="alumni" itemscope
            itemtype="http://schema.org/OrganizationRole">
        <div itemprop="alumni" itemscope
                itemtype="http://schema.org/Person">
          <span itemprop="name">Delia Derbyshire</span>
          <link itemprop="sameAs" href="http://en.wikipedia.org/wiki/Delia_Derbyshire"/>
        </div>
        <span itemprop="startDate">1959</span>
    </div>
    
    <div vocab="http://schema.org/" typeof="CollegeOrUniversity">
        <span property="name">University of Cambridge</span>
      <link property="sameAs" href="http://en.wikipedia.org/wiki/University_of_Cambridge"/>
      <div property="alumni" typeof="OrganizationRole">
        <div property="alumni" typeof="Person">
          <span property="name">Delia Derbyshire</span>
          <link property="sameAs" href="http://en.wikipedia.org/wiki/Delia_Derbyshire"/>
        </div>
        <span property="startDate">1959</span>
    </div>
    
    <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "CollegeOrUniversity",
      "name": "University of Cambridge",
      "sameAs": "http://en.wikipedia.org/wiki/University_of_Cambridge",
      "alumni": {
        "@type": "OrganizationRole",
        "alumni": {
          "@type": "Person",
           "name": "Delia Derbyshire",
          "sameAs": "http://en.wikipedia.org/wiki/Delia_Derbyshire"
        },
        "startDate": "1959"
      }
    }
    </script>
    
    A JSON example of an OrganizationRole being used to qualify
    the 'alumniOf' property (which is inverseOf 'alumni').
    Note that we use startDate to indicate when the alumniOf
    situation began, which was the date of leaving the organization.
    
    <div itemscope itemtype="http://schema.org/Person">
      <span itemprop="name">Delia Derbyshire</span>
      <link itemprop="sameAs" href="http://en.wikipedia.org/wiki/Delia_Derbyshire"/>
      <div itemprop="alumniOf" itemscope
            itemtype="http://schema.org/OrganizationRole">
        <div itemprop="alumniOf" itemscope
                itemtype="http://schema.org/CollegeOrUniversity">
          <span itemprop="name">University of Cambridge</span>
          <link itemprop="sameAs" href="http://en.wikipedia.org/wiki/University_of_Cambridge"/>
        </div>
        <span itemprop="startDate">1959</span>
    </div>
    
    <div vocab="http://schema.org/" typeof="Person">
      <span property="name">Delia Derbyshire</span>
      <link property="sameAs" href="http://en.wikipedia.org/wiki/Delia_Derbyshire"/>
      <div property="alumniOf" typeof="OrganizationRole">
        <div property="alumniOf" typeof="CollegeOrUniversity">
          <span property="name">University of Cambridge</span>
          <link property="sameAs" href="http://en.wikipedia.org/wiki/University_of_Cambridge"/>
        </div>
        <span property="startDate">1959</span>
    </div>
    
    <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "Person",
       "name": "Delia Derbyshire",
       "sameAs": "http://en.wikipedia.org/wiki/Delia_Derbyshire",
       "alumniOf": {
         "@type": "OrganizationRole",
         "alumniOf": {
           "@type": "CollegeOrUniversity",
           "name": "University of Cambridge",
           "sameAs": "http://en.wikipedia.org/wiki/University_of_Cambridge"
        },
        "startDate": "1959"
      }
    }
    </script>
    
    A JSON example of a PerformanceRole, in which
    the Role represents the acting contribution made by
    Bill Murray in the film Ghostbusters. The Role entity
    allows us to additional information, such as the
    character's name that he played in the film.
    
    <div itemscope itemtype="http://schema.org/Movie">
      <span itemprop="name">Ghostbusters</span>
      <link itemprop="sameAs" href="http://en.wikipedia.org/wiki/Ghostbusters"/>
      <div itemprop="actor" itemscope
            itemtype="http://schema.org/PerformanceRole">
        <div itemprop="actor" itemscope
                itemtype="http://schema.org/Person">
          <span itemprop="name">Bill Murray</span>
        </div>
        <span itemprop="characterName">Dr. Peter Venkman</span>
    </div>
    
    <div vocab="http://schema.org/" typeof="Movie">
      <span property="name">Ghostbusters</span>
      <link property="sameAs" href="http://en.wikipedia.org/wiki/Ghostbusters"/>
      <div property="actor" typeof="PerformanceRole">
        <div property="actor" typeof="Person">
          <span property="name">Bill Murray</span>
        </div>
        <span property="characterName">Dr. Peter Venkman</span>
    </div>
    
    <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "Movie",
      "name": "Ghostbusters",
      "sameAs": "http://en.wikipedia.org/wiki/Ghostbusters",
      "actor": {
        "@type": "PerformanceRole",
        "actor": {
          "@type": "Person",
          "name": "Bill Murray"
        },
        "characterName": "Dr. Peter Venkman"
      }
    }
    </script>
    
    A JSON example of an OrganizationRole, showing information
    about a 'member' of a 'SportsTeam', including time qualfiers
    (when he began and ended that role).
    
    <div itemscope itemtype="http://schema.org/SportsTeam">
      <span itemprop="name">San Francisco 49ers</span>
      <div itemprop="member" itemscope
            itemtype="http://schema.org/OrganizationRole">
        <div itemprop="member" itemscope
                itemtype="http://schema.org/Person">
          <span itemprop="name">Joe Montana</span>
        </div>
        <span itemprop="startDate">1979</span>
        <span itemprop="endDate">1992</span>
        <span itemprop="roleName">Quarterback</span>
    </div>
    
    <div vocab="http://schema.org/" typeof="SportsTeam">
      <span property="name">San Francisco 49ers</span>
      <div property="member" typeof="OrganizationRole">
        <div property="member" typeof="http://schema.org/Person">
          <span property="name">Joe Montana</span>
        </div>
        <span property="startDate">1979</span>
        <span property="endDate">1992</span>
        <span property="roleName">Quarterback</span>
    </div>
    
    <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "SportsTeam",
      "name": "San Francisco 49ers",
      "member": {
        "@type": "OrganizationRole",
        "member": {
          "@type": "Person",
          "name": "Joe Montana"
        },
        "startDate": "1979",
        "endDate": "1992",
        "roleName": "Quarterback"
      }
    }
    </script>
    

    Schema Version 2.0