This is the third lesson on Events and Roles. It will discuss the concept of Actor Slots.
#$ActorSlot is the largest sub-collection of #$Role. Actor slots are predicates that are arranged in a semantically powerful hierarchy. All the instances of #$ActorSlot are predicates that have #$actors as their #$genlPreds, directly or indirectly. In that way, #$actors imposes upon all the predicates below it the constraints shown on this slide: actor slots relate instances of #$Event to instances of #$SomethingExisting because those are the argument constraints on #$actors.
*Note about “plays a part”: It’s not much easier to give a precise characterization of the criterion for actor slots than it is to give a criterion for the “involved in” criterion for #$Roles generally. For example: actor slots don’t necessarily indicate something is active. There is one strict temporal requirement imposed through #$actors: anything that can fill an #$ActorSlot role #$temporallyIntersects the event.
This slide shows a small part of the top of the #$ActorSlot #$genlPreds hierarchy. Constraints imposed by predicates at the top of the hierarchy inherit downward. At the bottom of this part of the hierachy, we see the #$ActorSlot #$inputsDestroyed. Since #$inputsDestroyed inherits from #$inputs, Cyc knows that anything destroyed in an event is an input to the event. Since #$inputs inherits from #$objectActedOn, Cyc knows that any input to an event is somehow acted on in the event. Since #$objectActedOn inherits from #$preActors, Cyc knows that every object acted on in an event takes part in the event and exists before the event begins, and since #$preActors inherits from #$actors, Cyc knows that any object that takes part in an event and exists before the event begins is a #$SomethingExisting that temporally intersects the event.
This slide provides a glimpse of a larger portion of the vast #$ActorSlot hierarchy. As you can see, there are many actor slots that inherit significant constraints from other actor slots in the hierarchy.
This slide shows another example of how actor slot constraints inherit down through the#$genlPreds hierarchy. Since #$actors inherits from #$temporallyIntersects, Cyc knows that anything that plays a role in an event temporally intersects the event.
Similarly, since #$preActors inherits from #$startsAfterStartingOf and #$actors, Cyc knows that anything that is a pre-actor in an event temporally intersects the event, and starts before the event does.
Since #$postActors inherits from #$endsAfterEndingOf and #$actors, Cyc knows that anything that is a post-actor in an event temporally intersects the event, and ends after the event does.
Although #$ActorSlot is the largest sub-collection of #$Role, not every instance of #$Role is an instance of #$ActorSlot. From what we have learned so far in this presentation about actor slots in Cyc, it should be easy to tell why some instances of #$Role cannot be instances of #$ActorSlot.
So, why isn’t #$affectedAgent an instance of #$ActorSlot?
That which is specified in the arg2 slot of an #$affectedAgent GAF need not be a participant in the event that’s being described. For example, in some sense I was affected by World War II in that it had a tremendous effect on the way the that society developed in the fifties, sixties, and so on and I’m a product of that society, but I was not a participant in World War II. So although we might want to say that I was affected by that event, I wasn’t a participant in it. So this predicate is not an #$ActorSlot because, as I said, all instances of #$ActorSlots are spec preds of #$actors and it’s a requirement stated on the predicate #$actors that whatever occurs in the arg2 slot must be a participant in the event in the arg1 slot.
#$distanceTranslated is not an #$ActorSlot. Why not?
#$distanceTranslated is not an instance of #$ActorSlot because its arg2 is not required to be an instance of #$SomethingExisting. This is another constraint placed on the #$ActorSlot hierarchy by the top node, #$actors, which requires that its second argument be an instance of the collection #$SomethingExisting.
#$objectsInContact is not an #$ActorSlot. Why?
Because it has variable-arity. When we say that objects are in contact during an event we’re going to need to pick at least two objects and the event. So it needs to be at least ternary to specify the event and the two objects that are in contact, and it could even be that there are more than two objects in contact during an event. So this would not be a binary predicate, and all instances of #$ActorSlot are binary predicates.
This slide shows an example of how inheritance relations via #$genlPreds roles can be very useful in inferencing. From the first bulleted set of assertions, the #$genlPreds hierarchy under #$actors enables Cyc immediately to conclude that the assertions in the second bulleted set hold.
So, #$ActorSlots are a special kind of #$Role predicate with special properties enforced by a #$genlPreds hierarchy with #$actors at the top. The #$genlPreds hierarchy enforces constraints that inherit downward and enable Cyc to conclude many significant facts from assertions made with specialized #$ActorSlot predicates that come from the lower sections of the hierarchy.