Skip to content

Proposal: Add default controlled vocabulary for versioning

John Wunder edited this page Mar 23, 2015 · 2 revisions
  • Status: Accepted/Modified
  • Closed: March 23, 2015
  • Issue: #244

Background

Since the inception of the STIX effort the community has been discussing requirements and solution approaches for versioning of STIX content. As a result of those discussions and schematic iterations the current release of STIX is believed to have the appropriate structures and guidance to support at least the fundamental versioning use cases identified as critical. A key element of this is the ability to specify a characterizing Relationship descriptor string defining the nature of relationship between a new piece of content and an existing piece of content. The Relationship element can be constrained to a specific controlled vocabulary (CV) of values. The community has on many occasions discussed potential versioning Relationship values but to date has not reached consensus to formally define them in a default versioning CV for STIX.

This is an attempt to capture the core takeaways of the discussions that have occurred and reach consensus on an initial CV for STIX versioning.

Draft STIX Versioning Core Use Cases:

  1. Creation of new information
  2. Revision (unqualified) of previous information (revision makes no assertion as to the validity of the previous information)
  3. Revision of previous information through addition of expanded content
  4. Revision of previous information through refinement/improvement of existing content
  5. Replacement (unqualified) of previous information with updated information (replacement asserts that the previous information is no longer valid and the new information should be used in its place)
  6. Replacement of previous information through correction of existing content
  7. Revocation (by the originator) of previously produced information

Note: Part of the versioning discussion revolved around more complicated use cases for transactional updates in real-world sharing use cases. These are captured in Proposal: Add default vocabulary for sharing communication use cases. Due to their lower priority and higher complexity it is the STIX team's recommendation that those items be explored further (beyond the STIX 1.2 release) and potentially included in either an out-of-band release of a new vocabulary or in the next release of STIX.

Proposed Draft STIX Versioning CV Values

Value Definition Use Case
Revises The new content represents a modified form of the previous content with no specific characterization of the nature of the change. UC2
Revises - Expands The new content represents a modified form of the previous content with expanded information provided. UC2i
Revises - Refines The new content represents a modified form of the previous content with existing information refined for improved quality or confidence. UC2ii
Replaces The new content represents a modified form of the previous content where the previous content should be considered invalid and the new content should be used in its place. UC3
Replaces - Corrects The new content represents a modified form of the previous content with corrections to errors in the existing information. The previous content should be considered invalid and the new content should be used in its place. UC3i
Revokes The previous content is asserted to be invalid and should not be considered for operational purposes. UC4

Modification

Based on community discussion this proposal was accepted with modifications: rather than six elements, it will include three:

  • Revokes
  • Updates - Corrects
  • Updates - Revises

Feedback

  1. Is the use case list above missing any important minimal core versioning use cases?
  2. Do the CV values proposed adequately cover the identified use cases?
  3. Are there suggestions for better CV values?

Feedback can be sent to the public STIX discussion list (make sure to join first), as a public comment on the github issue for this proposal or sent privately to the core STIX team at stix@mitre.org.

Clone this wiki locally