Events are typically modeled like this:
<#event>
rdf:type [some event type] ;
gc:date [some date] ;
gc:place [some place] ;
gc:hasRole <#role1> ;
gc:hasRole <#role2> .
<#role1>
rdf:type [some role] ;
gc:playedBy <#person1> .
<#role2>
rdf:type [some role] ;
gc:playedBy <#person2> .
The number of players is unbounded. Also, there is a hierarchy of roles, some being primary, others major, and so on, allowing software to better operate on custom event types.