摘要

  • RFC 9880 为可通过网络交互的 Thing 及其数据定义语义模型,不选择某一种传输或序列化方式。
  • 命名空间权威、递归引用解析和显式协议绑定共同构成兼容性边界。

SDF Thing 表示可交互的实体。Object 组织结构,Property 描述可读或可写数据,Action 描述操作,Event 描述通知;模型还描述交换数据的类型。这些语义并不会自动规定 URL、数字 ID、载荷格式、调用设置、消息顺序或可靠性。后者属于协议绑定或其他明确的扩展机制。因此,单独的 SDF 模型不是线协议,不能保证互操作性,也不强制某个 IoT 生态、传输或序列化方式;没有额外的一手证据,也不能据此断言任何厂商或已部署产品提供支持。

命名空间映射表把短名称绑定到命名空间 URI,defaultNamespace 选择目标命名空间。没有默认命名空间时,定义保持本地性,其他模型不能复用。外部名称必须使用映射表中定义前缀的 CURIE;SDF 名称不采用普通的相对 URI 解析。命名空间 URI 和 feature URI 也不要求在运行时被解析以发现含义。

sdfRef 是明确的预处理边界。解析时复制被引用定义,再把引用方定义作为 JSON Merge Patch 应用;嵌套的 sdfRef 也必须继续处理,null 成员可以删除继承内容。JSON Pointer 提供引用寻址,JSON Merge Patch 提供合并规则。全部引用解开后得到已解析模型,它应成为验证和协议绑定的输入,而不只是展示便利。

features 字段列出不能安全忽略的关键扩展。sdfRequired 则说明哪些模型化的 affordance 或分组必须被表示。二者都不等于传输能力:某个 affordance 在模型中是必需的,并不表示选定的协议绑定能够正确承载或调用它。

控制边界由此清晰:SDF 基础数据约束负责语义,绑定可以补充 URL 组件、数字标识符、载荷编码、调用、顺序和可靠性。如果补充规则保持隐含,两个实现即使得到相同的已解析模型,也可能发送和接收不兼容的报文。RFC 9880 没有记录普遍的实现支持或部署结果。

来源