An information provider.
A piece of information could be predicated with its source to denote the trustworthiness of the information an/or to enable information provenance.
An agent is a registry entity with associated name, description, and reliability. The
description are used for introspection. The reliability could be used for conflict resolution.
Domain.opinions it is easy to embed any data into the domain structure, by pairing the elements of this set with the information about its source, i.e., with the agent.
type t = agent
val register : ?desc:string -> ?package:string -> ?reliability:reliability -> string -> agent
register name registers a new agent.
name pair should be unique. If an agent with the given
package:name is already registered, the registration of the new agent will fail.
val registry : unit -> id list
registry () is the current registry of agents.
Each registered agent is represented by its ID, which could be inspected or used to change the reliability.
val desc : id -> string
desc id is the overall description of the agent.
val reliability : id -> reliability
reliability id is the current reliability of the agent
val set_reliability : id -> reliability -> unit
set_reliability id changes the reliability of the agent.
The highest level of reliability.
The information was obtained from a source in which we trust absolutely. There are no possible doubts that this information is incorrect.
The authorative source is definitional and is always preferred to any other information.
It could be compared to the information obtained from the official legislative document, mathematical textbook, etc.
val reliable : reliability
A highly reliable source.
This source rarely, if ever, provides inaccurate results.
It could be compared to the information obtained from a well-known expert, peer-reviewed journal, etc.
val trustworthy : reliability
A very reliable source.
This source provides accurate results most of the time. Only in exceptional cases it could provide an inaccurate result.
It could be compared to the information obtained from a field expert.
val doubtful : reliability
Nearly reliable source.
This source sometimes provides inaccurate information or relies on doubtful methods. It is still providing useful and accurate information more often than not.
It could be compared to the information obtained from a knowledgeable person.
val unreliable : reliability
A not worthwhile source.
This source provides accurate information slightly more often than inaccurate. Though it is a bad source of information, many unreliable source could be combined to.
It could be compared to the knowledge obtained from gossips, i.e., from not knowledgeable persons close to the knowledge.
val pp : Format.formatter -> t -> unit
prints the agent information.
val pp_id : Format.formatter -> id -> unit
prints the agent's id.
val pp_reliability : Format.formatter -> reliability -> unit
prints the reliability level.