module Krikri::SoftwareAgent

SoftwareAgent is a mixin for logic common to classes that carry out the work involved in a `Krikri::Activity`. This corresponds to a prov:SoftwareAgent within PROV-O & PROV-DM.

Software Agents should handle internal errors that do not result in full activity failure, and raise a `RuntimeError` when the job fails. `Activity` handles logging of activity start/stop, and failure status.

Implementers must provide a `#run` method.

@see Krikri::Activity @see www.w3.org/TR/prov-dm/#concept-software-agent

Public Instance Methods

agent_name() click to toggle source

Return an agent name suitable for saving in an Activity. This is the name of the most-derived class upon which this is invoked.

@return [String] @see Krikri::Activity

# File lib/krikri/software_agent.rb, line 31
def agent_name
  self.class.agent_name
end
run() click to toggle source

@abstract Perform this agent's work. The method may accept an

`activity_uri` to record as the prov:Activity in provenance metadata.
If so, the implementation must be optional and handle `nil` values by
declining to record provenance

@return [Boolean] `true` if the run has succeeded; otherwise `false`

@raise [RuntimeError] when the software agent's process fails

@see Krirkri::Activity @see Krikri::Job.run

# File lib/krikri/software_agent.rb, line 47
def run
  fail NotImplementedError
end
unknown() click to toggle source

@!attribute [rw] entity_behavior

@return [Krikri::EntityBehavior] the entity initialization behavior to  use with this 
  SoftwareAgent.
@see Krikri::Activity#entities
# File lib/krikri/software_agent.rb, line 23
included { attr_accessor :entity_behavior }