Warning:
This wiki has been archived and is now read-only.
Argumentation and Explainable Automated Decision-making
Contents
Introduction
A set of C# interfaces are indicated, showcasing some relationships between annotation, argumentation, and explainable automated decision-making.
Annotation
See also: https://www.w3.org/TR/annotation-model/
Here are the interfaces of IAnnotateable
and IAnnotation
.
Via the IServiceProvider
interface, discussed below, the annotations of an IAnnotateable
can be enumerated.
public interface IAnnotateable { }
public interface IAnnotation
{
IReadOnlyList<IAnnotateable> Target { get; }
IReadOnlyList<ILiteral> Body { get; }
DateTime CreationTime { get; }
// ...
}
Argumentation
One can consider expanding upon the annotation model, above, to include a type of recursion where some annotations can be viewed as claims and can, themselves, be annotated. We can extend IAnnotateable
and IAnnotation
, then, into IArgueable
and IArgument
.
public interface IArgueable : IAnnotateable { }
public interface IArgument : IArgueable, IAnnotation
{
// ...
}
Natural language statements in contexts
See also: https://www.w3.org/TR/annotation-model/#selectors
IStatement
could extend IArgueable
, representing a portion of or segment of natural language in a context, e.g. a selected sentence from a document.
public interface IStatement : IArgueable, ISelection
{
// ...
}
Predicate calculus expression trees
IExpression
could extend IArgueable
, representing a predicate calculus expression tree.
public interface IExpression : IArgueable
{
string Predicate { get; }
IReadOnlyList<IArgueable> Arguments { get; }
}
Service providers
Here is a sketch of a service provider interface.
public interface IServiceProvider
{
bool IsReadOnly { get; }
IEnumerable<IAnnotation> GetAnnotations(IAnnotateable annotateable, DateTime from, DateTime to);
IEnumerable<IArgument> GetArguments(IArgueable argueable, DateTime from, DateTime to);
bool AddAnnotation(IAnnotateable annotateable, IAnnotation annotation);
bool AddArgument(IArgueable argueable, IArgument argument);
//...
// https://en.wikipedia.org/wiki/Analytic%E2%80%93synthetic_distinction
IArgueable IsAnalytic(IArgueable argueable);
IArgueable IsSynthetic(IArgueable argueable);
// https://en.wikipedia.org/wiki/A_priori_and_a_posteriori
IArgueable IsAPriori(IArgueable argueable);
IArgueable IsAPosteriori(IArgueable argueable);
IArgueable IsIndeterminate(IArgueable argueable);
IArgueable IsDeterminate(IArgueable argueable);
IArgueable IsTrue(IArgueable argueable);
IArgueable IsFalse(IArgueable argueable);
// ...
}
Automated decision-making
Towards automated decision-making, one can consider an IDecisionMakingAlgorithm
interface which, via its Decide()
method, processes an IArgueable
to return an IDecision
. The IDecisionMakingAlgorithm
uses an IServiceProvider
to explore arguments about a claim. During the decision-making process, an IDecisionMakingAlgorithm
could also ask questions about the world using an IKnowledgeBase
. Such an IKnowledgeBase
would, usefully, be able to provide provenance, evidence, explanation, and argumentation for its answers about the world for this data to be passed through to a resultant IDecision
.
public interface IDecisionMakingAlgorithm
{
IDecision Decide(IArgueable input, IServiceProvider service, IKnowledgeBase world, IReadOnlyDictionary<IArgueable, IServiceProvider> assumptions);
}
Explainable artificial intelligence
Towards explainable artificial intelligence, an IDecision
interface can provide the generator of, input to, decision of, and explanation of or trace of the generator's decision-making process.
public interface IDecision
{
IDecisionMakingAlgorithm Generator { get; }
IArgueable Input { get; }
IServiceProvider Service { get; }
IKnowledgeBase World { get; }
IReadOnlyDictionary<IArgueable, IServiceProvider> Assumptions { get; }
bool? Value { get; }
IWorkflow Process { get; }
DateTime CreationTime { get; }
// ...
}
Conclusion
A set of C# interfaces were indicated, showcasing some relationships between annotation, argumentation, and explainable automated decision-making.