OWL Classes

Note

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

Required pattern

Every class should include:

  • a owl:Class
  • rdfs:label "..."@en
  • IAO:0000115 "..."@en
  • rdfs:isDefinedBy <https://w3id.org/gcdfo/salmon>

Optional but recommended:

  • IAO:0000119 (text citation)
  • dcterms:source (resolvable source URI)
  • IAO:0000112 (example usage)

Authoring template

:ConservationUnit a owl:Class ;
  rdfs:label "Conservation Unit"@en ;
  IAO:0000115 "A biologically meaningful salmon management unit used for conservation and assessment."@en ;
  rdfs:isDefinedBy <https://w3id.org/gcdfo/salmon> ;
  IAO:0000119 "DFO policy source text"@en ;
  dcterms:source <https://example.org/source> .

Hierarchy guidance

  • Use rdfs:subClassOf for true “is-a” relationships.
  • Use owl:disjointWith when classes are mutually exclusive.
  • Use owl:equivalentClass only when meanings are truly identical.

Common mistakes to avoid

  • definition repeating label without adding meaning
  • creating duplicate classes for the same concept
  • using instance examples as class definitions
  • mixing SKOS concept semantics into class axioms without design intent

Quick quality checks