Skip to content

Instantly share code, notes, and snippets.

@brett-petrusek
Last active November 21, 2025 19:44
Show Gist options
  • Select an option

  • Save brett-petrusek/1f14312df239a7bd57d5bba0a73a85f1 to your computer and use it in GitHub Desktop.

Select an option

Save brett-petrusek/1f14312df239a7bd57d5bba0a73a85f1 to your computer and use it in GitHub Desktop.
ontology entity rule
Entity Block Structure Rules
Each entity follows this exact structure:
Header
- Title: EntityName in SnakeCase with backticks (h3 heading)
- Description: One sentence defining what the entity represents
Properties Section
- Label: "Properties:" in bold
- Format: Bullet list with property_name: type annotation
- Types: Use primitives (string, number, date), collections (array[type], object), enums (enum {value1, value2}), or entity references (EntityName)
Note Section (Optional)
- Label: "Note:" in bold
- Purpose: Explains properties removed for simplification and where to find that information through relationships
- Condition: Only present if properties were removed
Quality Assessment Criteria
- Label: "Quality Assessment Criteria:" in bold
- Structure: Four sub-sections in this order:
a. High Quality - Lists criteria for excellent instances with specific examples
b. Medium Quality - Lists criteria for adequate but incomplete instances
c. Low Quality - Lists criteria for poor instances with anti-pattern examples
d. Undefined/Incomplete - Lists criteria for missing/placeholder instances
- Content: Each criteria bullet references specific property names using backticks and describes what makes that property high/medium/low/undefined quality
Sub-types Section (Optional)
- Label: "Sub-types:" or "Sub-types (by importance):" in bold
- Format: Bullet list of entity type names in backticks with brief descriptions
- Purpose: Documents IS-A inheritance relationships
- Condition: Only present for entities with subtypes
Additional Sections (Optional)
- Enum Values Explained: For entities with enum properties requiring clarification
- Hierarchy: For entities with ranked/ordered structures
- Key Principle: For entities with critical design constraints
- Axiom: For entities with mandatory rules that must be validated
- Examples: Concrete real-world examples of high-quality instances
Separator
- End with --- horizontal rule before next entity
Relationships Section Structure Rules
Section Header
- Title: "## Relationships" (h2 heading)
Subsections
Two subsections in this order:
1. Critical Relationships (Must Exist) - Relationships required for ontology compliance
2. Supporting Relationships - Helpful but not mandatory relationships
Relationship Entry Format
- Number: Sequential numbering within each subsection
- Title Line: EntityA relationship_verb EntityB format
- Entities in backticks with SnakeCase
- Relationship verb in bold with snake_case (e.g., maps_to, enables, contributes_to)
- Bullet Points: 2-3 bullets explaining:
- Forward relationship (e.g., "Every X must verb at least one Y")
- Reverse relationship if applicable (e.g., "Every Y must verb at least one X")
- Special constraints or prohibitions
- Cardinality: "Cardinality: [type]" in bold with explanation in parentheses
- Types: 1:1, 1:N, M:N, M:1
- Include brief explanation (e.g., "one problem can map to multiple outcomes")
Separator
- Blank line between relationship entries
- --- horizontal rule after entire Relationships section
---
Axioms Section Structure Rules
Section Header
- Title: "## Axioms (Rules That Must Be True)" (h2 heading)
Subsections
Two subsections in this order:
1. Primary Axioms - Core rules about proposal structure and content
2. Validation Axioms - Rules about completeness, consistency, and traceability
Axiom Entry Format
- Number: Sequential numbering within each subsection
- Title: Bold axiom name describing the rule (e.g., "Customer-Backwards Rule", "Quantification Rule")
- Bullet Points: Rules in this order:
- High-level rule statement referencing entities in backticks
- Specific prohibitions or requirements (what must/must not happen)
- Trace: (optional) Shows relationship chain using Entity → Entity → Entity format
- Examples with backtick-wrapped property names where applicable
- Content Style:
- Use "must", "cannot", "are prohibited" for enforceable rules
- Reference entity and property names in backticks
- Use bold for relationship verbs when showing connections
Separator
- Blank line between axiom entries
- --- horizontal rule after entire Axioms section
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment