W3C home > Mailing lists > Public > public-prov-wg@w3.org > November 2011

Re: A proposal for modeling agents

From: Daniel Garijo <dgarijo@delicias.dia.fi.upm.es>
Date: Thu, 10 Nov 2011 20:41:05 +0100
Message-ID: <CAExK0Dd7HKVLky+642H-YhXqQ=tRMqFFAoX0p1XTPL_n5tsJ3g@mail.gmail.com>
To: "Myers, Jim" <MYERSJ4@rpi.edu>
Cc: Yolanda Gil <gil@isi.edu>, Provenance Working Group WG <public-prov-wg@w3.org>, Paolo Missier <paolo.missier@newcastle.ac.uk>, Paul Groth <p.t.groth@vu.nl>, Luc Moreau <L.Moreau@ecs.soton.ac.uk>, "Reza B'Far (Oracle)" <reza.bfar@oracle.com>, Ryan Golden <ryan.golden@oracle.com>
Hi James, Yolanda, all.

The minimal model looks really good. But reading James answer just left me
with a question:
we have agreed in that processes and agents are not the same thing. But
what about a
software agent? That can be seen as a process too. If that is the case, if
the agent is created
by another process, can it be an Agent, Entity and Process at the same time?

Thanks,
Daniel

2011/11/10 Myers, Jim <MYERSJ4@rpi.edu>

