Dynamic Object Refactoring – Splitting Overloaded Objects into Child Objects

Howdy!

I wanted to share an idea that could streamline the early stages of ontology development and enhance flexibility as a project evolves.

The Problem: :bangbang:

  • Whenever I start a new project, I tend to get overzealous and overload a certain object type with too many properties.
  • I find this to be a practical trade-off at the start – rather than spending time building out 20 granular objects, I stick with mostly stripped down simple objects but tend to have 1-2 “overloaded” objects.
  • However, as the project progresses, it becomes clear that these overloaded objects start to feel bloated, and managing them becomes inefficient.
  • I’d love a way to organically refactor these objects without losing momentum.

Proposed Solution: :white_check_mark:
From Ontology Manager:

  • Select multiple properties from an overloaded “parent” object and dynamically extract them into a new “child” object.
  • As part of this process, the system could prompt to automatically create a foreign key link between the parent and child objects.
  • This way, I could progressively build out my ontology without needing to meticulously plan for long-term scalability upfront. (start broad, refine as necessary)

Example: :military_helmet:
3 simple objects

  • Soldier
    • Soldier id
    • Name
    • Rank
    • Unit
  • Operation
    • Operation id
    • Name
    • Start date
    • End date
    • Location
  • Training
    • Training id
    • Title
    • Date
    • Description

1 initial overloaded object

  • Solider performance
    • Solider id
    • Special skills
    • Certifications
    • Marksmanship score
    • Award records
    • Deployment history
    • Mission count
    • Combat readiness rating
    • Discipliner notes
    • Leadership rating
    • Fitness test score

3 peeled / refactored child objects

  • Training records
    • Solider id (foreign key)
    • Special skills
    • Certifications
    • Marksmanship score
  • Award history
    • Solider id (foreign key)
    • Award records
  • Deployment record
    • Solider id (foreign key)
    • Deployment history
    • Mission count
    • Combat readiness rating

1 remaining parent object

  • Solider performance
    • Solider id
    • Discipliner notes
    • Leadership rating
    • Fitness test score

Conclusion :end:

  • I’d love to hear your thoughts – does this resonate with anyone else’s experience?
  • Is there something that already exists that can help me?
  • Would this feature make your ontology development workflow smoother? Or does this say something about how I am going about building out my ontology?
  • For “successful” implementations of foundry products, is there an “average number of objects” each with an “average number of properties/links” (almost like an ontology geometry) or is it too situationally dependent?
  • Thanks!