关于 Digital Passport Assessment Workbench
Digital Passport Model Assessment Workbench 是用于数字产品护照数据模型的 Python 分析工具包,面向需要评估、比较和规划模型组合的分析人员及 Agent。它采用 SHACL 分析,提供确定性文件输入和 JSON 输出,并配有轻量命令行界面。
主要功能
- 01基于 SHACL 评估模型
- 02分析用例覆盖度
- 03比较模型评估结果
- 04优先排序并推荐模型组合
- 05提供词汇表、模板和模式
适用场景
- 01评估数字护照数据模型
- 02检查模型对指定用例的覆盖情况
- 03比较两种模型方案及其差异
- 04根据评估结果规划组合模型
MCP 相关
stdio MCP 服务通过 dpawb-mcp 暴露与工具包命令面相同的分析操作,包括评估、覆盖度、比较、优先排序和组合推荐。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm ghcr.io/ce-rise-software/dpawb-mcp:0.1.2本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/ce-rise-software/dpawb-mcp:0.1.2stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
数字护照模型评估工作台
这是一个 Python 工具包和轻量级命令行界面,用于基于 SHACL 评估数字护照数据模型、对组合方案进行成对比较,以及仅基于 SHACL 分析用例覆盖情况。
本 README 主要用作仓库和开发入口。面向用户的概念与用法参考位于已发布的文档站点。仓库源文档仍可在 docs/ 中查看。
本仓库包含什么
- 可发布的 Python 软件包,包含命令行入口:
dpawb - 轻量级 stdio MCP 服务入口:
dpawb-mcp - 符合契约的组合配置文件、用例和对齐关系输入架构
- 通过发现命令提供的内置词汇表和模板
- 仅用于测试和验证的合成本地测试数据
- 面向人工和 AI Agent 教程的渐进式示例目录
工具形态
该工具主要设计为可供 Agent 使用的分析工具包,并提供轻量级命令行界面。核心命令包括:
assesscoveragecompareprioritizerecommend-compositionschemavocabularytemplatecapabilitiessummarize
AI Agent 使用
预期的主要集成方式是由 AI Agent 通过软件包 API 或命令行编排分析流程。实际上,这意味着:
- 基于文件的确定性输入
- 适合 Agent 解析和串联的 JSON 输出
- 明确的分析步骤,而非面向聊天的界面
命令行仍适用于人工直接调用,但产品的主要形态是分析引擎,可由 Agent 技能、工作流运行器或工具适配器调用。
该软件包还提供一个轻量级 stdio MCP 服务,基于相同的确定性命令接口:
assesscoveragecompareprioritizerecommend-compositionschemavocabularytemplatecapabilitiessummarize
MCP 接口刻意保持轻量:
- 将
dpawb保留为核心 Python 软件包 - 通过
dpawb-mcp提供相同的操作 - MCP 运行时同时以本地 Python 入口和 GitHub Container Registry 镜像的形式发布
- 从 GitHub 镜像发布注册表元数据
MCP 运行时和发布方式详见已发布的 MCP 服务页面。
公共 Python API 详见已发布的 API 参考。
MCP 访问
MCP 服务以以下身份发布:
- 注册表名称:
io.github.CE-RISE-software/dpawb - OCI 镜像模式:
ghcr.io/ce-rise-software/dpawb-mcp:<release-version> - 传输方式:
stdio - 官方注册表基址:
https://registry.modelcontextprotocol.io/
可在官方 MCP Registry 中通过名称 io.github.CE-RISE-software/dpawb 发现该服务。
注册表发现页面:
https://registry.modelcontextprotocol.io/?q=dpawb
本地客户端配置示例:
{
"mcpServers": {
"dpawb": {
"command": "dpawb-mcp"
}
}
}
面向 OCI 的注册表元数据在 server.json 中声明。发布工作流会在发布时填入发行版本和镜像标签。
安装
python -m venv .venv
. .venv/bin/activate
pip install -e .
已发布的软件包名称:
pip install dpawb
已安装的 MCP 服务命令为:
dpawb-mcp
如果你在受限环境中工作,该软件包已配置为使用 setuptools 构建,因此可编辑安装不依赖于获取额外的构建后端。
如果本地无法使用构建隔离或 wheel 支持,请使用:
python -m pip install --no-build-isolation -e .
在受限环境中,如果本地 Python 打包工具阻止了可编辑安装,仓库仍支持原生的仓库执行路径:
./scripts/run-local.sh capabilities
./scripts/test-local.sh
make smoke
make test
make validate
最精简的本地 MCP 运行时命令:
python -m dpawb.mcp_server
示例命令
dpawb assess --profile fixtures/profiles/synthetic_evolution_latest.yaml
dpawb coverage --profile fixtures/profiles/synthetic_evolution_latest.yaml --use-case fixtures/use_cases/product_identity_lookup.yaml
dpawb compare --left left_assessment.json --right right_assessment.json
dpawb recommend-composition --left left_assessment.json --right right_assessment.json --comparison comparison_result.json
dpawb summarize --result comparison_result.json --format markdown
dpawb capabilities
本地发布检查
在配置 PyPI CI/CD 之前,请在可用 wheel 的环境中运行本地打包检查:
make release-check
此操作会构建 wheel 和 sdist,将 wheel 安装到干净的临时环境中,并运行已安装 CLI 的冒烟检查。
结构
本仓库中有两个不同的输入区域:
-
fixtures/仅包含仓库本地的合成测试数据。 这些文件供测试、冒烟检查和 CI 验证使用。 -
examples/01-source-ingestion/用于手动运行的实时源示例输入。 这些是教程进程的第一步,不属于 CI 验证范围。
完整的示例目录树按分析任务组织,而非按输入数据模型组织:
examples/01-source-ingestion/加载并评估已声明的配置文件。examples/02-structural-comparison/比较两个配置文件评估结果。examples/03-reduced-use-case-comparison/运行第一个对齐的用例比较。examples/04-extended-use-case-comparison/运行范围更广的对齐用例比较。examples/05-composition-recommendation/根据两个已评估的模型集推荐组合配置文件。
每个示例都可供人类按照分步命令教程使用,也可供 AI Agent 根据明确的文件执行确定性方案。
源摄取示例
以下位置包含实时 SHACL 源的示例配置文件:
examples/01-source-ingestion/profiles/battery_dpp_representation_live.yamlexamples/01-source-ingestion/profiles/battery_product_identification_live.yamlexamples/01-source-ingestion/profiles/dp_record_metadata_live.yamlexamples/01-source-ingestion/profiles/traceability_and_life_cycle_events_live.yamlexamples/01-source-ingestion/profiles/metadata_focused_composition_live.yamlexamples/01-source-ingestion/profiles/metadata_and_traceability_live.yamlexamples/02-structural-comparison/profiles/metadata_slice_left_live.yamlexamples/02-structural-comparison/profiles/metadata_slice_right_live.yaml
如果你只想使用单个实时源,以元数据为中心的示例是主要起点:
./scripts/run-local.sh assess --profile examples/01-source-ingestion/profiles/dp_record_metadata_live.yaml
如果你想使用组合配置文件,请使用:
./scripts/run-local.sh assess --profile examples/01-source-ingestion/profiles/metadata_and_traceability_live.yaml
你也可以运行仅包含可追溯性的示例:
./scripts/run-local.sh assess --profile examples/01-source-ingestion/profiles/traceability_and_life_cycle_events_live.yaml
手动运行覆盖率检查时,可使用以下示例用例:
examples/01-source-ingestion/use_cases/battery_dpp_representation.yamlexamples/01-source-ingestion/use_cases/battery_product_identification.yamlexamples/01-source-ingestion/use_cases/battery_passport_metadata_and_classification.yamlexamples/01-source-ingestion/use_cases/record_identity_lookup.yamlexamples/01-source-ingestion/use_cases/provenance_actor_lookup.yaml
示例:
./scripts/run-local.sh coverage \
--profile examples/01-source-ingestion/profiles/dp_record_metadata_live.yaml \
--use-case examples/01-source-ingestion/use_cases/record_identity_lookup.yaml
主要的真实比较驱动用例是:
examples/01-source-ingestion/use_cases/battery_dpp_representation.yaml
该用例有意保持精简。它要求:
- 护照标识
- 电池标识
- 护照版本或修订版
- 一个责任主体
- 一个电池类型或分类信号
以及将这些内容作为同一个电池 DPP 表示切片处理所需的联接关系。
与该用例匹配的起始组合配置文件是:
examples/01-source-ingestion/profiles/battery_dpp_representation_live.yaml
目前,该配置文件组合了:
dp_record_metadatatraceability_and_life_cycle_events
这是当前电池 DPP 比较工作的更广泛基线。 首次精简版真实验证采用更聚焦于身份信息的比较范围:
- 规范示例目录:
examples/03-reduced-use-case-comparison/ - 用例:
examples/03-reduced-use-case-comparison/use_cases/use_case.yaml - 左侧配置文件:
examples/03-reduced-use-case-comparison/profiles/left_profile.yaml - 右侧配置文件:
examples/03-reduced-use-case-comparison/profiles/right_profile.yaml
此精简范围组合了:
dp_record_metadataproduct_profiletraceability_and_life_cycle_events
这是首个经过验证的产品识别比较范围,依据 BatteryPass General Product Information 模型进行比较。
此外,还提供了第二个范围更广的经过验证的范围:
- 规范示例目录:
examples/04-extended-use-case-comparison/ - 用例:
examples/04-extended-use-case-comparison/use_cases/use_case.yaml - 左侧配置文件:
examples/04-extended-use-case-comparison/profiles/left_profile.yaml - 右侧配置文件:
examples/04-extended-use-case-comparison/profiles/right_profile.yaml
此范围在保留相同 CE-RISE 组合模型集的同时,增加了护照版本/修订版和电池类型/分类。
目前有两份跨生态系统验证说明:
examples/03-reduced-use-case-comparison/notes/comparison_note.mdexamples/04-extended-use-case-comparison/notes/comparison_note.md
这些示例的分步用户参考指南见已发布的示例应用指南。
对于手动比较运行,项目中提供了一对可直接用于比较的实时配置文件,二者具有相同的声明范围标签:
examples/02-structural-comparison/profiles/metadata_slice_left_live.yamlexamples/02-structural-comparison/profiles/metadata_slice_right_live.yamlexamples/02-structural-comparison/alignments/metadata_slice_alignment.yaml,作为对齐示例起点
典型流程:
./scripts/run-local.sh assess --profile examples/02-structural-comparison/profiles/metadata_slice_left_live.yaml --output /tmp/left.json
./scripts/run-local.sh assess --profile examples/02-structural-comparison/profiles/metadata_slice_right_live.yaml --output /tmp/right.json
./scripts/run-local.sh compare --left /tmp/left.json --right /tmp/right.json
使用分析人员明确编写的对齐文件:
./scripts/run-local.sh compare \
--left /tmp/left.json \
--right /tmp/right.json \
--alignment examples/02-structural-comparison/alignments/metadata_slice_alignment.yaml
提供对齐文件时,比较结果现在会包含两个面向对齐的视图:
-
evaluated_pairs显示每个已声明等价关系的完整逐对存在状态。 -
ranked_alignment_observations面向审查的差异项,涵盖任何仅在一侧存在或两侧均缺失的已声明配对。
因此,检查支持对齐的比较结果时,主要应关注:
alignment_coverage_ratioevaluated_pairsranked_alignment_observations
如果随后将该比较结果传递给 prioritize,这些对齐差异项也会直接显示为排序后的改进目标。
当前的分析核心在设计上仍较为保守,但已不再局限于令牌匹配:
- 矛盾检测涵盖直接基数冲突,以及数据类型与对象引用之间的冲突
- 条目覆盖度使用 SHACL 路径、所有者形状和目标类证据
- 如果这符合预期的分析解释,则共享所有者形状、明确的跨形状对象引用路径或记录级检索上下文,均可满足关联覆盖度要求
仓库布局
src/dpawb/:软件包、CLI 和分析操作src/dpawb/data/:随附的架构、词汇表和模板fixtures/:仅供测试使用的合成仓库本地模型、配置文件、用例和对齐文件examples/01-source-ingestion/:用于手动运行的源数据导入配置文件、用例和对齐文件examples/03-reduced-use-case-comparison/:自包含的对齐用例比较示例examples/05-composition-recommendation/:自包含的组合推荐示例scripts/:仓库原生的执行和测试辅助工具.github/workflows/validate.yml和.forgejo/workflows/validate.yml:通过仓库原生路径进行 CI 验证
许可证
贡献
本仓库托管在 Codeberg,是唯一权威来源。GitHub 仓库是一个只读镜像,用于存档发布版本和集成 Zenodo。请在 Codeberg 上提交问题和拉取请求。
本项目由欧盟资助,资助协议编号:101092281 — CE-RISE。
本文表达的观点和意见仅代表作者个人,并不一定反映欧盟或资助机构(HADEA)的观点和意见。
欧盟和资助机构均不对这些观点和意见承担责任。
© 2026 CE-RISE 联盟。
根据 European Union Public Licence v1.2 (EUPL-1.2) 授权。
署名:CE-RISE 项目(资助协议编号:101092281)以及注明的个人作者/合作方。
由 NILU(Riccardo Boero — [email protected])在 CE-RISE 项目中开发。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。