@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix swrl: <http://www.w3.org/2003/11/swrl#>.
@prefix : <foo:bla#>.
:Piece owl:hasKey (:x :y).
:x a owl:FunctionalProperty.
:y a owl:FunctionalProperty.
:chesstype a owl:FunctionalProperty.
:Chesstypes owl:oneOf(:king :queen : pawn).
[] owl:allDifferent (:king :queen : pawn).
# :color a owl:FunctionalProperty.  # forget it ;)
:chess a :Chess; :hasPieces
 [ a :Piece; :x 4; :y 1; :chesstype :queen; :color "white" ],
 [ a :Piece; :x 4; :y 1; :chesstype :queen; :color "white" ],
 :b1, :b2.
 :b1 a :Piece; :x 4; :y 4; :chesstype :pawn; :color "white".
 :b2 a :Piece; :x 4; :y 4; :chesstype :pawn; :color "black".

:Chess rdfs:subClassOf
  [ a owl:restriction; owl:onProperty :hasPieces;
    

:x a swrl:Variable.
:y a swrl:Variable.

 :dummyRule a swrl:Imp;
   swrl:head ([ a swrl:IndividualPropertyAtom;
                 swrl:propertyPredicate :derivedP;
                 swrl:argument1 :x ;   swrl:argument2 :y ]);
   swrl:body ([ a swrl:IndividualPropertyAtom;
                 swrl:propertyPredicate :chesstype;
                 swrl:argument1 :x ;   swrl:argument2 :y ]).


