# Ontology Engineering

> The practice of defining the concepts, relationships, constraints, and shared vocabulary needed to represent a domain.

- HTML version: https://robbiepalmer.me/ideas/ontology-engineering
- Source: https://protege.stanford.edu/publications/ontology_development/ontology101.pdf

Ontology engineering defines what kinds of things exist in a domain, how they relate, and which
distinctions a system must preserve. An ontology may include classes, properties, constraints,
identifiers, and mappings to other vocabularies.

A taxonomy only arranges concepts into broader and narrower groups. An ontology can also express
relations such as composition, location, ownership, or participation in a process. Those relations
should reflect the domain rather than reuse one convenient hierarchy for every question.

[Domain-Driven Design](/ideas/domain-driven-design) and ontology engineering both take language
seriously. Domain-Driven Design allows different [bounded contexts](/ideas/bounded-context) to use
different models. Ontology engineering can document those meanings and map between them without
pretending that one universal model fits every context.

This work has a cost. A small operational vocabulary is often more useful than importing a large
formal ontology wholesale. External terms should be reused when their meaning fits, with the source
and version recorded. Local concepts should remain local when a forced match would be false.

## Questions it prompts

* Which distinctions change the system's behaviour?
* Are two terms synonyms, narrower concepts, or different kinds of thing?
* Which relationships are safe to treat as transitive?
* What happens when an external ontology renames, splits, or removes a concept?

## Related ideas

- [Bounded Context](https://robbiepalmer.me/ideas/bounded-context.md): An explicit boundary within which one domain model and its language have a consistent meaning.
- [Domain-Driven Design](https://robbiepalmer.me/ideas/domain-driven-design.md): Model software around the language, rules, and boundaries of the problem domain.
- [Intelligent Document Processing](https://robbiepalmer.me/ideas/intelligent-document-processing.md): A pipeline that turns varied documents into validated, structured data by combining recognition, language understanding, and workflow rules.
- [Named-Entity Recognition](https://robbiepalmer.me/ideas/ner.md): NER finds spans of text that name entities and assigns them types such as people, organisations, products, or identifiers.

## Where it appears

- Project: [Automated Tumor Macrodissection](https://robbiepalmer.me/projects/automated-macrodissection.md)
- Project: [Commercial Knowledge Graph](https://robbiepalmer.me/projects/commercial-knowledge-graph.md)
- Project: [Intelligent Document Processing](https://robbiepalmer.me/projects/intelligent-document-processing.md)
- Project: [Recipe Site](https://robbiepalmer.me/projects/recipe-site.md)
- Blog post: [Effective and Ethical Data Science Study Design](https://robbiepalmer.me/blog/2023-02-24-effective-ethical-data-science-study-design.md)
- ADR: [ADR 057: Food Ontology Alignment](https://robbiepalmer.me/projects/personal-site/adrs/057-food-ontology-alignment.md)

---

Markdown index of this site: https://robbiepalmer.me/llms.txt
