I can think of no good reasons for it to be one way or the other, thus choice was mainly arbitrary. The other way would entail use of a different name for the superclass so as to suggest the right meaning (e.g. Role-Player, or Role-Playing-Entity).
;;; Read-Document (define-relation Read-Document (?person ?document)Note that the axiom above is equivelent to how it might be expressed using the general form given for defining a Role-Class:
"A Relationship between an Person and a Document whereby the Person reads the Document" :def (and (Person ?person) (Document ?document)) )
;; Reader (define-frame Reader
:own-slots ((Documentation "a Person in an Read-Document Relationship with
some Document") (Instance-Of Role-Class) (Subclass-Of Individual))
:axioms (<
=> (Reader ?person) (and (Person ?person)
(exists (?document) (Read-Document ?person ?document)))) )
(<Note also that the wording used to define role-classes is:
=> (Reader ?person) (exists (?args)
(and (list ?args)
(holds ?Read-Document ?args)
(= (nth ?args 1) ?person))))
A special kind of Class which is defined as the set of all Entities playing a particular Role in some Relation.To the extent that updates may occur which change the particular set of tuples comprising a relation, being an instance of such a class is dynamically determined.
(<=> (Role-Class ?X) (Exists (?R ?N) (And (Relation ?R) (Natural ?N) (Forall (?Z) (<=> (Instance-Of ?Z ?X) (Exists (?Args) (And (List ?Args) (Holds ?R ?Args) (= (Nth ?Args ?N) ?Z))))))))
(<=> (Qua-Entity ?X) (Exists (?Rc) (And (Role-Class ?Rc) (Instance-Of ?X ?Rc))))