> 译文仅供阅读便利。具有规范效力的是英文原文。 # 示例:最小的人物元模型(MUIF) 一份小巧却完整的 [MUIF](../../02-architecture/MMAS-Interchange.md) 元模型,把五 个原语 - 对象、关系、事件、合约、投影 - 连同清单与合规声明,一并跑了一遍。 ## 各个文件 | 文件 | 用途 | |------|---------| | `person.muif.json` | 这份模型的正典撰写形态 | | `person.variant.json` | **同一份模型**,但键的次序打乱了、集合数组的次序打乱了,还添了些非语义字段(`displayName`、`description`、一个占位的 `fingerprint`、另一个 `assertionTime`、一个 `_note` 键) | | `FINGERPRINT` | 预期的语义指纹 | ## 这个例子证明了什么 两个文件描述的是同一份模型,因而**必须**得出同一个语义指纹。这说明指纹*与序列化 无关*:它只取决于语义上的内容,而不取决于键的次序、空白、集合数组的次序,或那些非 语义的元数据。 ```text mu-fingerprint person.muif.json mu-fingerprint person.variant.json # both print: # sha256:a628b2afb96dc673f7e2f9161569e573fc70892d10a6997fad7aaa14b04a639d ``` ## 依架构校验 ```bash npx ajv-cli validate -s ../../schemas/manifest.schema.json \ -r "../../schemas/*.schema.json" -d person.muif.json --spec=draft2020 ```