What is an agent?

51 views
Skip to first unread message

Roger Swetnam

unread,
Apr 28, 2014, 6:43:02 PM4/28/14
to xapi...@adlnet.gov
Hi:

I'm feeling like I'm at a party where everybody knows the host and why we've been invited except for me.  I can't tell from my invitation - i.e. the xAPI spec what/who the agent is that is referred to throughout the document.  

  1. An Actor is described as a mandatory Agent or a Group Object.  What is a mandatory Agent?  Is this statement saying that an Actor must be an Agent or a Group?  Or, are there several types of Agent - one of which is mandatory?
  2. Why is a Group an object but not an Agent?
  3. The closest I have been able to find to a definition of Agent is the following description: "An Agent (an individual) is a persona or system."   Does this mean that an agent can either be an individual persona or an individual system?  Is a persona a person or does persona have a special meaning that is defined somewhere else?
  4. Can an agent be any type of system - e.g. a digestive system or are we only talking about software systems or web applications?
For someone like myself who is coming late to the party, it would be nice to have definitions of the terms being used - not just descriptions or lists of properties.  I'd be happy to make positive contributions to any definitions that are included in the spec - but at this point I'm quite confused about what is being referred to - and I'm only at the "a"s.



Dave Smith

unread,
Apr 28, 2014, 10:00:46 PM4/28/14
to Roger Swetnam, xapi...@adlnet.gov

Roger,

 

Allow me to take a shot an giving you at least some of the answers you seek.

 

1.       The “mandatory” descriptor applies to the actor part of the statement. It is mandatory that each statement have an actor. An actor may be a single entity (persona or system) or a collection (group) or personae and/or systems. Each persona (and each system), i.e. each agent, must have a unique identifier (IRI). Therefore, if the actor in a statement is a single agent, there is only one IRI that identifies the entity taking this action. If the actor is a group, there will be defined a collection of agents (collection of IRI’s) to identify the group of entities, each identified by their specific IRI. The bottom line is whether the actor is identified by a single IRI or a collection or IRI’s.

2.       Group is an object because it is not singularly identifiable by one unique IRI. In JSON, the list of IRI’s that make up the group of entities who, collectively, constitute the thing that is taking the action of the statement must be defined as an object containing the individual agents, each with its individual IRI. An agent is singular; no need for more than one IRI. Therefore, there is no need for a group object to define a single entity (single IRI) agent.

3.       An agent is a single entity that has performed the action being described by the statement. The agent may be the only (i.e. entire) actor of the statement or it may be one of a group of agents that collectively make up the statement’s actor. I read persona to mean a flesh and blood entity with a singular consciousness, as opposed to an application or hardware appliance.

4.       The spec is purposely left generic in many of its definitions to allow its application to larger, and currently unforeseen, implementations. I could certainly image a situation where a biological system or other non-corporeal entity could qualify as a system agent in an xAPI statement.

 

I look forward to other insights into these questions. These are my personal ones.

 

Dave Smith

To unsubscribe from this group and stop receiving emails from it, send an email to xapi-spec+...@adlnet.gov.

mrdownes

unread,
Apr 29, 2014, 2:30:41 AM4/29/14
to Roger Swetnam, xapi...@adlnet.gov
Hi Roger, 
Thanks for your mail. I'd encourage you to also look at the various examples, blogs,  ebook and guides online alongside the spec as you learn. Also, did you see the definitions section at the top? Any contributions to that or any other section are most welcome. 

So onto your specific questions. It looks like your first guesses were right in most cases. An actor must be an agent or a group, agents and groups are different types of object and persona is different to person. I am a person; one of my personas is as the owner of tincanapi.co.uk. This is represented technically by a different persona for each identifier e.g. he...@tincanapi.co.uk 

What's your use case for having a digestive system as an agent? I don't see this as a problem, but guess it's unusual! 

Andrew 

Sent from Samsung Mobile

brian.miller

unread,
Apr 29, 2014, 8:47:17 AM4/29/14
to xapi...@adlnet.gov, Roger Swetnam
On Monday, April 28, 2014 9:00:46 PM UTC-5, Dave Smith wrote:

Roger,

 

Allow me to take a shot an giving you at least some of the answers you seek.

 

1.       The “mandatory” descriptor applies to the actor part of the statement. It is mandatory that each statement have an actor. An actor may be a single entity (persona or system) or a collection (group) or personae and/or systems. Each persona (and each system), i.e. each agent, must have a unique identifier (IRI). Therefore, if the actor in a statement is a single agent, there is only one IRI that identifies the entity taking this action. If the actor is a group, there will be defined a collection of agents (collection of IRI’s) to identify the group of entities, each identified by their specific IRI. The bottom line is whether the actor is identified by a single IRI or a collection or IRI’s.
 

2.       Group is an object because it is not singularly identifiable by one unique IRI. In JSON, the list of IRI’s that make up the group of entities who, collectively, constitute the thing that is taking the action of the statement must be defined as an object containing the individual agents, each with its individual IRI. An agent is singular; no need for more than one IRI. Therefore, there is no need for a group object to define a single entity (single IRI) agent.

