Q:

OWL How to use multiple restrictions on a class

How can i set multiple restrictions for a given owl class?
Example:
A given course must be taken by at least 1, but maximum 10 students:
      :Course a owl:Class;
        owl:equivalentClass [a owl:Restriction; 
        owl:onProperty :takenBy;
        owl:minCardinality 1] .

    :Student a owl:Class .

    :takenBy a rdf:Property;
    rdfs:domain :Course;
    rdfs:range :Student .

This sets the restriction that a Course must be taken by at least 1 student, but how do i also apply the restriction owl:maxCardinality 10?

A:

You can use an owl:intersectionOf for this.
 :Course a owl:Class;
    owl:equivalentClass [  
            owl:intersectionOf [ a owl:Restriction ; 
                                 owl:onProperty :takenBy;
                                 owl:minCardinality 1] ;
                               [ a owl:Restriction ; 
                                 owl:onProperty :takenBy;
                                 owl:maxCardinality 10] 
            ]
    ].

