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/) 目录中找到。
注意:
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]中进行。
所有详细信息位于:
注意:
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, 上游代理, 人工智能安全, 供应链透明度, 信息安全, 元数据模型, 合规性, 开源标准, 数据模型, 标准化, 漏洞管理, 硬件无关, 许可证管理, 语义化版本, 跌倒检测, 软件包数据交换, 软件物料清单, 防御加固