Re: Roles, again (Pat Hayes)
Message-id: <>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Mon, 11 Sep 1995 09:28:36 -0600
To: Don Dwiggins <>,
From: (Pat Hayes)
Subject: Re: Roles, again
Precedence: bulk
At 11:27 PM 9/10/95 -0400, Don Dwiggins wrote:
Thanks for the example. To illustrate my suggestion: there are no 'roles',
at least as actual entities. What you have is the relation (sold-to-for
x,y,z,w) - rather an awkward one, but leave that for now - and its four
arguments, which are restricted to being respectively an agent, an agent,
an entity, and a quantity of value. These are sort restrictions on its

What you are calling 'roles' here are simply the argument places of the
relation, and your conceptual Jabberwockiness comes directly from trying to
think of them as actual entities when they are, at best, only a kind of
metasyntactic relationship between a relation and a sort. (Tell you a
story. Heres a way to get rich: dig a big hole, then take the hole and saw
it up into narrower holes and sell these holes to farmers so they can put
posts in the ground without digging. Roles are holes.)

OO languages lead one into thinking this way, since the notation is unable
to handle n-place relations for n>2, so one has to use the trick of making
these relations into Objects and linking their arguments to them. This
tends to lead one to think that the link to the relation is something real
(after all, it has to have a label, right?), which must then be different
from the relation itself. But this is just a confusion arising from the
notation. When an Object is a relation, the appropriate label for a slot is
the class of things that can legitimately be placed there, ie the sort of
that argument (an oversimplification, but OK for now.) This doesnt imply
that something new, called a 'role', has to be invented in order to, er,
play that role. As you say: 'a role of a given relation specifies the kind
of entity that can "play the role" '. However, you go on to make the
mistake: 'and it "carries the meaning" of such an entity being in that role
in that relation'. No; it - the role - doesnt carry any meaning. Its just a
syntactic restriction.

>- Roles are dependent on the relations they're part of; there's no such
>thing as a role independent of any relation (I depart from Nicola's idea of
>"non-relational" roles here; I'd call those something else).

Indeed, just as there isnt a hole without something for it to be a hole in.

>- Relations are dependent on their roles (this is part of what "carries the
>meaning" was getting at).  A role can be considered as a component of a
>relation (or perhaps "an entity playing a role is a component of the
>- A further commitment, which I'm not quite ready to make, is that the
>collection of roles IS the relation: if you understand all the roles, you
>know all there is to know about the relation.

But consider the relations sells-to-for (your example) and
gets-reward-for-killing-with, both with exactly the same argument sorts
(the third is the weapon). This suggestion illustrates the kind of trap
which OO thinking can lead one into unless the central role of relations is
kept in mind. 

By the way, it might be instructive here to look at the standard way of
reducing all of relational calculus to the purely binary case. It also
works by reifying relations into a special class of objects and then using
binary relations to express the links between them; but these relations are
simply 'first-argument-of', 'second-argument-of', etc.; they are not meant
to capture part of the "meaning" of the relation (now an object) which they
link objects to. 

Pat Hayes

PS. I notice that there are now three 'cg@ ' lines in the header of this
message. Is anyone getting this stuff three or four times?

Beckman Institute                                      (217)244 1616 office
405 North Mathews Avenue              (415)855 9043 or (217)328 3947 home
Urbana, Il.  61801                                     (217)244 8371 fax