- From: Daniel Garijo <dgarijo@delicias.dia.fi.upm.es>
- Date: Thu, 10 Nov 2011 20:41:05 +0100
- 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>
- Message-ID: <CAExK0Dd7HKVLky+642H-YhXqQ=tRMqFFAoX0p1XTPL_n5tsJ3g@mail.gmail.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