# [Ontology Is Source Code](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23sourcePost)

Source URL: <https://www.linkedin.com/posts/tonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54/>  
HTML companion: [ontology-is-source-code-tony-seale-gpt5-chat-1.html](ontology-is-source-code-tony-seale-gpt5-chat-1.html)  
RDF Turtle: [../rdf/ontology-is-source-code-tony-seale-gpt5-chat-1.ttl](../rdf/ontology-is-source-code-tony-seale-gpt5-chat-1.ttl)  
JSON-LD: [../rdf/ontology-is-source-code-tony-seale-gpt5-chat-1.jsonld](../rdf/ontology-is-source-code-tony-seale-gpt5-chat-1.jsonld)

[Tony Seale](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fin%2Ftonyseale%2F%23this) argues that [ontology is code](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23ontologyAsCode): formal logic and source code for organizational meaning, not rows in a custom database table.

## Core Claims

- [It should compile](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23compileGate): syntax, satisfiability, expected entailments, contradiction checks, and duplicate concept checks are build concerns.
- [It should live in plain text](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23plainTextSource): ontology source needs files, diffs, branches, blame, pull requests, and review context.
- [It should be governed like code](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23governedLikeCode): branches, pull requests, reviews, automated checks, releases, and builds.
- [It is source code for meaning](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23sourceCodeForMeaning): the artifact defines what the organization means by customer, order, risk, product, and other core concepts.

## Discussion Layer

Visible LinkedIn comments are modeled as RDF comments, starting with [Kingsley Uyi Idehen](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fin%2Fkidehen%2F%23this).

- [Comment by Kingsley Uyi Idehen](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23comment-kingsley-idehen): Yes! The creation and management of ontologies, and even instance data, is a classic files-and-filesystem interaction pattern. Before LLMs this was difficult because RDF notations had tradeoffs: Turtle was human-readable but lacked tooling support, JSON-LD had more tooling support but was less readable, and RDF/XML was challenged on both fronts. Today, the Semantic Web stack gels naturally with LLMs and AI Agents. An agent can express a conceptualization in the notation you prefer and save it to a file; on suitable platforms those files can be copied to a folder transparently bound to a backend RDF DBMS for updating the triple or quad store. Topics: [Files-and-filesystem pattern](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23filesAndFilesystemPattern), [RDF notation tradeoffs](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23rdfNotationTradeoffs), [LLM-powered agents](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23llmPoweredAgents), [Folder-to-quad-store binding](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23quadStoreFolderBinding)
- [Comment by Nicolas Matentzoglu](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23comment-nicolas-matentzoglu): For huge, highly regular ontologies such as anatomy, biological traits, or chemistry, one can sometimes curate the ontology in a table and map every instance or class to a design pattern that provides the logical modelling. Topics: [Table-driven ontology pattern](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23tableDrivenOntologyPattern), [Ontology](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23ontology)
- [Comment by Robert Sanderson](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23comment-robert-sanderson): That sounds like it should be a vocabulary or taxonomy rather than an ontology, raising the question of whether vocabularies should be treated as code as well. Topics: [Vocabulary and taxonomy boundary](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23vocabularyTaxonomyBoundary), [Ontology is code](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23ontologyAsCode)
- [Comment by Juan Sequeda](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23comment-juan-sequeda): This is why everyone should be careful with new tools and vendors that are now reframing themselves as ontology tools. Topics: [Ontology-tool vendor reframing risk](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23vendorReframingRisk), [Ontology](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23ontology)
- [Comment by Veronika Heimsbakk](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23comment-veronika-heimsbakk-vendors): An overview of RDF-native tooling and what major vendors support is relevant to the ontology-as-code discussion. Topics: [RDF-native tooling](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23rdfNativeTooling), [Ontology is code](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23ontologyAsCode)
- [Comment by Robert Schneider](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23comment-robert-schneider): A question about developers trying to eliminate object-relational impedance mismatch by persisting data as objects instead of rows in tables or documents. Topics: [Object-relational impedance mismatch](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23objectRelationalImpedance), [Database-table ontology anti-pattern](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23databaseTableAntiPattern)
- [Comment by Gaurav Malhotra](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23comment-gaurav-malhotra): Ontology should not hide in an EAV table. It should compile, diff, branch, and fail CI when meaning breaks. The real test is executable ubiquitous language rather than a semantic artifact only specialists maintain. Topics: [Executable ubiquitous language](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23executableUbiquitousLanguage), [Compile gate](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23compileGate), [Plain-text ontology source](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23plainTextSource), [Governed like code](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23governedLikeCode)
- [Comment by Andrea Mazzoni](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23comment-andrea-mazzoni): The technical debt of the ontology codebase and associated DevOps measures the gap between current state and the value a company can derive from AI. Topics: [Ontology technical debt](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23ontologyTechnicalDebt), [Governed like code](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23governedLikeCode)
- [Comment by Gauransh Dhruv Tandon](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23comment-gauransh-tandon): The compile step only bites if axioms have teeth; many enterprise ontologies are descriptive vocabularies in OWL clothing without constraints strict enough for a reasoner to disprove. Topics: [Axioms with teeth](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23axiomsWithTeeth), [Compile gate](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23compileGate), [Vocabulary and taxonomy boundary](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23vocabularyTaxonomyBoundary)
- [Comment by Bas van der Raadt](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23comment-bas-van-der-raadt): Ontology as code involves more than producing and processing RDF syntax; an ontology-driven system has more involved and snapshot-based approaches are only part of the story. Topics: [Ontology-driven system](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23ontologyDrivenSystem), [Ontology is code](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23ontologyAsCode), [RDF notation tradeoffs](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23rdfNotationTradeoffs)
- [Comment by Veronika Heimsbakk](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23comment-veronika-heimsbakk-table): If an ontology is in tables, it can be moved into code and iterated from there. Topics: [Table-driven ontology pattern](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23tableDrivenOntologyPattern), [Plain-text ontology source](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23plainTextSource)
- [Comment by Stephen Redmond](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23comment-stephen-redmond): Turtle is the coding language of choice because it plays nicely with SDLC tools. Topics: [Turtle as coding language](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23turtleAsCodingLanguage), [Plain-text ontology source](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23plainTextSource)

