Objections

The hard questions people actually ask, answered plainly. Every answer ends with the part of the reference model that proves it, so you do not have to take our word for it.

These are real objections from practitioners, standards people, and architects, kept in their words rather than ours. Where an answer has a limit, the limit is stated. Each question links to itself, so you can point someone at exactly one answer.

Determinism just makes stale authority reliable. What proves the inputs are still entitled to govern?

The state declares its own expiry, so silence produces expiry rather than continued permission.

In SDC the temporal envelope is bound to the element itself. Every data point can carry vtb (valid time begin) and vte (valid time end) alongside tr (time recorded) and modified, all inherited from XdAnyType. A consent, a role assignment, or an authority grant carries its own validity window as part of the data, not in a separate system that has to remember to check it.

Those are two clocks, deliberately. Valid time is when the fact was true in the world. Time recorded and modified are when the system learned it. Authority can lapse at one moment and only reach you at another, and a state carrying a single clock cannot tell a stale answer from a fresh one.

The limit. The substrate makes the question answerable. It does not answer it. Something above has to recompute standing at the moment of consequence and return a verdict, and that decision layer is different work from preparing the data. A material fact that never reaches the substrate at all is beyond any temporal envelope, though a grant that expires by default narrows it, because you stop depending on someone remembering to revoke.

Proof: XdAnyType in the SDC4 reference model, where vtb, vte, tr and modified are defined. · Background: Permanence Architecture
We already link our fields to an ontology. Why is that not enough?

An ontology link says what a record is about. It does not say what the number means.

Link a reading to "hypertension" and you know the record concerns blood pressure. You do not know the threshold in force when it was taken, the units, the reference range, or which version of which scale produced an ordinal value. Those are constraints, and the constraints are what let you interpret the number at all. When the 2017 threshold moved from 140/90 to 130/80, the ontology term did not change. The meaning of a 132/82 reading did.

Ontology work is necessary and this is not an argument against it. It is an argument for finishing it: bind the definition, range, units, scale version, and value set to the record alongside the ontology link.

Is XSD not far too verbose and heavyweight for this?

The comparison hides where the cost went. A few hundred kilobytes of constraint declared once replaces filtering and retrying at run time, forever.

SDC's cost is visible and paid at compile time. The alternative's cost is invisible and paid on every run: generate a candidate, check it, discard it, try again, with a model sifting an enormous space of possible answers before a filter rejects the wrong ones. That post-hoc filtering loop is not free because nobody put it on an invoice. Declaring the constraint up front moves the compute to the cheaper side of the loop.

On XSD specifically: it was chosen for decades of tooling and a specification that will outlive the people using it, not because it is elegant. Reach and durability are technical properties, not compromises. SDC uses xsd:restriction only, never xsd:extension, so a specialization can constrain but never widen what it inherited.

The limit. XSD is genuinely unpleasant to read. It is generated from the model rather than hand-written, so the verbosity is a property of the artifact, not of the work.

Does RO-Crate or a nanopublication not already solve this?

Complementary, not competing. The envelope describes the contents. It does not make the contents describe themselves.

RO-Crate, Frictionless Data and BagIt solved a real problem, and solved it well: a dataset should carry a machine-readable manifest saying what it is, who made it, what license governs it, and where it came from. If your consortium is deciding what to require, requiring a packaging standard is a good early answer.

What a crate does not do is constrain or verify that each record means what the manifest claims, or keep a single record legible once it is separated from its packaging. Two impeccably packaged datasets touching the same domain still have nothing guaranteeing that "sample" in one means "sample" in the other. That is a property of the records, not the envelope, and the envelope was never asked to enforce it.

The answer is not one or the other. A validated SDC instance drops cleanly inside an RO-Crate, so this is additive to what the FAIR community has already built.

Proof: DMType in the reference model, where a data model carries its own metadata and permanent identifier natively. · Longer form: A Well-Labeled Box of Mystery Files
Why not just hand the auditor your SHACL shapes file?

An auditor reconstructs independently. A shapes file you supply is your assertion about your own data.

The point of third-party assurance is not to receive your description of your controls and file it. An assessor who accepts a supplied artifact as evidence of the thing the artifact describes has verified nothing. That is why "we have a process, trust us" fails an audit and should.

SDC emits SHACL as a projection generated from the published schema, so an auditor can regenerate the shapes from the artifact itself and compare, rather than accepting the copy you handed over. The schema is the thing under audit, and it is public and immutable once published.

RDF-star and named graphs serialize. Why not just ship the annotations?

Transport was never the problem. Version was.

You are right that the annotations serialize. If both ends speak RDF, a Turtle or TriG export carries them and the payload really does arrive with the annotation attached. That is a genuine answer to the transport question.

But a shipped annotation still references a value set, a scale, or a threshold by identifier, and that identifier has to resolve to the same thing in nine years as it did on the day it was written. If superseded versions are not retained, the pointer resolves to something different or to nothing at all, and the annotation is now confidently wrong rather than missing. In SDC a published component is immutable and keeps its permanent identifier, so a changed constraint is a different component rather than a silent redefinition of the old one.

Is this not just another data platform?

A platform makes your tools speak its language. A substrate lets the tools you already have speak a shared one.

The diagnosis a vertical platform offers is usually correct: broken integrations, silent sync failures, disjointed software. The swap happens in the fix. A platform that unifies your stack is itself a new proprietary schema, so the sovereignty problem does not go away. It becomes sovereignty inside someone else's shape, one abstraction layer up, and your data is now expressed in their model rather than yours.

SDC is open, neutral, and grounded in W3C and ISO standards, which means it is re-derivable without us. The schemas, models and receipts stay valid and independently checkable whether or not Axius SDC exists next year. That is the inverse of concentration, and it is structural rather than a promise.

Proof: SDC4 reference model, open and independently implementable · Background: Foundations, Philosophy
Why not just use NULL?

NULL cannot tell you why the value is absent, and the reasons are different facts with different consequences.

"Not asked", "asked but unknown", "not applicable" and "masked for access control" are four different situations. Collapsed into a single empty cell they become indistinguishable, and every downstream consumer has to guess which one it was. A model inferring across those records will guess differently across runs and sources, which is how an absence becomes a wrong answer rather than a missing one.

SDC carries exceptional values as a typed, structural part of every data point, drawn from the null flavors defined in ISO 21090. The record states why the value is not there, so absence is data rather than a hole.

Proof: ExceptionalValueType in the reference model · Its place in every data point: XdAnyType
This sounds like a lot of modeling work. Who is supposed to do it?

Your domain experts, and it makes the coordination problem smaller rather than larger.

The social cost is real and we will not argue otherwise. But the expensive part of interoperability has never been the modeling, it is the negotiating: every team agreeing with every other team about what a field means. That is a pairwise cost, and it grows as the square of the number of participants. A shared reference model turns it into mapping once against the shared model, which is linear. Fewer point-to-point deals is less of the human problem, not more.

The expert defines the meaning and its constraints once, at the point of definition, and everyone downstream reuses it without renegotiating. Axius SDC never authors the ontology. SDC is the format experts write in and the generator that turns their model into schema, RDF and receipts. Whoever owns the meaning and signs for it keeps owning it.

The limit. This is still design-time work by someone who understands the domain. It is front-loaded on purpose, which is a real trade and not a free lunch.

Proof: SDC4 reference model, authored in open W3C and ISO standards · Background: Getting Started

Have an objection that is not here? Send it. Good ones get added with their answer, including the ones we do not have a clean answer to yet.