Have to be careful here with two things:

1) You are using IRI which is on a different fundamental level than what you are likely meaning, specifically IFI (Inverse Functional Identifier). It is possible to define an Agent/Group without a single piece of data that is an IRI, specifically using an Account which requires two pieces of information, one of which is an IRI the other is not necessarily one.

2) There are two kinds of Group, identified and anonymous, you are speaking mostly about the latter case which is a Group that does not have an IFI and is made up of the members which are Agents. An identified group has an IFI and may include members that are agents but it is not a requirement to do so.  

3.       An agent is a single entity that has performed the action being described by the statement. The agent may be the only (i.e. entire) actor of the statement or it may be one of a group of agents that collectively make up the statement’s actor. I read persona to mean a flesh and blood entity with a singular consciousness, as opposed to an application or hardware appliance.

As Andrew mentioned where you are using "persona" we'd generally use "person". A "person" has a singular consciousness, which happens to have multiple "personas". There is a resource in the Agent Profile API that can be used to bring together the various personas of a person, but the specification does not provide for writing to it so it is left up to the LRS how to implement the population of the resource.
 

4.       The spec is purposely left generic in many of its definitions to allow its application to larger, and currently unforeseen, implementations. I could certainly image a situation where a biological system or other non-corporeal entity could qualify as a system agent in an xAPI statement.

 

I look forward to other insights into these questions. These are my personal ones.

 

Dave Smith



HTH,

Brian 

brian.miller

unread,
Apr 29, 2014, 8:49:58 AM4/29/14
to xapi...@adlnet.gov, Roger Swetnam
On Tuesday, April 29, 2014 1:30:41 AM UTC-5, Andrew Downes wrote:
Hi Roger, 
Thanks for your mail. I'd encourage you to also look at the various examples, blogs,  ebook and guides online alongside the spec as you learn. Also, did you see the definitions section at the top? Any contributions to that or any other section are most welcome. 


+1. You may be interested in this set of posts I wrote on these types of topics:


Which were made into an ebook linked on that page as well that includes a bit of an introduction. If there is a topic missing, let us know and we'll try to get something written up. The specification is light on these sorts of things to keep it from becoming huge and unwieldy.

Brian 

Roger Swetnam

unread,
Apr 29, 2014, 8:14:45 PM4/29/14
to xapi...@adlnet.gov
Thank you for your replies to my query.  As well as your replies, I have taken a look at some of the blogs and posts referred to.

The different interpretations that I received on things such as persona suggest to me that the language in the document needs to be tightened up and more definitions included.

Here are a couple of newbie suggestions made without the burden of having any real understanding of the subject matter.

1. There needs to be a definition of term "Agent" in the document.  This definition should be in the list of definitions at the same level as activity, actor and authentication.  The sentence "An Agent (an individual) is a persona or system" is not a definition.  It is an ambiguous description.  Is an agent an individual - individual being a key distinguishing property - or does the fact that it is in brackets mean that individual is a synonym for agent?  Is an agent a persona or person.  From this little thread, at least two interpretations of this term have emerged.  In parts of the document, agent and actor seem to be used interchangeably.  What is the relationship between these terms?
2. Part of the definition of Actor says it is an identity or persona of an individual...tracked..."  By identity I am assuming - though not certain that you are referring to the actor as a person whereas persona refers to any number of roles that a person may take on.  So, I might register and be tracked as Roger the person or Roger the prissy English pedantic or Roger the geeky programmer - each persona having its own unique identifier?  
3. The description of an Actor as a mandatory Agent or Group object is ambiguous.  Does mandatory refer to Agent or it's inclusion in a statement?  What about optional agents?  Why is Group referred to as an object but not an Agent?  

So a few my thoughts on the letter "A"...  Thanks again for your replies.

Regards,
Roger

Dave Smith

unread,
Apr 30, 2014, 12:14:41 AM4/30/14
to Roger Swetnam, xapi...@adlnet.gov

Andrew,

 

I appreciate your distinction between a person and a persona. That’s an interesting nuance that I overlooked.

 

Brian,

 

Good catch! Of course I meant Inverse Functional Identifier (IFI) and not IRI.

 

Roger,

 

The xAPI spec is an open source project housed at https://github.com/adlnet/xAPI-Spec. These types of changes can be submitted as pull requests and then get discussed at our regular spec meetings. If you are not interested in getting directly involved, I will be happy to work with you to develop suggested changes to the spec and submit them to the group for discussion and possible inclusion in the next version.

 

Dave Smith

To unsubscribe from this group and stop receiving emails from it, send an email to xapi-spec+...@adlnet.gov.

mrdownes

unread,
Apr 30, 2014, 3:10:21 AM4/30/14
to Roger Swetnam, xapi...@adlnet.gov
Hi Roger, 
These look like helpful suggestions. It'd be awesome if you could make these changes and any other suggestions as a pull request on Github to go straight into the spec. 

