David,
It seems like you want an
ORM to handle your pipeline. That's a great idea in theory. I would certainly temper that decision with a solid cost-benefit analysis. Will it work with existing code? Will the other developers on the project be able to contribute easily?
Don't make OOP the end goal. It's a great way to organize a set of functions or methods against a shared context, but it's not necessarily any better than a function-based design.
As Justin points out, it is an asset management system and for that you may need a database. If you can define how your database works, it will probably reveal what operations you want to attach to your objects. However, I have actually seen file system based data stores using xml files for metadata. The major limitation was that the data queries could only be simple without a lot of extra work. Conversely, the advantage was that most of the tools still worked even if a server went down or we sent a machine on set.
If you have a good object design and clean code, you can certainly leverage object inheritance to handle many of the shared methods that all the objects will use. This can be great when for future problems when you need to add something to all object classes, like a serialization class for when you need to generate an XML or JSON string of your object.
There are plenty of asset management systems out there why reinvent the wheel?
Cheers,
jesse