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))))