Knowledge.Agent
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 name
and description
are used for introspection. The reliability could be used for conflict resolution.
Using 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.
The provided package
and 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.
val authorative : reliability
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 : Stdlib.Format.formatter -> t -> unit
prints the agent information.
val pp_id : Stdlib.Format.formatter -> id -> unit
prints the agent's id.
val pp_reliability : Stdlib.Format.formatter -> reliability -> unit
prints the reliability level.