Have you used github before? Let us know if you have any difficulties working out what to do. 

Andrew 


Sent from Samsung Mobile



-------- Original message --------
From: Roger Swetnam <rogers...@gmail.com>

Roger Swetnam

unread,
Apr 30, 2014, 12:00:38 PM4/30/14
to xapi...@adlnet.gov
Hi Andrew:

I'd be happy to make some pull requests (whatever those are) to GitHub but at this point I'm still confused about the intended meaning of significant parts of the document.  What I thought I would do is make a couple of suggestions here as a way of teasing out meaning in the document.  Feedback to the individual points would be greatly appreciated.

 1.  An actor is like a noun in a sentence.  It may be part of the subject or the predicate.  ("Bob likes beer", "Frank hit Bob")
2.  Change the definition of actor from "An identity or persona of an individual or group tracked using Statements as doing an action (Verb) withing an activity" to "An actor that is a person that is doing the action in a statement or is being acted upon by the verb in a statement."  
3.  Eliminate references to persona in the document.  I think it's either being used as a poncy synonym for person or as a subset of properties of a person or a role.  e.g. Roger the pedant or Roger the hockey player.  I think that xAPI should be about tracking the education of people.  Persona just muddies the waters.
 4.  Remove the description of actor as "A mandatory Agent or Group object".  Replace it with "An actor must either be an individual person or a group of people."
5.  Remove the term "agent" from the document or at least change the way it is used.   The term is currently described - though not defined as follows:  "An Agent (an individual) is a persona or system."  This seems the be saying - though I am not sure, that the defining property of an agent is that it is an individual."  For me common language usage of agent is as someone or I suppose some thing that acts on behalf of someone else.    "007 is an agent of Her Majesty"  Distinguishing between a persona and a system is like distinguishing between an apple and trigonometry.  One refers to an entity - the other to a way of modeling the world.  All of the references to agent have got me confused - especially once I started coding.

Regards,
Roger

Ingo Dahn

unread,
May 2, 2014, 1:53:08 AM5/2/14
to Roger Swetnam, xapi...@adlnet.gov
Hi, Roger,
i.m.o. you touched upon a fundamental point. The difficulty to gain an abstract understanding of Agent and Group - beyond their use in concrete statements - is an instance of the general problem that the specification mixes Syntax (an Agent can be described by an identifier) with Information Model (an Agent can be the first component of a statement) and usage (an Agent can be the individuum to be tracked). Other specs treat these aspects in separate documents (Binding, Information Model, Best Practice resp.). This facilitates not only understanding of the spec, but also facilitates understanding its relation with other specs. I suggested such an approach earlier, but it was finally decided that it wouldn't be worth the effort.
Ingo


To unsubscribe from this group and stop receiving emails from it, send an email to xapi-spec+...@adlnet.gov.

Andrew Downes

unread,
May 2, 2014, 2:13:08 AM5/2/14
to xapi...@adlnet.gov
Hi Roger,
On points 1,2 and 5, I think you're mixing up actor and agent. Actor is what you've called predicate on point 1, an agent object is one possible value of that actor property. Predicate may or may not be a better term than actor, but its too late to change property names now.

On 3 this would be a major functional change. We decided to use personas for privacy reasons e.g. i may not want my employer to link up my personal learning activity to my staff record.

On point 4, please bear in mind the need for technical accuracy as well as readability.

Thanks!

Andrew

Roger Swetnam

unread,
May 4, 2014, 8:56:20 PM5/4/14
to xapi...@adlnet.gov
Thank you Dahn and Andrew for your replies.  Regarding person and persona - I think the privacy concerns make perfect sense.  I still think the terms need to be defined in the spec - but will make some suggestions in that regard in another thread.

Andrew, regarding your first point - "On points 1,2 and 5, I think you're mixing up actor and agent. Actor is what you've called predicate on point 1, an agent object is one possible value of that actor property"
1.  I understand a predicate to be a grammatical construct - in the sense that a sentence or statement must have a subject and a predicate. In the sentence "Bob likes beer".  Bob is the subject.  Bob is a noun.  Bob is not part of the predicate which in this sentence is "likes beer".
2.  From this discussion, and looking at other writings, I have assumed that the Actor is a personal noun and that the reason that it has a prominent place in the specification is that we are interested in tracking the learning process of individual people but not of other types of nouns representing things such as bricks.  Am I mistaken here?
 
3.  At this point, I am still not any further ahead in understanding the subject of this thread "What is an agent?"  For me, the common meaning of an agent is someone or something that acts on behalf of someone else.  In the spec, it seems to be refer to a an individual entity as opposed to a group.  Which is correct - if either?

I am not asking these questions for the sake of having an academic debate.  These ambiguities for me are having a significant impact my ability to generate a useful and sustainable model for my LRS.  Your feedback is greatly appreciated.

Regards,
Roger

Reply all
Reply to author
Forward
0 new messages