## Executable SPARQL

### Core Practices

[Run live query](https://linkeddata.uriburner.com/sparql?default-graph-uri=&query=PREFIX%20schema%3A%20%3Chttp%3A%2F%2Fschema.org%2F%3E%0APREFIX%20ex%3A%20%3Chttps%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23%3E%0ASELECT%20%3Fpractice%20%3Fname%20%3Fdescription%0AWHERE%20%7B%0A%20%20GRAPH%20%3Chttps%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fontology-is-source-code-tony-seale-gpt5-chat-1.ttl%3E%20%7B%0A%20%20%20%20ex%3AontologyAsCode%20ex%3AhasComponent%20%3Fpractice%20.%0A%20%20%20%20%3Fpractice%20schema%3Aname%20%3Fname%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3Adescription%20%3Fdescription%20.%0A%20%20%7D%0A%7D%0AORDER%20BY%20%3Fname&format=text%2Fx-html%2Btr&timeout=0&debug=on&run=+Run+Query+)

```sparql
PREFIX schema: <http://schema.org/>
PREFIX ex: <https://www.linkedin.com/posts/tonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54#>
SELECT ?practice ?name ?description
WHERE {
  GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/ontology-is-source-code-tony-seale-gpt5-chat-1.ttl> {
    ex:ontologyAsCode ex:hasComponent ?practice .
    ?practice schema:name ?name ;
              schema:description ?description .
  }
}
ORDER BY ?name
```

### Compile Gates

[Run live query](https://linkeddata.uriburner.com/sparql?default-graph-uri=&query=PREFIX%20schema%3A%20%3Chttp%3A%2F%2Fschema.org%2F%3E%0APREFIX%20ex%3A%20%3Chttps%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23%3E%0ASELECT%20%3Fcheck%20%3Fname%20%3Fdescription%0AWHERE%20%7B%0A%20%20GRAPH%20%3Chttps%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fontology-is-source-code-tony-seale-gpt5-chat-1.ttl%3E%20%7B%0A%20%20%20%20ex%3AcompileGate%20ex%3Atests%20%3Fcheck%20.%0A%20%20%20%20%3Fcheck%20schema%3Aname%20%3Fname%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20schema%3Adescription%20%3Fdescription%20.%0A%20%20%7D%0A%7D%0AORDER%20BY%20%3Fname&format=text%2Fx-html%2Btr&timeout=0&debug=on&run=+Run+Query+)

```sparql
PREFIX schema: <http://schema.org/>
PREFIX ex: <https://www.linkedin.com/posts/tonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54#>
SELECT ?check ?name ?description
WHERE {
  GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/ontology-is-source-code-tony-seale-gpt5-chat-1.ttl> {
    ex:compileGate ex:tests ?check .
    ?check schema:name ?name ;
           schema:description ?description .
  }
}
ORDER BY ?name
```

### Construct Workflow

[Run live query](https://linkeddata.uriburner.com/sparql?default-graph-uri=&query=PREFIX%20ex%3A%20%3Chttps%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23%3E%0APREFIX%20schema%3A%20%3Chttp%3A%2F%2Fschema.org%2F%3E%0ACONSTRUCT%20%7B%0A%20%20ex%3AontologyAsCode%20%3Fp%20%3Fo%20.%0A%20%20%3Fo%20schema%3Aname%20%3Fname%20.%0A%7D%0AWHERE%20%7B%0A%20%20GRAPH%20%3Chttps%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fontology-is-source-code-tony-seale-gpt5-chat-1.ttl%3E%20%7B%0A%20%20%20%20ex%3AontologyAsCode%20%3Fp%20%3Fo%20.%0A%20%20%20%20OPTIONAL%20%7B%20%3Fo%20schema%3Aname%20%3Fname%20%7D%0A%20%20%7D%0A%7D&format=text%2Fx-html%2Btr&timeout=0&debug=on&run=+Run+Query+)

```sparql
PREFIX ex: <https://www.linkedin.com/posts/tonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54#>
PREFIX schema: <http://schema.org/>
CONSTRUCT {
  ex:ontologyAsCode ?p ?o .
  ?o schema:name ?name .
}
WHERE {
  GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/ontology-is-source-code-tony-seale-gpt5-chat-1.ttl> {
    ex:ontologyAsCode ?p ?o .
    OPTIONAL { ?o schema:name ?name }
  }
}
```

### Comment Perspectives

[Run live query](https://linkeddata.uriburner.com/sparql?default-graph-uri=&query=PREFIX%20schema%3A%20%3Chttp%3A%2F%2Fschema.org%2F%3E%0APREFIX%20ex%3A%20%3Chttps%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23%3E%0ASELECT%20%3Fcomment%20%3FauthorName%20%3FtopicName%20%3Ftext%0AWHERE%20%7B%0A%20%20GRAPH%20%3Chttps%3A%2F%2Flinkeddata.uriburner.com%2FDAV%2Fdemos%2Fdaas%2Fontology-is-source-code-tony-seale-gpt5-chat-1.ttl%3E%20%7B%0A%20%20%20%20ex%3AcommentThread%20schema%3AhasPart%20%3Fcomment%20.%0A%20%20%20%20%3Fcomment%20schema%3Aauthor%20%3Fauthor%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3Atext%20%3Ftext%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3Aabout%20%3Ftopic%20.%0A%20%20%20%20%3Fauthor%20schema%3Aname%20%3FauthorName%20.%0A%20%20%20%20%3Ftopic%20schema%3Aname%20%3FtopicName%20.%0A%20%20%7D%0A%7D%0AORDER%20BY%20%3FauthorName%20%3FtopicName&format=text%2Fx-html%2Btr&timeout=0&debug=on&run=+Run+Query+)

```sparql
PREFIX schema: <http://schema.org/>
PREFIX ex: <https://www.linkedin.com/posts/tonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54#>
SELECT ?comment ?authorName ?topicName ?text
WHERE {
  GRAPH <https://linkeddata.uriburner.com/DAV/demos/daas/ontology-is-source-code-tony-seale-gpt5-chat-1.ttl> {
    ex:commentThread schema:hasPart ?comment .
    ?comment schema:author ?author ;
             schema:text ?text ;
             schema:about ?topic .
    ?author schema:name ?authorName .
    ?topic schema:name ?topicName .
  }
}
ORDER BY ?authorName ?topicName
```

## FAQ

### [Why should an ontology be treated as code?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23q1)\n\n[Because it declares organizational meaning using formal logic, relationships, constraints, and axioms; those artifacts need compilation, review, automated checks, and release discipline.](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23a1)\n
### [What does it mean for an ontology to compile?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23q2)\n\n[It means syntax is valid, classes are satisfiable, expected entailments are present, contradictions fail the build, and duplicate concepts are detected before release.](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23a2)\n
### [Why is plain text important for ontology work?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23q3)\n\n[Plain text gives ontology engineers and LLM agents access to files, diffs, branches, blame, pull requests, and review context.](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23a3)\n
### [How should an ontology be governed?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23q4)\n\n[Using the same engineering controls applied to code: branches, pull requests, reviews, automated checks, releases, and builds.](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23a4)\n
### [How do LLMs change ontology engineering?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23q5)\n\n[They increase the value of direct source access because an LLM can read, navigate, and edit ontology files like a codebase, instead of only querying an API.](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23a5)\n

## Glossary

- [Ontology](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23ontology): A formal graph of classes, relationships, constraints, and axioms for a domain.
- [Ontology as code](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23ontologyAsCode): Treating ontology source as logic-bearing code that compiles, has tests, and follows engineering governance.
- [Compile gate](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23compileGate): Automated validation that catches invalid syntax, unsatisfiable classes, missing entailments, contradictions, and duplicates.
- [Plain-text source](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23plainTextSource): Maintaining ontology definitions in files to enable diffs, branches, pull requests, blame, and source review.
- [Source code for meaning](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23sourceCodeForMeaning): The role of ontology as the formal source for what organizational concepts mean.

## HowTo

1. [Move ontology definitions into source files](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23step1): Use RDF/Turtle, OWL, SHACL, or another text-based ontology source format that supports version control.
2. [Add compile and reasoning checks](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23step2): Validate syntax, class satisfiability, expected entailments, contradictions, and duplicate concept risks in CI.
3. [Review ontology changes in pull requests](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23step3): Use branches, diffs, contextual comments, and approval rules for ontology changes.
4. [Publish versioned ontology releases](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23step4): Package, tag, and document ontology releases so downstream systems and agents know which meaning contract they use.
5. [Expose source and services to LLM agents](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23step5): Let LLMs navigate source files directly while also providing APIs, MCP tools, SPARQL endpoints, and documentation.

## Sources And Attribution

- Source material: [Did you start building your ontology as rows in a custom database table?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Ftonyseale_did-you-start-building-your-ontology-as-a-share-7463353332565356545-jY54%23sourcePost) by [Tony Seale](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fin%2Ftonyseale%2F%23this), published on [LinkedIn](https://linkeddata.uriburner.com/describe/?url=http%3A%2F%2Fdbpedia.org%2Fresource%2FLinkedIn).
- Skills used: [Browser Use](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fgithub.com%2Fopenai%2Fopenai-codex%23browser-use), [kg-generator](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fgithub.com%2FOpenLinkSoftware%2Fai-agent-skills%2Ftree%2Fmain%2Fkg-generator%23this), [rdf-infographic-skill](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fgithub.com%2FOpenLinkSoftware%2Fai-agent-skills%2Ftree%2Fmain%2Frdf-infographic-skill%23this).
- Generation environment: [gpt5-chat](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fopenai.com%2F%23gpt5-chat), [Codex desktop](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fopenai.com%2Fcodex%2F%23desktop), [URIBurner](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Flinkeddata.uriburner.com%2Ffct%23this), and [OpenLink Virtuoso](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fvirtuoso.openlinksw.com%2F%23this).
- Resolver pattern: `https://linkeddata.uriburner.com/describe/?url={encodedIRI}`.
