Role Classes -- e.g. Resource, Teacher

Mike Uschold <>
From: Mike Uschold <>
Date: Fri, 28 Jul 95 15:53:00 BST
Message-id: <>
To: pif-comments@MIT.EDU
Subject: Role Classes -- e.g. Resource, Teacher
Cc:,,,, ontolingua@HPP.Stanford.EDU,
This note describe our experiences and approach to dealing with things
like Resource that in some sense may be more properly modelled as Roles
rather than 'primary' entities.

I am posting it to pif-comments, as it is directly relevant to the PIF
effort, however it may also be of more general relevance to others
building ontologies in Ontolingua.

I do not mean to suggest that our approach is necessarily better for the
PIF effort (or even for us) but it is what we have currently done and it
seems semantically and logically correct.  There may be practical
reasons for adopting an alternative approach, e.g. by making RESOURCE a
'primary' ENTITY. However, my intuition is that such an approach is
logically dubious.

I encourage any and all sorts of feedback on this.


The following definitions appear in the natural language description of
the Enterprise Ontology -- accessible via:

Like the PIF document, it serves as the specification for a coded
version. The actual code in Ontolingua (not yet available) necessitated
a range of decisions, including precisely how to deal with things like
RESOURCE and more generally, ROLES.

Eventually, we hope to produce a companion document describing this an
other important issues and decisions that were taken during the coding
effort.  Such a document will bridge the gap between the specification
and the code.

ROLE: the way in which an ENTITY participates in a RELATIONSHIP
      this can be thought of as [the semantics of] an argument in a relation.

ROLE CLASS: the class of all entities that play a particular role in
            some RELATIONSHIP (i.e. relation).

e.g. the binary relation PERFORM has two roles (arguments): 
     * performer of type ACTOR  and
     * performee of type ACTIVITY 

     the binary relation CAN-USE-OR-CONSUME has two roles:
     * user/consumer of type ACTIVITY and 
     * used/consumed of type ENTITY (i.e in principle can be 
                                             anything at all!)

Many ROLES are not particularly interesting and thus are neither
referred to nor represented except implicitly as arguments in
relations.  However the 'used/consumed' role is EXTREMELY important and
is usually referred to as a RESOURCE.

e.g. RESOURCE: the class of all entities that play the
               used/consumed ROLE in the CAN-USE-OR-CONSUME  relation.

In the Ontolingua code for the Enterprise Ontology, ROLES are not
explicitly represented, they are [only] implicit in the definition of

However, important ROLES give rise to ROLE CLASSES such as RESOURCE
which *are* formally represented.  The OL code for this example is
something like:

;;; Can-Use-Or-Consume

(define-relation Can-Use-Or-Consume
                 (?activity ?resource)
		 "a Relationship between an Activity and an
Entity whereby the Entity is or can be used or consumed during the performance
of the Activity"
		 (and (Eo-Entity ?resource)
		      (Activity ?activity))
		 ("An Entity produced by an Activity may be viewed as a 
Resource in that *other* Activities may use/consume it;
however such outputs are not Resources with respect to the
producing Activity." ) )

;;; Resource

(define-frame Resource
              "The Entity that is used or consumed in the Can-Use-Or-Consume 
               (Instance-Of Class) (Subclass-Of Eo-Entity))
              ((<=> (Resource ?resource)
                (exists (?activity)
			(Can-Use-Or-Consume ?activity ?resource))))
              ("This is a special Role class, in that membership in it is 
determined purely on the basis of an Entity's participating in one or
more relationships."))

In the Enterprise Ontology,  there are a considerable number of such
ROLE CLASSES; these include: 

* DOER: performer of an ACTIVITY

* PURPOSE: a STATE OF AFFAIRS that is either 
     1) the Intended-Purpose of some Plan, or 
     2) in a Hold-Purpose relationship with some Actor
     This is an interesting example where PURPOSE is logically the union
     of two ROLE CLASSES.

* PURPOSE-HOLDER:  The ACTOR in the Hold-Purpose relation

to name just a few.

I hope this is of some use in the PIF effort, and others building
ontologies in Ontolingua.

Feedback welcome.

Mike Uschold                  	AI Applications Institute,                    
INTERNET:    The University of Edinburgh,
Tel: (031) 650 2732             80 South Bridge, Edinburgh EH1 1HN 
Fax:       650-6513		Scotland