读取交付前,先核对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行或节点预览不是全部结果。
- 失败后修正声明再重跑,不接受旧结果或未完成比较。
参考资料
- Protobuf按原Schema解码问题
需求来源:提问者已有.proto及coredump字节,需要读取内容;截断字节不能修复,不是需求规模证据。
- 本地Avro兼容检查问题
需求来源:提问者希望不用Registry,在本地核对新旧Schema有效性与读写方向,不证明特定Registry策略。
- Protocol Buffers wire编码
正确性来源,说明重复消息合并、oneof及编码规则;不是需求来源。
- Protocol Buffers字段存在性
正确性来源,区分explicit与implicit presence;不是需求来源。
- Apache Avro规范与Schema resolution
正确性来源;本站固定解析器支持首分支union default,不能把更新规范的其他默认值规则说成已支持。
- JSON-LD展开的真实提问
任务来源:正文中的上下文展开与预期不同问题;本地工作流是解释,不表示需求规模。
- RDF比较的真实提问
任务来源:正文比较来源为RDF/XML;本站需先导出N-Quads,不声称OWL推理。
- GeoJSON坐标的真实提问
任务来源:正文中的坐标接收问题;数字大小不能证明源CRS。
- W3C JSON-LD 1.1处理算法
正确性参考;本站范围、预算与恢复以当前工具正文为准,不作为需求证据。
- W3C RDF数据集规范化
正确性参考;本站范围、预算与恢复以当前工具正文为准,不作为需求证据。
- PROJ Web Mercator投影
正确性参考;本站范围、预算与恢复以当前工具正文为准,不作为需求证据。