Schema vs Data (TBox vs ABox)

Note

Derived from canonical docs/CONVENTIONS.md in the dfo-salmon-ontology repo.

Why this split matters

The ontology file should stay focused on schema (types, properties, definitions). Actual observations and measurements belong in data files/databases.

TBox (schema) belongs in ontology

Examples:

  • class definitions (owl:Class)
  • property definitions (owl:ObjectProperty, owl:DatatypeProperty)
  • concept schemes (skos:ConceptScheme)
  • logical axioms and constraints

ABox (instance data) belongs in data graphs

Examples:

  • specific survey events
  • specific count values
  • year/location-specific records
  • dataset-specific observations

Practical rule of thumb

If the triple changes every season/year/report, it is probably ABox data, not ontology schema.

Example

# TBox (schema)
:EscapementSurveyEvent a owl:Class ;
  rdfs:label "Escapement Survey Event"@en ;
  IAO:0000115 "A survey event used to estimate escapement."@en ;
  rdfs:isDefinedBy <https://w3id.org/gcdfo/salmon> .

# ABox (instance data)
:SkeenaSurveyEvent2024 a :EscapementSurveyEvent ;
  dwc:eventDate "2024-08-15"^^xsd:date ;
  :measuredVisits 6 .

Implication for DSU salmon data package / SPSR workflows

  • ontology repository defines shared semantics
  • salmon data package + SPSR workflows carry the actual dataset instances
  • keep these layers separate so standards can evolve without rewriting historical data