Neatbo.

读取交付前,先核对Schema、上下文、RDF身份与坐标系

审阅Protobuf缺席字段与required合并、Avro读取方向、JSON-LD术语消失、空白节点差异和错误CRS。把接收端证据随完整输出保留。

从五种解释错误检查一份交付

消息里缺席的字段被误当成默认值,Schema比较方向被反过来,这两种错误都可能发生在语法有效的文件上。把原始字节与Schema或两份明确参与者声明放在一起,先回答具体读取问题。

例如,交付中同时有客户JSON-LD、两份RDF导出和办公点几何:预期姓名在展开后消失,文本diff标出全部重命名空白节点,坐标落在错误位置。即使文件都能解析,这些现象也可能来自解释规则;先分开三个问题,再修改源数据。

保留原始消息,检查最终存在性与合并

对一条消息,记录确切.proto、完整消息类型和原始字节。看字段的presence和decoded最终值,不把declaredDefault当成已收到数据;proto3 implicit默认值省略与optional显式零值不同。对于重复singular子消息,前段a=1、后段b=2可能共同满足required;必须在合并后检查,不能把前段的暂时缺失当作整条消息失败。

oneof最后成员取胜;相同message成员的片段可以合并。未知字段报告保留原始offset、长度和base64,但最终JSON不是原wire重建。把original.bin交给接收端原Schema再读,尤其检查64位十进制字符串、enum身份、map重复键及bytes。截断dump需来源重新导出,不能猜补。

对调Schema参与者,复核真正读取方向

写入int、读取long可兼容,反向可能false。新增读取字段有default可通过,缺default可能失败;namespace、reader aliases与enum/union分支都可能影响结果。保留两份原Schema和双向JSON/CSV,注明哪份真正写出了要读的数据。

false是合法Schema之间的解析结论,不等于输入坏了;错误或unsupported则没有兼容结论。logicalType、较新非首分支union default和保护标识符不在本工具支持范围。Registry的历史版本、策略与业务数据约束必须由接收工作流检查。

从术语追到完整IRI

记录JSON-LD实际使用的上下文和文档基准。展开一个代表记录,核对预期完整IRI下是否保留正确@value。name若未绑定,消失可能是有效处理;直接补字段到输出会掩盖缺少的合同。压缩时明确选择compactContext,不假设能完整恢复原术语写法。

上下文URL是一项依赖,不授权把私有文档发送给它。Neatbo要求内联定义或精确本地URL映射,缺映射即失败。将辅助上下文信封随结果保留,让审阅者无需依赖在线上下文即可复现。

区分空白节点拼写与数据集改变

重命名空白节点不是修改全局稳定的记录键。先把不支持的RDF语法导出为N-Quads,以明确RDFC-1.0算法比较完整数据集,并保存左右规范文件。若等价,原序列化文本diff回答的是不同身份问题。

若不等价,检查规范行差异背后的字面量、类型、语言和命名图变化。两份已修改图的规范标签不表示持久对应;小幅图变化可能重排标签。高度对称图可能超出256节点分量、10000次迭代或10秒预算;这是比较未完成,不是不等价证据。

用已知坐标双向验证

从提供者获得源CRS与轴顺序。本流程仅支持WGS84经度、纬度与Web Mercator东距、北距。批量转换前先核对已知点;EPSG:4326的[120,30]约对应EPSG:3857的[13358338.895192828,3503549.843504374]米。反向度值容差为1e-8,独立米值向量容差为1e-6。

重新打开GeoJSON时检查Feature ID、属性和多边形孔洞。旧bbox/crs声明会拒绝,不留在转换结果中;移除前单独保留,在接收流程重算边界。投影结果数字有限,不证明所选源CRS正确。

保留接收验收记录

下载应附有足以重建解释的信息。语法检查、规范等价和投影计算分别回答具体问题,不替代接收系统全部业务规则。

结果旁应保留的证据
结果记录接收方核对
Protobuf检查确切Schema、消息类型及original.bin存在性、64位值、unknown片段;不要按JSON重建原wire
Avro兼容两份Schema、写入/读取身份与双向结果确认实际读取方向、默认值及不支持范围
展开/压缩JSON-LD精确内联或本地映射上下文、基准、1.1处理模式已知术语IRI/值及主动接受的空展开
规范RDF比较RDFC-1.0/SHA-256、原导出及两份规范文件有意义的字面量/图变化,不推断持久空白节点ID
重投影GeoJSON源、目标CRS与轴单位、原几何已知点、反向容差、Feature元数据及孔洞
  • 先用代表性小输入验证,转换前保留原始数据。
  • 遵守当前输入、工作预算:JSON-LD文档/信封各1 MiB、RDF总计2 MiB、GeoJSON2 MiB/50000位置。
  • 重新打开完整下载,200行或节点预览不是全部结果。
  • 失败后修正声明再重跑,不接受旧结果或未完成比较。

参考资料

本文相关工具

按Schema解码Protobuf消息 →使用独立proto2/proto3 Schema和明确消息类型检查二进制Protobuf,保留64位整数、字段存在性和未知wire记录。Avro写入与读取Schema兼容检查 →检查两份本地Avro JSON Schema的双向读取兼容性,区分类型提升、别名、默认值与不兼容原因。离线JSON-LD展开与压缩 →使用内联上下文或用户提供的本地URL映射展开、压缩JSON-LD 1.1,不请求远程文档。RDF数据集规范化比较 →使用RDFC-1.0比较两份本地RDF N-Quads,识别空白节点重命名,并保留命名图。GeoJSON坐标系重投影 →在显式WGS84经纬度与Web Mercator之间重投影严格二维GeoJSON,保留Feature元数据与多边形孔洞。