Skip to content

Proposed 2.0 schema for AI/ML BOM#948

Open
mrutkows wants to merge 87 commits into
CycloneDX:2.0-devfrom
mrutkows:2.0-dev-ai-ml
Open

Proposed 2.0 schema for AI/ML BOM#948
mrutkows wants to merge 87 commits into
CycloneDX:2.0-devfrom
mrutkows:2.0-dev-ai-ml

Conversation

@mrutkows

@mrutkows mrutkows commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Note: I rebased from "2.0-dev" and then manually brought in schemas from "2.0-threadmodeling" and also from "2.0-blueprints" and this PR is against master...

The only files that matter (if other branches are merged) are:

  • schema/2.0/model/cyclonedx-ai-ml-2.0.schema.json
  • .gitignore (to ignore files from MacOS and IDEs going forward)

Plus, want to delete the 1.7 port of:

  • schema/2.0/model/cyclonedx-ai-modelcard-2.0.schema.json

@mrutkows mrutkows self-assigned this Jun 3, 2026
@mrutkows mrutkows added draft format: JSON CDX 2.0 related to release v2.0 cap: ai/ml Capability: AI/ML labels Jun 3, 2026
@mrutkows mrutkows force-pushed the 2.0-dev-ai-ml branch 2 times, most recently from 550769f to d991431 Compare June 22, 2026 19:25
wiebe-vandendriessche and others added 23 commits June 22, 2026 14:28
…tch with json

Signed-off-by: wievdndr <wiebe.vandendriessche@ugent.be>
Signed-off-by: wievdndr <wiebe.vandendriessche@ugent.be>
Signed-off-by: wievdndr <wiebe.vandendriessche@ugent.be>
…proto)

Signed-off-by: wievdndr <wiebe.vandendriessche@ugent.be>
…roto files

Signed-off-by: wievdndr <wiebe.vandendriessche@ugent.be>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Mehrn0ush <mehrnoush.vaseghi@gmail.com>
Signed-off-by: Mehrn0ush <mehrnoush.vaseghi@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Steve Springett <steve@springett.us>
Signed-off-by: Steve Springett <steve@springett.us>
Signed-off-by: Steve Springett <steve@springett.us>
Signed-off-by: Steve Springett <steve@springett.us>
Signed-off-by: Steve Springett <steve@springett.us>
…in path expression

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Signed-off-by: Steve Springett <steve@springett.us>
Signed-off-by: Basil Hess <bhe@zurich.ibm.com>
Signed-off-by: Basil Hess <bhe@zurich.ibm.com>
…dd hashAlgorithm prefix for yescrypt

Signed-off-by: Basil Hess <bhe@zurich.ibm.com>
…m over 30MB to 8.6MB, while preserving SEO.

Signed-off-by: Steve Springett <steve@springett.us>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
mrutkows added 18 commits June 24, 2026 08:38
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
@mrutkows mrutkows marked this pull request as ready for review June 25, 2026 15:49
@mrutkows mrutkows requested a review from a team as a code owner June 25, 2026 15:49
@mrutkows mrutkows requested a review from stevespringett June 25, 2026 15:49
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
@mrutkows

mrutkows commented Jun 28, 2026

Copy link
Copy Markdown
Contributor Author

Please note that the patterns found that begin with "^cdx:ai-ml:" can be further constrained to specific taxonomic categories in the referenced AI/ML v2.0 CycloneDX Property Tax. proposal PR (draft). This is included in the proposed schema and reflected in the corollary PR: CycloneDX/cyclonedx-property-taxonomy#175

@mrutkows

mrutkows commented Jul 7, 2026

Copy link
Copy Markdown
Contributor Author

@stevespringett Here is the "off-the-top-of-my-head" list of things that perhaps need thought around risk schema...

Proposed updates the risk schema's "assessment" object

