spdx/spdx-3-model

GitHub: spdx/spdx-3-model

SPDX 3模型是新一代软件物料清单(SBOM)的国际标准规范,定义了覆盖软件、AI模型、数据集等系统组件及其构建、许可、安全信息的结构化数据交换格式。

Stars: 99 | Forks: 63

# SPDX 3 模型 系统包数据交换® (SPDX®) 是一种用于 交流与系统相关组件信息的标准格式。 组件可以包括软件、AI/ML 模型和数据集。 后续版本计划包含构成现代系统的更多组件类型。请参阅[范围](scope.md)。 此格式的早期版本专注于软件,是一项 ISO/IEC 标准 ([ISO/IEC 5962:2021](https://www.iso.org/standard/81870.html)),并 作为标准化的软件物料清单 (SBOM) 在 业界得到了广泛采用。 早期版本支持的所有用例在此也同样受支持。 本仓库包含 SPDX 版本 3 标准中记录的信息模型。 信息模型的翻译版本可能可用。 但在所有情况下,英语仍为权威语言。 ## 目录 - [分支结构](#branch-structure) - [格式](#formats) - [模型](#model) - [配置文件](#profiles-of-the-model) - [序列化与验证](#serialization-and-validation) - [更新日志](#change-log) - [术语表](#glossary) - [贡献](#contribute) ## 分支结构 SPDX 3 模型仓库遵循 [Gitflow](https://gist.github.com/HeratPatel/271b5d2304de2e2cd1823b9b62bf43e0) 工作流,并增加了对支持分支的支持。 正在使用的分支有: - `main` - 始终为最新发布的规范。 - `develop` - 此分支用于进行下一个 主要或次要版本的开发。 一旦发布,`develop` 分支将合并到 `main` 分支中。 - `support/x.y` - 这些分支将长期存在,并包含对 规范次要版本的任何更新。 诸如翻译之类的添加内容可以添加到支持分支中。 `x.y` 代表 MAJOR.MINOR 版本,遵循语义化版本控制 (SemVer) 规范。 一旦任何更改被接受并发布,支持分支将被打上标签 并合并到 `develop` 和 `main` 分支中。 - 常规功能或修复分支 - 可能会为 规范的具体增强或修复创建功能分支。 这些分支将是短期的,并将合并到 `support` 分支或 `develop` 分支中。 ## 格式 `model/` 目录中的可编辑文件是以 [受限 Markdown 子集][format] 编写的, 具有用于特定信息类型的特定标题, 并存储在 `main` 分支中。 这些模型文件的文本描述 [可以翻译][translation] 成其他自然语言。 可编辑文件由 [spec-parser](https://github.com/spdx/spec-parser/) 自动处理,并生成以下内容: - [MkDocs](https://www.mkdocs.org/) 的输入,随后生成 [规范](https://spdx.github.io/spdx-spec/v3.1-dev/) - [JSON-LD 上下文](http://niem.github.io/json/reference/json-ld/context/) 文件:[spdx-context.jsonld](https://spdx.github.io/spdx-spec/v3.1-dev/rdf/spdx-context.jsonld) - 模型 [SHACL](https://en.wikipedia.org/wiki/SHACL) 和 [OWL](https://www.w3.org/OWL/) 文件: - [Turtle 格式](https://en.wikipedia.org/wiki/Turtle_(syntax)): [spdx-model.ttl](https://spdx.github.io/spdx-spec/v3.1-dev/rdf/spdx-model.ttl) - [JSON-LD 格式](https://json-ld.org/): [spdx-model.jsonld](https://spdx.github.io/spdx-spec/v3.1-dev/rdf/spdx-model.jsonld) 希望阅读当前版本信息的人 应查看生成的文件,而任何想要编辑的人 应处理可编辑文件。 对于模型以外的规范内容,它们位于 [spdx-spec](https://github.com/spdx/spdx-spec/) 仓库中。 ## 模型 SPDX 模型使用与软件应用程序相关的配置文件进行描述。 这些配置文件组织为 `model/` 目录下的子目录。 模型图可在 [model.drawio][model-diagram] 文件 和 [`images/`](./images/) 目录中找到。 Core 配置文件图 注意: 1. ‘Licensing’ 配置文件有三个类别(子目录):‘Licensing’, ‘SimpleLicensing’,和 ‘ExpandedLicensing’。 2. ‘extension’ 命名空间(子目录)用于添加关于 SPDX 模型中未涵盖的软件应用程序的信息。 ### 模型的配置文件 #### AI AI 配置文件描述了 AI 组件在特定系统 (领域、模型类型、行业标准)中的能力。它详细说明了其在 应用程序中的使用、限制、训练方法、数据处理、可解释性以及 能耗。 #### Build Build 配置文件包含有关为软件应用程序执行的构建的信息。 字段包括构建类型 URI(工具链、平台或基础设施的), 开发者分配的本地唯一构建标识符, 构建创建的入口点,构建配置源的 URI(如果有), 构建配置源的摘要(如果有),构建参数, 构建的开始时间,构建的结束时间, 以及构建时系统的环境变量。 #### Core Core 配置文件描述了 SPDX 模型所有 配置文件所使用的基础类和属性。 #### Dataset Dataset 配置文件描述了数据集的核心方面(类型、大小、收集 方法)、访问方法、准备(预处理、噪声处理)、预期 用途(例如硬件校准、机器学习)以及相关考虑 (数据质量和隐私)。 #### Licensing Licensing 配置文件描述了软件 应用程序的许可方面,分为三个类别(子目录) - Licensing、SimpleLicensing 和 ExpandedLicensing。 - Licensing 描述有关声明许可证和结论 (检测到的)许可证的信息。 - SimpleLicensing 描述有关文本格式许可证的信息。 - ExpandedLicensing 描述有关可解析和机器可读 许可证的信息。 #### Lite SPDX Lite 配置文件定义了 SPDX 规范的一个子集,用于 某些行业的用例和工作流。 #### Security Security 配置文件包含有关漏洞及其 基于 CVSS(版本 2、3 和 4)、EPSS、利用目录、SSVC 和 VEX(受影响、不受影响、调查中和已修复类别)的评估信息。 #### Software Software 配置文件包含有关软件 应用程序的文件、包、SBOM、代码片段和工件的信息。 ## 序列化与验证 有关 SPDX 3 文档序列化的信息可在 SPDX 规范“模型和序列化”章节的 [序列化信息][sr-spec] 部分中找到。 有关序列化的更多技术信息, 请参阅 [关于序列化的说明][sr-notes]。 有关使用 JSON Schema 和 SHACL 模型 验证 SPDX 3 JSON 文档的信息, 请参阅 [验证 SPDX 3 JSON 文档][validate-spdx3]。 ## 更新日志 有关版本之间的更改,请参阅 [CHANGELOG.md](CHANGELOG.md)。 ## 术语表 有关规范中使用的术语的定义和解释,请参阅[术语表][glossary]。 ## 贡献 有关如何为特定配置文件做出贡献的信息, 请参阅 [Contributing.md](Contributing.md)。 欢迎加入我们并做出贡献! 讨论正在 [spdx-tech 邮件列表][spdx-tech-list] 以及我们的[例会][meetings]中进行。 所有详细信息位于:
标签:AI/ML模型, DevSecOps, Gitflow, GPT, ISO/IEC 5962, meg, SBOM, SPDX, SPDX 3, 上游代理, 人工智能安全, 供应链透明度, 信息安全, 元数据模型, 合规性, 开源标准, 数据模型, 标准化, 漏洞管理, 硬件无关, 许可证管理, 语义化版本, 跌倒检测, 软件包数据交换, 软件物料清单, 防御加固