跳到主要内容

指南

证据图

证据图是发布决策所依据的一切,以带类型的节点和带类型的边写在一个 JSON 文件中。它包含一次运行所评估的系统、套件和评估器版本,由该运行计算出的估计值,在某个策略下读取这些估计值的决策,批准这些决策的签核,它们所衡量的危险,它们所支持的保证案例主张,以及旁边的形式化结果。它还会指出证据在哪里不完整、过时或相互冲突,让审查者在阅读其他内容之前先看到缺口。

绘制

oloproof evidence graph --out graph.json
oloproof evidence graph run_01J9 --out run.json
oloproof evidence graph --record decision-record.json --out record-graph.json

不指定运行时,图涵盖每个系统在每个套件上的最新一次运行,也就是危险登记册和保证案例所对照读取的那些运行。指定运行 id 时,它涵盖该运行以及读取它的每一项主张。使用 --record 时,它仅由一个决策记录文件绘出,这样第二方无需你的存储就能看到记录承载了什么;记录只点名的内容(其危险登记册和保证案例,按摘要)列在注释中。不使用 --out 时,图会被打印出来。

其中包含什么

文件写有 "graph": "oloproof.evidence_graph/v1"。每个节点都有一个 id(带类型,例如 run:run_01J9 或 decision:run_01J9/label-floor)、一个 type、一个 label、attributes(状态、区间、摘要)和一个 basis,即它所依据的东西:

  • computed:由引擎根据已记录的证据计算得出,如带区间的估计值、决策;
  • signed:由已注册的运行器签名,其签名由 oloproof record verify 检查;
  • attested:由具名的人证明,如发布策略、签核、危险、主张;
  • imported:从另一个工具导入,如由 oloproof scores import 读取的分数、求解器的结果。

节点类型为 system_version、suite_version、evaluator_version、run、estimate、decision、policy、signoff、hazard、claim 和 proof。边同样带类型:运行通过 evaluates 指向一个系统版本,通过 on_suite 指向一个套件版本;估计值通过 computed_from 指向一次运行,通过 judged_by 指向一个评估器版本;决策通过 reads 指向一个估计值,通过 under_policy 指向一个策略;签核通过 approves 指向一个决策;危险通过 measured_by 指向一个决策;主张通过 supported_by 指向决策、危险、形式化结果及其子目标。

报告内容

  • dangling:目标不在图中的边,并说明原因。点名了某次运行未判定之规则的危险,或其指标没有已存储结果的决策,会出现在这里,而不是悄然消失。
  • stale:证据与其比较对象不再匹配的运行,附上每个原因以及依据它的每个节点。在本地,运行与项目的当前状态比较;在工作区中以及没有项目文件时,则与存储中同一系统和套件的最新运行比较。从记录绘出的图不报告任何过时内容,因为没有可比较的对象。
  • contradictions:同一性质、同一模型下两个不一致的形式化结果,以及依据失败证据论证的主张。

图中没有任何东西做出决定:状态是引擎的决策,主张的状态就是 oloproof assurance check 报告的状态。

在工作区中

运行的证据页面提供图的下载,图由引擎根据你推送的证据绘出,位于受治理运行的决策记录旁边。

下一步