goal: to be used for AI/ML or other types of assessments per regulatory requirements changes needed tot he "risk" schema's assessment object to address the needs for AI regulations (in these terms):

  • lists of "harms" and "benefits" relative to using the component (model) assumed to help assess risk scoring
    - i.e., the "pros" and "cons" found by the assessment

Currently, they are declared in "consideration":

        "benefits": {
          "type": "string",
          "title": "Benefits",
          "description": "Expected benefits to the identified groups at risk."
        },
        "harms": {
          "type": "string",
          "title": "Harms",
          "description": "Expected harms to the identified groups at risk."
        },

Promote measure (metrics) and type groupings to "common":

 "measure": {
      "type": "object",
      "title": "Measure",
      "description": "A generic measurement with a value and unit.",
      "required": [
        "value",
        "unit"
      ],
      "additionalProperties": false,
      "properties": {
        "value": {
          "type": "number",
          "title": "Value",
          "description": "The numeric value of the measurement."
        },
        "unit": {
          "type": "string",
          "title": "Unit",
          "description": "The unit of measurement.",
          "anyOf": [
            {"$ref": "#/$defs/timeUnits"},
            {"$ref": "#/$defs/throughputUnits"},
            {"$ref": "#/$defs/computeUnits"},
            {"$ref": "#/$defs/memoryUnits"},
            {"$ref": "#/$defs/ratioUnits"},
            {"$ref": "#/$defs/energyUnits"},
            {"$ref": "#/$defs/co2Units"},
            {"$ref": "#/$defs/customUnitPattern"}
          ]
        }
      }
    },

Note: these include metrics for "enviromentalConsiderations" which have been candidates for move to "common" as well.

Input/Output Formats and encodings

Similarly, "format" and "encoding" objects and values are candidates for promotion to "common":

 "format": {
          "type": "object",
          "title": "Format",
          "$comment": "TODO: There should be a common place in the CycloneDX Property Taxonomy to define encoding types",
          "description": "Describes the format and encoding of the parameter data.",
          "additionalProperties": false,
          "properties": {
            "dataType": {
              "type": "string",
              "title": "Data Type",
              "description": "The data type of the parameter.",
              "examples": [
                "string",
                "float32",
                "fp16",
                "bf16",
                "int64",
                "uint8",
                "q8_0"
              ]
            },
            "encoding": {
              "type": "string",
              "title": "Encoding",
              "description": "The encoding format of the parameter data.",
              "anyOf": [
                {
                  "enum": [
                    "utf-8",
                    "ascii",
                    "base64",
                    "jpeg",
                    "png",
                    "wav",
                    "mp3",
                    "flac",
                    "raw",
                    "tokenized",
                    "other"
                  ],
                  "meta:enum": {
                    "utf-8": "UTF-8 text encoding.",
                    "ascii": "ASCII text encoding.",
                    "base64": "Base64 encoded binary data.",
                    "jpeg": "JPEG image format.",
                    "png": "PNG image format.",
                    "wav": "WAV audio format.",
                    "mp3": "MP3 audio format.",
                    "flac": "FLAC lossless audio format.",
                    "raw": "Raw binary data without specific encoding.",
                    "tokenized": "Pre-tokenized input (token IDs).",
                    "other": "Other encoding format not explicitly listed."
                  }
                },
                {
                  "pattern": "^cdx:ai-ml:[a-z0-9:-]+$"
                }
              ],
              "examples": [
                "utf-8",
                "tokenized",
                "jpeg",
                "wav"
              ]
            },

mrutkows added 2 commits July 8, 2026 08:20
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
@mrutkows

mrutkows commented Jul 8, 2026

Copy link
Copy Markdown
Contributor Author

@stevespringett added examples to all simple, non-nested schema type within the ai-ml schema file.

mrutkows added 2 commits July 8, 2026 09:49
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Signed-off-by: Matt Rutkowski <mrutkows@us.ibm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cap: ai/ml Capability: AI/ML CDX 2.0 related to release v2.0 draft format: JSON

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants