{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreiadw4glkvappyatsnybtqgm3hchgu2twqjqetvd2pvbb3bdjrbij4",
    "uri": "at://did:plc:3peywwdnn4jkfvqowpviodbf/app.bsky.feed.post/3mngouddjht22"
  },
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreigncan53a3yqr7wmcyw7g5omsa6bz6sq2gynvufmu3ylsh35mrzse"
    },
    "mimeType": "image/png",
    "size": 411716
  },
  "path": "/blog/2026/06/03/how-do-i-use-a-software-ontology/",
  "publishedAt": "2026-06-03T00:00:00.000Z",
  "site": "https://jeffbailey.us",
  "tags": [
    "How-To",
    "Software Architecture",
    "Domain-Driven Design",
    "software ontology",
    "creation guide"
  ],
  "textContent": "The interviews are complete. Someone worked with the domain expert to create `ontology.md`. Six months later, a report counts the same `Customer` thrice, despite the model’s purpose to prevent this, and it hasn’t been updated since launch.\n\nAn ontology is useful only when used by a team. A software ontology is a shared model of a domain—its entities, attributes, and relationships written to ensure everyone, including code, understands each term. This guide assumes the model already exists and aims to integrate it into workflows, design, schemas, and interfaces. Select the section relevant to your task. Command examples assume PostgreSQL and `psql`, but they support any engine with comments and constraints. Examples refer to the Subscription Billing context from the creation guide, aligning terms across both articles.",
  "title": "How Do I Use a Software Ontology?"
}