What I've been working on is really boring. Don't believe me? Look: The software on which I'm working needs to have a robust data-model. The data-model needs to be flexible and track all changes to data and also to schema. We need to be able to modify the data-model easily. So, I've been working on a system to allow defining the data-model. This tool will allow me to describe the data-model according to its facets and the relationships among them. The definition of these things will be contained in a database. This is where things get a little complex. I've been working for a while on the exact database structure to use for storing the definition of the data-model. This means, yes, I'm working on a data-model to store the data-model. This is what we in software engineering call a meta-data-model, or just a meta-model.
Here's the thing. I'm finding that, as I delve deeper into the requirements of the system, not only does the definition of the data-model keep changing, but the set of facets I need to be able to define for the data-model keeps changing. This means, if you're still following me, that I'm finding the need to have a flexible definition for, not just my data-model, but also for my meta-model. The meta-model controls, after all, what you can define about the data-model. If the meta-model is inflexible, that is reflected in an inability to richly change the definition of the data-model.
So, I'm going off the deep end. I'm working on... are you ready for this?... a meta-model for my meta-model. A meta-meta-model. If I change the meta-meta-model I can regenerate the meta-model, giving me a greater ability to define the data-model.
See? I told you. Boring. Maybe this will help you understand why I am the way I am. I would change my facets and become something different if I could, but I'm not sure I have a flexible meta-model, and I'm quite certain my meta-meta-model is set in stone.
Hello, friends. How are you today?
Later. Love.