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
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
@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
@!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 }