Building Semantic Schema

From Open Source Ecology
Revision as of 05:34, 18 January 2026 by Marcin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Source - [1]

A schema is a formal, machine-readable contract that declares what exists, what it means, and what must be true—without saying how to build it

What a schema is

A schema is an abstraction that defines meaning, structure, and constraints, independent of any particular file format or tool.

A schema is:

  • Conceptual before it is representational
  • Declarative rather than procedural
  • Concerned with what is true, not how it is produced

A schema does not inherently belong to:

  • JSON
  • YAML
  • XML
  • IFC
  • FreeCAD
  • Revit
  • Any specific software system

Those are merely serialization formats or containers used to express the schema.

Role of the compiler

The purpose of a compiler is to translate a schema into a target representation.

A compiler:

  • Interprets the schema’s meaning and constraints
  • Resolves ambiguities and degrees of freedom
  • Applies deterministic construction rules
  • Emits a concrete artifact in a target domain

Examples of compiler targets include:

  • FreeCAD geometry
  • IFC models
  • Permit drawings
  • Bills of materials
  • Installation instructions
  • Inspection checklists

Key separation

  • The schema defines intent and truth
  • The compiler defines execution
  • The output is disposable and regenerable

This separation is what enables:

  • Lossless regeneration
  • Automation at scale
  • Tool independence
  • Safe use of AI

Summary

A schema is a tool-independent abstraction of meaning and constraints.

A compiler is the mechanism that translates that abstraction into a specific, concrete output.

A schema is not

A schema is not any of the following:

  • Geometry
  • Code
  • Instructions
  • Algorithms
  • Drawings
  • A script
  • A model in FreeCAD

All of the above are derived artifacts — they are produced *from* a schema by compilers, generators, or humans, but they are not the schema itself.