Check schemas, contexts, RDF identity and CRS before reading a delivery
Review Protobuf presence and required merging, Avro reader direction, dropped JSON-LD terms, blank-node differences and wrong CRS. Keep receiver evidence beside complete outputs.
Review a delivery for five interpretation failures
An absent message field can be mistaken for a transmitted default, and a compatibility direction can be reversed even when inputs parse. Keep original bytes with their schema, or identify both schema participants, before answering the receiving question.
Consider a handoff containing customer JSON-LD, two RDF exports and office geometries. An expected name disappears after expansion, a text diff flags every renamed blank node, and coordinates land far from the expected location. These symptoms can arise from interpretation rules even when every file parses. Separate the three questions before changing the source data.
Retain original message bytes and check final presence and merging
For a message, record the exact .proto, full message type and original bytes. Review presence and final decoded values without treating declaredDefault as received data. Proto3 implicit-default omission differs from an optional explicit zero. Repeated singular submessage fragments with a=1 and later b=2 can jointly satisfy required fields; checks belong after merging.
The last oneof member wins; fragments of the same message member can merge. Unknown records retain original offsets, lengths and base64, but final JSON does not reconstruct the wire serialization. Give original.bin to the receiver with its schema and check64-bit strings, enum identity, duplicate map keys and bytes. A truncated dump needs re-export rather than guessed bytes.
Swap schema participants to verify the intended resolution direction
An int writer with a long reader can be compatible, while reversing them can produce false. A new reader field with a default can succeed where one without a default fails. Fullnames, reader aliases and enum/union branches affect resolution. Retain both original schemas with both JSON/CSV directions and state which schema actually wrote the data.
False is a resolution result between valid schemas; an error or unsupported result supplies no compatibility conclusion. Logical types, later-branch union defaults and protected identifiers are outside this tool scope. Registry history, policy and business data constraints still require the receiving workflow.
Trace a term to its IRI
For JSON-LD, record the exact context and document base used. Expand a representative record and inspect whether the expected full IRI holds the expected @value. If name is unbound, its disappearance can be valid; adding an arbitrary field to the output would hide the missing contract. For compaction, choose compactContext explicitly instead of assuming the original term spelling can always be reconstructed.
A context URL is a dependency, not permission to send a private document to it. In Neatbo, provide each context as an inline definition or exact local mapping; missing mappings fail. Keep the context envelope with the output so a reviewer can reproduce the result without a live remote context.
Distinguish blank-node spelling from dataset changes
A renamed blank node is not a globally stable record key. Export unsupported RDF syntax to N-Quads, compare the complete datasets with the stated RDFC-1.0 algorithm, and retain both canonical downloads. If they are equivalent, a text diff of their original serializations was answering the wrong identity question.
For unequal graphs, inspect the literal, datatype, language and named-graph changes behind the canonical line difference. Do not treat canonical labels from two edited graphs as a persistent mapping: a small graph change can reorder labels. Highly symmetric graphs may exceed the256-node component,10000-iteration or10-second work budget; that is an incomplete comparison, not evidence of inequality.
Verify a known coordinate in both directions
Obtain the source CRS and axis order from the provider. This workflow supports only WGS84 longitude,latitude and Web Mercator easting,northing. Test a known point before converting all positions; [120,30] in EPSG:4326 is approximately [13358338.895192828,3503549.843504374] meters in EPSG:3857. A reverse check should recover degrees within1e-8 and independent meter vectors within1e-6.
Retain Feature IDs/properties and polygon holes when reopening the GeoJSON. Existing bbox/crs declarations are rejected instead of remaining stale. Preserve them separately before removal and recompute bounds in the receiving workflow. A finite projected number alone does not establish that the selected source CRS was correct.
Keep a receiver acceptance record
The download should travel with enough information to recreate its interpretation. Syntax checks, canonical equivalence and projection calculations answer specific questions; none establishes every business rule of the receiving system.
| Result | Record | Verify with the receiver |
|---|---|---|
| Protobuf inspection | Exact schema, message type and original.bin | Presence,64-bit values and unknown fragments; do not reconstruct wire from JSON |
| Avro compatibility | Both schemas, writer/reader identity and both directions | Actual reading direction, defaults and unsupported scope |
| Expanded/compacted JSON-LD | Exact inline/mapped context, base and processing mode1.1 | Known term IRI/value and any deliberately empty expansion |
| Canonical RDF comparison | RDFC-1.0/SHA-256, original exports and both canonical files | Meaningful literal/graph changes; do not infer persistent blank-node IDs |
| Reprojected GeoJSON | Source/target CRS, axis units and original geometry | Known point, reverse tolerance, Feature metadata and holes |
- Start with a small representative input and retain the original before any conversion.
- Respect each current input/work budget: JSON-LD1 MiB per document/envelope, RDF2 MiB combined, GeoJSON2 MiB/50000positions.
- Reopen complete downloads; the200-row/node preview is not the full result.
- Correct declarations and rerun after a failure; do not approve a stale result or an unfinished comparison.
References
- Decode Protobuf with an original schema question
Task source: A user has a .proto and bytes extracted from a coredump and needs readable content; truncation cannot be repaired. No demand-scale claim.
- Local Avro compatibility question
Task source: A user wants local schema validity and forward/backward checks without a registry; this does not establish a particular registry policy.
- Protocol Buffers wire encoding
Correctness source for merging, oneof and encoding; not user-demand evidence.
- Protocol Buffers field presence
Correctness source distinguishing explicit and implicit presence; not user-demand evidence.
- Apache Avro specification and schema resolution
Correctness source. The pinned local parser supports first-branch union defaults; newer alternative default rules are not claimed as supported.
- JSON-LD expansion question
Task source: A concrete user asks why context expansion differs from the expected result; local workflow interpretation, not evidence of demand scale.
- RDF comparison question
Task source: A concrete ontology comparison question involves RDF/XML; Neatbo requires prior N-Quads export and makes no OWL inference claim.
- GeoJSON coordinate question
Task source: A concrete coordinate handoff question; coordinate size cannot identify the source CRS.
- W3C JSON-LD 1.1 processing algorithms
Correctness reference; supported scope, budgets and recovery follow the current tool contract, not evidence of user demand.
- W3C RDF Dataset Canonicalization
Correctness reference; supported scope, budgets and recovery follow the current tool contract, not evidence of user demand.
- PROJ Web Mercator projection
Correctness reference; supported scope, budgets and recovery follow the current tool contract, not evidence of user demand.