> Yolanda et. al.,
> This seems like a nice coherent framework for agents. I have a couple of
> minor questions/issues and one question:
>
> 1) If responsibility is the key concept (which seems reasonable), should
> the "associatedWith" relation be stronger - e.g. "bearsResponsbilityFor"?
> "associatedWith" sounds as general as entity 'participatesIn' and doesn't
> clearly relate an agent versus an entity (an entity "associatedWith" an
> activity sounds reasonable, but isn't something you want to allow unless
> the entity is an agent).
>
> 2) re: "runOnBehalfOf" - would "actedOnBehalfOf" be better? This would
> have a domain and range of agent whereas I'm not sure what the domain/range
> of runOnBehalfOf is/how it allows documentation of one agent working for
> another...
>
>
> Question: One thing I don't see in this model, which may not be needed for
> a minimal model, is a way to describe the provenance of one agent acting on
> behalf of another - some way for an agent to be caused to act by an
> activity or the creation of an entity (e.g. a task order). I'm guessing
> that this might be something like the 'hasrecipe' idea - an agent
> 'hasOrders' <entity>. Same thing for an agent being triggered by a process
> to act - is there a missing relation there too? I'm posing this as a real
> question to the group (versus advocating for it) - from a completeness
> perspective, it would be useful to know the relation of agents to all of
> the other types of things in the model, and with the clear core you're all
> proposing, it seems like you might be able to define one or two more
> relationships w/o messing with that core.
>
> Good stuff!
>
> Cheers,
> Jim
>
> > -----Original Message-----
> > From: Yolanda Gil [mailto:gil@isi.edu]
> > Sent: Thursday, November 10, 2011 12:32 PM
> > To: Provenance Working Group WG
> > Cc: Paolo Missier; Paul Groth; Luc Moreau; Reza B'Far (Oracle); Ryan
> Golden
> > Subject: A proposal for modeling agents
> >
> > All,
> >
> > Prompted by Luc and Paul, a small group of us including Reza and Paolo
> have
> > been debating the agent-related aspects of the PROV model.  We reviewed
> > issues and discussions that have been brought up by the larger group, and
> > we have a proposal to include in the model 5 basic statements about
> agents,
> > which are summarized at the bottom of this message.  Before giving the 5
> > statements, we explain the rationale.
> >
> > As a first step, we agree to identify "agent" as a special type of
> "entity".
> > Modeling agents as entities enables expressing the
> > provenance of agents.  Note that many entities will not be agents.   A
> > data file or a document that are input to an activity will not be
> considered
> > agents in our model.  A person's record that is input to an activity
> will not be
> > considered an agent either if it is just being fed to the activity as
> data.
> >
> > Second, we would need to define what an agent is.  We propose to define
> > agent as a type of entity that takes an active role in an activity such
> that it
> > can be assigned some degree of responsibility for the activity taking
> place.
> > We want to stay away from using in this definition concepts such as
> > enabling, causing, initiating, affecting, etc, because any entities also
> enable,
> > cause, initiate, and affect in some way the activities.  So the notion of
> > having some degree of responsibility is really what makes an agent.  Even
> > software agents can be assigned some responsibility for the effects they
> > have in the world, so for example if one is using Word and one's laptop
> > crashes then one would say that Word was responsible for crashing the
> > laptop.  If one invokes a service to buy a book, that service can be
> considered
> > responsible for drawing funds from one's bank to make the purchase (the
> > company that runs the service and the web site would also be responsible,
> > but the point here is that we assign some measure of responsibility to
> > software as well).  So when someone models software as an agent for an
> > activity in our model they mean the agent has some responsibility for
> that
> > activity.
> >
> > Third, many agents can have an association with a given activity.  An
> agent
> > may do the ordering of the activity, another agent may do its design,
> another
> > agent may push the button to start it, another agent may run it, etc.  As
> > many agents as one wishes to mention in the provenance record if it is
> > important to indicate that they were associated with the activity.  Other
> > terms that have been circulated to refer to this include "involved",
> "used",
> > "participated", and "hadRoleIn".
> >
> > Fourth, we believe that it would be useful to define some basic
> categories of
> > agents.  Defining some standard classes of agents will improve the use of
> > provenance records by applications.  There should be very few of these
> basic
> > categories to keep the model simple and accessible.  Also, a simpler
> model
> > will be more extensible, as we anticipate that agency may be defined very
> > differently in different domains and applications so the model should be
> > able to accommodate that.  We propose to have three classes of agents in
> > the model:
> > "foaf:person" (sometimes referred to as "human agent" but that may be too
> > AI-ish), "foaf:organization", and "software agent".  These classes
> should be
> > mutually exclusive, though they do not cover all subclasses of agent.  We
> > could also add "foaf:group".
> >
> > Fifth, the notion of responsibility needs to be pinned down and this is
> > challenging.  It is important to reflect that there is a degree in the
> > responsibility of agents, and that is a major reason for distinguishing
> among
> > all the agents that have some association with an activity and determine
> > which ones are really the originators of the entity.  For example, a
> > programmer and a researcher could both be associated with running a
> > workflow, but it may not matter what programmer clicked the button to
> > start the workflow while it would matter a lot what researcher told the
> > programmer to do so.  Another
> > example: a student publishing a web page describing an academic
> > department could result in both the student and the department being
> > agents associated with the activity, and it may not matter what student
> > published a web page but it matters a lot that the department told the
> > student to put up the web page.  So there is some notion of
> > responsibility that needs to be captured.  Similarly with intent.
> > These notions are hard to define, but it would be even harder to make
> them
> > easy for people using our model so they would be comfortable assigning
> and
> > stating responsibility.  We would like to suggest a much milder version
> of
> > responsibility.  We propose to represent when an agent acted on another
> > agent's behalf.  So in the example of someone running a mail program, the
> > program is an agent of that activity and the person is also an agent of
> the
> > activity, but we would also add that the mail software agent is running
> on
> > the person's behalf.  In the other example, the student acted on behalf
> of his
> > supervisor, who acted on behalf of the department chair, who acts on
> behalf
> > of the university, and all those agents are responsible in some way for
> the
> > activity to take place but we don't say explicitly who bears
> responsibility and
> > to what degree.  We could also say that an agent can act on behalf of
> > several other agents (a group of agents).  This would also make possible
> to
> > indirectly reflect chains of responsibility.  This also indirectly
> reflects control
> > without requiring that control is explicitly indicated.  In some
> contexts there
> > will be a need to represent responsibility explicitly, for example to
> indicate
> > legal responsibility, and that could be added as an extension to this
> core
> > model.  Similarly with control, since in particular contexts there might
> be a
> > need to define specific aspects of control that various agents exert
> over a
> > given activity.
> >
> > Finally, we want to provide temporal ordering among activities, and we
> > can define that by expressing that agents start and end activities.
> > We could use wasStartedBy to represent that an activity was started by an
> > entity, and was EndedBy to represent that an activity was ended by an
> > entity.  For wasStartedBy, the entity must exist before start of the
> activity.
> > For wasEndedBy, the entity must exist before end of the activity.  It
> would
> > then be possible to assert either start/end for an activity, or state
> relative
> > temporal orderings between activities.
> >
> > So, to summarize, we propose the following statements for a minimal
> > model:
> >
> > 1) An "agent" is a type of entity that takes an active role in an
> activity such
> > that it can be assigned some degree of responsibility for the activity
> taking
> > place.
> >
> > 2) Many agents can be "associatedWith" a given activity.
> >
> > 3) Subclasses of agent are "foaf:person", "foaf:organization", and
> "software
> > agent".
> >
> > 4) Agents can run activities on behalf of other agents, indicated by
> > "runOnBehalfOf".
> >
> > 5) Agents can be responsible for starting and ending activities,
> indicated as
> > "wasStartedBy" and "wasEndedBy".
> >
> > We look forward to everyone's comments on this!
> >
> > Yolanda
> >
> >
> >
> >
> > Yolanda Gil
> > Director of Knowledge Technologies, USC/ISI Associate Director for
> > Research, Intelligent Systems Division, USC/ISI Research Professor of
> > Computer Science Information Sciences Institute University of Southern
> > California
> > 4676 Admiralty Way, Suite 1001
> > Marina del Rey, CA 90292 (USA)
> > Phone: +1-310-448-8794
> > Fax: +1-310-822-0751
> > http://www.isi.edu/~gil
> >
> >
> >
> >
> >
>
>
>
Received on Thursday, 10 November 2011 19:41:45 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:51:04 UTC