Let's start with Agent
IRI:
http://www.w3.org/ns/prov#Agent
An agent is something that bears some form of responsibility for an activity taking place, for the existence of an entity, or for another agent's activity.
I'll be honest that my first reaction to this and much of prov is that the definitions aren't very good. I don't think it was wise to consider this work appropriate for standardization in that scope, as the subject is at the same time difficult and prone to deceptively easy answers that don't hold up or aren't adequately built up.
'Agent' is such a case. What do we know from their definition? An agent is the sort of thing that can 'bear responsibility'. The things it can 'bear responsibility' for are an 'activity taking place', 'the existence of an entity', 'another agent's activity'.
Later we see 'Agents may also be ascribed responsibility'. The usual sense of bearing something is not the same as the sense of being ascribed something, the former suggesting inherence in the bearer, the latter suggesting a mental construct 'about' something.
'bearing responsibility' is not defined. We're left to wondering whether we're free to use any common sense of 'bearing responsibility', or some specific one. Do we mean the sort of thing that courts of law determine? For example, Man1 pays Man2 to kill Man3 with gun. In the trial all three are caught and it is determined that Man2 is innocent by way of insanity. Who/what are the entities that 'bear responsibility', or in other words, which are the Prov:Agents. Or for a more mundane example, perhaps closer to the W3C's mission, consider the RIAA hiring a law firm to write letters to people they are guessing illegally shared files, letters which are sorted by post office employee and delivered by postal delivery personnel. As a result of unjustly accusation, a person that receives this letter has a heart attack. Who/what are the Prov:agents with respect the letter, the heart attack?
So we have some difficulty even knowing what the term means, never mind what the cognate is in IAO or BFO.
The BFO way of handling such complicated situations would probably involve a set of roles and realizations of those roles. One would then have to see whether agentive behavior sensu PROV was compatible with the idea of the bearer being an PROV:agent in the realization, for any pair of role/realization. If not we might see if there are are a subset of such cases that PROV would consider "in", or whether there are cases outside realizable/realization that PROV would classify as Agent.
The document says there are three subclasses of Agent: Person, Organization, Software Agent. To the extent that either of the first two were in IAO they would be defined classes rather than universals - e.g. we could conceivable have at some point human computer programmer. However this wouldn't be defined in terms of the role and process (programmer, programming) ruling out Person and Organization as superclasses (at least as I think I understand those PROV terms).
[3] http://www.w3.org/TR/prov-o/#SoftwareAgent
The definition given for Software Agent is: 'A software agent is running software.'
Again we have that basic terms are not defined. What is running? What is software? Even the language is ambious to parse - it could be that an equivalence is being stated 'software agent' =def 'running software'. By running software do they mean initiating the software exection? Do they mean computer-like things, as in my mac is running OSX now, and so my Mac is a software agent? Do they mean the software is the agent, as OSX is an agent which acts in processes like printing text?
All of these intepretations are different things. IAO has, among other terms:
Software: Software is a plan specification composed of a series of instructions that can be interpreted by or directly executed by a processing unit
Software interpreter: A software interpreter is a software application that executes some specified input software.
Software application: A software application is software that can be directly executed by some processing unit.
That last definition looks wrong (I'll add an issue). Since it would seem to rule out things we call applications that written in scripting languages, as scripting langauges (with rare historical exceptions) are not directly executed by a processing unit.
So concluding this, my assessment is that one can not answer your question accurately because it is
3) This ambiguity would likely prevent single IAO terms to subsume prov terms, and make it difficult to know whether an IAO term was subsumed by one.