Ontology Class Specification

Normative definition of the ontology atom class in schema-atoms.

draft 1.0.0-draft design-spec
idschema-atoms/design-spec/ontology-class-spec
authorsconvergent-systems-co
conforms_toschema-atoms/design-spec/atom-spec@1.1.0
created2026-05-23

Ontology Class Specification

Class: ontology Family: taxonomy-spec (Family 6) Version: 1.0.0-draft Lifecycle: draft Conforms to: schema-atoms/design-spec/atom-spec@1.1.0 Authors: convergent-systems-co


1. Purpose and Scope

The ontology class represents formal concept systems expressed in OWL, RDF, or JSON-LD. Atoms of this class publish machine-readable ontologies that define classes, properties, axioms, and relationships between concepts so that downstream systems can perform logical inference, semantic validation, and knowledge-graph integration.

Ontologies differ from controlled vocabularies in that they express formal logical relationships (subclass-of, equivalent-to, disjoint-with, property restrictions) rather than simple enumerations. They differ from code lists in that their authority is the publishing organization or a formal standards body (W3C, OBO Foundry, schema.org), and their primary use is semantic reasoning rather than code-level validation.

Typical examples include: OWL ontologies for biomedical domains (Gene Ontology, SNOMED CT), upper ontologies (DOLCE, BFO), schema.org type hierarchies, and organization-specific knowledge graphs.


2. Asset Formats

An atom of class ontology MUST provide its ontology in one of the following formats:

Format MIME type When to use
.ttl (Turtle) text/turtle Preferred for human-authored ontologies; readable, diff-friendly
.owl (OWL/XML) application/owl+xml Use when the ontology is produced by OWL tooling (Protégé, etc.) that exports OWL/XML natively
.json-ld (JSON-LD) application/ld+json Preferred when consumers are JSON-native or the ontology is served over HTTP APIs

The asset file path is declared in atom.toml under [spec].asset. The file MUST be a syntactically valid serialization of its declared format.

Turtle example structure

@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix ex:   <https://schema-atoms.com/ontology/example#> .

<https://schema-atoms.com/ontology/example>
    a owl:Ontology ;
    rdfs:label "Example Ontology"@en ;
    owl:versionIRI <https://schema-atoms.com/ontology/example/1.0.0-draft> .

ex:DigitalArtifact
    a owl:Class ;
    rdfs:label "Digital Artifact"@en ;
    rdfs:comment "Any machine-readable artifact produced or consumed by a system."@en .

ex:Atom
    a owl:Class ;
    rdfs:subClassOf ex:DigitalArtifact ;
    rdfs:label "Atom"@en ;
    rdfs:comment "A versioned, addressable unit of structured knowledge."@en .

JSON-LD example structure

{
  "@context": {
    "owl": "http://www.w3.org/2002/07/owl#",
    "rdfs": "http://www.w3.org/2000/01/rdf-schema#"
  },
  "@graph": [
    {
      "@id": "https://schema-atoms.com/ontology/example",
      "@type": "owl:Ontology",
      "rdfs:label": "Example Ontology"
    }
  ]
}

3. Required Envelope Fields

Every ontology atom MUST declare the following fields in its atom.toml:

Field Required value or constraint
id "schema-atoms/ontology/<slug>"
version SemVer string (e.g., "1.0.0")
content_hash SHA-256 of the asset file; empty string at draft stage
lifecycle One of: draft, stable, deprecated
created_at RFC 3339 UTC timestamp
[spec].class "ontology"
[spec].title Human-readable title
[spec].summary One-sentence description of the ontology's domain and purpose
[spec].authors Non-empty array of author identifiers
[spec].asset Relative path to the asset file (.ttl, .owl, or .json-ld)

A [spec].namespace field SHOULD declare the ontology's base IRI so consumers can resolve term references without parsing the asset.


4. Normative Requirements

MUST: An atom of class ontology MUST declare an owl:Ontology IRI in the asset file. An RDF graph without an ontology IRI declaration is a set of triples, not a versioned ontology.

SHOULD: An ontology atom SHOULD declare owl:versionIRI in the asset so that version-pinned imports resolve without ambiguity.

MUST NOT: An ontology atom MUST NOT embed credentials, internal hostnames, or other secrets in the asset's annotation properties or comments.


5. Example Atom Reference

The following illustrates a well-formed ontology atom at draft stage:

schema-atoms/ontology/schema-atoms-meta@1.0.0-draft

atom.toml:

id          = "schema-atoms/ontology/schema-atoms-meta"
version     = "1.0.0-draft"
content_hash = ""
lifecycle   = "draft"
created_at  = "2026-05-23T00:00:00Z"

[spec]
class       = "ontology"
title       = "Schema-Atoms Meta-Ontology"
summary     = "OWL ontology defining the core classes and properties of the schema-atoms knowledge model."
authors     = ["convergent-systems-co"]
asset       = "schema-atoms-meta.ttl"
namespace   = "https://schema-atoms.com/ontology/meta#"

schema-atoms-meta.ttl (excerpt):

@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sa:   <https://schema-atoms.com/ontology/meta#> .

<https://schema-atoms.com/ontology/meta>
    a owl:Ontology ;
    rdfs:label "Schema-Atoms Meta-Ontology"@en ;
    owl:versionIRI <https://schema-atoms.com/ontology/meta/1.0.0-draft> .

sa:Atom
    a owl:Class ;
    rdfs:label "Atom"@en ;
    rdfs:comment "A versioned, addressable unit of structured knowledge in schema-atoms."@en .

sa:atomClass
    a owl:DatatypeProperty ;
    rdfs:domain sa:Atom ;
    rdfs:label "atom class"@en ;
    rdfs:comment "The class identifier that determines how the atom's asset is interpreted."@en .

6. Changelog


atom.toml
id          = "schema-atoms/design-spec/ontology-class-spec"
version     = "1.0.0-draft"
content_hash = ""
lifecycle   = "draft"
created_at  = "2026-05-23T00:00:00Z"

[spec]
class       = "design-spec"
title       = "Ontology Class Specification"
summary     = "Normative definition of the ontology atom class in schema-atoms."
authors     = ["convergent-systems-co"]
conforms_to = "schema-atoms/design-spec/atom-spec@1.1.0"
asset       = "spec.md"