This page tracks a proposal from the schema.org team for modeling various kinds of roles and contributions in a way that allows rich qualification. For example, when we say that a Person was an actor in a Movie, we might want to mention their characterName too. When we say that a SportsTeam has a Person as an athlete, we might want to mention the position that they play, or the time period in which they fulfilled that role.
To achieve this, a type "Role" is proposed, alongside a new property, "hasRole".
Old Examples (from initial design sketches)
hasRole/inRole in RDFa
Note that this example is an exploratory variation on the main proposal. It distinguishes between 'hasRole' and 'inRole'.
The original design circulated March 26th had a complication: it wanted a role-oriented property linking the Movie to the Role, and also the Person to the Role. To achieve this, local identifiers for the role were used (in JSON-LD syntax). Commentators on the list noted that this introduced new complexities for publishers. However it is hard to represent a complex graph structured without ID-based references. This example shows that it can be done in RDFa 1.1 notation, although this is also complex in a different way:
<div vocab="http://schema.org/" typeof="Movie"> <span property="name">Ghostbusters</span> <div property="hasRole" typeof="MovieRole"> <span property="characterName">Dr. Peter Venkman</span> <div rel="actor" rev="inRole" typeof="Person"> <span property="name">Bill Murray</span> </div> </div> </div>