Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[tsf-dev] Storing TSF `Statement` information in a more structured way

Having (attempted) to use TSF on a couple of projects recently I have some proposals, that it would be good to get some feedback on, about what information we should be storing in relation to TSF `Statements` and in my opinion it should be stored as close to the 'Statement' as possible i.e. in the same file. This inclusion of a 'tooling-managed' section brings the relevant tool generated information closer to the Statements (meaning reviewing diffs is easier as more of the context is visible) as well as keeping the separation of tooling vs human managed content visible.

The following proposal is not intended to define the implementation details, and should not be file format specific (there is no reason multiple different file formats e.g. YAML, TOML, etc could not be supported in the tooling).

The `Statement` file **should** include the following properties:

- statement (required)
  - this should be explicitly defined, rather than the 'left over text' as it is currently

- references (optional)
    - should be constrained to pre-defined classes, initial suggestion for available classes:
        - context: defined in a file (or inline text)
        - rebuttal (or fallacy?): defined in a file (or inline text)
        - misbehaviour: defined in a file (or inline text)
        - evidence:
            - for SME type validation: defined in a file (or inline text)
            - for 'automated' validation: defined location of the generated file.                 - a placeholder should be generated if the validator has not run                 - should contain (at least) the log output of the validator run

- assessment (required)
    - validation (required):
        - type (required): None or SME or `validator name`
        - configuration (optional): for automated validation only
    - confidence (optional): to align with current 'scoring' this should be the numeric confidence that the Statement is`true`, attributed to an SME (or SMEs)         - for 'SME' type, stored in git based on the supplied reference content         - for 'validator' type, generated at `validation` based on the validator tooling and output     - (not stored in git) verdict:  True or False, generated with `validation` of the graph         - if evidence type is `SME` the verdict should be `True` if the referenced evidence is available in the trudag context, `False` otherwise
        - if evidence type is `validator` the validator should provide this

- tooling-managed:
    - `state` of the associated content (allows tooling to assess what has changed), out of date content should cause an error in graph linting:
        - individually stored based on the defined content:
            - Statement
            - References:
                - pointer to the stored `state` for each reference (should be stored centrally as multiple statements might use the same reference)                 - combined `state` of all references (means that it is clear the references have changed when `diffing` the file)
            - Assessment config:
                - pointer to the stored `state` for validator (should be centrally stored as multiple statements might use the same validator)                 - combined `state` of the assessment `configuration` and the validator `state`
            - Child Links
            - Total:

                - combined state of 'Statement', 'References', 'Assessment config' and 'Child Links'


The `Statement` file **should not** include the following properties, currently defined as YML `frontmatter` in the Markdown files:

- normative
    - I have seen 'non-normative' files used to preface a group of statements with a summary, if this is required functionality then there should be a dedicated approach for this rather than abusing the `doorstop` legacy 'non-normative' option.
- level & publish
    - better to have a 'nav' like approach that defines this at a graph level for the publishing
- evidence
    - amalgamated into `assessment` property
- score

    - amalgamated into `assessment` property



Regards,


John Horsley

Codethink Ltd



Back to the top