Roles, again

"Nicola Guarino" <>
Message-id: <guarino.1160793827E@>
Date: Wed, 6 Sep 95 18:49:47 +0200
From: "Nicola Guarino" <>
Subject: Roles, again
Cc: "Pierdaniele Giaretta" <>,
        "Massimiliano Carrara " <>
X-Mailer: VersaTerm Link v1.1
Precedence: bulk
On 28 Aug 95 Jan Schmidt wrote:

>On 28-AUG-1995 John Sowa wrote:
>>   relation LINK(*x,*y) is
>>      [Entity: ?x] [Entity: ?y]
>>      [Entity: *z [?z]->(HAS)->[Role: ?x] [?z]->(HAS)->[Role: ?y]].
>> How do people feel about that approach?
>Are Entity, Role, eventually Agent primitives? If not, what would
>be the definition of, say, Role?
>It seems to me that the above definition requires Entity and Role to have
>non-empty intersection (i.e. their common subtype must not be bottom).

John Sowa answered:

>Role is not a primitive in the logic, but in the ontology that I am
>suggesting (which, strictly speaking, is not part of the CG formalism,
>but of the top-level ontology that is optional) I have been following
>CG Peirce's categories of Firstness, Secondness, and Thirdness.  Since
>those labels sound strange to most people (and even to Peirce himself,
>who chose those labels precisely because they had no common associations),
>I have been using the type labels Form, Role, and Mediation.  Form is
>defined as the top (or Entity) with the differentia Firstness; Role is
>Entity with differentia Secondness; and Mediation is Entity with
>differentia Thirdness.
>Jan's question of whether Agent is primitive is related to Keith Campbell's
>earlier question of how new primitives can be introduced.
>In effect, every theory must start with some primitive [...]
>To get back to Keith's question, perhaps we should adopt some notation
>to indicate when we are introducing a new primitive that is not fully
>defined. It could be something like
>   primitive Agent < Role.
>This says that every agent is a role and that further specification
>must be done by other axioms and definitions that relate it to the
>other concept and relation types.

NO! an agent (i.e., a particular individual) is *not* a role, it *plays* a
role... In other words, being a role is a meta-level property, and the class
"Role" is a class of (unary) predicates, not a class o domain entities.
Putting aside the issue related to their names, the three categories "Form",
"Role" and "Mediation" proposed by John Sowa must be intended, in my
opinion, as meta-level categories of (unary) predicates. They are in this
sense disjoint, and typical instances of them are predicates like "person",
"mother" and "motherhood". Therefore, instead of writing Agent < Role, we
should simply write [Role: Agent], as pointed out by somebody recently on
this list.

If the point above is clear, what remains to be addressed is:

1. The relationship between Agent-as-an-attribute and Agent-as-a-concept (or 
   between Has-Agent and Agent). In my opinion, the semantics of attributes 
   (as a particular kind of binary relations) should account for a 
   *systematic* between an attribute and some corresponding unary relation.

2. The ways of formally capturing the English meaning of the term "role" 
   accounting for the differences between unary relations such as PERSON, 
   FAT-PERSON and TEACHER: I agree with Mike that only TEACHER should be
   considered as a role.

In the past, I have addressed these issues in the following papers
(accessible on

Guarino N. Concepts, Attributes, and Arbitrary Relations: Some Linguistic and
Ontological Criteria for Structuring Knowledge Bases. Data and Knowledge
Engineering 8, 1992. 

Guarino N., Carrara M., Giaretta P. An Ontology of Meta-Level Categories.
KR'94, Bonn,1994.

Issue 1 has been discussed in great detail in the former paper, while the
latter paper concentrates mostly on issue 2. In the DKE paper, roles are
defined (roughly) as unary predicates which are non-rigid and dependent,
while in the latter paper the dependency criterion has been dropped and
roles are defined as predicates which are non-rigid and countable [see the
papers for a formal definition of rigidity, dependency (which we call
"foundedness") and countability]. Now, after some recent discussions
(especially with Fritz Lehmann, Doug Skuce and Mike Uschold), I tend to
think of roles as non-rigid, countable *and dependent* unary predicates. By
the way, in the Enterprise Ontology being developed by Austin Tate, Mike
Uschold and colleagues at the university of Edimburgh, a role is defined
(roughly) as a class whose instances appear as arguments within an n-ary
relation: this is a form of dependence akin to what we have used in our
paper, but, without entering into details, I don't think that dependence
alone is enough to characterize the notion of a role.

This should answer - at least in part - the questions raised by Peter Clark
in a recent message:

On Aug 31, Peter Clark wrote:

>I'm worried (well, I always have been) about the distinction between roles
>and concepts, and also how things keep slipping betweeen the two -- eg. as
>reflected by often having relations and concepts with the same name 
>(Eg. [Person]->(MOTHER)->[Mother]). 
> - On the one hand: saying a concept C is in a role R isn't exactly 
>   the same as saying C isa R. An isa hierarchy gets messy with 
>   "concepts" in it like "Product", "Transportee", etc., which
>   happens if you write things like [Production]->(PRODUCT)->[Product] etc.
>   Often almost anything can fill these roles.
> - On the other hand: If a concept is playing some role R, then it
>   presumably should acquire some of information about the role. 
>   eg. if John's stomach is filling the role of container in eating (say),
>   then presumably we should be able to infer it's a concave structure,
>   has a boundary and free-space inside it, has a portal etc.
>   If a "role" is reduced to just being another relation then we 
>   lose any information about what that role *means*. Surely
>   by filling a role you aquire some properties (somehow) automatically???
>Maybe a role is a kind of "temporary isa link"? And when is something
>a role or a concept? Eg. "Agent", and "Mother" are perhaps roles rather
>concepts? (Or is everything a role)??

I would say that, roughly, every unary predicate is either a concept or a
property: Mother, Pedestrian and Person are all concepts, while Red may be a
property (within a particular ontological commitment); the former two are
roles, according to the definitions above, but only Mother has a
corresponding *relational interpretation*, namely Has-Mother. It is
therefore what I call an "attribute". Briefly (I am aware of some further
problems), the hierarchy I have in mind is something like this:

Unary predicate
     Type  [e.g., Person]
       Attribute (relational role) [e.g., Mother]
       Non-relational role [e.g., Pedestrian]
   Property [e.g., Red]

A final comment deserves Peter's concern regarding the proliferation of
concepts: one of the advantages of a clean distinction between types and
roles is the possibility to superimpose a "skeleton" of types on a huge
network of concepts: such a skeleton (which in most cases turns to be a
tree) would help a lot for indexing purposes.

-- Nicola



Nicola Guarino
National Research Council     phone: +39 49 8295751
LADSEB-CNR                    fax:   +39 49 8295778
Corso Stati Uniti, 4          email:
I-35127 Padova                WWW: