ontology.v1.json, which
versions the entity types, namespaces, coordinate systems, and relations
together. Its SHA-256 digest is folded into every query identity, so a query
cannot silently acquire different semantic validation.
Column kinds
Every physical column declares avalue_kind:
The kind is what stops two columns that both hold small integers from being
joined just because the numbers line up — a
coordinate is never treated as a
measurement, and two coordinates in different systems never match.
Identifier namespaces
A namespace records which authority mints an identifier. The ontology declares seven, so the same protein addressed two ways is never compared as a raw string:
There is deliberately no canonical sequence-identifier namespace. Sequence ids
reach the lake as whatever the source FASTA header or importer supplied, and
nothing resolves them to a common authority, so
source_sequence_records.sequence_id
is declared source_record — a source-assigned id, not a Rafflesia-minted one.
The content address of a sequence is sequence_sha256. This is why the
sequence-search relations declare no identifier namespace on their query and
subject ids: those values are raw aligner output, and claiming otherwise would
license a join that silently returns wrong rows.
Coordinate systems
A coordinate system records what a position is measured against. These are the single most common way a biology query goes silently wrong, because they all look like plain 1-based integers:
A
structure_residue_number and a protein_sequence_position can point at the
same residue, but they are different coordinate systems. Equating them
directly is the classic silently-wrong join — the ontology treats them as
distinct until a mapping relates them.
Entities behind the columnsColumns are grounded in seventeen declared entity types — protein, structure,
residue, sequence, variant, ligand, pocket, interface, taxon, and more — so a
relation always knows which kind of thing each identifier and coordinate
belongs to.
The rule in one sentence
Two values refer to the same thing only when their kind, namespace, and coordinate system agree — or when the ontology declares a relationship that maps one to the other. Everything else stays distinct.Next: Lossy & range mappings — how the ontology relates identities that are the same but imperfect across sources.